diff --git a/docs/developer_guide/materials_construction_guide.md b/docs/developer_guide/materials_construction_guide.md new file mode 100644 index 00000000..a19fa05c --- /dev/null +++ b/docs/developer_guide/materials_construction_guide.md @@ -0,0 +1,405 @@ +# 物料构建指南 + +## 概述 + +在UniLab-OS系统中,任何工作站中所需要用到的物料主要包括四个核心组件: + +1. **桌子(Deck)** - 工作台面,定义整个工作空间的布局 +2. **堆栈(Warehouse)** - 存储区域,用于放置载具和物料 +3. **载具(Carriers)** - 承载瓶子等物料的容器架 +4. **瓶子(Bottles)** - 实际的物料容器 + +本文档以BioYond工作站为例,详细说明如何构建这些物料组件。 + +## 文件结构 + +物料定义文件位于 `unilabos/resources/` 文件夹中: + +``` +unilabos/resources/bioyond/ +├── decks.py # 桌子定义 +├── YB_warehouses.py # 堆栈定义 +├── YB_bottle_carriers.py # 载具定义 +└── YB_bottles.py # 瓶子定义 +``` + +对应的注册表文件位于 `unilabos/registry/resources/bioyond/` 文件夹中: + +``` +unilabos/registry/resources/bioyond/ +├── deck.yaml # 桌子注册表 +├── YB_bottle_carriers.yaml # 载具注册表 +└── YB_bottle.yaml # 瓶子注册表 +``` + +## 1. 桌子(Deck)构建 + +桌子是整个工作站的基础,定义了工作空间的尺寸和各个组件的位置。 + +### 代码示例 (decks.py) + +```python +from pylabrobot.resources import Coordinate, Deck +from unilabos.resources.bioyond.YB_warehouses import ( + bioyond_warehouse_2x2x1, + bioyond_warehouse_3x5x1, + bioyond_warehouse_20x1x1, + bioyond_warehouse_3x3x1, + bioyond_warehouse_10x1x1 +) + +class BIOYOND_YB_Deck(Deck): + def __init__( + self, + name: str = "YB_Deck", + size_x: float = 4150, # 桌子X方向尺寸 (mm) + size_y: float = 1400.0, # 桌子Y方向尺寸 (mm) + size_z: float = 2670.0, # 桌子Z方向尺寸 (mm) + category: str = "deck", + setup: bool = False + ) -> None: + super().__init__(name=name, size_x=4150.0, size_y=1400.0, size_z=2670.0) + if setup: + self.setup() # 当在工作站配置中setup为True时,自动创建并放置所有预定义的堆栈 + + def setup(self) -> None: + # 定义桌子上的各个仓库区域 + self.warehouses = { + "自动堆栈-左": bioyond_warehouse_2x2x1("自动堆栈-左"), + "自动堆栈-右": bioyond_warehouse_2x2x1("自动堆栈-右"), + "手动堆栈-左": bioyond_warehouse_3x5x1("手动堆栈-左"), + "手动堆栈-右": bioyond_warehouse_3x5x1("手动堆栈-右"), + "粉末加样头堆栈": bioyond_warehouse_20x1x1("粉末加样头堆栈"), + "配液站内试剂仓库": bioyond_warehouse_3x3x1("配液站内试剂仓库"), + "试剂替换仓库": bioyond_warehouse_10x1x1("试剂替换仓库"), + } + + # 定义各个仓库在桌子上的坐标位置 + self.warehouse_locations = { + "自动堆栈-左": Coordinate(-100.3, 171.5, 0.0), + "自动堆栈-右": Coordinate(3960.1, 155.9, 0.0), + "手动堆栈-左": Coordinate(-213.3, 804.4, 0.0), + "手动堆栈-右": Coordinate(3960.1, 807.6, 0.0), + "粉末加样头堆栈": Coordinate(415.0, 1301.0, 0.0), + "配液站内试剂仓库": Coordinate(2162.0, 437.0, 0.0), + "试剂替换仓库": Coordinate(1173.0, 802.0, 0.0), + } + + # 将仓库分配到桌子的指定位置 + for warehouse_name, warehouse in self.warehouses.items(): + self.assign_child_resource(warehouse, location=self.warehouse_locations[warehouse_name]) +``` + +### 在工作站配置中的使用 + +当在工作站配置文件中定义桌子时,可以通过`setup`参数控制是否自动建立所有堆栈: + +```json +{ + "id": "YB_Bioyond_Deck", + "name": "YB_Bioyond_Deck", + "children": [], + "parent": "bioyond_cell_workstation", + "type": "deck", + "class": "BIOYOND_YB_Deck", + "config": { + "type": "BIOYOND_YB_Deck", + "setup": true + }, + "data": {} +} +``` + +**重要说明**: +- 当 `"setup": true` 时,系统会自动调用桌子的 `setup()` 方法 +- 这将创建并放置所有预定义的堆栈到桌子上的指定位置 +- 如果 `"setup": false` 或省略该参数,则只创建空桌子,需要手动添加堆栈 + +### 关键要点注释 + +- `size_x`, `size_y`, `size_z`: 定义桌子的物理尺寸 +- `warehouses`: 字典类型,包含桌子上所有的仓库区域 +- `warehouse_locations`: 定义每个仓库在桌子坐标系中的位置 +- `assign_child_resource()`: 将仓库资源分配到桌子的指定位置 +- `setup()`: 可选的自动设置方法,初始化时可调用 + +## 2. 堆栈(Warehouse)构建 + +堆栈定义了存储区域的规格和布局,用于放置载具。 + +### 代码示例 (YB_warehouses.py) + +```python +from unilabos.resources.warehouse import WareHouse, YB_warehouse_factory + +def bioyond_warehouse_1x4x4(name: str) -> WareHouse: + """创建BioYond 1x4x4仓库 + + Args: + name: 仓库名称 + + Returns: + WareHouse: 仓库对象 + """ + return YB_warehouse_factory( + name=name, + num_items_x=1, # X方向位置数量 + num_items_y=4, # Y方向位置数量 + num_items_z=4, # Z方向位置数量(层数) + dx=10.0, # X方向起始偏移 + dy=10.0, # Y方向起始偏移 + dz=10.0, # Z方向起始偏移 + item_dx=137.0, # X方向间距 + item_dy=96.0, # Y方向间距 + item_dz=120.0, # Z方向间距(层高) + category="warehouse", + ) + +def bioyond_warehouse_2x2x1(name: str) -> WareHouse: + """创建BioYond 2x2x1仓库(自动堆栈)""" + return YB_warehouse_factory( + name=name, + num_items_x=2, + num_items_y=2, + num_items_z=1, # 单层 + dx=10.0, + dy=10.0, + dz=10.0, + item_dx=137.0, + item_dy=96.0, + item_dz=120.0, + category="YB_warehouse", + ) +``` + +### 关键要点注释 + +- `num_items_x/y/z`: 定义仓库在各个方向的位置数量 +- `dx/dy/dz`: 第一个位置的起始偏移坐标 +- `item_dx/dy/dz`: 相邻位置之间的间距 +- `category`: 仓库类别,用于分类管理 +- `YB_warehouse_factory`: 统一的仓库创建工厂函数 + +## 3. 载具(Carriers)构建 + +载具是承载瓶子的容器架,定义了瓶子的排列方式和位置。 + +### 代码示例 (YB_bottle_carriers.py) + +```python +from pylabrobot.resources import create_homogeneous_resources, Coordinate, ResourceHolder, create_ordered_items_2d +from unilabos.resources.itemized_carrier import Bottle, BottleCarrier +from unilabos.resources.bioyond.YB_bottles import YB_pei_ye_xiao_Bottle + +def YB_peiyepingxiaoban(name: str) -> BottleCarrier: + """配液瓶(小)板 - 4x2布局,8个位置 + + Args: + name: 载具名称 + + Returns: + BottleCarrier: 载具对象,包含8个配液瓶位置 + """ + + # 载具物理尺寸 (mm) + carrier_size_x = 127.8 + carrier_size_y = 85.5 + carrier_size_z = 65.0 + + # 瓶位参数 + bottle_diameter = 35.0 # 瓶子直径 + bottle_spacing_x = 42.0 # X方向瓶子间距 + bottle_spacing_y = 35.0 # Y方向瓶子间距 + + # 计算起始位置 (居中排列) + start_x = (carrier_size_x - (4 - 1) * bottle_spacing_x - bottle_diameter) / 2 + start_y = (carrier_size_y - (2 - 1) * bottle_spacing_y - bottle_diameter) / 2 + + # 创建瓶位布局:4列x2行 + sites = create_ordered_items_2d( + klass=ResourceHolder, + num_items_x=4, # 4列 + num_items_y=2, # 2行 + dx=start_x, + dy=start_y, + dz=5.0, # 瓶子底部高度 + item_dx=bottle_spacing_x, + item_dy=bottle_spacing_y, + size_x=bottle_diameter, + size_y=bottle_diameter, + size_z=carrier_size_z, + ) + + # 为每个瓶位设置名称 + for k, v in sites.items(): + v.name = f"{name}_{v.name}" + + # 创建载具对象 + carrier = BottleCarrier( + name=name, + size_x=carrier_size_x, + size_y=carrier_size_y, + size_z=carrier_size_z, + sites=sites, + model="YB_peiyepingxiaoban", + ) + + # 设置载具布局参数 + carrier.num_items_x = 4 + carrier.num_items_y = 2 + carrier.num_items_z = 1 + + # 定义瓶子排列顺序 + ordering = ["A1", "A2", "A3", "A4", "B1", "B2", "B3", "B4"] + + # 为每个位置创建瓶子实例 + for i in range(8): + carrier[i] = YB_pei_ye_xiao_Bottle(f"{name}_bottle_{ordering[i]}") + + return carrier +``` + +### 关键要点注释 + +- `carrier_size_x/y/z`: 载具的物理尺寸 +- `bottle_diameter`: 瓶子的直径,用于计算瓶位大小 +- `bottle_spacing_x/y`: 瓶子之间的间距 +- `create_ordered_items_2d`: 创建二维排列的瓶位 +- `sites`: 瓶位字典,存储所有瓶子位置信息 +- `ordering`: 定义瓶位的命名规则(如A1, A2, B1等) + +## 4. 瓶子(Bottles)构建 + +瓶子是最终的物料容器,定义了容器的物理属性。 + +### 代码示例 (YB_bottles.py) + +```python +from unilabos.resources.itemized_carrier import Bottle + +def YB_pei_ye_xiao_Bottle( + name: str, + diameter: float = 35.0, # 瓶子直径 (mm) + height: float = 60.0, # 瓶子高度 (mm) + max_volume: float = 30000.0, # 最大容量 (μL) - 30mL + barcode: str = None, # 条码 +) -> Bottle: + """创建配液瓶(小) + + Args: + name: 瓶子名称 + diameter: 瓶子直径 + height: 瓶子高度 + max_volume: 最大容量(微升) + barcode: 条码标识 + + Returns: + Bottle: 瓶子对象 + """ + return Bottle( + name=name, + diameter=diameter, + height=height, + max_volume=max_volume, + barcode=barcode, + model="YB_pei_ye_xiao_Bottle", + ) + +def YB_ye_Bottle( + name: str, + diameter: float = 40.0, + height: float = 70.0, + max_volume: float = 50000.0, # 最大容量 + barcode: str = None, +) -> Bottle: + """创建液体瓶""" + return Bottle( + name=name, + diameter=diameter, + height=height, + max_volume=max_volume, + barcode=barcode, + model="YB_ye_Bottle", + ) +``` + +### 关键要点注释 + +- `diameter`: 瓶子直径,影响瓶位大小计算 +- `height`: 瓶子高度,用于碰撞检测和移液计算 +- `max_volume`: 最大容量,单位为微升(μL) +- `barcode`: 条码标识,用于瓶子追踪 +- `model`: 型号标识,用于区分不同类型的瓶子 + +## 5. 注册表配置 + +创建完物料定义后,需要在注册表中注册这些物料,使系统能够识别和使用它们。 + +在 `unilabos/registry/resources/bioyond/` 目录下创建: + +- `deck.yaml` - 桌子注册表 +- `YB_bottle_carriers.yaml` - 载具注册表 +- `YB_bottle.yaml` - 瓶子注册表 + +### 5.1 桌子注册表 (deck.yaml) + +```yaml +BIOYOND_YB_Deck: + category: + - deck # 前端显示的分类存放 + class: + module: unilabos.resources.bioyond.decks:BIOYOND_YB_Deck # 定义桌子的类的路径 + type: pylabrobot + description: BIOYOND_YB_Deck # 描述信息 + handles: [] + icon: 配液站.webp # 图标文件 + init_param_schema: {} + registry_type: resource # 注册类型 + version: 1.0.0 # 版本号 +``` + +### 5.2 载具注册表 (YB_bottle_carriers.yaml) + +```yaml +YB_peiyepingxiaoban: + category: + - yb3 + - YB_bottle_carriers + class: + module: unilabos.resources.bioyond.YB_bottle_carriers:YB_peiyepingxiaoban + type: pylabrobot + description: YB_peiyepingxiaoban + handles: [] + icon: '' + init_param_schema: {} + registry_type: resource + version: 1.0.0 +``` + +### 5.3 瓶子注册表 (YB_bottle.yaml) + +```yaml +YB_pei_ye_xiao_Bottle: + category: + - yb3 + - YB_bottle + class: + module: unilabos.resources.bioyond.YB_bottles:YB_pei_ye_xiao_Bottle + type: pylabrobot + description: YB_pei_ye_xiao_Bottle + handles: [] + icon: '' + init_param_schema: {} + registry_type: resource + version: 1.0.0 +``` + +### 注册表关键要点注释 + +- `category`: 物料分类,用于在云端(网页界面)中的分类中显示 +- `module`: Python模块路径,格式为 `模块路径:类名` +- `type`: 框架类型,通常为 `pylabrobot`(默认即可) +- `description`: 描述信息,显示在用户界面中 +- `icon`: (名称唯一自动匹配后端上传的图标文件名,显示在云端) +- `registry_type`: 固定为 `resource` +- `version`: 版本号,用于版本管理 diff --git a/tests/devices/liquid_handling/__init__.py b/tests/devices/liquid_handling/__init__.py deleted file mode 100644 index b16b30e2..00000000 --- a/tests/devices/liquid_handling/__init__.py +++ /dev/null @@ -1,5 +0,0 @@ -""" -液体处理设备相关测试。 -""" - - diff --git a/tests/devices/liquid_handling/test_transfer_liquid.py b/tests/devices/liquid_handling/test_transfer_liquid.py deleted file mode 100644 index 9896aac5..00000000 --- a/tests/devices/liquid_handling/test_transfer_liquid.py +++ /dev/null @@ -1,505 +0,0 @@ -import asyncio -from dataclasses import dataclass -from typing import Any, Iterable, List, Optional, Sequence, Tuple - -import pytest - -from unilabos.devices.liquid_handling.liquid_handler_abstract import LiquidHandlerAbstract - - -@dataclass(frozen=True) -class DummyContainer: - name: str - - def __repr__(self) -> str: # pragma: no cover - return f"DummyContainer({self.name})" - - -@dataclass(frozen=True) -class DummyTipSpot: - name: str - - def __repr__(self) -> str: # pragma: no cover - return f"DummyTipSpot({self.name})" - - -def make_tip_iter(n: int = 256) -> Iterable[List[DummyTipSpot]]: - """Yield lists so code can safely call `tip.extend(next(self.current_tip))`.""" - for i in range(n): - yield [DummyTipSpot(f"tip_{i}")] - - -class FakeLiquidHandler(LiquidHandlerAbstract): - """不初始化真实 backend/deck;仅用来记录 transfer_liquid 内部调用序列。""" - - def __init__(self, channel_num: int = 8): - # 不调用 super().__init__,避免真实硬件/后端依赖 - self.channel_num = channel_num - self.support_touch_tip = True - self.current_tip = iter(make_tip_iter()) - self.calls: List[Tuple[str, Any]] = [] - - async def pick_up_tips(self, tip_spots, use_channels=None, offsets=None, **backend_kwargs): - self.calls.append(("pick_up_tips", {"tips": list(tip_spots), "use_channels": use_channels})) - - async def aspirate( - self, - resources: Sequence[Any], - vols: List[float], - use_channels: Optional[List[int]] = None, - flow_rates: Optional[List[Optional[float]]] = None, - offsets: Any = None, - liquid_height: Any = None, - blow_out_air_volume: Any = None, - spread: str = "wide", - **backend_kwargs, - ): - self.calls.append( - ( - "aspirate", - { - "resources": list(resources), - "vols": list(vols), - "use_channels": list(use_channels) if use_channels is not None else None, - "flow_rates": list(flow_rates) if flow_rates is not None else None, - "offsets": list(offsets) if offsets is not None else None, - "liquid_height": list(liquid_height) if liquid_height is not None else None, - "blow_out_air_volume": list(blow_out_air_volume) if blow_out_air_volume is not None else None, - }, - ) - ) - - async def dispense( - self, - resources: Sequence[Any], - vols: List[float], - use_channels: Optional[List[int]] = None, - flow_rates: Optional[List[Optional[float]]] = None, - offsets: Any = None, - liquid_height: Any = None, - blow_out_air_volume: Any = None, - spread: str = "wide", - **backend_kwargs, - ): - self.calls.append( - ( - "dispense", - { - "resources": list(resources), - "vols": list(vols), - "use_channels": list(use_channels) if use_channels is not None else None, - "flow_rates": list(flow_rates) if flow_rates is not None else None, - "offsets": list(offsets) if offsets is not None else None, - "liquid_height": list(liquid_height) if liquid_height is not None else None, - "blow_out_air_volume": list(blow_out_air_volume) if blow_out_air_volume is not None else None, - }, - ) - ) - - async def discard_tips(self, use_channels=None, *args, **kwargs): - # 有的分支是 discard_tips(use_channels=[0]),有的分支是 discard_tips([0..7])(位置参数) - self.calls.append(("discard_tips", {"use_channels": list(use_channels) if use_channels is not None else None})) - - async def custom_delay(self, seconds=0, msg=None): - self.calls.append(("custom_delay", {"seconds": seconds, "msg": msg})) - - async def touch_tip(self, targets): - # 原实现会访问 targets.get_size_x() 等;测试里只记录调用 - self.calls.append(("touch_tip", {"targets": targets})) - - async def mix(self, targets, mix_time=None, mix_vol=None, height_to_bottom=None, offsets=None, mix_rate=None, none_keys=None): - self.calls.append( - ( - "mix", - { - "targets": targets, - "mix_time": mix_time, - "mix_vol": mix_vol, - }, - ) - ) - - -def run(coro): - return asyncio.run(coro) - - -def test_one_to_one_single_channel_basic_calls(): - lh = FakeLiquidHandler(channel_num=1) - lh.current_tip = iter(make_tip_iter(64)) - - sources = [DummyContainer(f"S{i}") for i in range(3)] - targets = [DummyContainer(f"T{i}") for i in range(3)] - - run( - lh.transfer_liquid( - sources=sources, - targets=targets, - tip_racks=[], - use_channels=[0], - asp_vols=[1, 2, 3], - dis_vols=[4, 5, 6], - mix_times=None, # 应该仍能执行(不 mix) - ) - ) - - assert [c[0] for c in lh.calls].count("pick_up_tips") == 3 - assert [c[0] for c in lh.calls].count("aspirate") == 3 - assert [c[0] for c in lh.calls].count("dispense") == 3 - assert [c[0] for c in lh.calls].count("discard_tips") == 3 - - # 每次 aspirate/dispense 都是单孔列表 - aspirates = [payload for name, payload in lh.calls if name == "aspirate"] - assert aspirates[0]["resources"] == [sources[0]] - assert aspirates[0]["vols"] == [1.0] - - dispenses = [payload for name, payload in lh.calls if name == "dispense"] - assert dispenses[2]["resources"] == [targets[2]] - assert dispenses[2]["vols"] == [6.0] - - -def test_one_to_one_single_channel_before_stage_mixes_prior_to_aspirate(): - lh = FakeLiquidHandler(channel_num=1) - lh.current_tip = iter(make_tip_iter(16)) - - source = DummyContainer("S0") - target = DummyContainer("T0") - - run( - lh.transfer_liquid( - sources=[source], - targets=[target], - tip_racks=[], - use_channels=[0], - asp_vols=[5], - dis_vols=[5], - mix_stage="before", - mix_times=1, - mix_vol=3, - ) - ) - - names = [name for name, _ in lh.calls] - assert names.count("mix") == 1 - assert names.index("mix") < names.index("aspirate") - - -def test_one_to_one_eight_channel_groups_by_8(): - lh = FakeLiquidHandler(channel_num=8) - lh.current_tip = iter(make_tip_iter(256)) - - sources = [DummyContainer(f"S{i}") for i in range(16)] - targets = [DummyContainer(f"T{i}") for i in range(16)] - asp_vols = list(range(1, 17)) - dis_vols = list(range(101, 117)) - - run( - lh.transfer_liquid( - sources=sources, - targets=targets, - tip_racks=[], - use_channels=list(range(8)), - asp_vols=asp_vols, - dis_vols=dis_vols, - mix_times=0, # 触发逻辑但不 mix - ) - ) - - # 16 个任务 -> 2 组,每组 8 通道一起做 - assert [c[0] for c in lh.calls].count("pick_up_tips") == 2 - aspirates = [payload for name, payload in lh.calls if name == "aspirate"] - dispenses = [payload for name, payload in lh.calls if name == "dispense"] - assert len(aspirates) == 2 - assert len(dispenses) == 2 - - assert aspirates[0]["resources"] == sources[0:8] - assert aspirates[0]["vols"] == [float(v) for v in asp_vols[0:8]] - assert dispenses[1]["resources"] == targets[8:16] - assert dispenses[1]["vols"] == [float(v) for v in dis_vols[8:16]] - - -def test_one_to_one_eight_channel_requires_multiple_of_8_targets(): - lh = FakeLiquidHandler(channel_num=8) - lh.current_tip = iter(make_tip_iter(64)) - - sources = [DummyContainer(f"S{i}") for i in range(9)] - targets = [DummyContainer(f"T{i}") for i in range(9)] - - with pytest.raises(ValueError, match="multiple of 8"): - run( - lh.transfer_liquid( - sources=sources, - targets=targets, - tip_racks=[], - use_channels=list(range(8)), - asp_vols=[1] * 9, - dis_vols=[1] * 9, - mix_times=0, - ) - ) - - -def test_one_to_one_eight_channel_parameter_lists_are_chunked_per_8(): - lh = FakeLiquidHandler(channel_num=8) - lh.current_tip = iter(make_tip_iter(512)) - - sources = [DummyContainer(f"S{i}") for i in range(16)] - targets = [DummyContainer(f"T{i}") for i in range(16)] - asp_vols = [i + 1 for i in range(16)] - dis_vols = [200 + i for i in range(16)] - asp_flow_rates = [0.1 * (i + 1) for i in range(16)] - dis_flow_rates = [0.2 * (i + 1) for i in range(16)] - offsets = [f"offset_{i}" for i in range(16)] - liquid_heights = [i * 0.5 for i in range(16)] - blow_out_air_volume = [i + 0.05 for i in range(16)] - - run( - lh.transfer_liquid( - sources=sources, - targets=targets, - tip_racks=[], - use_channels=list(range(8)), - asp_vols=asp_vols, - dis_vols=dis_vols, - asp_flow_rates=asp_flow_rates, - dis_flow_rates=dis_flow_rates, - offsets=offsets, - liquid_height=liquid_heights, - blow_out_air_volume=blow_out_air_volume, - mix_times=0, - ) - ) - - aspirates = [payload for name, payload in lh.calls if name == "aspirate"] - dispenses = [payload for name, payload in lh.calls if name == "dispense"] - assert len(aspirates) == len(dispenses) == 2 - - for batch_idx in range(2): - start = batch_idx * 8 - end = start + 8 - asp_call = aspirates[batch_idx] - dis_call = dispenses[batch_idx] - assert asp_call["resources"] == sources[start:end] - assert asp_call["flow_rates"] == asp_flow_rates[start:end] - assert asp_call["offsets"] == offsets[start:end] - assert asp_call["liquid_height"] == liquid_heights[start:end] - assert asp_call["blow_out_air_volume"] == blow_out_air_volume[start:end] - assert dis_call["flow_rates"] == dis_flow_rates[start:end] - assert dis_call["offsets"] == offsets[start:end] - assert dis_call["liquid_height"] == liquid_heights[start:end] - assert dis_call["blow_out_air_volume"] == blow_out_air_volume[start:end] - - -def test_one_to_one_eight_channel_handles_32_tasks_four_batches(): - lh = FakeLiquidHandler(channel_num=8) - lh.current_tip = iter(make_tip_iter(1024)) - - sources = [DummyContainer(f"S{i}") for i in range(32)] - targets = [DummyContainer(f"T{i}") for i in range(32)] - asp_vols = [i + 1 for i in range(32)] - dis_vols = [300 + i for i in range(32)] - - run( - lh.transfer_liquid( - sources=sources, - targets=targets, - tip_racks=[], - use_channels=list(range(8)), - asp_vols=asp_vols, - dis_vols=dis_vols, - mix_times=0, - ) - ) - - pick_calls = [name for name, _ in lh.calls if name == "pick_up_tips"] - aspirates = [payload for name, payload in lh.calls if name == "aspirate"] - dispenses = [payload for name, payload in lh.calls if name == "dispense"] - assert len(pick_calls) == 4 - assert len(aspirates) == len(dispenses) == 4 - assert aspirates[0]["resources"] == sources[0:8] - assert aspirates[-1]["resources"] == sources[24:32] - assert dispenses[0]["resources"] == targets[0:8] - assert dispenses[-1]["resources"] == targets[24:32] - - -def test_one_to_many_single_channel_aspirates_total_when_asp_vol_too_small(): - lh = FakeLiquidHandler(channel_num=1) - lh.current_tip = iter(make_tip_iter(64)) - - source = DummyContainer("SRC") - targets = [DummyContainer(f"T{i}") for i in range(3)] - dis_vols = [10, 20, 30] # sum=60 - - run( - lh.transfer_liquid( - sources=[source], - targets=targets, - tip_racks=[], - use_channels=[0], - asp_vols=10, # 小于 sum(dis_vols) -> 应吸 60 - dis_vols=dis_vols, - mix_times=0, - ) - ) - - aspirates = [payload for name, payload in lh.calls if name == "aspirate"] - assert len(aspirates) == 1 - assert aspirates[0]["resources"] == [source] - assert aspirates[0]["vols"] == [60.0] - assert aspirates[0]["use_channels"] == [0] - dispenses = [payload for name, payload in lh.calls if name == "dispense"] - assert [d["vols"][0] for d in dispenses] == [10.0, 20.0, 30.0] - - -def test_one_to_many_eight_channel_basic(): - lh = FakeLiquidHandler(channel_num=8) - lh.current_tip = iter(make_tip_iter(128)) - - source = DummyContainer("SRC") - targets = [DummyContainer(f"T{i}") for i in range(8)] - dis_vols = [i + 1 for i in range(8)] - - run( - lh.transfer_liquid( - sources=[source], - targets=targets, - tip_racks=[], - use_channels=list(range(8)), - asp_vols=999, # one-to-many 8ch 会按 dis_vols 吸(每通道各自) - dis_vols=dis_vols, - mix_times=0, - ) - ) - - aspirates = [payload for name, payload in lh.calls if name == "aspirate"] - assert aspirates[0]["resources"] == [source] * 8 - assert aspirates[0]["vols"] == [float(v) for v in dis_vols] - dispenses = [payload for name, payload in lh.calls if name == "dispense"] - assert dispenses[0]["resources"] == targets - assert dispenses[0]["vols"] == [float(v) for v in dis_vols] - - -def test_many_to_one_single_channel_standard_dispense_equals_asp_by_default(): - lh = FakeLiquidHandler(channel_num=1) - lh.current_tip = iter(make_tip_iter(128)) - - sources = [DummyContainer(f"S{i}") for i in range(3)] - target = DummyContainer("T") - asp_vols = [5, 6, 7] - - run( - lh.transfer_liquid( - sources=sources, - targets=[target], - tip_racks=[], - use_channels=[0], - asp_vols=asp_vols, - dis_vols=1, # many-to-one 允许标量;非比例模式下实际每次分液=对应 asp_vol - mix_times=0, - ) - ) - - dispenses = [payload for name, payload in lh.calls if name == "dispense"] - assert [d["vols"][0] for d in dispenses] == [float(v) for v in asp_vols] - assert all(d["resources"] == [target] for d in dispenses) - - -def test_many_to_one_single_channel_before_stage_mixes_target_once(): - lh = FakeLiquidHandler(channel_num=1) - lh.current_tip = iter(make_tip_iter(128)) - - sources = [DummyContainer("S0"), DummyContainer("S1")] - target = DummyContainer("T") - - run( - lh.transfer_liquid( - sources=sources, - targets=[target], - tip_racks=[], - use_channels=[0], - asp_vols=[5, 6], - dis_vols=1, - mix_stage="before", - mix_times=2, - mix_vol=4, - ) - ) - - names = [name for name, _ in lh.calls] - assert names[0] == "mix" - assert names.count("mix") == 1 - - -def test_many_to_one_single_channel_proportional_mixing_uses_dis_vols_per_source(): - lh = FakeLiquidHandler(channel_num=1) - lh.current_tip = iter(make_tip_iter(128)) - - sources = [DummyContainer(f"S{i}") for i in range(3)] - target = DummyContainer("T") - asp_vols = [5, 6, 7] - dis_vols = [1, 2, 3] - - run( - lh.transfer_liquid( - sources=sources, - targets=[target], - tip_racks=[], - use_channels=[0], - asp_vols=asp_vols, - dis_vols=dis_vols, # 比例模式 - mix_times=0, - ) - ) - - dispenses = [payload for name, payload in lh.calls if name == "dispense"] - assert [d["vols"][0] for d in dispenses] == [float(v) for v in dis_vols] - - -def test_many_to_one_eight_channel_basic(): - lh = FakeLiquidHandler(channel_num=8) - lh.current_tip = iter(make_tip_iter(256)) - - sources = [DummyContainer(f"S{i}") for i in range(8)] - target = DummyContainer("T") - asp_vols = [10 + i for i in range(8)] - - run( - lh.transfer_liquid( - sources=sources, - targets=[target], - tip_racks=[], - use_channels=list(range(8)), - asp_vols=asp_vols, - dis_vols=999, # 非比例模式下每通道分液=对应 asp_vol - mix_times=0, - ) - ) - - aspirates = [payload for name, payload in lh.calls if name == "aspirate"] - dispenses = [payload for name, payload in lh.calls if name == "dispense"] - assert aspirates[0]["resources"] == sources - assert aspirates[0]["vols"] == [float(v) for v in asp_vols] - assert dispenses[0]["resources"] == [target] * 8 - assert dispenses[0]["vols"] == [float(v) for v in asp_vols] - - -def test_transfer_liquid_mode_detection_unsupported_shape_raises(): - lh = FakeLiquidHandler(channel_num=8) - lh.current_tip = iter(make_tip_iter(64)) - - sources = [DummyContainer("S0"), DummyContainer("S1")] - targets = [DummyContainer("T0"), DummyContainer("T1"), DummyContainer("T2")] - - with pytest.raises(ValueError, match="Unsupported transfer mode"): - run( - lh.transfer_liquid( - sources=sources, - targets=targets, - tip_racks=[], - use_channels=[0], - asp_vols=[1, 1], - dis_vols=[1, 1, 1], - mix_times=0, - ) - ) - diff --git a/unilabos/app/ws_client.py b/unilabos/app/ws_client.py index 23f139d2..4da65dad 100644 --- a/unilabos/app/ws_client.py +++ b/unilabos/app/ws_client.py @@ -488,7 +488,9 @@ async def _message_handler(self): async for message in self.websocket: try: data = json.loads(message) + # print("===========preprocessed_data", data) await self._process_message(data) + except json.JSONDecodeError: logger.error(f"[MessageProcessor] Invalid JSON received: {message}") except Exception as e: diff --git a/unilabos/devices/Qone_nmr/QOne_NMR_User_Guide.md b/unilabos/devices/Qone_nmr/QOne_NMR_User_Guide.md deleted file mode 100644 index c09785c9..00000000 --- a/unilabos/devices/Qone_nmr/QOne_NMR_User_Guide.md +++ /dev/null @@ -1,200 +0,0 @@ -# QOne NMR 用户指南 - -## 概述 - -Qone NMR 设备支持多字符串数据处理功能。该设备可以接收包含多个字符串的输入数据,并将每个字符串转换为独立的 TXT 文件,支持灵活的数据格式化和输出。 - -## 核心功能 - -- **多字符串处理**: 支持逗号分隔或换行分隔的多个字符串输入 -- **自动文件生成**: 每个输入字符串生成一个对应的 TXT 文件 -- **文件夹监督**: 自动监督指定目录,检测新内容生成 -- **错误处理**: 完善的输入验证和错误处理机制 - -## 参数说明 - -### 输入参数 - -- **string** (str): 包含多个字符串的输入数据,支持格式: - - **逗号分隔**: `"字符串1, 字符串2, 字符串3"` - -### 输出参数 - -- **return_info** (str): 处理结果信息,包含监督功能的执行结果 -- **success** (bool): 处理是否成功 -- **files_generated** (int): 生成的 TXT 文件数量 - -## 输入数据格式 - -### 支持的输入格式 - -1. **逗号分隔格式**: - ``` - "A 1 B 1 C 1 D 1 E 1 F 1 G 1 H 1 END, A 2 B 2 C 2 D 2 E 2 F 2 G 2 H 2 END" - ``` - - ``` - -### 数据项格式 - -每个字符串内的数据项应该用空格分隔,例如: -- `A 1 B 2 C 3 D 4 E 5 F 6 G 7 H 8 END` -- `Sample 001 Method A Volume 10.5 Temp 25.0` - -## 输出文件说明 - -### 文件命名 - -生成的 TXT 文件将按照row_字符串顺序命名,例如: -- `row_1.txt` -- `row_2.txt` - -### 文件格式 - -每个 TXT 文件包含对应字符串的格式化数据,格式为: -``` -A 1 -B 2 -C 3 -D 4 -E 5 -F 6 -G 7 -H 8 -END -``` - -### 输出目录 - -默认输出目录为 `D:/setup/txt`,可以在 `device.json` 中配置 `output_dir` 参数。 - -## 文件夹监督功能 - -### 监督机制 - -设备在完成字符串到TXT文件的转换后,会自动启动文件夹监督功能: - -- **监督目录**: 默认监督 `D:/Data/MyPC/Automation` 目录 -- **检查间隔**: 每60秒检查一次新生成的.nmr文件 -- **检测内容**: 新文件生成或现有文件大小变化 -- **停止条件**: 连续三次文件大小没有变化,则检测完成 - -## 文件夹监督功能详细说明 - -Oxford NMR设备驱动集成了智能文件夹监督功能,用于监测.nmr结果文件的生成完成状态。该功能通过监测文件大小变化来判断文件是否已完成写入。 - -### 工作机制 - -1. **文件大小监测**: 监督功能专门监测指定目录中新生成的.nmr文件的大小变化 -2. **稳定性检测**: 当文件大小在连续多次检查中保持不变时,认为文件已完成写入 -3. **批量处理支持**: 根据输入的.txt文件数量,自动确定需要监测的.nmr文件数量 -4. **实时反馈**: 提供详细的监测进度和文件状态信息 -5. **自动停止**: 当所有期望的.nmr文件都达到稳定状态时,监督功能自动停止,start函数执行完毕 - -### 配置参数 - -可以通过`device.json`配置文件调整监督功能的行为: - -```json -{ - "config": { - "output_dir": "D:/setup/txt", - "monitor_dir": "D:\\Data\\MyPC\\Automation", - "stability_checks": 3, - "check_interval": 60 - } -} -``` - -- `monitor_dir`: 监督的目录路径,默认为`D:\Data\MyPC\Automation` -- `stability_checks`: 文件大小稳定性检查次数,默认为3次(连续2次检查大小不变则认为文件完成) -- `check_interval`: 检查间隔时间(秒),默认为60秒 - -### 监测逻辑 - -1. **初始状态记录**: 记录监督开始时目录中已存在的.nmr文件及其大小 -2. **新文件检测**: 持续检测新生成的.nmr文件 -3. **大小变化跟踪**: 为每个新文件维护大小变化历史记录 -4. **稳定性判断**: 当文件大小在连续`stability_checks`次检查中保持不变且大小大于0时,认为文件完成 -5. **完成条件**: 当达到期望数量的.nmr文件都完成时,监督功能结束 - -### 配置监督目录 - -可以在 `device.json` 中配置 `monitor_dir` 参数来指定监督目录: - -```json -{ - "config": { - "output_dir": "D:/setup/txt", - "monitor_dir": "D:/Data/MyPC/Automation" - } -} -``` - -## 使用示例 - -### 示例 1: 基本多字符串处理 - -```python -from unilabos.devices.Qone_nmr.Qone_nmr import Qone_nmr - -# 创建设备实例 -device = Qone_nmr(output_directory="D:/setup/txt") - -# 输入多个字符串(逗号分隔) -input_data = "A 1 B 1 C 1 D 1 E 1 F 1 G 1 H 1 END, A 2 B 2 C 2 D 2 E 2 F 2 G 2 H 2 END" - -# 处理数据 -result = device.start(string=input_data) - -print(f"处理结果: {result}") -# 输出: {'return_info': 'Oxford NMR处理完成: 已生成 3 个 txt 文件,保存在: ./output | 监督完成: 成功检测到 3 个.nmr文件已完成生成', 'success': True, 'files_generated': 3} - -### 输出示例 - -当设备成功处理输入并完成文件监督后,会返回如下格式的结果: - -```json -{ - "return_info": "Oxford NMR处理完成: 已生成 3 个 txt 文件,保存在: D:/setup/txt | 监督完成: 成功检测到 3 个.nmr文件已完成生成,start函数执行完毕", - "success": true, - "files_generated": 3 -} -``` - -监督过程中的日志输出示例: -``` -[INFO] 开始监督目录: D:/Data/MyPC/Automation,检查间隔: 30秒,期望.nmr文件数量: 3,稳定性检查: 2次 -[INFO] 初始状态: 0 个.nmr文件 -[INFO] 检测到 3 个新.nmr文件,还需要 0 个... -[DEBUG] 文件大小监测中: D:/Data/MyPC/Automation/sample1.nmr (当前: 1024 字节, 检查次数: 1/3) -[DEBUG] 文件大小监测中: D:/Data/MyPC/Automation/sample2.nmr (当前: 2048 字节, 检查次数: 1/3) -[DEBUG] 文件大小监测中: D:/Data/MyPC/Automation/sample3.nmr (当前: 1536 字节, 检查次数: 1/3) -[INFO] 文件大小已稳定: D:/Data/MyPC/Automation/sample1.nmr (大小: 1024 字节) -[INFO] 文件大小已稳定: D:/Data/MyPC/Automation/sample2.nmr (大小: 2048 字节) -[INFO] 文件大小已稳定: D:/Data/MyPC/Automation/sample3.nmr (大小: 1536 字节) -[INFO] 所有期望的.nmr文件都已完成生成! 完成文件数: 3/3 -[INFO] 完成的.nmr文件: D:/Data/MyPC/Automation/sample1.nmr (最终大小: 1024 字节) -[INFO] 完成的.nmr文件: D:/Data/MyPC/Automation/sample2.nmr (最终大小: 2048 字节) -[INFO] 完成的.nmr文件: D:/Data/MyPC/Automation/sample3.nmr (最终大小: 1536 字节) -[INFO] 停止文件夹监测,所有文件已完成 -``` -``` - -## 错误处理 - -设备具有完善的错误处理机制: - -- **空输入**: 如果输入为空或 None,返回错误信息 -- **无效格式**: 如果输入格式不正确,返回相应错误 -- **文件系统错误**: 如果输出目录不存在或无权限,返回错误信息 - -## 注意事项 - -1. **目录权限**: 确保监督目录具有读取权限,以便设备能够检测文件变化 -2. **文件大小监测**: 监督功能现在基于文件大小变化来判断.nmr文件是否完成,而不是简单的文件存在性检查 -3. **稳定性检查**: 文件大小需要在连续多次检查中保持不变才被认为完成,默认为3次检查 -4. **自动停止**: 监督功能会在检测到期望数量的.nmr文件都达到稳定状态后自动停止,避免无限循环 -5. **配置灵活性**: 可以通过`device.json`调整稳定性检查次数和检查间隔,以适应不同的使用场景 -6. **文件类型**: 监督功能专门针对.nmr文件,忽略其他类型的文件变化 -7. **批量处理**: 支持同时监测多个.nmr文件的完成状态,适合批量处理场景 \ No newline at end of file diff --git a/unilabos/devices/Qone_nmr/Qone_nmr.py b/unilabos/devices/Qone_nmr/Qone_nmr.py deleted file mode 100644 index 1633a8d6..00000000 --- a/unilabos/devices/Qone_nmr/Qone_nmr.py +++ /dev/null @@ -1,382 +0,0 @@ -#!/usr/bin/env python3 -# -*- coding: utf-8 -*- -""" -Oxford NMR Device Driver for Uni-Lab OS - -支持Oxford NMR设备的CSV字符串到TXT文件转换功能。 -通过ROS2动作接口接收CSV字符串,批量生成TXT文件到指定目录。 -""" - -import csv -import io -import logging -import os -import re -import time -from pathlib import Path -from typing import Dict, Any - -class UniversalDriver: - """Fallback UniversalDriver for standalone testing""" - def __init__(self): - self.success = False - -class Qone_nmr(UniversalDriver): - """Oxford NMR Device Driver - - 支持CSV字符串到TXT文件的批量转换功能。 - """ - - def __init__(self, **kwargs): - """Initialize the Oxford NMR driver - - Args: - **kwargs: Device-specific configuration parameters - - config: Configuration dictionary containing output_dir - """ - super().__init__() - - # Device configuration - self.config = kwargs - config_dict = kwargs.get('config', {}) - - # 设置输出目录,优先使用配置中的output_dir,否则使用默认值 - self.output_directory = "D:\\setup\\txt" # 默认输出目录 - if config_dict and 'output_dir' in config_dict: - self.output_directory = config_dict['output_dir'] - - # 设置监督目录,优先使用配置中的monitor_dir,否则使用默认值 - self.monitor_directory = "D:/Data/MyPC/Automation" # 默认监督目录 - if config_dict and 'monitor_dir' in config_dict: - self.monitor_directory = config_dict['monitor_dir'] - - # 设置文件大小稳定性检查参数 - self.stability_checks = 3 # 默认稳定性检查次数 - if config_dict and 'stability_checks' in config_dict: - self.stability_checks = config_dict['stability_checks'] - - # 设置检查间隔时间 - self.check_interval = 60 # 默认检查间隔(秒) - if config_dict and 'check_interval' in config_dict: - self.check_interval = config_dict['check_interval'] - - # 确保输出目录存在 - os.makedirs(self.output_directory, exist_ok=True) - - # ROS节点引用,由框架设置 - self._ros_node = None - - # ROS2 action result properties - self.success = False - self.return_info = "" - - # Setup logging - self.logger = logging.getLogger(f"Qone_nmr-{kwargs.get('id', 'unknown')}") - self.logger.info(f"Oxford NMR driver initialized with output directory: {self.output_directory}") - self.logger.info(f"Monitor directory set to: {self.monitor_directory}") - self.logger.info(f"Stability checks: {self.stability_checks}, Check interval: {self.check_interval}s") - - def post_init(self, ros_node): - """ROS节点初始化后的回调方法 - - Args: - ros_node: ROS节点实例 - """ - self._ros_node = ros_node - ros_node.lab_logger().info(f"Oxford NMR设备初始化完成,输出目录: {self.output_directory}") - - def get_status(self) -> str: - """获取设备状态 - - Returns: - str: 设备状态 (Idle|Offline|Error|Busy|Unknown) - """ - return "Idle" # NMR设备始终处于空闲状态,等待处理请求 - - def strings_to_txt(self, string_list, output_dir=None, txt_encoding="utf-8"): - """ - 将字符串列表写入多个 txt 文件 - string_list: ["A 1 B 1 C 1 D 1 E 1 F 1 G 1 H 1 END", ...] - - Args: - string_list: 字符串列表 - output_dir: 输出目录(如果未指定,使用self.output_directory) - txt_encoding: 文件编码 - - Returns: - int: 生成的文件数量 - """ - # 使用指定的输出目录或默认目录 - target_dir = output_dir if output_dir else self.output_directory - - # 确保输出目录存在 - os.makedirs(target_dir, exist_ok=True) - - self.logger.info(f"开始生成文件到目录: {target_dir}") - - for i, s in enumerate(string_list, start=1): - try: - # 去掉开头结尾的引号(如果有) - s = s.strip('"').strip("'") - - # 拆分字符串 - parts = s.split() - - # 按两两一组重新排版为多行 - txt_lines = [] - for j in range(0, len(parts) - 1, 2): - txt_lines.append("{} {}".format(parts[j], parts[j+1])) - txt_lines.append("END") - - txt_content = "\n".join(txt_lines) - - # 生成文件名(row_1.txt, row_2.txt, ...) - file_name = "row_{}.txt".format(i) - out_path = os.path.join(target_dir, file_name) - - with open(out_path, "w", encoding=txt_encoding) as f: - f.write(txt_content) - - self.logger.info(f"成功生成文件: {file_name}") - - except Exception as e: - self.logger.error(f"处理第{i}个字符串时出错: {str(e)}") - raise - - return len(string_list) # 返回生成文件数量 - - def monitor_folder_for_new_content(self, monitor_dir=None, check_interval=60, expected_count=1, stability_checks=3): - """监督指定文件夹中.nmr文件的大小变化,当文件大小稳定时认为文件完成 - - Args: - monitor_dir (str): 要监督的目录路径,如果未指定则使用self.monitor_directory - check_interval (int): 检查间隔时间(秒),默认60秒 - expected_count (int): 期望生成的.nmr文件数量,默认1个 - stability_checks (int): 文件大小稳定性检查次数,默认3次 - - Returns: - bool: 如果检测到期望数量的.nmr文件且大小稳定返回True,否则返回False - """ - target_dir = monitor_dir if monitor_dir else self.monitor_directory - - # 确保监督目录存在 - if not os.path.exists(target_dir): - self.logger.warning(f"监督目录不存在: {target_dir}") - return False - - self.logger.info(f"开始监督目录: {target_dir},检查间隔: {check_interval}秒,期望.nmr文件数量: {expected_count},稳定性检查: {stability_checks}次") - - # 记录初始的.nmr文件及其大小 - initial_nmr_files = {} - - try: - for root, dirs, files in os.walk(target_dir): - for file in files: - if file.lower().endswith('.nmr'): - file_path = os.path.join(root, file) - try: - file_size = os.path.getsize(file_path) - initial_nmr_files[file_path] = file_size - except OSError: - pass # 忽略无法访问的文件 - except Exception as e: - self.logger.error(f"读取初始目录状态失败: {str(e)}") - return False - - self.logger.info(f"初始状态: {len(initial_nmr_files)} 个.nmr文件") - - # 跟踪新文件的大小变化历史 - new_files_size_history = {} - completed_files = set() - - # 开始监督循环 - while True: - time.sleep(check_interval) - - current_nmr_files = {} - - try: - for root, dirs, files in os.walk(target_dir): - for file in files: - if file.lower().endswith('.nmr'): - file_path = os.path.join(root, file) - try: - file_size = os.path.getsize(file_path) - current_nmr_files[file_path] = file_size - except OSError: - pass - - # 找出新生成的.nmr文件 - new_nmr_files = set(current_nmr_files.keys()) - set(initial_nmr_files.keys()) - - if len(new_nmr_files) < expected_count: - self.logger.info(f"检测到 {len(new_nmr_files)} 个新.nmr文件,还需要 {expected_count - len(new_nmr_files)} 个...") - continue - - # 检查新文件的大小稳定性 - for file_path in new_nmr_files: - if file_path in completed_files: - continue - - current_size = current_nmr_files.get(file_path, 0) - - # 初始化文件大小历史记录 - if file_path not in new_files_size_history: - new_files_size_history[file_path] = [] - - # 记录当前大小 - new_files_size_history[file_path].append(current_size) - - # 保持历史记录长度不超过稳定性检查次数 - if len(new_files_size_history[file_path]) > stability_checks: - new_files_size_history[file_path] = new_files_size_history[file_path][-stability_checks:] - - # 检查大小是否稳定 - size_history = new_files_size_history[file_path] - if len(size_history) >= stability_checks: - # 检查最近几次的大小是否相同且不为0 - if len(set(size_history[-stability_checks:])) == 1 and size_history[-1] > 0: - self.logger.info(f"文件大小已稳定: {file_path} (大小: {current_size} 字节)") - completed_files.add(file_path) - else: - self.logger.debug(f"文件大小仍在变化: {file_path} (当前: {current_size} 字节, 历史: {size_history[-3:]})") - else: - self.logger.debug(f"文件大小监测中: {file_path} (当前: {current_size} 字节, 检查次数: {len(size_history)}/{stability_checks})") - - # 检查是否所有期望的文件都已完成 - if len(completed_files) >= expected_count: - self.logger.info(f"所有期望的.nmr文件都已完成生成! 完成文件数: {len(completed_files)}/{expected_count}") - for completed_file in list(completed_files)[:expected_count]: - final_size = current_nmr_files.get(completed_file, 0) - self.logger.info(f"完成的.nmr文件: {completed_file} (最终大小: {final_size} 字节)") - self.logger.info("停止文件夹监测,所有文件已完成") - return True - else: - self.logger.info(f"已完成 {len(completed_files)} 个文件,还需要 {expected_count - len(completed_files)} 个文件完成...") - - except Exception as e: - self.logger.error(f"监督过程中出错: {str(e)}") - return False - - def start(self, string: str = None) -> dict: - """使用字符串列表启动TXT文件生成(支持ROS2动作调用) - - Args: - string (str): 包含多个字符串的输入数据,支持两种格式: - 1. 逗号分隔:如 "A 1 B 2 C 3, X 10 Y 20 Z 30" - 2. 换行分隔:如 "A 1 B 2 C 3\nX 10 Y 20 Z 30" - - Returns: - dict: ROS2动作结果格式 {"return_info": str, "success": bool, "files_generated": int} - """ - try: - if string is None or string.strip() == "": - error_msg = "未提供字符串参数或参数为空" - self.logger.error(error_msg) - return {"return_info": error_msg, "success": False, "files_generated": 0} - - self.logger.info(f"开始处理字符串数据,长度: {len(string)} 字符") - - # 支持两种分隔方式:逗号分隔或换行分隔 - string_list = [] - - # 首先尝试逗号分隔 - if ',' in string: - string_list = [item.strip() for item in string.split(',') if item.strip()] - else: - # 如果没有逗号,则按换行分隔 - string_list = [line.strip() for line in string.strip().split('\n') if line.strip()] - - if not string_list: - error_msg = "输入字符串解析后为空" - self.logger.error(error_msg) - return {"return_info": error_msg, "success": False, "files_generated": 0} - - # 确保输出目录存在 - os.makedirs(self.output_directory, exist_ok=True) - - # 使用strings_to_txt函数生成TXT文件 - file_count = self.strings_to_txt( - string_list=string_list, - output_dir=self.output_directory, - txt_encoding='utf-8' - ) - - success_msg = f"Oxford NMR处理完成: 已生成 {file_count} 个 txt 文件,保存在: {self.output_directory}" - self.logger.info(success_msg) - - # 在string转txt完成后,启动文件夹监督功能 - self.logger.info(f"开始启动文件夹监督功能,期望生成 {file_count} 个.nmr文件...") - monitor_result = self.monitor_folder_for_new_content( - expected_count=file_count, - check_interval=self.check_interval, - stability_checks=self.stability_checks - ) - - if monitor_result: - success_msg += f" | 监督完成: 成功检测到 {file_count} 个.nmr文件已完成生成,start函数执行完毕" - else: - success_msg += f" | 监督结束: 监督过程中断或失败,start函数执行完毕" - - return {"return_info": success_msg, "success": True, "files_generated": file_count} - - except Exception as e: - error_msg = f"字符串处理失败: {str(e)}" - self.logger.error(error_msg) - return {"return_info": error_msg, "success": False, "files_generated": 0} - - - -def test_qone_nmr(): - """测试Qone_nmr设备的字符串处理功能""" - try: - # 配置日志输出 - logging.basicConfig( - level=logging.INFO, - format='%(asctime)s - %(name)s - %(levelname)s - %(message)s' - ) - logger = logging.getLogger("Qone_nmr_test") - - logger.info("开始测试Qone_nmr设备...") - - # 创建设备实例,使用正确的配置格式 - device = Qone_nmr(config={'output_dir': "D:\\setup\\txt"}) - logger.info(f"设备初始化完成,输出目录: {device.output_directory}") - - # 测试数据:多个字符串,逗号分隔 - test_strings = "A 1 B 1 C 1 D 1 E 1 F 1 G 1 H 1 END, A 2 B 2 C 2 D 2 E 2 F 2 G 2 H 2 END" - logger.info(f"测试输入: {test_strings}") - - # 确保输出目录存在 - if not os.path.exists(device.output_directory): - os.makedirs(device.output_directory, exist_ok=True) - logger.info(f"创建输出目录: {device.output_directory}") - - # 调用start方法 - result = device.start(string=test_strings) - logger.info(f"处理结果: {result}") - - # 显示生成的文件内容 - if result.get('success', False): - output_dir = device.output_directory - if os.path.exists(output_dir): - txt_files = [f for f in os.listdir(output_dir) if f.endswith('.txt')] - logger.info(f"生成的文件数量: {len(txt_files)}") - for i, filename in enumerate(txt_files[:2]): # 只显示前2个文件 - filepath = os.path.join(output_dir, filename) - logger.info(f"文件 {i+1}: {filename}") - with open(filepath, 'r', encoding='utf-8') as f: - content = f.read() - logger.info(f"内容:\n{content}") - - logger.info("测试完成!") - return result - except Exception as e: - logger.error(f"测试过程中出现错误: {str(e)}") - import traceback - traceback.print_exc() - return {"return_info": f"测试失败: {str(e)}", "success": False, "files_generated": 0} - - -if __name__ == "__main__": - test_qone_nmr() \ No newline at end of file diff --git a/unilabos/devices/Qone_nmr/device.json b/unilabos/devices/Qone_nmr/device.json deleted file mode 100644 index 7160f3a4..00000000 --- a/unilabos/devices/Qone_nmr/device.json +++ /dev/null @@ -1,25 +0,0 @@ -{ - "nodes": [ - { - "id": "Qone_nmr_device", - "name": "Qone_NMR_Device", - "parent": null, - "type": "device", - "class": "Qone_nmr", - "position": { - "x": 620.6111111111111, - "y": 171, - "z": 0 - }, - "config": { - "output_dir": "D:\\setup\\txt", - "monitor_dir": "D:\\Data\\MyPC\\Automation", - "stability_checks": 3, - "check_interval": 60 - }, - "data": {}, - "children": [] - } - ], - "links": [] -} \ No newline at end of file diff --git a/unilabos/devices/Qone_nmr/samples.csv b/unilabos/devices/Qone_nmr/samples.csv deleted file mode 100644 index 672343ac..00000000 --- a/unilabos/devices/Qone_nmr/samples.csv +++ /dev/null @@ -1,4 +0,0 @@ -USERNAME,SLOT,EXPNAME,FILE,SOLVENT,TEMPLATE,TITLE -User,SLOT,Name,No.,SOLVENT,Experiment,TITLE -用户名,进样器孔位,实验任务的名字,保存文件的名字,溶剂(按照实验的要求),模板(按照实验的要求,指定测试的元素),标题 -admin,18,11LiDFOB,LiDFOB-11B,DMSO,B11,11LiDFOB_400MHz diff --git a/unilabos/devices/UV_test/fuxiang2.py b/unilabos/devices/UV_test/fuxiang2.py deleted file mode 100644 index c6f21ef5..00000000 --- a/unilabos/devices/UV_test/fuxiang2.py +++ /dev/null @@ -1,333 +0,0 @@ -import tkinter as tk -from tkinter import ttk # 使用 ttk 替换 tk 控件 -from tkinter import messagebox -from tkinter.font import Font -from threading import Thread -from ttkthemes import ThemedTk -import time -import matplotlib.pyplot as plt -from matplotlib.backends.backend_tkagg import FigureCanvasTkAgg -import clr # pythonnet library -import sys -import threading -import datetime - -jifenshijian = 10 #积分时间 -shuaxinshijian = 0.01 #刷新时间 -zihaodaxiao = 16 #字号大小 -ymax = 70000 -ymin = -2000 - -# 加载DLL -dll_path = "C:\\auto\\UV_spec\\idea-sdk 3.0.9\\idea-sdk.UPI\\IdeaOptics.dll" -clr.AddReference(dll_path) -from IdeaOptics import Wrapper - -# 初始化Wrapper对象和光谱仪 -wrapper = Wrapper() -number_of_spectrometers = wrapper.OpenAllSpectrometers() -if number_of_spectrometers > 0: - spectrometer_index = 0 # 假设使用第一个光谱仪 - integration_time = jifenshijian # 设置积分时间 - wrapper.setIntegrationTime(spectrometer_index, integration_time) - -class App: - def __init__(self, root): - self.root = root - self.root.title("光谱测试") - self.is_continuous = False - self.root.protocol("WM_DELETE_WINDOW", self.on_closing) - self.stop_event = threading.Event() # 使用Event代替布尔标志 - self.continuous_thread = None # 在这里初始化 - self.background_spectrum = None - self.correct_background = False - self.test_count = 0 - self.background_count = 0 - - self.source_spectrum = None # 初始化光源强度变量 - self.transmission_mode = False # 初始化透射模式标志 - - self.data_ready = False - - # 使用 grid 布局 - self.root.columnconfigure(0, weight=1) - self.root.rowconfigure(0, weight=1) - self.root.rowconfigure(1, weight=1) - self.root.rowconfigure(2, weight=1) - self.root.rowconfigure(3, weight=1) - - self.current_ylim = [-100, 1000] # 初始化y轴范围 - - # 创建一个 Style 对象 - style = ttk.Style() - - # 定义一个新的样式 - style.configure('Custom.TButton', font=('Helvetica', zihaodaxiao, 'bold'), foreground='white') - - # 创建滑动条和按钮的容器 Frame - control_frame = ttk.Frame(self.root) - control_frame.grid(row=0, column=0, sticky="ew") - - # 创建一个滑动条来选择平滑次数 - self.boxcar_width_slider = tk.Scale(control_frame, from_=0, to=10, orient=tk.HORIZONTAL, length=300, label="平滑次数", font=("Helvetica", zihaodaxiao, 'bold')) - self.boxcar_width_slider.grid(row=0, column=0, padx=10, pady=10) - - # 创建一个滑动条来选择平均次数 - self.scans_to_average_slider = tk.Scale(control_frame, from_=1, to=10, orient=tk.HORIZONTAL, length=300, label="平均次数", font=("Helvetica", zihaodaxiao, 'bold')) - self.scans_to_average_slider.grid(row=0, column=1, padx=10, pady=10) - - # 调整 Scale 控件的外观 - self.boxcar_width_slider.config(bg='grey', fg='white') - self.scans_to_average_slider.config(bg='grey', fg='white') - - # 字体设置 - entry_font = ('Helvetica', zihaodaxiao, 'bold') - - # 添加输入框的容器 Frame - entry_frame = ttk.Frame(self.root) - entry_frame.grid(row=1, column=0, sticky="ew") - - # 创建并放置"积分时间(ms)"输入框 - ttk.Label(entry_frame, text="积分时间(ms):", font=entry_font).grid(row=0, column=0, padx=10, pady=10) - self.integration_time_entry = ttk.Entry(entry_frame, font=entry_font) - self.integration_time_entry.grid(row=0, column=1, padx=10, pady=10) - self.integration_time_entry.insert(0, "10") # 设置默认值 - - # 创建并放置"刷新间隔(s)"输入框 - ttk.Label(entry_frame, text="刷新间隔(s):", font=entry_font).grid(row=0, column=2, padx=10, pady=10) - self.refresh_interval_entry = ttk.Entry(entry_frame, font=entry_font) - self.refresh_interval_entry.grid(row=0, column=3, padx=10, pady=10) - self.refresh_interval_entry.insert(0, "0.01") # 设置默认值 - - # 创建按钮的容器 Frame - button_frame = ttk.Frame(self.root) - button_frame.grid(row=2, column=0, sticky="ew") - - # 创建并放置按钮 - ttk.Button(button_frame, text="测试一下", style='Custom.TButton', command=self.single_test).grid(row=0, column=0, padx=10, pady=10) - ttk.Button(button_frame, text="连续测试", style='Custom.TButton', command=self.start_continuous_test).grid(row=0, column=1, padx=10, pady=10) - ttk.Button(button_frame, text="停止测试", style='Custom.TButton', command=self.stop_continuous_test).grid(row=0, column=2, padx=10, pady=10) - - # 创建背景相关按钮的容器 Frame - background_frame = ttk.Frame(self.root) - background_frame.grid(row=3, column=0, sticky="ew") - - # 创建并放置“采集背景”按钮 - self.collect_background_button = ttk.Button(background_frame, text="采集背景", style='Custom.TButton', command=self.collect_background) - self.collect_background_button.grid(row=0, column=0, padx=10, pady=10) - - # 创建并放置“背景校正”按钮 - self.correct_background_button = ttk.Button(background_frame, text="背景校正", style='Custom.TButton', command=self.toggle_background_correction) - self.correct_background_button.grid(row=0, column=1, padx=10, pady=10) - - # 创建“光源采集”按钮 - ttk.Button(background_frame, text="光源采集", style='Custom.TButton', command=self.collect_source).grid(row=0, column=2, padx=10, pady=10) - - # 创建“透射模式”按钮 - self.transmission_button = ttk.Button(background_frame, text="透射模式", style='Custom.TButton', command=self.toggle_transmission_mode) - self.transmission_button.grid(row=0, column=3, padx=10, pady=10) - - # 创建 matplotlib 画布 - plt.style.use('ggplot') # 使用预定义的样式,如 'ggplot' - self.figure, self.ax = plt.subplots(figsize=(10, 8)) - self.canvas = FigureCanvasTkAgg(self.figure, self.root) - self.canvas_widget = self.canvas.get_tk_widget() - self.canvas_widget.grid(row=3, column=0, sticky="ew") - - # 使用 grid 布局来放置 matplotlib 画布 - self.canvas_widget = self.canvas.get_tk_widget() - self.canvas_widget.grid(row=4, column=0, sticky="ew") - - # 创建文件名并打开文件 - start_time = datetime.datetime.now().strftime("%Y%m%d_%H%M%S") - self.data_file = open(f"C:\\auto\\UV_spec\\data\\{start_time}.txt", "w") - - def get_spectrum_data(self): - # 获取波长和光谱值 - pixels = wrapper.getNumberOfPixels(spectrometer_index) - spectrum = wrapper.getSpectrum(spectrometer_index) - wavelengths = wrapper.getWavelengths(spectrometer_index) - - # 转换.NET数组到Python列表 - spectrum_list = [spectrum[i] for i in range(pixels)] - wavelengths_list = [wavelengths[i] for i in range(pixels)] - - self.data_ready = True - return wavelengths_list, spectrum_list - - def collect_source(self): - # 采集光源强度数据 - wavelengths, self.source_spectrum = self.get_spectrum_data() - conditions = f"jifenshijian = {jifenshijian} shuaxinshijian = {shuaxinshijian} zihaodaxiao = {zihaodaxiao}" - self.write_data_to_file("source", 1, conditions, self.source_spectrum) - self.update_plot(wavelengths, self.source_spectrum) - - def toggle_transmission_mode(self): - # 切换透射模式 - self.transmission_mode = not self.transmission_mode - self.transmission_button.config(text="正在透射" if self.transmission_mode else "透射模式") - - def calculate_transmission(self, spectrum): - # 计算透射率 - transmission = [] - for s, b, src in zip(spectrum, self.background_spectrum, self.source_spectrum): - denominator = max(src - b, 0.1) - trans_value = (s - b) / denominator * 100 - trans_value = max(0, min(trans_value, 100)) - transmission.append(trans_value) - return transmission - - def update_plot(self, wavelengths, spectrum, plot_type='spectrum'): - - if not self.data_ready: - return - - self.ax.clear() - - if plot_type == 'transmission': - # 透射率模式的绘图设置 - self.ax.plot(wavelengths, spectrum, label='Transmission (%)') - self.ax.set_ylim(-10, 110) # 设置y轴范围为0%到100% - self.ax.set_ylabel('Transmission (%)', fontname='Arial', fontsize=zihaodaxiao) - else: - # 普通光谱模式的绘图设置 - self.ax.plot(wavelengths, spectrum) - self.ax.set_ylim(self.current_ylim) # 使用当前y轴范围 - - # 计算新的最大值和最小值 - new_min, new_max = min(spectrum), max(spectrum) - - # 检查新的最大值或最小值是否超过当前y轴范围 - while new_min < self.current_ylim[0] or new_max > self.current_ylim[1]: - # 扩大y轴范围 - self.current_ylim = [self.current_ylim[0] * 2, self.current_ylim[1] * 2] - - # 确保新的y轴范围不超过最大限制 - if self.current_ylim[0] < ymin: - self.current_ylim[0] = ymin - if self.current_ylim[1] > ymax: - self.current_ylim[1] = ymax - break - - self.ax.set_ylabel('Intensity', fontname='Arial', fontsize=zihaodaxiao) - - self.ax.set_xlabel('Wavelength (nm)', fontname='Arial', fontsize=zihaodaxiao) - self.ax.set_title('Spectrum', fontname='Arial', fontsize=zihaodaxiao) - - self.canvas.draw() - - self.data_ready = False - - def draw_plot(self): - self.canvas.draw() - - def write_data_to_file(self, test_type, test_number, conditions, spectrum): - data_str = " ".join(map(str, spectrum)) - self.data_file.write(f"{test_type}{test_number}\n{conditions}\n{data_str}\n\n") - self.data_file.flush() - - def collect_background(self): - # 设置平滑次数 - boxcar_width = self.boxcar_width_slider.get() - wrapper.setBoxcarWidth(spectrometer_index, boxcar_width) - - # 设置平均次数 - scans_to_average = self.scans_to_average_slider.get() - wrapper.setScansToAverage(spectrometer_index, scans_to_average) - - # 采集背景数据 - wavelengths, self.background_spectrum = self.get_spectrum_data() - conditions = f"jifenshijian = {jifenshijian} shuaxinshijian = {shuaxinshijian} zihaodaxiao = {zihaodaxiao} pinghuacishu = {self.boxcar_width_slider.get()} pingjuncishu = {self.scans_to_average_slider.get()}" - self.background_count += 1 - self.write_data_to_file("background", self.background_count, conditions, self.background_spectrum) - self.update_plot(wavelengths, self.background_spectrum) - - def toggle_background_correction(self): - self.correct_background = not self.correct_background - self.correct_background_button.config(text="正在校正" if self.correct_background else "背景校正") - - def apply_background_correction(self, spectrum): - if self.background_spectrum is not None and self.correct_background: - return [s - b for s, b in zip(spectrum, self.background_spectrum)] - return spectrum - - def single_test(self): - # 获取输入框的值 - jifenshijian = float(self.integration_time_entry.get()) - shuaxinshijian = float(self.refresh_interval_entry.get()) - - # 设置平滑次数 - boxcar_width = self.boxcar_width_slider.get() - wrapper.setBoxcarWidth(spectrometer_index, boxcar_width) - - # 设置平均次数 - scans_to_average = self.scans_to_average_slider.get() - wrapper.setScansToAverage(spectrometer_index, scans_to_average) - - conditions = f"jifenshijian = {jifenshijian} shuaxinshijian = {shuaxinshijian} zihaodaxiao = {zihaodaxiao} pinghuacishu = {self.boxcar_width_slider.get()} pingjuncishu = {self.scans_to_average_slider.get()}" - self.test_count += 1 - - wavelengths, spectrum = self.get_spectrum_data() - - # 在透射模式下计算透射率,否则应用背景校正 - if self.transmission_mode and self.background_spectrum is not None and self.source_spectrum is not None: - transmission = self.calculate_transmission(spectrum) - self.update_plot(wavelengths, transmission, plot_type='transmission') - else: - corrected_spectrum = self.apply_background_correction(spectrum) - self.update_plot(wavelengths, corrected_spectrum, plot_type='spectrum') - - def continuous_test(self): - while not self.stop_event.is_set(): - # 获取输入框的值 - jifenshijian = float(self.integration_time_entry.get()) - shuaxinshijian = float(self.refresh_interval_entry.get()) - - # 设置平滑次数和平均次数 - boxcar_width = self.boxcar_width_slider.get() - wrapper.setBoxcarWidth(spectrometer_index, boxcar_width) - scans_to_average = self.scans_to_average_slider.get() - wrapper.setScansToAverage(spectrometer_index, scans_to_average) - - conditions = f"jifenshijian = {jifenshijian} shuaxinshijian = {shuaxinshijian} zihaodaxiao = {zihaodaxiao} pinghuacishu = {self.boxcar_width_slider.get()} pingjuncishu = {self.scans_to_average_slider.get()}" - self.test_count += 1 - wavelengths, spectrum = self.get_spectrum_data() - self.write_data_to_file("test", self.test_count, conditions, spectrum) - - # 根据当前模式计算并更新图表 - if self.transmission_mode and self.background_spectrum is not None and self.source_spectrum is not None: - transmission = self.calculate_transmission(spectrum) - self.update_plot(wavelengths, transmission, plot_type='transmission') - else: - corrected_spectrum = self.apply_background_correction(spectrum) - self.update_plot(wavelengths, corrected_spectrum) - - time.sleep(shuaxinshijian) - - def start_continuous_test(self): - self.stop_event.clear() # 重置事件 - self.continuous_thread = Thread(target=self.continuous_test) - self.continuous_thread.start() - - def stop_continuous_test(self): - self.stop_event.set() # 设置事件通知线程停止 - self.continuous_thread = None - - def on_closing(self): - if self.data_file: - self.data_file.close() - if messagebox.askyesno("退出", "实验g了?"): - self.stop_continuous_test() - self.root.destroy() - sys.exit() - -if __name__ == "__main__": - # 使用 ThemedTk 而不是普通的 Tk - root = ThemedTk(theme="equilux") # 使用 'arc' 主题 - - # 由于我们已经使用了 ttkthemes 来设置主题,下面这些行可以省略 - # style = ttk.Style() - # style.theme_use('arc') - - app = App(root) - root.mainloop() diff --git a/unilabos/devices/agv/__init__.py b/unilabos/devices/agv/__init__.py deleted file mode 100644 index e69de29b..00000000 diff --git a/unilabos/devices/agv/agv_navigator.py b/unilabos/devices/agv/agv_navigator.py deleted file mode 100644 index 4039b796..00000000 --- a/unilabos/devices/agv/agv_navigator.py +++ /dev/null @@ -1,101 +0,0 @@ -import socket -import json -import time -from pydantic import BaseModel - - -class AgvNavigator: - def __init__(self, host): - self.control_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) - self.receive_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) - self.control_socket.connect((host, 19206)) - self.receive_socket.connect((host, 19204)) - self.rec_cmd_code = { - "pose" : "03EC", - "status" : "03FC", - "nav" : "0BEB" - } - self.status_list = ['NONE', 'WAITING', 'RUNNING', 'SUSPENDED', 'COMPLETED', 'FAILED', 'CANCELED'] - self._pose = [] - self._status = 'NONE' - self.success = False - - @property - def pose(self) -> list: - data = self.send('pose') - - try: - self._pose = [data['x'], data['y'], data['angle']] - except: - print(data) - - return self._pose - - @property - def status(self) -> str: - data = self.send('status') - self._status = self.status_list[data['task_status']] - return self._status - - def send(self, cmd, ex_data = '', obj = 'receive_socket'): - data = bytearray.fromhex(f"5A 01 00 01 00 00 00 00 {self.rec_cmd_code[cmd]} 00 00 00 00 00 00") - if ex_data: - data_ = ex_data - data[7] = len(data_) - data= data + bytearray(data_,"utf-8") - - cmd_obj = getattr(self, obj) - cmd_obj.sendall(data) - response_data = b"" - while True: - part = cmd_obj.recv(4096) # 每次接收 4096 字节 - response_data += part - if len(part) < 4096: # 当接收到的数据少于缓冲区大小时,表示接收完毕 - break - - response_str = response_data.hex() - json_start = response_str.find('7b') # 找到JSON的开始位置 - if json_start == -1: - raise "Error: No JSON data found in response." - - json_data = bytes.fromhex(response_str[json_start:]) - - # 尝试解析 JSON 数据 - try: - parsed_json = json.loads(json_data.decode('utf-8')) - return parsed_json - - except json.JSONDecodeError as e: - raise f"JSON Decode Error: {e}" - - - def send_nav_task(self, command:str): - self.success = False - # source,target = cmd.replace(' ','').split("->") - - target = json.loads(command)['target'] - json_data = {} - # json_data["source_id"] = source - json_data["id"] = target - # json_data["use_down_pgv"] = True - result = self.send('nav', ex_data=json.dumps(json_data), obj="control_socket") - try: - if result['ret_code'] == 0: - # print(result) - while True: - if self.status == 'COMPLETED': - break - time.sleep(1) - self.success = True - except: - self.success = False - - - def __del__(self): - self.control_socket.close() - self.receive_socket.close() - -if __name__ == "__main__": - agv = AgvNavigator("192.168.1.42") - # print(agv.pose) - agv.send_nav_task('LM14') \ No newline at end of file diff --git a/unilabos/devices/agv/pose.json b/unilabos/devices/agv/pose.json deleted file mode 100644 index 07d7cca0..00000000 --- a/unilabos/devices/agv/pose.json +++ /dev/null @@ -1,54 +0,0 @@ -{ - "pretreatment": [ - [ - "moveL", - [0.443, -0.0435, 0.40, 1.209, 1.209, 1.209] - ], - [ - "moveL", - [0.543, -0.0435, 0.50, 0, 1.57, 0] - ], - [ - "moveL", - [0.443, -0.0435, 0.60, 0, 1.57, 0] - ], - [ - "wait", - [2] - ], - [ - "gripper", - [255,255,255] - ], - [ - "wait", - [2] - ], - [ - "gripper", - [0,0,0] - ], - [ - "set", - [0.3,0.2] - ], - [ - "moveL", - [0.643, -0.0435, 0.40, 1.209, 1.209, 1.209] - ] - ], - "pose": [ - [ - "moveL", - [0.243, -0.0435, 0.30, 0.0, 3.12, 0.0] - ], - [ - "moveL", - [0.443, -0.0435, 0.40, 0.0, 3.12, 0.0] - ], - [ - "moveL", - [0.243, -0.0435, 0.50, 0.0, 3.12, 0.0] - ] - ] -} \ No newline at end of file diff --git a/unilabos/devices/agv/robotiq_gripper.py b/unilabos/devices/agv/robotiq_gripper.py deleted file mode 100644 index fd8c491d..00000000 --- a/unilabos/devices/agv/robotiq_gripper.py +++ /dev/null @@ -1,298 +0,0 @@ -"""Module to control Robotiq's grippers - tested with HAND-E""" - -import socket -import threading -import time -from enum import Enum -from typing import Union, Tuple, OrderedDict - -class RobotiqGripper: - """ - Communicates with the gripper directly, via socket with string commands, leveraging string names for variables. - """ - # WRITE VARIABLES (CAN ALSO READ) - ACT = 'ACT' # act : activate (1 while activated, can be reset to clear fault status) - GTO = 'GTO' # gto : go to (will perform go to with the actions set in pos, for, spe) - ATR = 'ATR' # atr : auto-release (emergency slow move) - ADR = 'ADR' # adr : auto-release direction (open(1) or close(0) during auto-release) - FOR = 'FOR' # for : force (0-255) - SPE = 'SPE' # spe : speed (0-255) - POS = 'POS' # pos : position (0-255), 0 = open - # READ VARIABLES - STA = 'STA' # status (0 = is reset, 1 = activating, 3 = active) - PRE = 'PRE' # position request (echo of last commanded position) - OBJ = 'OBJ' # object detection (0 = moving, 1 = outer grip, 2 = inner grip, 3 = no object at rest) - FLT = 'FLT' # fault (0=ok, see manual for errors if not zero) - - ENCODING = 'UTF-8' # ASCII and UTF-8 both seem to work - - class GripperStatus(Enum): - """Gripper status reported by the gripper. The integer values have to match what the gripper sends.""" - RESET = 0 - ACTIVATING = 1 - # UNUSED = 2 # This value is currently not used by the gripper firmware - ACTIVE = 3 - - class ObjectStatus(Enum): - """Object status reported by the gripper. The integer values have to match what the gripper sends.""" - MOVING = 0 - STOPPED_OUTER_OBJECT = 1 - STOPPED_INNER_OBJECT = 2 - AT_DEST = 3 - - def __init__(self ,host): - """Constructor.""" - self.socket = None - self.command_lock = threading.Lock() - self._min_position = 0 - self._max_position = 255 - self._min_speed = 0 - self._max_speed = 255 - self._min_force = 0 - self._max_force = 255 - self.connect(host) - # self.activate() - - def connect(self, hostname: str, port: int = 63352, socket_timeout: float = 2.0) -> None: - """Connects to a gripper at the given address. - :param hostname: Hostname or ip. - :param port: Port. - :param socket_timeout: Timeout for blocking socket operations. - """ - self.socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) - self.socket.connect((hostname, port)) - self.socket.settimeout(socket_timeout) - - def disconnect(self) -> None: - """Closes the connection with the gripper.""" - self.socket.close() - - def _set_vars(self, var_dict: OrderedDict[str, Union[int, float]]): - """Sends the appropriate command via socket to set the value of n variables, and waits for its 'ack' response. - :param var_dict: Dictionary of variables to set (variable_name, value). - :return: True on successful reception of ack, false if no ack was received, indicating the set may not - have been effective. - """ - # construct unique command - cmd = "SET" - for variable, value in var_dict.items(): - cmd += f" {variable} {str(value)}" - cmd += '\n' # new line is required for the command to finish - # atomic commands send/rcv - with self.command_lock: - self.socket.sendall(cmd.encode(self.ENCODING)) - data = self.socket.recv(1024) - return self._is_ack(data) - - def _set_var(self, variable: str, value: Union[int, float]): - """Sends the appropriate command via socket to set the value of a variable, and waits for its 'ack' response. - :param variable: Variable to set. - :param value: Value to set for the variable. - :return: True on successful reception of ack, false if no ack was received, indicating the set may not - have been effective. - """ - return self._set_vars(OrderedDict([(variable, value)])) - - def _get_var(self, variable: str): - """Sends the appropriate command to retrieve the value of a variable from the gripper, blocking until the - response is received or the socket times out. - :param variable: Name of the variable to retrieve. - :return: Value of the variable as integer. - """ - # atomic commands send/rcv - with self.command_lock: - cmd = f"GET {variable}\n" - self.socket.sendall(cmd.encode(self.ENCODING)) - data = self.socket.recv(1024) - - # expect data of the form 'VAR x', where VAR is an echo of the variable name, and X the value - # note some special variables (like FLT) may send 2 bytes, instead of an integer. We assume integer here - var_name, value_str = data.decode(self.ENCODING).split() - if var_name != variable: - raise ValueError(f"Unexpected response {data} ({data.decode(self.ENCODING)}): does not match '{variable}'") - value = int(value_str) - return value - - @staticmethod - def _is_ack(data: str): - return data == b'ack' - - def _reset(self): - """ - Reset the gripper. - The following code is executed in the corresponding script function - def rq_reset(gripper_socket="1"): - rq_set_var("ACT", 0, gripper_socket) - rq_set_var("ATR", 0, gripper_socket) - - while(not rq_get_var("ACT", 1, gripper_socket) == 0 or not rq_get_var("STA", 1, gripper_socket) == 0): - rq_set_var("ACT", 0, gripper_socket) - rq_set_var("ATR", 0, gripper_socket) - sync() - end - - sleep(0.5) - end - """ - self._set_var(self.ACT, 0) - self._set_var(self.ATR, 0) - while (not self._get_var(self.ACT) == 0 or not self._get_var(self.STA) == 0): - self._set_var(self.ACT, 0) - self._set_var(self.ATR, 0) - time.sleep(0.5) - - - def activate(self, auto_calibrate: bool = True): - """Resets the activation flag in the gripper, and sets it back to one, clearing previous fault flags. - :param auto_calibrate: Whether to calibrate the minimum and maximum positions based on actual motion. - The following code is executed in the corresponding script function - def rq_activate(gripper_socket="1"): - if (not rq_is_gripper_activated(gripper_socket)): - rq_reset(gripper_socket) - - while(not rq_get_var("ACT", 1, gripper_socket) == 0 or not rq_get_var("STA", 1, gripper_socket) == 0): - rq_reset(gripper_socket) - sync() - end - - rq_set_var("ACT",1, gripper_socket) - end - end - def rq_activate_and_wait(gripper_socket="1"): - if (not rq_is_gripper_activated(gripper_socket)): - rq_activate(gripper_socket) - sleep(1.0) - - while(not rq_get_var("ACT", 1, gripper_socket) == 1 or not rq_get_var("STA", 1, gripper_socket) == 3): - sleep(0.1) - end - - sleep(0.5) - end - end - """ - if not self.is_active(): - self._reset() - while (not self._get_var(self.ACT) == 0 or not self._get_var(self.STA) == 0): - time.sleep(0.01) - - self._set_var(self.ACT, 1) - time.sleep(1.0) - while (not self._get_var(self.ACT) == 1 or not self._get_var(self.STA) == 3): - time.sleep(0.01) - - # auto-calibrate position range if desired - if auto_calibrate: - self.auto_calibrate() - - def is_active(self): - """Returns whether the gripper is active.""" - status = self._get_var(self.STA) - return RobotiqGripper.GripperStatus(status) == RobotiqGripper.GripperStatus.ACTIVE - - def get_min_position(self) -> int: - """Returns the minimum position the gripper can reach (open position).""" - return self._min_position - - def get_max_position(self) -> int: - """Returns the maximum position the gripper can reach (closed position).""" - return self._max_position - - def get_open_position(self) -> int: - """Returns what is considered the open position for gripper (minimum position value).""" - return self.get_min_position() - - def get_closed_position(self) -> int: - """Returns what is considered the closed position for gripper (maximum position value).""" - return self.get_max_position() - - def is_open(self): - """Returns whether the current position is considered as being fully open.""" - return self.get_current_position() <= self.get_open_position() - - def is_closed(self): - """Returns whether the current position is considered as being fully closed.""" - return self.get_current_position() >= self.get_closed_position() - - def get_current_position(self) -> int: - """Returns the current position as returned by the physical hardware.""" - return self._get_var(self.POS) - - def auto_calibrate(self, log: bool = True) -> None: - """Attempts to calibrate the open and closed positions, by slowly closing and opening the gripper. - :param log: Whether to print the results to log. - """ - # first try to open in case we are holding an object - (position, status) = self.move_and_wait_for_pos(self.get_open_position(), 64, 1) - if RobotiqGripper.ObjectStatus(status) != RobotiqGripper.ObjectStatus.AT_DEST: - raise RuntimeError(f"Calibration failed opening to start: {str(status)}") - - # try to close as far as possible, and record the number - (position, status) = self.move_and_wait_for_pos(self.get_closed_position(), 64, 1) - if RobotiqGripper.ObjectStatus(status) != RobotiqGripper.ObjectStatus.AT_DEST: - raise RuntimeError(f"Calibration failed because of an object: {str(status)}") - assert position <= self._max_position - self._max_position = position - - # try to open as far as possible, and record the number - (position, status) = self.move_and_wait_for_pos(self.get_open_position(), 64, 1) - if RobotiqGripper.ObjectStatus(status) != RobotiqGripper.ObjectStatus.AT_DEST: - raise RuntimeError(f"Calibration failed because of an object: {str(status)}") - assert position >= self._min_position - self._min_position = position - - if log: - print(f"Gripper auto-calibrated to [{self.get_min_position()}, {self.get_max_position()}]") - - def move(self, position: int, speed: int, force: int) -> Tuple[bool, int]: - """Sends commands to start moving towards the given position, with the specified speed and force. - :param position: Position to move to [min_position, max_position] - :param speed: Speed to move at [min_speed, max_speed] - :param force: Force to use [min_force, max_force] - :return: A tuple with a bool indicating whether the action it was successfully sent, and an integer with - the actual position that was requested, after being adjusted to the min/max calibrated range. - """ - - def clip_val(min_val, val, max_val): - return max(min_val, min(val, max_val)) - - clip_pos = clip_val(self._min_position, position, self._max_position) - clip_spe = clip_val(self._min_speed, speed, self._max_speed) - clip_for = clip_val(self._min_force, force, self._max_force) - - # moves to the given position with the given speed and force - var_dict = OrderedDict([(self.POS, clip_pos), (self.SPE, clip_spe), (self.FOR, clip_for), (self.GTO, 1)]) - return self._set_vars(var_dict), clip_pos - - def move_and_wait_for_pos(self, position: int, speed: int, force: int) -> Tuple[int, ObjectStatus]: # noqa - """Sends commands to start moving towards the given position, with the specified speed and force, and - then waits for the move to complete. - :param position: Position to move to [min_position, max_position] - :param speed: Speed to move at [min_speed, max_speed] - :param force: Force to use [min_force, max_force] - :return: A tuple with an integer representing the last position returned by the gripper after it notified - that the move had completed, a status indicating how the move ended (see ObjectStatus enum for details). Note - that it is possible that the position was not reached, if an object was detected during motion. - """ - set_ok, cmd_pos = self.move(position, speed, force) - if not set_ok: - raise RuntimeError("Failed to set variables for move.") - - # wait until the gripper acknowledges that it will try to go to the requested position - while self._get_var(self.PRE) != cmd_pos: - time.sleep(0.001) - - # wait until not moving - cur_obj = self._get_var(self.OBJ) - while RobotiqGripper.ObjectStatus(cur_obj) == RobotiqGripper.ObjectStatus.MOVING: - cur_obj = self._get_var(self.OBJ) - - # report the actual position and the object status - final_pos = self._get_var(self.POS) - final_obj = cur_obj - return final_pos, RobotiqGripper.ObjectStatus(final_obj) - -if __name__ == '__main__': - gripper = RobotiqGripper('192.168.1.178') - gripper.move(255,0,0) - print(gripper.move(255,0,0)) \ No newline at end of file diff --git a/unilabos/devices/agv/ur_arm_task.py b/unilabos/devices/agv/ur_arm_task.py deleted file mode 100644 index f9d93b04..00000000 --- a/unilabos/devices/agv/ur_arm_task.py +++ /dev/null @@ -1,166 +0,0 @@ -try: - import rtde_control - import dashboard_client - import rtde_receive -except ImportError as ex: - print("Import Error, Please Install Packages in ur_arm_task.py First!", ex) -import time -import json -from unilabos.devices.agv.robotiq_gripper import RobotiqGripper -from std_msgs.msg import Float64MultiArray -from pydantic import BaseModel - -class UrArmTask(): - def __init__(self, host, retry=30): - self.init_flag = False - self.dash_c = None - n = 0 - while self.dash_c is None: - try: - self.dash_c = dashboard_client.DashboardClient(host) - if not self.dash_c.isConnected(): - self.dash_c.connect() - - self.dash_c.loadURP('camera/250111_put_board.urp') - self.arm_init() - self.dash_c.running() - except Exception as e: - print(e) - self.dash_c = None - time.sleep(1) - n += 1 - if n > retry: - raise Exception('Can not connect to the robot dashboard server!') - - self.vel = 0.1 - self.acc = 0.1 - self.rtde_c = None - self.rtde_r = None - - self.gripper = None - self._pose = [0.0,0.0,0.0,0.0,0.0,0.0] - self._gripper_pose = None - self._status = 'IDLE' - - self._gripper_status = 'AT_DEST' - self.gripper_s_list = ['MOVING','STOPPED_OUTER_OBJECT','STOPPED_INNER_OBJECT','AT_DEST'] - - self.dash_c.loadURP('camera/250111_put_board.urp') - - self.arm_init() - self.success = True - self.init_flag = True - - - n = 0 - while self.gripper is None: - try: - self.gripper = RobotiqGripper(host) - self.gripper.activate() - # self._gripper_status = self.gripper_s_list[self.gripper._get_var('OBJ')] - except: - self.gripper = None - time.sleep(1) - n += 1 - if n > retry: - raise Exception('Can not connect to the robot gripper server!') - - n = 0 - while self.rtde_r is None: - try: - self.rtde_r = rtde_receive.RTDEReceiveInterface(host) - if not self.rtde_r.isConnected(): - self.rtde_r.reconnect() - self._pose = self.rtde_r.getActualTCPPose() - except Exception as e: - print(e) - self.rtde_r = None - time.sleep(1) - n += 1 - if n > retry: - raise Exception('Can not connect to the arm info server!') - - self.dash_c.stop() - - def arm_init(self): - self.dash_c.powerOn() - self.dash_c.brakeRelease() - self.dash_c.unlockProtectiveStop() - running = self.dash_c.running() - while running: - running = self.dash_c.running() - time.sleep(1) - - # def __del__(self): - # self.dash_c.disconnect() - # self.rtde_c.disconnect() - # self.rtde_r.disconnect() - # self.gripper.disconnect() - - def load_pose_file(self,file): - self.pose_file = file - self.reload_pose() - - def reload_pose(self): - self.pose_data = json.load(open(self.pose_file)) - - def load_pose_data(self,data): - self.pose_data = json.loads(data) - - @property - def arm_pose(self) -> list: - try: - if not self.rtde_r.isConnected(): - self.rtde_r.reconnect() - print('_'*30,'Reconnect to the arm info server!') - self._pose = self.rtde_r.getActualTCPPose() - # print(self._pose) - except Exception as e: - self._pose = self._pose - print('-'*20,'zhixing_arm\n',e) - return self._pose - - @property - def gripper_pose(self) -> float: - if self.init_flag: - try: - self._gripper_status = self.gripper_s_list[self.gripper._get_var('OBJ')] - self._gripper_pose = self.gripper.get_current_position() - except Exception as e: - self._gripper_status = self._gripper_status - self._gripper_pose = self._gripper_pose - print('-'*20,'zhixing_gripper\n',e) - return self._gripper_pose - - @property - def arm_status(self) -> str: - return self._status - - @property - def gripper_status(self) -> str: - if self.init_flag: - return self._gripper_status - - def move_pos_task(self,command): - self.success = False - task_name = json.loads(command)['task_name'] - - self.dash_c.loadURP(task_name) - self.dash_c.play() - - time.sleep(0.5) - self._status = 'RUNNING' - while self._status == 'RUNNING': - running = self.dash_c.running() - if not running: - self._status = 'IDLE' - time.sleep(1) - - self.success = True - - -if __name__ == "__main__": - arm = UrArmTask("192.168.1.178") - # arm.move_pos_task('t2_y4_transfer3.urp') - # print(arm.arm_pose()) - \ No newline at end of file diff --git a/unilabos/devices/arm/__init__.py b/unilabos/devices/arm/__init__.py deleted file mode 100644 index e69de29b..00000000 diff --git a/unilabos/devices/arm/elite_robot.py b/unilabos/devices/arm/elite_robot.py deleted file mode 100644 index 09eef519..00000000 --- a/unilabos/devices/arm/elite_robot.py +++ /dev/null @@ -1,195 +0,0 @@ -import socket -import re -import time -from rclpy.node import Node -from sensor_msgs.msg import JointState - - -class EliteRobot: - def __init__(self,device_id, host, **kwargs): - self.host = host - self.node = Node(f"{device_id}") - self.joint_state_msg = JointState() - self.joint_state_msg.name = [f"{device_id}_shoulder_pan_joint", - f"{device_id}_shoulder_lift_joint", - f"{device_id}_elbow_joint", - f"{device_id}_wrist_1_joint", - f"{device_id}_wrist_2_joint", - f"{device_id}_wrist_3_joint"] - - self.job_id = 0 - self.joint_state_pub = self.node.create_publisher(JointState, "/joint_states", 10) - self.sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) - # 实现一个简单的Modbus TCP/IP协议客户端,端口为502 - self.modbus_port = 502 - self.modbus_sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) - try: - self.modbus_sock.connect((self.host, self.modbus_port)) - print(f"已成功连接到Modbus服务器 {self.host}:{self.modbus_port}") - except Exception as e: - print(f"连接到Modbus服务器 {self.host}:{self.modbus_port} 失败: {e}") - - try: - self.sock.connect((self.host, 40011)) - print(f"已成功连接到 {self.host}:{40011}") - except Exception as e: - print(f"连接到 {self.host}:{40011} 失败: {e}") - - def modbus_close(self): - self.modbus_sock.close() - - - @property - def arm_pose(self) -> list[float]: - return self.get_actual_joint_positions() - - - def modbus_write_single_register(self, unit_id, register_addr, value): - """ - 写入单个Modbus保持寄存器(带符号整数) - :param unit_id: 从站地址 - :param register_addr: 寄存器地址 - :param value: 要写入的值(-32768~32767,带符号16位整数) - :return: True表示写入成功,False表示失败 - """ - transaction_id = 0x0001 - protocol_id = 0x0000 - length = 6 # 后续字节数 - function_code = 0x06 # 写单个保持寄存器 - header = transaction_id.to_bytes(2, 'big') + protocol_id.to_bytes(2, 'big') + length.to_bytes(2, 'big') - # value用带符号16位整数编码 - body = ( - unit_id.to_bytes(1, 'big') + - function_code.to_bytes(1, 'big') + - register_addr.to_bytes(2, 'big') + - value.to_bytes(2, 'big', signed=True) - ) - request = header + body - try: - self.modbus_sock.sendall(request) - response = self.modbus_sock.recv(1024) - # 响应应与请求的body部分一致 - if len(response) >= 12 and response[7] == function_code: - # 响应的寄存器值也要按带符号整数比对 - if response[8:12] == body[2:]: - return True - else: - print("Modbus写入响应内容与请求不一致") - return False - else: - print("Modbus写入响应格式错误或功能码不匹配") - return False - except Exception as e: - print("Modbus写入寄存器时出错:", e) - return False - - def modbus_read_holding_registers(self, unit_id, start_addr, quantity): - """ - 读取Modbus保持寄存器(带符号整数) - :param unit_id: 从站地址 - :param start_addr: 起始寄存器地址 - :param quantity: 读取数量 - :return: 读取到的数据(list of int,带符号16位整数),或None - """ - # 构造Modbus TCP帧 - transaction_id = 0x0001 - protocol_id = 0x0000 - length = 6 # 后续字节数 - function_code = 0x03 # 读保持寄存器 - header = transaction_id.to_bytes(2, 'big') + protocol_id.to_bytes(2, 'big') + length.to_bytes(2, 'big') - body = ( - unit_id.to_bytes(1, 'big') + - function_code.to_bytes(1, 'big') + - start_addr.to_bytes(2, 'big') + - quantity.to_bytes(2, 'big') - ) - request = header + body - try: - self.modbus_sock.sendall(request) - response = self.modbus_sock.recv(1024) - # 简单解析响应 - if len(response) >= 9 and response[7] == function_code: - byte_count = response[8] - data_bytes = response[9:9+byte_count] - # 按带符号16位整数解码 - result = [] - for i in range(0, len(data_bytes), 2): - val = int.from_bytes(data_bytes[i:i+2], 'big', signed=True) - result.append(val) - return result - else: - print("Modbus响应格式错误或功能码不匹配") - return None - except Exception as e: - print("Modbus读取寄存器时出错:", e) - return None - - def modbus_task(self, job_id): - self.modbus_write_single_register(1, 256, job_id) - self.job_id = job_id - job = self.modbus_read_holding_registers(1, 257, 1)[0] - while job != self.job_id: - time.sleep(0.1) - job = self.modbus_read_holding_registers(1, 257, 1)[0] - self.get_actual_joint_positions() - - - def modbus_task_cmd(self, command): - - if command == "lh2hplc": - self.modbus_task(1) - self.modbus_task(2) - - elif command == "hplc2lh": - self.modbus_task(3) - self.modbus_task(4) - self.modbus_task(0) - - def send_command(self, command): - self.sock.sendall(command.encode('utf-8')) - response = self.sock.recv(1024).decode('utf-8') - return response - - def close(self): - self.sock.close() - - def __del__(self): - self.close() - - def parse_success_response(self, response): - """ - 解析以[success]开头的返回数据,提取数组 - :param response: 字符串,形如 "[success] : [[3.158915, -1.961981, ...]]" - :return: 数组(list of float),如果解析失败则返回None - """ - if response.startswith("[1] [success]"): - match = re.search(r"\[\[([^\]]+)\]\]", response) - if match: - data_str = match.group(1) - try: - data_array = [float(x.strip()) for x in data_str.split(',')] - return data_array - except Exception as e: - print("解析数组时出错:", e) - return None - return None - - def get_actual_joint_positions(self): - response = self.send_command(f"req 1 get_actual_joint_positions()\n") - joint_positions = self.parse_success_response(response) - if joint_positions: - self.joint_state_msg.position = joint_positions - self.joint_state_pub.publish(self.joint_state_msg) - return joint_positions - return None - - - -if __name__ == "__main__": - import rclpy - rclpy.init() - client = EliteRobot('aa',"192.168.1.200") - print(client.parse_success_response(client.send_command("req 1 get_actual_joint_positions()\n"))) - client.modbus_write_single_register(1, 256, 4) - print(client.modbus_read_holding_registers(1, 257, 1)) - client.close() diff --git a/unilabos/devices/balance/__init__.py b/unilabos/devices/balance/__init__.py deleted file mode 100644 index c6271164..00000000 --- a/unilabos/devices/balance/__init__.py +++ /dev/null @@ -1,6 +0,0 @@ -# Balance devices module - -# Import balance device modules -from . import mettler_toledo_xpr - -__all__ = ['mettler_toledo_xpr'] \ No newline at end of file diff --git a/unilabos/devices/balance/mettler_toledo_xpr/MT.Laboratory.Balance.XprXsr.V03.wsdl.template b/unilabos/devices/balance/mettler_toledo_xpr/MT.Laboratory.Balance.XprXsr.V03.wsdl.template deleted file mode 100644 index aacf70c0..00000000 --- a/unilabos/devices/balance/mettler_toledo_xpr/MT.Laboratory.Balance.XprXsr.V03.wsdl.template +++ /dev/null @@ -1,51 +0,0 @@ - - - - - - - - - - - - - \ No newline at end of file diff --git a/unilabos/devices/balance/mettler_toledo_xpr/Mettler_Toledo_Balance_ROS2_User_Guide.md b/unilabos/devices/balance/mettler_toledo_xpr/Mettler_Toledo_Balance_ROS2_User_Guide.md deleted file mode 100644 index 02de76c9..00000000 --- a/unilabos/devices/balance/mettler_toledo_xpr/Mettler_Toledo_Balance_ROS2_User_Guide.md +++ /dev/null @@ -1,255 +0,0 @@ -# 梅特勒天平 ROS2 使用指南 / Mettler Toledo Balance ROS2 User Guide - -## 概述 / Overview - -梅特勒托利多XPR/XSR天平驱动支持通过ROS2动作进行操作,包括去皮、清零、读取重量等功能。 - -The Mettler Toledo XPR/XSR balance driver supports operations through ROS2 actions, including tare, zero, weight reading, and other functions. - -## 主要功能 / Main Features - -### 1. 去皮操作 / Tare Operation (`tare`) - -- **功能 / Function**: 执行天平去皮操作 / Perform balance tare operation -- **输入 / Input**: `{"immediate": bool}` - 是否立即去皮 / Whether to tare immediately -- **输出 / Output**: `{"return_info": str, "success": bool}` - -### 2. 清零操作 / Zero Operation (`zero`) - -- **功能 / Function**: 执行天平清零操作 / Perform balance zero operation -- **输入 / Input**: `{"immediate": bool}` - 是否立即清零 / Whether to zero immediately -- **输出 / Output**: `{"return_info": str, "success": bool}` - -### 3. 读取重量 / Read Weight (`read` / `get_weight`) - -- **功能 / Function**: 读取当前天平重量 / Read current balance weight -- **输入 / Input**: 无参数 / No parameters -- **输出 / Output**: `{"return_info": str, "success": bool}` - 包含重量信息 / Contains weight information - - - -## 使用方法 / Usage Methods - -### ROS2命令行使用 / ROS2 Command Line Usage - -### 1. 去皮操作 / Tare Operation - -```bash -ros2 action send_goal /devices/BALANCE_STATION/send_cmd unilabos_msgs/action/SendCmd "{ - command: '{\"command\": \"tare\", \"params\": {\"immediate\": false}}' -}" -``` - -### 2. 清零操作 / Zero Operation - -```bash -ros2 action send_goal /devices/BALANCE_STATION/send_cmd unilabos_msgs/action/SendCmd "{ - command: '{\"command\": \"zero\", \"params\": {\"immediate\": false}}' -}" -``` - -### 3. 读取重量 / Read Weight - -```bash -ros2 action send_goal /devices/BALANCE_STATION/send_cmd unilabos_msgs/action/SendCmd "{ - command: '{\"command\": \"read\"}' -}" -``` - - -### 4. 推荐的去皮读取流程 / Recommended Tare and Read Workflow - -**步骤1: 去皮操作 / Step 1: Tare Operation** -```bash -# 放置空容器后执行去皮 / Execute tare after placing empty container -ros2 action send_goal /devices/BALANCE_STATION/send_cmd unilabos_msgs/action/SendCmd "{ - command: '{\"command\": \"tare\", \"params\": {\"immediate\": false}}' -}" -``` - -**步骤2: 读取净重 / Step 2: Read Net Weight** -```bash -# 添加物质后读取净重 / Read net weight after adding substance -ros2 action send_goal /devices/BALANCE_STATION/send_cmd unilabos_msgs/action/SendCmd "{ - command: '{\"command\": \"read\"}' -}" -``` - -**优势 / Advantages**: -- 可以在去皮和读取之间进行确认 / Can confirm between taring and reading -- 更好的错误处理和调试 / Better error handling and debugging -- 操作流程更加清晰 / Clearer operation workflow - - - -## 命令格式说明 / Command Format Description - -所有命令都使用JSON格式,包含以下字段 / All commands use JSON format with the following fields: - -```json -{ - "command": "命令名称 / Command name", - "params": { - "参数名 / Parameter name": "参数值 / Parameter value" - } -} -``` - -**注意事项 / Notes:** -1. JSON字符串需要正确转义引号 / JSON strings need proper quote escaping -2. 布尔值使用小写(true/false)/ Boolean values use lowercase (true/false) -3. 如果命令不需要参数,可以省略`params`字段 / If command doesn't need parameters, `params` field can be omitted - -## 返回结果 / Return Results - -所有命令都会返回包含以下字段的结果 / All commands return results with the following fields: - -- `success`: 布尔值,表示操作是否成功 / Boolean value indicating operation success -- `return_info`: 字符串,包含操作结果的详细信息 / String containing detailed operation result information - -## 成功执行示例 / Successful Execution Example - -以下是一个成功执行读取重量命令的示例 / Here is an example of successfully executing a weight reading command: - -```bash -ros2 action send_goal /devices/BALANCE_STATION/send_cmd unilabos_msgs/action/SendCmd "{ - command: '{\"command\": \"read\"}' -}" -``` - -**成功返回结果 / Successful Return Result:** -``` -Waiting for an action server to become available... -Sending goal: - command: '{"command": "read"}' - -Goal accepted :) - -Result: - success: True - return_info: Weight: 0.24866 Milligram - -Goal finished with status: SUCCEEDED -``` - -### Python代码使用 / Python Code Usage - -```python -import rclpy -from rclpy.node import Node -from rclpy.action import ActionClient -from unilabos_msgs.action import SendCmd -import json - -class BalanceController(Node): - """梅特勒天平控制器 / Mettler Balance Controller""" - def __init__(self): - super().__init__('balance_controller') - self._action_client = ActionClient(self, SendCmd, '/devices/BALANCE_STATION/send_cmd') - - def send_command(self, command, params=None): - """发送命令到天平 / Send command to balance""" - goal_msg = SendCmd.Goal() - - cmd_data = {'command': command} - if params: - cmd_data['params'] = params - - goal_msg.command = json.dumps(cmd_data) - - self._action_client.wait_for_server() - future = self._action_client.send_goal_async(goal_msg) - - return future - - def tare_balance(self, immediate=False): - """去皮操作 / Tare operation""" - return self.send_command('tare', {'immediate': immediate}) - - def zero_balance(self, immediate=False): - """清零操作 / Zero operation""" - return self.send_command('zero', {'immediate': immediate}) - - def read_weight(self): - """读取重量 / Read weight""" - return self.send_command('read') - - - - -# 使用示例 / Usage Example -def main(): - rclpy.init() - controller = BalanceController() - - # 去皮操作 / Tare operation - future = controller.tare_balance(immediate=False) - rclpy.spin_until_future_complete(controller, future) - result = future.result().result - print(f"去皮结果 / Tare result: {result.success}, 信息 / Info: {result.return_info}") - - # 读取重量 / Read weight - future = controller.read_weight() - rclpy.spin_until_future_complete(controller, future) - result = future.result().result - print(f"读取结果 / Read result: {result.success}, 信息 / Info: {result.return_info}") - - controller.destroy_node() - rclpy.shutdown() - -if __name__ == '__main__': - main() -``` - -## 使用注意事项 / Usage Notes - -1. **设备连接 / Device Connection**: 确保梅特勒天平设备已连接并可访问 / Ensure Mettler balance device is connected and accessible -2. **命令格式 / Command Format**: JSON字符串需要正确转义引号 / JSON strings need proper quote escaping -3. **参数类型 / Parameter Types**: 布尔值使用小写(true/false)/ Boolean values use lowercase (true/false) -4. **权限 / Permissions**: 确保有操作天平的权限 / Ensure you have permission to operate the balance - -## 故障排除 / Troubleshooting - -### 常见问题 / Common Issues - -1. **JSON格式错误 / JSON Format Error**: 确保JSON字符串格式正确且引号已转义 / Ensure JSON string format is correct and quotes are escaped -2. **未知命令名称 / Unknown Command Name**: 检查命令名称是否正确 / Check if command name is correct -3. **设备连接失败 / Device Connection Failed**: 检查网络连接和设备状态 / Check network connection and device status -4. **操作超时 / Operation Timeout**: 检查设备是否响应正常 / Check if device is responding normally - -### 错误处理 / Error Handling - -如果命令执行失败,返回结果中的`success`字段将为`false`,`return_info`字段将包含错误信息。 - -If command execution fails, the `success` field in the return result will be `false`, and the `return_info` field will contain error information. - -### 调试技巧 / Debugging Tips - -1. 检查设备节点是否正在运行 / Check if device node is running: - ```bash - ros2 node list | grep BALANCE - ``` - -2. 查看可用的action / View available actions: - ```bash - ros2 action list | grep BALANCE - ``` - -3. 检查action接口 / Check action interface: - ```bash - ros2 action info /devices/BALANCE_STATION/send_cmd - ``` - -4. 查看节点日志 / View node logs: - ```bash - ros2 topic echo /rosout - ``` - -## 总结 / Summary - -梅特勒托利多天平设备现在支持 / Mettler Toledo balance device now supports: - -1. 通过ROS2 SendCmd动作进行统一操作 / Unified operations through ROS2 SendCmd actions -2. 完整的天平功能支持(去皮、清零、读重等)/ Complete balance function support (tare, zero, weight reading, etc.) -3. 完善的错误处理和日志记录 / Comprehensive error handling and logging -4. 简化的操作流程和调试方法 / Simplified operation workflow and debugging methods \ No newline at end of file diff --git a/unilabos/devices/balance/mettler_toledo_xpr/README.md b/unilabos/devices/balance/mettler_toledo_xpr/README.md deleted file mode 100644 index d46a927d..00000000 --- a/unilabos/devices/balance/mettler_toledo_xpr/README.md +++ /dev/null @@ -1,123 +0,0 @@ -# Mettler Toledo XPR/XSR Balance Driver - -## 概述 - -本驱动程序为梅特勒托利多XPR/XSR系列天平提供标准接口,支持去皮、清零和重量读取等操作。 - -## ⚠️ 重要说明 - WSDL文件配置 - -### 问题说明 - -本驱动程序需要使用梅特勒托利多官方提供的WSDL文件来与天平通信。由于该WSDL文件包含专有信息,不能随开源项目一起分发。 - -### 配置步骤 - -1. **获取WSDL文件** - - 联系梅特勒托利多技术支持 - - 或从您的天平设备Web界面下载 - - 或从梅特勒托利多官方SDK获取 - -2. **安装WSDL文件** - ```bash - # 将获取的WSDL文件复制到驱动目录 - cp /path/to/your/MT.Laboratory.Balance.XprXsr.V03.wsdl \ - unilabos/devices/balance/mettler_toledo_xpr/ - ``` - -3. **验证安装** - - 确保文件名为:`MT.Laboratory.Balance.XprXsr.V03.wsdl` - - 确保文件包含Jinja2模板变量:`{{host}}`、`{{port}}`、`{{api_path}}` - -### WSDL文件要求 - -- 文件必须是有效的WSDL格式 -- 必须包含SessionService和WeighingService的定义 -- 端点地址应使用模板变量以支持动态IP配置: - ```xml - - - ``` - -### 文件结构 - -``` -mettler_toledo_xpr/ -├── MT.Laboratory.Balance.XprXsr.V03.wsdl # 实际WSDL文件(用户提供) -├── MT.Laboratory.Balance.XprXsr.V03.wsdl.template # 模板文件(仅供参考) -├── mettler_toledo_xpr.py # 驱动程序 -├── balance.yaml # 设备配置 -├── SendCmd_Usage_Guide.md # 使用指南 -└── README.md # 本文件 -``` - -## 使用方法 - -### 基本配置 - -```python -from unilabos.devices.balance.mettler_toledo_xpr import MettlerToledoXPR - -# 创建天平实例 -balance = MettlerToledoXPR( - ip="192.168.1.10", # 天平IP地址 - port=81, # 天平端口 - password="123456", # 天平密码 - timeout=10 # 连接超时时间 -) - -# 执行操作 -balance.tare() # 去皮 -balance.zero() # 清零 -weight = balance.get_weight() # 读取重量 -``` - -### ROS2 SendCmd Action - -详细的ROS2使用方法请参考 [SendCmd_Usage_Guide.md](SendCmd_Usage_Guide.md) - -## 故障排除 - -### 常见错误 - -1. **FileNotFoundError: WSDL template not found** - - 确保WSDL文件已正确放置在驱动目录中 - - 检查文件名是否正确 - -2. **连接失败** - - 检查天平IP地址和端口配置 - - 确保天平Web服务已启用 - - 验证网络连接 - -3. **认证失败** - - 检查天平密码是否正确 - - 确保天平允许Web服务访问 - -### 调试模式 - -```python -import logging -logging.basicConfig(level=logging.DEBUG) - -# 创建天平实例,将显示详细日志 -balance = MettlerToledoXPR(ip="192.168.1.10") -``` - -## 支持的操作 - -- **去皮 (Tare)**: 将当前重量设为零点 -- **清零 (Zero)**: 重新校准零点 -- **读取重量 (Get Weight)**: 获取当前重量值 -- **带去皮读取**: 先去皮再读取重量 -- **连接管理**: 自动连接和断开 - -## 技术支持 - -如果您在配置WSDL文件时遇到问题,请: - -1. 查看梅特勒托利多官方文档 -2. 联系梅特勒托利多技术支持 -3. 在项目GitHub页面提交Issue - -## 许可证 - -本驱动程序遵循项目主许可证。WSDL文件的使用需遵循梅特勒托利多的许可条款。 \ No newline at end of file diff --git a/unilabos/devices/balance/mettler_toledo_xpr/__init__.py b/unilabos/devices/balance/mettler_toledo_xpr/__init__.py deleted file mode 100644 index 80b47f77..00000000 --- a/unilabos/devices/balance/mettler_toledo_xpr/__init__.py +++ /dev/null @@ -1,5 +0,0 @@ -# Mettler Toledo XPR Balance Driver Module - -from .mettler_toledo_xpr import MettlerToledoXPR - -__all__ = ['MettlerToledoXPR'] \ No newline at end of file diff --git a/unilabos/devices/balance/mettler_toledo_xpr/balance.yaml b/unilabos/devices/balance/mettler_toledo_xpr/balance.yaml deleted file mode 100644 index 19bc241d..00000000 --- a/unilabos/devices/balance/mettler_toledo_xpr/balance.yaml +++ /dev/null @@ -1,256 +0,0 @@ -balance.mettler_toledo_xpr: - category: - - balance - class: - action_value_mappings: - disconnect: - feedback: {} - goal: {} - goal_default: {} - handles: [] - result: - success: success - schema: - description: Disconnect from balance - properties: - feedback: {} - goal: - properties: {} - required: [] - type: object - result: - properties: - success: - description: Whether disconnect was successful - type: boolean - required: - - success - type: object - required: - - goal - type: object - type: UniLabJsonCommand - get_weight: - feedback: {} - goal: {} - goal_default: {} - handles: [] - result: - unit: unit - weight: weight - schema: - description: Get current weight reading - properties: - feedback: {} - goal: - properties: {} - required: [] - type: object - result: - properties: - unit: - description: Weight unit (e.g., g, kg) - type: string - weight: - description: Weight value - type: number - required: - - weight - - unit - type: object - required: - - goal - type: object - type: UniLabJsonCommand - read_with_tare: - feedback: {} - goal: - immediate_tare: immediate_tare - goal_default: - immediate_tare: true - handles: [] - result: - unit: unit - weight: weight - schema: - description: Perform tare then read weight (standard read operation) - properties: - feedback: {} - goal: - properties: - immediate_tare: - default: true - description: Whether to use immediate tare - type: boolean - required: [] - type: object - result: - properties: - unit: - description: Weight unit (e.g., g, kg) - type: string - weight: - description: Weight value after tare - type: number - required: - - weight - - unit - type: object - required: - - goal - type: object - type: UniLabJsonCommand - send_cmd: - feedback: {} - goal: - command: command - goal_default: - command: '' - handles: [] - result: - return_info: return_info - success: success - schema: - description: '' - properties: - feedback: - properties: - status: - type: string - required: - - status - title: SendCmd_Feedback - type: object - goal: - properties: - command: - type: string - required: - - command - title: SendCmd_Goal - type: object - result: - properties: - return_info: - type: string - success: - type: boolean - required: - - return_info - - success - title: SendCmd_Result - type: object - required: - - goal - title: SendCmd - type: object - type: SendCmd - tare: - feedback: {} - goal: - immediate: immediate - goal_default: - immediate: false - handles: [] - result: - success: success - schema: - description: Tare operation for balance - properties: - feedback: {} - goal: - properties: - immediate: - default: false - description: Whether to perform immediate tare - type: boolean - required: [] - type: object - result: - properties: - success: - description: Whether tare operation was successful - type: boolean - required: - - success - type: object - required: - - goal - type: object - type: UniLabJsonCommand - zero: - feedback: {} - goal: - immediate: immediate - goal_default: - immediate: false - handles: [] - result: - success: success - schema: - description: Zero operation for balance - properties: - feedback: {} - goal: - properties: - immediate: - default: false - description: Whether to perform immediate zero - type: boolean - required: [] - type: object - result: - properties: - success: - description: Whether zero operation was successful - type: boolean - required: - - success - type: object - required: - - goal - type: object - type: UniLabJsonCommand - module: unilabos.devices.balance.mettler_toledo_xpr.mettler_toledo_xpr:MettlerToledoXPR - status_types: - error_message: str - is_stable: bool - status: str - unit: str - weight: float - type: python - config_info: [] - description: Mettler Toledo XPR/XSR Balance Driver - handles: [] - icon: '' - init_param_schema: - description: MettlerToledoXPR __init__ parameters - properties: - feedback: {} - goal: - description: Initialization parameters for Mettler Toledo XPR balance - properties: - ip: - default: 192.168.1.10 - description: Balance IP address - type: string - password: - default: '123456' - description: Balance password - type: string - port: - default: 81 - description: Balance port number - type: integer - timeout: - default: 10 - description: Connection timeout in seconds - type: integer - required: [] - type: object - result: {} - required: - - goal - title: __init__ command parameters - type: object - version: 1.0.0 \ No newline at end of file diff --git a/unilabos/devices/balance/mettler_toledo_xpr/balance_test.json b/unilabos/devices/balance/mettler_toledo_xpr/balance_test.json deleted file mode 100644 index b5f93dc1..00000000 --- a/unilabos/devices/balance/mettler_toledo_xpr/balance_test.json +++ /dev/null @@ -1,25 +0,0 @@ -{ - "nodes": [ - { - "id": "BALANCE_STATION", - "name": "METTLER_TOLEDO_XPR", - "parent": null, - "type": "device", - "class": "balance.mettler_toledo_xpr", - "position": { - "x": 620.6111111111111, - "y": 171, - "z": 0 - }, - "config": { - "ip": "192.168.1.10", - "port": 81, - "password": "123456", - "timeout": 10 - }, - "data": {}, - "children": [] - } - ], - "links": [] -} \ No newline at end of file diff --git a/unilabos/devices/balance/mettler_toledo_xpr/mettler_toledo_xpr.py b/unilabos/devices/balance/mettler_toledo_xpr/mettler_toledo_xpr.py deleted file mode 100644 index e103c191..00000000 --- a/unilabos/devices/balance/mettler_toledo_xpr/mettler_toledo_xpr.py +++ /dev/null @@ -1,571 +0,0 @@ -#!/usr/bin/env python -# -*- coding: utf-8 -*- -""" -Mettler Toledo XPR/XSR Balance Driver for Uni-Lab OS - -This driver provides standard interface for Mettler Toledo XPR/XSR balance operations -including tare, zero, and weight reading functions. -""" - -import enum -import base64 -import hashlib -import logging -import time -from pathlib import Path -from decimal import Decimal -from typing import Tuple, Optional - -from jinja2 import Template -from requests import Session -from zeep import Client -from zeep.transports import Transport -import pprp - -# Import UniversalDriver - handle import error gracefully -try: - from unilabos.device_comms.universal_driver import UniversalDriver -except ImportError: - # Fallback for standalone testing - class UniversalDriver: - """Fallback UniversalDriver for standalone testing""" - def __init__(self): - self.success = False - - -class Outcome(enum.Enum): - """Balance operation outcome enumeration""" - SUCCESS = "Success" - ERROR = "Error" - - -class MettlerToledoXPR(UniversalDriver): - """Mettler Toledo XPR/XSR Balance Driver - - Provides standard interface for balance operations including: - - Tare (去皮) - - Zero (清零) - - Weight reading (读数) - """ - - def __init__(self, ip: str = "192.168.1.10", port: int = 81, - password: str = "123456", timeout: int = 10): - """Initialize the balance driver - - Args: - ip: Balance IP address - port: Balance port number - password: Balance password - timeout: Connection timeout in seconds - """ - super().__init__() - - self.ip = ip - self.port = port - self.password = password - self.timeout = timeout - self.api_path = "MT/Laboratory/Balance/XprXsr/V03" - - # Status properties - self._status = "Disconnected" - self._last_weight = 0.0 - self._last_unit = "g" - self._is_stable = False - self._error_message = "" - - # ROS2 action result properties - self.success = False - self.return_info = "" - - # Service objects - self.client = None - self.session_svc = None - self.weighing_svc = None - self.session_id = None - - # WSDL template path - self.wsdl_template = Path(__file__).parent / "MT.Laboratory.Balance.XprXsr.V03.wsdl" - - # Bindings - self.bindings = { - "session": "{http://MT/Laboratory/Balance/XprXsr/V03}BasicHttpBinding_ISessionService", - "weigh": "{http://MT/Laboratory/Balance/XprXsr/V03}BasicHttpBinding_IWeighingService", - } - - # Setup logging - self.logger = logging.getLogger(f"MettlerToledoXPR-{ip}") - - # Initialize connection - self._connect() - - @property - def status(self) -> str: - """Current device status""" - return self._status - - @property - def weight(self) -> float: - """Last measured weight value""" - return self._last_weight - - @property - def unit(self) -> str: - """Weight unit (e.g., 'g', 'kg')""" - return self._last_unit - - @property - def is_stable(self) -> bool: - """Whether the weight reading is stable""" - return self._is_stable - - @property - def error_message(self) -> str: - """Last error message""" - return self._error_message - - def _decrypt_session_id(self, pw: str, enc_sid: str, salt: str) -> str: - """Decrypt session ID using password and salt""" - key = hashlib.pbkdf2_hmac("sha1", pw.encode(), - base64.b64decode(salt), 1000, dklen=32) - plain = pprp.decrypt_sink( - pprp.rijndael_decrypt_gen( - key, pprp.data_source_gen(base64.b64decode(enc_sid)))) - return plain.decode() - - def _render_wsdl(self) -> Path: - """Render WSDL template with current connection parameters""" - if not self.wsdl_template.exists(): - raise FileNotFoundError(f"WSDL template not found: {self.wsdl_template}") - - text = Template(self.wsdl_template.read_text(encoding="utf-8")).render( - host=self.ip, port=self.port, api_path=self.api_path) - - wsdl_path = self.wsdl_template.parent / f"rendered_{self.ip}_{self.port}.wsdl" - wsdl_path.write_text(text, encoding="utf-8") - - return wsdl_path - - def _connect(self): - """Establish connection to the balance""" - try: - self._status = "Connecting" - - # Render WSDL - wsdl_path = self._render_wsdl() - self.logger.info(f"WSDL rendered to {wsdl_path}") - - # Create SOAP client - transport = Transport(session=Session(), timeout=self.timeout) - self.client = Client(wsdl=str(wsdl_path), transport=transport) - - # Create service proxies - base_url = f"http://{self.ip}:{self.port}/{self.api_path}" - self.session_svc = self.client.create_service( - self.bindings["session"], f"{base_url}/SessionService") - self.weighing_svc = self.client.create_service( - self.bindings["weigh"], f"{base_url}/WeighingService") - - self.logger.info("Zeep service proxies created") - - # Open session - self.logger.info("Opening session...") - reply = self.session_svc.OpenSession() - if reply.Outcome != Outcome.SUCCESS.value: - raise RuntimeError(f"OpenSession failed: {getattr(reply, 'ErrorMessage', '')}") - - self.session_id = self._decrypt_session_id( - self.password, reply.SessionId, reply.Salt) - - self.logger.info(f"Session established successfully, SessionId={self.session_id}") - self._status = "Connected" - self._error_message = "" - - except Exception as e: - self._status = "Error" - self._error_message = str(e) - self.logger.error(f"Connection failed: {e}") - raise - - def _ensure_connected(self): - """Ensure the device is connected""" - if self._status != "Connected" or self.session_id is None: - self._connect() - - def tare(self, immediate: bool = False) -> bool: - """Perform tare operation (去皮) - - Args: - immediate: Whether to perform immediate tare - - Returns: - bool: True if successful, False otherwise - """ - try: - self._ensure_connected() - self._status = "Taring" - - self.logger.info(f"Performing tare (immediate={immediate})...") - reply = self.weighing_svc.Tare(self.session_id, immediate) - - if reply.Outcome != Outcome.SUCCESS.value: - error_msg = getattr(reply, 'ErrorMessage', 'Unknown error') - self.logger.error(f"Tare failed: {error_msg}") - self._error_message = f"Tare failed: {error_msg}" - self._status = "Error" - return False - - self.logger.info("Tare completed successfully") - self._status = "Connected" - self._error_message = "" - return True - - except Exception as e: - self.logger.error(f"Tare operation failed: {e}") - self._error_message = str(e) - self._status = "Error" - return False - - def zero(self, immediate: bool = False) -> bool: - """Perform zero operation (清零) - - Args: - immediate: Whether to perform immediate zero - - Returns: - bool: True if successful, False otherwise - """ - try: - self._ensure_connected() - self._status = "Zeroing" - - self.logger.info(f"Performing zero (immediate={immediate})...") - reply = self.weighing_svc.Zero(self.session_id, immediate) - - if reply.Outcome != Outcome.SUCCESS.value: - error_msg = getattr(reply, 'ErrorMessage', 'Unknown error') - self.logger.error(f"Zero failed: {error_msg}") - self._error_message = f"Zero failed: {error_msg}" - self._status = "Error" - return False - - self.logger.info("Zero completed successfully") - self._status = "Connected" - self._error_message = "" - return True - - except Exception as e: - self.logger.error(f"Zero operation failed: {e}") - self._error_message = str(e) - self._status = "Error" - return False - - def get_weight(self) -> float: - """Get current weight reading (读数) - - Returns: - float: Weight value - """ - try: - self._ensure_connected() - self._status = "Reading" - - self.logger.info("Getting weight...") - reply = self.weighing_svc.GetWeight(self.session_id) - - if reply.Outcome != Outcome.SUCCESS.value: - error_msg = getattr(reply, 'ErrorMessage', 'Unknown error') - self.logger.error(f"GetWeight failed: {error_msg}") - self._error_message = f"GetWeight failed: {error_msg}" - self._status = "Error" - return 0.0 - - # Handle different response structures - if hasattr(reply, 'WeightSample'): - # Handle WeightSample structure (most common for XPR) - weight_sample = reply.WeightSample - if hasattr(weight_sample, 'NetWeight'): - weight_val = float(Decimal(weight_sample.NetWeight.Value)) - weight_unit = weight_sample.NetWeight.Unit - elif hasattr(weight_sample, 'GrossWeight'): - weight_val = float(Decimal(weight_sample.GrossWeight.Value)) - weight_unit = weight_sample.GrossWeight.Unit - else: - weight_val = 0.0 - weight_unit = 'g' - is_stable = getattr(weight_sample, 'Stable', True) - elif hasattr(reply, 'Weight'): - weight_val = float(Decimal(reply.Weight.Value)) - weight_unit = reply.Weight.Unit - is_stable = getattr(reply.Weight, 'IsStable', True) - elif hasattr(reply, 'Value'): - weight_val = float(Decimal(reply.Value)) - weight_unit = getattr(reply, 'Unit', 'g') - is_stable = getattr(reply, 'IsStable', True) - else: - # Try to extract from reply attributes - weight_val = float(Decimal(getattr(reply, 'WeightValue', getattr(reply, 'Value', '0')))) - weight_unit = getattr(reply, 'WeightUnit', getattr(reply, 'Unit', 'g')) - is_stable = getattr(reply, 'IsStable', True) - - # Convert to grams for consistent output (ROS2 requirement) - if weight_unit.lower() in ['milligram', 'mg']: - weight_val_grams = weight_val / 1000.0 - elif weight_unit.lower() in ['kilogram', 'kg']: - weight_val_grams = weight_val * 1000.0 - elif weight_unit.lower() in ['gram', 'g']: - weight_val_grams = weight_val - else: - # Default to assuming grams if unit is unknown - weight_val_grams = weight_val - self.logger.warning(f"Unknown weight unit: {weight_unit}, assuming grams") - - # Update internal state (keep original values for reference) - self._last_weight = weight_val - self._last_unit = weight_unit - self._is_stable = is_stable - - self.logger.info(f"Weight: {weight_val_grams} g (original: {weight_val} {weight_unit})") - self._status = "Connected" - self._error_message = "" - - return weight_val_grams - - except Exception as e: - self.logger.error(f"Get weight failed: {e}") - self._error_message = str(e) - self._status = "Error" - return 0.0 - - def get_weight_with_unit(self) -> Tuple[float, str]: - """Get current weight reading with unit (读数含单位) - - Returns: - Tuple[float, str]: Weight value and unit - """ - try: - self._ensure_connected() - self._status = "Reading" - - self.logger.info("Getting weight with unit...") - reply = self.weighing_svc.GetWeight(self.session_id) - - if reply.Outcome != Outcome.SUCCESS.value: - error_msg = getattr(reply, 'ErrorMessage', 'Unknown error') - self.logger.error(f"GetWeight failed: {error_msg}") - self._error_message = f"GetWeight failed: {error_msg}" - self._status = "Error" - return 0.0, "" - - # Handle different response structures - if hasattr(reply, 'WeightSample'): - # Handle WeightSample structure (most common for XPR) - weight_sample = reply.WeightSample - if hasattr(weight_sample, 'NetWeight'): - weight_val = float(Decimal(weight_sample.NetWeight.Value)) - weight_unit = weight_sample.NetWeight.Unit - elif hasattr(weight_sample, 'GrossWeight'): - weight_val = float(Decimal(weight_sample.GrossWeight.Value)) - weight_unit = weight_sample.GrossWeight.Unit - else: - weight_val = 0.0 - weight_unit = 'g' - is_stable = getattr(weight_sample, 'Stable', True) - elif hasattr(reply, 'Weight'): - weight_val = float(Decimal(reply.Weight.Value)) - weight_unit = reply.Weight.Unit - is_stable = getattr(reply.Weight, 'IsStable', True) - elif hasattr(reply, 'Value'): - weight_val = float(Decimal(reply.Value)) - weight_unit = getattr(reply, 'Unit', 'g') - is_stable = getattr(reply, 'IsStable', True) - else: - # Try to extract from reply attributes - weight_val = float(Decimal(getattr(reply, 'WeightValue', getattr(reply, 'Value', '0')))) - weight_unit = getattr(reply, 'WeightUnit', getattr(reply, 'Unit', 'g')) - is_stable = getattr(reply, 'IsStable', True) - - # Update internal state - self._last_weight = weight_val - self._last_unit = weight_unit - self._is_stable = is_stable - - self.logger.info(f"Weight: {weight_val} {weight_unit}") - self._status = "Connected" - self._error_message = "" - - return weight_val, weight_unit - - except Exception as e: - self.logger.error(f"Get weight with unit failed: {e}") - self._error_message = str(e) - self._status = "Error" - return 0.0, "" - - - - - - def send_cmd(self, command: str) -> dict: - """ROS2 SendCmd action handler - - Args: - command: JSON string containing command and parameters - - Returns: - dict: Result containing success status and return_info - """ - return self.execute_command_from_outer(command) - - def execute_command_from_outer(self, command: str) -> dict: - """Execute command from ROS2 SendCmd action - - Args: - command: JSON string containing command and parameters - - Returns: - dict: Result containing success status and return_info - """ - try: - import json - # Parse JSON command - cmd_data = json.loads(command.replace("'", '"').replace("False", "false").replace("True", "true")) - - # Extract command name and parameters - cmd_name = cmd_data.get('command', '') - params = cmd_data.get('params', {}) - - self.logger.info(f"Executing command: {cmd_name} with params: {params}") - - # Execute different commands - if cmd_name == 'tare': - immediate = params.get('immediate', False) - success = self.tare(immediate) - result = { - 'success': success, - 'return_info': f"Tare operation {'successful' if success else 'failed'}" - } - # Update instance attributes for ROS2 action system - self.success = result['success'] - self.return_info = result['return_info'] - return result - - elif cmd_name == 'zero': - immediate = params.get('immediate', False) - success = self.zero(immediate) - result = { - 'success': success, - 'return_info': f"Zero operation {'successful' if success else 'failed'}" - } - # Update instance attributes for ROS2 action system - self.success = result['success'] - self.return_info = result['return_info'] - return result - - elif cmd_name == 'read' or cmd_name == 'get_weight': - try: - self.logger.info(f"Executing {cmd_name} command via ROS2...") - self.logger.info(f"Current status: {self._status}") - - # Use get_weight to get weight value (returns float in grams) - weight_grams = self.get_weight() - self.logger.info(f"get_weight() returned: {weight_grams} g") - - # Get the original weight and unit for display - original_weight = getattr(self, '_last_weight', weight_grams) - original_unit = getattr(self, '_last_unit', 'g') - self.logger.info(f"Original reading: {original_weight} {original_unit}") - - result = { - 'success': True, - 'return_info': f"Weight: {original_weight} {original_unit}" - } - except Exception as e: - self.logger.error(f"Exception in {cmd_name}: {str(e)}") - self.logger.error(f"Exception type: {type(e).__name__}") - import traceback - self.logger.error(f"Traceback: {traceback.format_exc()}") - result = { - 'success': False, - 'return_info': f"Failed to read weight: {str(e)}" - } - # Update instance attributes for ROS2 action system - self.success = result['success'] - self.return_info = result['return_info'] - return result - - - - else: - result = { - 'success': False, - 'return_info': f"Unknown command: {cmd_name}. Available commands: tare, zero, read" - } - # Update instance attributes for ROS2 action system - self.success = result['success'] - self.return_info = result['return_info'] - return result - - except json.JSONDecodeError as e: - self.logger.error(f"JSON parsing failed: {e}") - result = { - 'success': False, - 'return_info': f"JSON parsing failed: {str(e)}" - } - # Update instance attributes for ROS2 action system - self.success = result['success'] - self.return_info = result['return_info'] - return result - except Exception as e: - self.logger.error(f"Command execution failed: {e}") - result = { - 'success': False, - 'return_info': f"Command execution failed: {str(e)}" - } - # Update instance attributes for ROS2 action system - self.success = result['success'] - self.return_info = result['return_info'] - return result - - def __del__(self): - """Cleanup when object is destroyed""" - self.disconnect() - - -if __name__ == "__main__": - # Test the driver - import argparse - - parser = argparse.ArgumentParser(description="Mettler Toledo XPR Balance Driver Test") - parser.add_argument("--ip", default="192.168.1.10", help="Balance IP address") - parser.add_argument("--port", type=int, default=81, help="Balance port") - parser.add_argument("--password", default="123456", help="Balance password") - parser.add_argument("action", choices=["tare", "zero", "read"], - nargs="?", default="read", help="Action to perform") - parser.add_argument("--immediate", action="store_true", help="Use immediate mode") - - args = parser.parse_args() - - # Setup logging - logging.basicConfig(level=logging.INFO, - format="%(asctime)s %(levelname)s: %(message)s") - - # Create driver instance - balance = MettlerToledoXPR(ip=args.ip, port=args.port, password=args.password) - - try: - if args.action == "tare": - success = balance.tare(args.immediate) - print(f"Tare {'successful' if success else 'failed'}") - elif args.action == "zero": - success = balance.zero(args.immediate) - print(f"Zero {'successful' if success else 'failed'}") - else: # read - # Perform tare first, then read weight - if balance.tare(args.immediate): - weight, unit = balance.get_weight_with_unit() - print(f"Weight: {weight} {unit}") - else: - print("Tare operation failed, cannot read weight") - - finally: - balance.disconnect() \ No newline at end of file diff --git a/unilabos/devices/battery/battery.json b/unilabos/devices/battery/battery.json deleted file mode 100644 index 105ba5bd..00000000 --- a/unilabos/devices/battery/battery.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "nodes": [ - { - "id": "NEWARE_BATTERY_TEST_SYSTEM", - "name": "Neware Battery Test System", - "parent": null, - "type": "device", - "class": "neware_battery_test_system", - "position": { - "x": 620.6111111111111, - "y": 171, - "z": 0 - }, - "config": { - "ip": "127.0.0.1", - "port": 502, - "machine_id": 1, - "devtype": "27", - "timeout": 20, - "size_x": 500.0, - "size_y": 500.0, - "size_z": 2000.0 - }, - "data": {}, - "children": [] - } - ], - "links": [] -} \ No newline at end of file diff --git a/unilabos/devices/battery/neware_battery_test_system.py b/unilabos/devices/battery/neware_battery_test_system.py deleted file mode 100644 index 317e8fe5..00000000 --- a/unilabos/devices/battery/neware_battery_test_system.py +++ /dev/null @@ -1,1042 +0,0 @@ -#!/usr/bin/env python3 -# -*- coding: utf-8 -*- - -""" -新威电池测试系统设备类 -- 提供TCP通信接口查询电池通道状态 -- 支持720个通道(devid 1-7, 8, 86) -- 兼容BTSAPI getchlstatus协议 - -设备特点: -- TCP连接: 默认127.0.0.1:502 -- 通道映射: devid->subdevid->chlid 三级结构 -- 状态类型: working/stop/finish/protect/pause/false/unknown -""" - -import socket -import xml.etree.ElementTree as ET -import json -import time -from dataclasses import dataclass -from typing import Any, Dict, List, Optional, TypedDict - -from pylabrobot.resources import ResourceHolder, Coordinate, create_ordered_items_2d, Deck, Plate - -from unilabos.ros.nodes.base_device_node import ROS2DeviceNode -from unilabos.ros.nodes.presets.workstation import ROS2WorkstationNode - - -# ======================== -# 内部数据类和结构 -# ======================== - -@dataclass(frozen=True) -class ChannelKey: - devid: int - subdevid: int - chlid: int - - -@dataclass -class ChannelStatus: - state: str # working/stop/finish/protect/pause/false/unknown - color: str # 状态对应颜色 - current_A: float # 电流 (A) - voltage_V: float # 电压 (V) - totaltime_s: float # 总时间 (s) - - -class BatteryTestPositionState(TypedDict): - voltage: float # 电压 (V) - current: float # 电流 (A) - time: float # 时间 (s) - 使用totaltime - capacity: float # 容量 (Ah) - energy: float # 能量 (Wh) - - status: str # 通道状态 - color: str # 状态对应颜色 - - # 额外的inquire协议字段 - relativetime: float # 相对时间 (s) - open_or_close: int # 0=关闭, 1=打开 - step_type: str # 步骤类型 - cycle_id: int # 循环ID - step_id: int # 步骤ID - log_code: str # 日志代码 - - -class BatteryTestPosition(ResourceHolder): - def __init__( - self, - name, - size_x=60, - size_y=60, - size_z=60, - rotation=None, - category="resource_holder", - model=None, - child_location: Coordinate = Coordinate.zero(), - ): - super().__init__(name, size_x, size_y, size_z, rotation, category, model, child_location=child_location) - self._unilabos_state: Dict[str, Any] = {} - - def load_state(self, state: Dict[str, Any]) -> None: - """格式不变""" - super().load_state(state) - self._unilabos_state = state - - def serialize_state(self) -> Dict[str, Dict[str, Any]]: - """格式不变""" - data = super().serialize_state() - data.update(self._unilabos_state) - return data - - -class NewareBatteryTestSystem: - """ - 新威电池测试系统设备类 - - 提供电池测试通道状态查询、控制等功能。 - 支持720个通道的状态监控和数据导出。 - 包含完整的物料管理系统,支持2盘电池的状态映射。 - - Attributes: - ip (str): TCP服务器IP地址,默认127.0.0.1 - port (int): TCP端口,默认502 - devtype (str): 设备类型,默认"27" - timeout (int): 通信超时时间(秒),默认20 - """ - - # ======================== - # 基本通信与协议参数 - # ======================== - BTS_IP = "127.0.0.1" - BTS_PORT = 502 - DEVTYPE = "27" - TIMEOUT = 20 # 秒 - REQ_END = b"#\r\n" # 常见实现以 "#\\r\\n" 作为报文结束 - - # ======================== - # 状态与颜色映射(前端可直接使用) - # ======================== - STATUS_SET = {"working", "stop", "finish", "protect", "pause", "false"} - STATUS_COLOR = { - "working": "#22c55e", # 绿 - "stop": "#6b7280", # 灰 - "finish": "#3b82f6", # 蓝 - "protect": "#ef4444", # 红 - "pause": "#f59e0b", # 橙 - "false": "#9ca3af", # 不存在/无效 - "unknown": "#a855f7", # 未知 - } - - # 字母常量 - ascii_lowercase = 'abcdefghijklmnopqrstuvwxyz' - ascii_uppercase = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' - LETTERS = ascii_uppercase + ascii_lowercase - - def __init__(self, - ip: str = None, - port: int = None, - machine_id: int = 1, - devtype: str = None, - timeout: int = None, - - size_x: float = 500.0, - size_y: float = 500.0, - size_z: float = 2000.0, - ): - """ - 初始化新威电池测试系统 - - Args: - ip: TCP服务器IP地址 - port: TCP端口 - devtype: 设备类型标识 - timeout: 通信超时时间(秒) - machine_id: 机器ID - size_x, size_y, size_z: 设备物理尺寸 - """ - self.ip = ip or self.BTS_IP - self.port = port or self.BTS_PORT - self.machine_id = machine_id - self.devtype = devtype or self.DEVTYPE - self.timeout = timeout or self.TIMEOUT - self._last_status_update = None - self._cached_status = {} - self._ros_node: Optional[ROS2WorkstationNode] = None # ROS节点引用,由框架设置 - - - def post_init(self, ros_node): - """ - ROS节点初始化后的回调方法,用于建立设备连接 - - Args: - ros_node: ROS节点实例 - """ - self._ros_node = ros_node - # 创建2盘电池的物料管理系统 - self._setup_material_management() - # 初始化通道映射 - self._channels = self._build_channel_map() - try: - # 测试设备连接 - if self.test_connection(): - ros_node.lab_logger().info(f"新威电池测试系统连接成功: {self.ip}:{self.port}") - else: - ros_node.lab_logger().warning(f"新威电池测试系统连接失败: {self.ip}:{self.port}") - except Exception as e: - ros_node.lab_logger().error(f"新威电池测试系统初始化失败: {e}") - # 不抛出异常,允许节点继续运行,后续可以重试连接 - - def _setup_material_management(self): - """设置物料管理系统""" - # 第1盘:5行8列网格 (A1-E8) - 5行对应subdevid 1-5,8列对应chlid 1-8 - # 先给物料设置一个最大的Deck - deck_main = Deck("ADeckName", 200, 200, 200) - - plate1_resources: Dict[str, BatteryTestPosition] = create_ordered_items_2d( - BatteryTestPosition, - num_items_x=8, # 8列(对应chlid 1-8) - num_items_y=5, # 5行(对应subdevid 1-5,即A-E) - dx=10, - dy=10, - dz=0, - item_dx=45, - item_dy=45 - ) - plate1 = Plate("P1", 400, 300, 50, ordered_items=plate1_resources) - deck_main.assign_child_resource(plate1, location=Coordinate(0, 0, 0)) - - # 只有在真实ROS环境下才调用update_resource - if hasattr(self._ros_node, 'update_resource') and callable(getattr(self._ros_node, 'update_resource')): - try: - ROS2DeviceNode.run_async_func(self._ros_node.update_resource, True, **{ - "resources": [deck_main] - }) - except Exception as e: - if hasattr(self._ros_node, 'lab_logger'): - self._ros_node.lab_logger().warning(f"更新资源失败: {e}") - # 在非ROS环境下忽略此错误 - - # 为第1盘资源添加P1_前缀 - self.station_resources_plate1 = {} - for name, resource in plate1_resources.items(): - new_name = f"P1_{name}" - self.station_resources_plate1[new_name] = resource - - # 第2盘:5行8列网格 (A1-E8),在Z轴上偏移 - 5行对应subdevid 6-10,8列对应chlid 1-8 - plate2_resources = create_ordered_items_2d( - BatteryTestPosition, - num_items_x=8, # 8列(对应chlid 1-8) - num_items_y=5, # 5行(对应subdevid 6-10,即A-E) - dx=10, - dy=10, - dz=100, # Z轴偏移100mm - item_dx=65, - item_dy=65 - ) - - # 为第2盘资源添加P2_前缀 - self.station_resources_plate2 = {} - for name, resource in plate2_resources.items(): - new_name = f"P2_{name}" - self.station_resources_plate2[new_name] = resource - - # 合并两盘资源为统一的station_resources - self.station_resources = {} - self.station_resources.update(self.station_resources_plate1) - self.station_resources.update(self.station_resources_plate2) - - # ======================== - # 核心属性(Uni-Lab标准) - # ======================== - - @property - def status(self) -> str: - """设备状态属性 - 会被自动识别并定时广播""" - try: - if self.test_connection(): - return "Connected" - else: - return "Disconnected" - except: - return "Error" - - @property - def channel_status(self) -> Dict[int, Dict]: - """ - 获取所有通道状态(按设备ID分组) - - 这个属性会执行实际的TCP查询并返回格式化的状态数据。 - 结果按设备ID分组,包含统计信息和详细状态。 - - Returns: - Dict[int, Dict]: 按设备ID分组的通道状态统计 - """ - status_map = self._query_all_channels() - status_processed = {} if not status_map else self._group_by_devid(status_map) - - # 修复数据过滤逻辑:如果machine_id对应的数据不存在,尝试使用第一个可用的设备数据 - status_current_machine = status_processed.get(self.machine_id, {}) - - if not status_current_machine and status_processed: - # 如果machine_id没有匹配到数据,使用第一个可用的设备数据 - first_devid = next(iter(status_processed.keys())) - status_current_machine = status_processed[first_devid] - if self._ros_node: - self._ros_node.lab_logger().warning( - f"machine_id {self.machine_id} 没有匹配到数据,使用设备ID {first_devid} 的数据" - ) - - # 确保有默认的数据结构 - if not status_current_machine: - status_current_machine = { - "stats": {s: 0 for s in self.STATUS_SET | {"unknown"}}, - "subunits": {} - } - - # 确保subunits存在 - subunits = status_current_machine.get("subunits", {}) - - # 处理2盘电池的状态映射 - self._update_plate_resources(subunits) - - return status_current_machine - - def _update_plate_resources(self, subunits: Dict): - """更新两盘电池资源的状态""" - # 第1盘:subdevid 1-5 映射到 P1_A1-P1_E8 (5行8列) - for subdev_id in range(1, 6): # subdevid 1-5 - status_row = subunits.get(subdev_id, {}) - - for chl_id in range(1, 9): # chlid 1-8 - try: - # 计算在5×8网格中的位置 - row_idx = (subdev_id - 1) # 0-4 (对应A-E) - col_idx = (chl_id - 1) # 0-7 (对应1-8) - resource_name = f"P1_{self.LETTERS[row_idx]}{col_idx + 1}" - - r = self.station_resources.get(resource_name) - if r: - status_channel = status_row.get(chl_id, {}) - channel_state = { - "status": status_channel.get("state", "unknown"), - "color": status_channel.get("color", self.STATUS_COLOR["unknown"]), - "voltage": status_channel.get("voltage_V", 0.0), - "current": status_channel.get("current_A", 0.0), - "time": status_channel.get("totaltime_s", 0.0), - } - r.load_state(channel_state) - except (KeyError, IndexError): - continue - - # 第2盘:subdevid 6-10 映射到 P2_A1-P2_E8 (5行8列) - for subdev_id in range(6, 11): # subdevid 6-10 - status_row = subunits.get(subdev_id, {}) - - for chl_id in range(1, 9): # chlid 1-8 - try: - # 计算在5×8网格中的位置 - row_idx = (subdev_id - 6) # 0-4 (subdevid 6->0, 7->1, ..., 10->4) (对应A-E) - col_idx = (chl_id - 1) # 0-7 (对应1-8) - resource_name = f"P2_{self.LETTERS[row_idx]}{col_idx + 1}" - - r = self.station_resources.get(resource_name) - if r: - status_channel = status_row.get(chl_id, {}) - channel_state = { - "status": status_channel.get("state", "unknown"), - "color": status_channel.get("color", self.STATUS_COLOR["unknown"]), - "voltage": status_channel.get("voltage_V", 0.0), - "current": status_channel.get("current_A", 0.0), - "time": status_channel.get("totaltime_s", 0.0), - } - r.load_state(channel_state) - except (KeyError, IndexError): - continue - - @property - def connection_info(self) -> Dict[str, str]: - """获取连接信息""" - return { - "ip": self.ip, - "port": str(self.port), - "devtype": self.devtype, - "timeout": f"{self.timeout}s" - } - - @property - def total_channels(self) -> int: - """获取总通道数""" - return len(self._channels) - - # ======================== - # 设备动作方法(Uni-Lab标准) - # ======================== - - def export_status_json(self, filepath: str = "bts_status.json") -> dict: - """ - 导出当前状态到JSON文件(ROS2动作) - - Args: - filepath: 输出文件路径 - - Returns: - dict: ROS2动作结果格式 {"return_info": str, "success": bool} - """ - try: - grouped_status = self.channel_status - payload = { - "timestamp": time.time(), - "device_info": { - "ip": self.ip, - "port": self.port, - "devtype": self.devtype, - "total_channels": self.total_channels - }, - "data": grouped_status, - "color_mapping": self.STATUS_COLOR - } - - with open(filepath, "w", encoding="utf-8") as f: - json.dump(payload, f, ensure_ascii=False, indent=2) - - success_msg = f"状态数据已成功导出到: {filepath}" - if self._ros_node: - self._ros_node.lab_logger().info(success_msg) - return {"return_info": success_msg, "success": True} - - except Exception as e: - error_msg = f"导出JSON失败: {str(e)}" - if self._ros_node: - self._ros_node.lab_logger().error(error_msg) - return {"return_info": error_msg, "success": False} - - @property - def plate_status(self) -> Dict[str, Any]: - """ - 获取所有盘的状态信息(属性) - - Returns: - 包含所有盘状态信息的字典 - """ - try: - # 确保先更新所有资源的状态数据 - _ = self.channel_status # 这会触发状态更新并调用load_state - - # 手动计算两盘的状态,避免调用需要参数的get_plate_status方法 - plate1_stats = {s: 0 for s in self.STATUS_SET | {"unknown"}} - plate1_active = [] - - for name, resource in self.station_resources_plate1.items(): - state = getattr(resource, '_unilabos_state', {}) - status = state.get('status', 'unknown') - plate1_stats[status] += 1 - - if status != 'unknown': - plate1_active.append({ - 'name': name, - 'status': status, - 'color': state.get('color', self.STATUS_COLOR['unknown']), - 'voltage': state.get('voltage', 0.0), - 'current': state.get('current', 0.0), - }) - - plate2_stats = {s: 0 for s in self.STATUS_SET | {"unknown"}} - plate2_active = [] - - for name, resource in self.station_resources_plate2.items(): - state = getattr(resource, '_unilabos_state', {}) - status = state.get('status', 'unknown') - plate2_stats[status] += 1 - - if status != 'unknown': - plate2_active.append({ - 'name': name, - 'status': status, - 'color': state.get('color', self.STATUS_COLOR['unknown']), - 'voltage': state.get('voltage', 0.0), - 'current': state.get('current', 0.0), - }) - - return { - "plate1": { - 'plate_num': 1, - 'stats': plate1_stats, - 'total_positions': len(self.station_resources_plate1), - 'active_positions': len(plate1_active), - 'resources': plate1_active - }, - "plate2": { - 'plate_num': 2, - 'stats': plate2_stats, - 'total_positions': len(self.station_resources_plate2), - 'active_positions': len(plate2_active), - 'resources': plate2_active - }, - "total_plates": 2 - } - except Exception as e: - if self._ros_node: - self._ros_node.lab_logger().error(f"获取盘状态失败: {e}") - return { - "plate1": {"error": str(e)}, - "plate2": {"error": str(e)}, - "total_plates": 2 - } - - - - - - # ======================== - # 辅助方法 - # ======================== - - def test_connection(self) -> bool: - """ - 测试TCP连接是否正常 - - Returns: - bool: 连接是否成功 - """ - try: - with socket.create_connection((self.ip, self.port), timeout=5) as sock: - return True - except Exception as e: - if self._ros_node: - self._ros_node.lab_logger().debug(f"连接测试失败: {e}") - return False - - def print_status_summary(self) -> None: - """ - 打印通道状态摘要信息(支持2盘电池) - """ - try: - status_data = self.channel_status - if not status_data: - print(" 未获取到状态数据") - return - - print(f" 状态统计:") - total_channels = 0 - - # 从channel_status获取stats字段 - stats = status_data.get("stats", {}) - for state, count in stats.items(): - if isinstance(count, int) and count > 0: - color = self.STATUS_COLOR.get(state, "#000000") - print(f" {state}: {count} 个通道 ({color})") - total_channels += count - - print(f" 总计: {total_channels} 个通道") - print(f" 第1盘资源数: {len(self.station_resources_plate1)}") - print(f" 第2盘资源数: {len(self.station_resources_plate2)}") - print(f" 总资源数: {len(self.station_resources)}") - - except Exception as e: - print(f" 获取状态失败: {e}") - - def get_device_summary(self) -> dict: - """ - 获取设备级别的摘要统计(设备动作) - - Returns: - dict: ROS2动作结果格式 {"return_info": str, "success": bool} - """ - try: - # 确保_channels已初始化 - if not hasattr(self, '_channels') or not self._channels: - self._channels = self._build_channel_map() - - summary = {} - for channel in self._channels: - devid = channel.devid - summary[devid] = summary.get(devid, 0) + 1 - - result_info = json.dumps(summary, ensure_ascii=False) - success_msg = f"设备摘要统计: {result_info}" - if self._ros_node: - self._ros_node.lab_logger().info(success_msg) - return {"return_info": result_info, "success": True} - - except Exception as e: - error_msg = f"获取设备摘要失败: {str(e)}" - if self._ros_node: - self._ros_node.lab_logger().error(error_msg) - return {"return_info": error_msg, "success": False} - - def test_connection_action(self) -> dict: - """ - 测试TCP连接(设备动作) - - Returns: - dict: ROS2动作结果格式 {"return_info": str, "success": bool} - """ - try: - is_connected = self.test_connection() - if is_connected: - success_msg = f"TCP连接测试成功: {self.ip}:{self.port}" - if self._ros_node: - self._ros_node.lab_logger().info(success_msg) - return {"return_info": success_msg, "success": True} - else: - error_msg = f"TCP连接测试失败: {self.ip}:{self.port}" - if self._ros_node: - self._ros_node.lab_logger().warning(error_msg) - return {"return_info": error_msg, "success": False} - - except Exception as e: - error_msg = f"连接测试异常: {str(e)}" - if self._ros_node: - self._ros_node.lab_logger().error(error_msg) - return {"return_info": error_msg, "success": False} - - def print_status_summary_action(self) -> dict: - """ - 打印状态摘要(设备动作) - - Returns: - dict: ROS2动作结果格式 {"return_info": str, "success": bool} - """ - try: - self.print_status_summary() - success_msg = "状态摘要已打印到控制台" - if self._ros_node: - self._ros_node.lab_logger().info(success_msg) - return {"return_info": success_msg, "success": True} - - except Exception as e: - error_msg = f"打印状态摘要失败: {str(e)}" - if self._ros_node: - self._ros_node.lab_logger().error(error_msg) - return {"return_info": error_msg, "success": False} - - def query_plate_action(self, plate_id: str = "P1") -> dict: - """ - 查询指定盘的详细信息(设备动作) - - Args: - plate_id: 盘号标识,如"P1"或"P2" - - Returns: - dict: ROS2动作结果格式,包含指定盘的详细通道信息 - """ - try: - # 解析盘号 - if plate_id.upper() == "P1": - plate_num = 1 - elif plate_id.upper() == "P2": - plate_num = 2 - else: - error_msg = f"无效的盘号: {plate_id},仅支持P1或P2" - if self._ros_node: - self._ros_node.lab_logger().warning(error_msg) - return {"return_info": error_msg, "success": False} - - # 获取指定盘的详细信息 - plate_detail = self._get_plate_detail_info(plate_num) - - success_msg = f"成功获取{plate_id}盘详细信息,包含{len(plate_detail['channels'])}个通道" - if self._ros_node: - self._ros_node.lab_logger().info(success_msg) - - return { - "return_info": success_msg, - "success": True, - "plate_data": plate_detail - } - - except Exception as e: - error_msg = f"查询盘{plate_id}详细信息失败: {str(e)}" - if self._ros_node: - self._ros_node.lab_logger().error(error_msg) - return {"return_info": error_msg, "success": False} - - def _get_plate_detail_info(self, plate_num: int) -> dict: - """ - 获取指定盘的详细信息,包含设备ID、子设备ID、通道ID映射 - - Args: - plate_num: 盘号 (1 或 2) - - Returns: - dict: 包含详细通道信息的字典 - """ - # 获取最新的通道状态数据 - channel_status_data = self.channel_status - subunits = channel_status_data.get('subunits', {}) - - if plate_num == 1: - devid = 1 - subdevid_range = range(1, 6) # 子设备ID 1-5 - elif plate_num == 2: - devid = 1 - subdevid_range = range(6, 11) # 子设备ID 6-10 - else: - raise ValueError("盘号必须是1或2") - - channels = [] - - # 直接从subunits数据构建通道信息,而不依赖资源状态 - for subdev_id in subdevid_range: - status_row = subunits.get(subdev_id, {}) - - for chl_id in range(1, 9): # chlid 1-8 - try: - # 计算在5×8网格中的位置 - if plate_num == 1: - row_idx = (subdev_id - 1) # 0-4 (对应A-E) - else: # plate_num == 2 - row_idx = (subdev_id - 6) # 0-4 (subdevid 6->0, 7->1, ..., 10->4) (对应A-E) - - col_idx = (chl_id - 1) # 0-7 (对应1-8) - position = f"{self.LETTERS[row_idx]}{col_idx + 1}" - name = f"P{plate_num}_{position}" - - # 从subunits直接获取通道状态数据 - status_channel = status_row.get(chl_id, {}) - - # 提取metrics数据(如果存在) - metrics = status_channel.get('metrics', {}) - - channel_info = { - 'name': name, - 'devid': devid, - 'subdevid': subdev_id, - 'chlid': chl_id, - 'position': position, - 'status': status_channel.get('state', 'unknown'), - 'color': status_channel.get('color', self.STATUS_COLOR['unknown']), - 'voltage': metrics.get('voltage_V', 0.0), - 'current': metrics.get('current_A', 0.0), - 'time': metrics.get('totaltime_s', 0.0) - } - - channels.append(channel_info) - - except (ValueError, IndexError, KeyError): - # 如果解析失败,跳过该通道 - continue - - # 按位置排序(先按行,再按列) - channels.sort(key=lambda x: (x['subdevid'], x['chlid'])) - - # 统计状态 - stats = {s: 0 for s in self.STATUS_SET | {"unknown"}} - for channel in channels: - stats[channel['status']] += 1 - - return { - 'plate_id': f"P{plate_num}", - 'plate_num': plate_num, - 'devid': devid, - 'subdevid_range': list(subdevid_range), - 'total_channels': len(channels), - 'stats': stats, - 'channels': channels - } - - # ======================== - # TCP通信和协议处理 - # ======================== - - def _build_channel_map(self) -> List['ChannelKey']: - """构建全量通道映射(720个通道)""" - channels = [] - - # devid 1-7: subdevid 1-10, chlid 1-8 - for devid in range(1, 8): - for sub in range(1, 11): - for ch in range(1, 9): - channels.append(ChannelKey(devid, sub, ch)) - - # devid 8: subdevid 11-20, chlid 1-8 - for sub in range(11, 21): - for ch in range(1, 9): - channels.append(ChannelKey(8, sub, ch)) - - # devid 86: subdevid 1-10, chlid 1-8 - for sub in range(1, 11): - for ch in range(1, 9): - channels.append(ChannelKey(86, sub, ch)) - - return channels - - def _query_all_channels(self) -> Dict['ChannelKey', dict]: - """执行TCP查询获取所有通道状态""" - try: - req_xml = self._build_inquire_xml() - - with socket.create_connection((self.ip, self.port), timeout=self.timeout) as sock: - sock.settimeout(self.timeout) - sock.sendall(req_xml) - response = self._recv_until(sock) - - return self._parse_inquire_resp(response) - except Exception as e: - if self._ros_node: - self._ros_node.lab_logger().error(f"查询通道状态失败: {e}") - else: - print(f"查询通道状态失败: {e}") - return {} - - def _build_inquire_xml(self) -> bytes: - """构造inquire请求XML""" - lines = [ - '', - '', - 'inquire', - f'' - ] - - for c in self._channels: - lines.append( - f'true' - ) - - lines.extend(['', '']) - xml_text = "\n".join(lines) - return xml_text.encode("utf-8") + self.REQ_END - - def _recv_until(self, sock: socket.socket, end_token: bytes = None, - alt_close_tag: bytes = b"") -> bytes: - """接收TCP响应数据""" - if end_token is None: - end_token = self.REQ_END - - buf = bytearray() - while True: - chunk = sock.recv(8192) - if not chunk: - break - buf.extend(chunk) - if end_token in buf: - cut = buf.rfind(end_token) - return bytes(buf[:cut]) - if alt_close_tag in buf: - cut = buf.rfind(alt_close_tag) + len(alt_close_tag) - return bytes(buf[:cut]) - return bytes(buf) - - def _parse_inquire_resp(self, xml_bytes: bytes) -> Dict['ChannelKey', dict]: - """解析inquire_resp响应XML""" - mapping = {} - - try: - xml_text = xml_bytes.decode("utf-8", errors="ignore").strip() - if not xml_text: - return mapping - - root = ET.fromstring(xml_text) - cmd = root.findtext("cmd", default="").strip() - - if cmd != "inquire_resp": - return mapping - - list_node = root.find("list") - if list_node is None: - return mapping - - for node in list_node.findall("inquire"): - # 解析 dev="27-1-1-1-0" - dev = node.get("dev", "") - parts = dev.split("-") - # 容错:至少需要 5 段 - if len(parts) < 5: - continue - try: - devtype = int(parts[0]) # 未使用,但解析以校验正确性 - devid = int(parts[1]) - subdevid = int(parts[2]) - chlid = int(parts[3]) - aux = int(parts[4]) - except ValueError: - continue - - key = ChannelKey(devid, subdevid, chlid) - - # 提取属性,带类型转换与缺省值 - def fget(name: str, cast, default): - v = node.get(name) - if v is None or v == "": - return default - try: - return cast(v) - except Exception: - return default - - workstatus = (node.get("workstatus", "") or "").lower() - if workstatus not in self.STATUS_SET: - workstatus = "unknown" - - current = fget("current", float, 0.0) - voltage = fget("voltage", float, 0.0) - capacity = fget("capacity", float, 0.0) - energy = fget("energy", float, 0.0) - totaltime = fget("totaltime", float, 0.0) - relativetime = fget("relativetime", float, 0.0) - open_close = fget("open_or_close", int, 0) - cycle_id = fget("cycle_id", int, 0) - step_id = fget("step_id", int, 0) - step_type = node.get("step_type", "") or "" - log_code = node.get("log_code", "") or "" - barcode = node.get("barcode") - - mapping[key] = { - "state": workstatus, - "color": self.STATUS_COLOR.get(workstatus, self.STATUS_COLOR["unknown"]), - "current_A": current, - "voltage_V": voltage, - "capacity_Ah": capacity, - "energy_Wh": energy, - "totaltime_s": totaltime, - "relativetime_s": relativetime, - "open_or_close": open_close, - "step_type": step_type, - "cycle_id": cycle_id, - "step_id": step_id, - "log_code": log_code, - **({"barcode": barcode} if barcode is not None else {}), - } - - except Exception as e: - if self._ros_node: - self._ros_node.lab_logger().error(f"解析XML响应失败: {e}") - else: - print(f"解析XML响应失败: {e}") - - return mapping - - def _group_by_devid(self, status_map: Dict['ChannelKey', dict]) -> Dict[int, Dict]: - """按设备ID分组状态数据""" - result = {} - - for key, val in status_map.items(): - if key.devid not in result: - result[key.devid] = { - "stats": {s: 0 for s in self.STATUS_SET | {"unknown"}}, - "subunits": {} - } - - dev = result[key.devid] - state = val.get("state", "unknown") - dev["stats"][state] = dev["stats"].get(state, 0) + 1 - - subunits = dev["subunits"] - if key.subdevid not in subunits: - subunits[key.subdevid] = {} - - subunits[key.subdevid][key.chlid] = { - "state": state, - "color": val.get("color", self.STATUS_COLOR["unknown"]), - "open_or_close": val.get("open_or_close", 0), - "metrics": { - "voltage_V": val.get("voltage_V", 0.0), - "current_A": val.get("current_A", 0.0), - "capacity_Ah": val.get("capacity_Ah", 0.0), - "energy_Wh": val.get("energy_Wh", 0.0), - "totaltime_s": val.get("totaltime_s", 0.0), - "relativetime_s": val.get("relativetime_s", 0.0) - }, - "meta": { - "step_type": val.get("step_type", ""), - "cycle_id": val.get("cycle_id", 0), - "step_id": val.get("step_id", 0), - "log_code": val.get("log_code", "") - } - } - - return result - - -# ======================== -# 示例和测试代码 -# ======================== -def main(): - """测试和演示设备类的使用(支持2盘80颗电池)""" - print("=== 新威电池测试系统设备类演示(2盘80颗电池) ===") - - # 创建设备实例 - bts = NewareBatteryTestSystem() - - # 创建一个模拟的ROS节点用于初始化 - class MockRosNode: - def lab_logger(self): - import logging - return logging.getLogger(__name__) - - def update_resource(self, *args, **kwargs): - pass # 空实现,避免ROS调用错误 - - # 调用post_init进行正确的初始化 - mock_ros_node = MockRosNode() - bts.post_init(mock_ros_node) - - # 测试连接 - print(f"\n1. 连接测试:") - print(f" 连接信息: {bts.connection_info}") - if bts.test_connection(): - print(" ✓ TCP连接正常") - else: - print(" ✗ TCP连接失败") - return - - # 获取设备摘要 - print(f"\n2. 设备摘要:") - print(f" 总通道数: {bts.total_channels}") - summary_result = bts.get_device_summary() - if summary_result["success"]: - # 直接解析return_info,因为它就是JSON字符串 - summary = json.loads(summary_result["return_info"]) - for devid, count in summary.items(): - print(f" 设备ID {devid}: {count} 个通道") - else: - print(f" 获取设备摘要失败: {summary_result['return_info']}") - - # 显示物料管理系统信息 - print(f"\n3. 物料管理系统:") - print(f" 第1盘资源数: {len(bts.station_resources_plate1)}") - print(f" 第2盘资源数: {len(bts.station_resources_plate2)}") - print(f" 总资源数: {len(bts.station_resources)}") - - # 获取实时状态 - print(f"\n4. 获取通道状态:") - try: - bts.print_status_summary() - except Exception as e: - print(f" 获取状态失败: {e}") - - # 分别获取两盘的状态 - print(f"\n5. 分盘状态统计:") - try: - plate_status_data = bts.plate_status - for plate_num in [1, 2]: - plate_key = f"plate{plate_num}" # 修正键名格式:plate1, plate2 - if plate_key in plate_status_data: - plate_info = plate_status_data[plate_key] - print(f" 第{plate_num}盘:") - print(f" 总位置数: {plate_info['total_positions']}") - print(f" 活跃位置数: {plate_info['active_positions']}") - for state, count in plate_info['stats'].items(): - if count > 0: - print(f" {state}: {count} 个位置") - else: - print(f" 第{plate_num}盘: 无数据") - except Exception as e: - print(f" 获取分盘状态失败: {e}") - - # 导出JSON - print(f"\n6. 导出状态数据:") - result = bts.export_status_json("demo_2plate_status.json") - if result["success"]: - print(" ✓ 状态数据已导出到 demo_2plate_status.json") - else: - print(" ✗ 导出失败") - - -if __name__ == "__main__": - main() diff --git a/unilabos/devices/cameraSII/__init__.py b/unilabos/devices/cameraSII/__init__.py deleted file mode 100644 index e69de29b..00000000 diff --git a/unilabos/devices/cameraSII/cameraDriver.py b/unilabos/devices/cameraSII/cameraDriver.py deleted file mode 100644 index 27d27b90..00000000 --- a/unilabos/devices/cameraSII/cameraDriver.py +++ /dev/null @@ -1,712 +0,0 @@ -#!/usr/bin/env python3 -import asyncio -import json -import subprocess -import sys -import threading -from typing import Optional, Dict, Any -import logging - -import requests -import websockets - -logging.getLogger("zeep").setLevel(logging.WARNING) -logging.getLogger("zeep.xsd.schema").setLevel(logging.WARNING) -logging.getLogger("zeep.xsd.schema.schema").setLevel(logging.WARNING) -from onvif import ONVIFCamera # 新增:ONVIF PTZ 控制 - - -# ======================= 独立的 PTZController ======================= -class PTZController: - def __init__(self, host: str, port: int, user: str, password: str): - """ - :param host: 摄像机 IP 或域名(和 RTSP 的一样即可) - :param port: ONVIF 端口(多数为 80,看你的设备) - :param user: 摄像机用户名 - :param password: 摄像机密码 - """ - self.host = host - self.port = port - self.user = user - self.password = password - - self.cam: Optional[ONVIFCamera] = None - self.media_service = None - self.ptz_service = None - self.profile = None - - def connect(self) -> bool: - """ - 建立 ONVIF 连接并初始化 PTZ 能力,失败返回 False(不抛异常) - Note: 首先 pip install onvif-zeep - """ - try: - self.cam = ONVIFCamera(self.host, self.port, self.user, self.password) - self.media_service = self.cam.create_media_service() - self.ptz_service = self.cam.create_ptz_service() - profiles = self.media_service.GetProfiles() - if not profiles: - print("[PTZ] No media profiles found on camera.", file=sys.stderr) - return False - self.profile = profiles[0] - return True - except Exception as e: - print(f"[PTZ] Failed to init ONVIF PTZ: {e}", file=sys.stderr) - return False - - def _continuous_move(self, pan: float, tilt: float, zoom: float, duration: float) -> bool: - """ - 连续移动一段时间(秒),之后自动停止。 - 此函数为阻塞模式:只有在 Stop 调用结束后,才返回 True/False。 - """ - if not self.ptz_service or not self.profile: - print("[PTZ] _continuous_move: ptz_service or profile not ready", file=sys.stderr) - return False - - # 进入前先强行停一下,避免前一次残留动作 - self._force_stop() - - req = self.ptz_service.create_type("ContinuousMove") - req.ProfileToken = self.profile.token - - req.Velocity = { - "PanTilt": {"x": pan, "y": tilt}, - "Zoom": {"x": zoom}, - } - - try: - print(f"[PTZ] ContinuousMove start: pan={pan}, tilt={tilt}, zoom={zoom}, duration={duration}", file=sys.stderr) - self.ptz_service.ContinuousMove(req) - except Exception as e: - print(f"[PTZ] ContinuousMove failed: {e}", file=sys.stderr) - return False - - # 阻塞等待:这里决定“运动时间” - import time - wait_seconds = max(2 * duration, 0.0) - time.sleep(wait_seconds) - - # 运动完成后强制停止 - return self._force_stop() - - def stop(self) -> bool: - """ - 阻塞调用 Stop(带重试),成功 True,失败 False。 - """ - return self._force_stop() - - # ------- 对外动作接口(给 CameraController 调用) ------- - # 所有接口都为“阻塞模式”:只有在运动 + Stop 完成后才返回 True/False - - def move_up(self, speed: float = 0.5, duration: float = 1.0) -> bool: - print(f"[PTZ] move_up called, speed={speed}, duration={duration}", file=sys.stderr) - return self._continuous_move(pan=0.0, tilt=+speed, zoom=0.0, duration=duration) - - def move_down(self, speed: float = 0.5, duration: float = 1.0) -> bool: - print(f"[PTZ] move_down called, speed={speed}, duration={duration}", file=sys.stderr) - return self._continuous_move(pan=0.0, tilt=-speed, zoom=0.0, duration=duration) - - def move_left(self, speed: float = 0.2, duration: float = 1.0) -> bool: - print(f"[PTZ] move_left called, speed={speed}, duration={duration}", file=sys.stderr) - return self._continuous_move(pan=-speed, tilt=0.0, zoom=0.0, duration=duration) - - def move_right(self, speed: float = 0.2, duration: float = 1.0) -> bool: - print(f"[PTZ] move_right called, speed={speed}, duration={duration}", file=sys.stderr) - return self._continuous_move(pan=+speed, tilt=0.0, zoom=0.0, duration=duration) - - # ------- 占位的变倍接口(当前设备不支持) ------- - def zoom_in(self, speed: float = 0.2, duration: float = 1.0) -> bool: - """ - 当前设备不支持变倍;保留方法只是避免上层调用时报错。 - """ - print("[PTZ] zoom_in is disabled for this device.", file=sys.stderr) - return False - - def zoom_out(self, speed: float = 0.2, duration: float = 1.0) -> bool: - """ - 当前设备不支持变倍;保留方法只是避免上层调用时报错。 - """ - print("[PTZ] zoom_out is disabled for this device.", file=sys.stderr) - return False - - def _force_stop(self, retries: int = 3, delay: float = 0.1) -> bool: - """ - 尝试多次调用 Stop,作为“强制停止”手段。 - :param retries: 重试次数 - :param delay: 每次重试间隔(秒) - """ - if not self.ptz_service or not self.profile: - print("[PTZ] _force_stop: ptz_service or profile not ready", file=sys.stderr) - return False - - import time - last_error = None - for i in range(retries): - try: - print(f"[PTZ] _force_stop: calling Stop(), attempt={i+1}", file=sys.stderr) - self.ptz_service.Stop({"ProfileToken": self.profile.token}) - print("[PTZ] _force_stop: Stop() returned OK", file=sys.stderr) - return True - except Exception as e: - last_error = e - print(f"[PTZ] _force_stop: Stop() failed at attempt {i+1}: {e}", file=sys.stderr) - time.sleep(delay) - - print(f"[PTZ] _force_stop: all {retries} attempts failed, last error: {last_error}", file=sys.stderr) - return False - -# ======================= CameraController(加入 PTZ) ======================= - -class CameraController: - """ - Uni-Lab-OS 摄像头驱动(driver 形式) - 启动 Uni-Lab-OS 后,立即开始推流 - - - WebSocket 信令:通过 signal_backend_url 连接到后端 - 例如: wss://sciol.ac.cn/api/realtime/signal/host/ - - 媒体服务器:通过 rtmp_url / webrtc_api / webrtc_stream_url - 当前配置为 SRS,与独立 HostSimulator 独立运行脚本保持一致。 - """ - - def __init__( - self, - host_id: str = "demo-host", - - # (1)信令后端(WebSocket) - signal_backend_url: str = "wss://sciol.ac.cn/api/realtime/signal/host", - - # (2)媒体后端(RTMP + WebRTC API) - rtmp_url: str = "rtmp://srs.sciol.ac.cn:4499/live/camera-01", - webrtc_api: str = "https://srs.sciol.ac.cn/rtc/v1/play/", - webrtc_stream_url: str = "webrtc://srs.sciol.ac.cn:4500/live/camera-01", - camera_rtsp_url: str = "", - - # (3)PTZ 控制相关(ONVIF) - ptz_host: str = "", # 一般就是摄像头 IP,比如 "192.168.31.164" - ptz_port: int = 80, # ONVIF 端口,不一定是 80,按实际情况改 - ptz_user: str = "", # admin - ptz_password: str = "", # admin123 - ): - self.host_id = host_id - self.camera_rtsp_url = camera_rtsp_url - - # 拼接最终的 WebSocket URL:.../host/ - signal_backend_url = signal_backend_url.rstrip("/") - if not signal_backend_url.endswith("/host"): - signal_backend_url = signal_backend_url + "/host" - self.signal_backend_url = f"{signal_backend_url}/{host_id}" - - # 媒体服务器配置 - self.rtmp_url = rtmp_url - self.webrtc_api = webrtc_api - self.webrtc_stream_url = webrtc_stream_url - - # PTZ 控制 - self.ptz_host = ptz_host - self.ptz_port = ptz_port - self.ptz_user = ptz_user - self.ptz_password = ptz_password - self._ptz: Optional[PTZController] = None - self._init_ptz_if_possible() - - # 运行时状态 - self._ws: Optional[object] = None - self._ffmpeg_process: Optional[subprocess.Popen] = None - self._running = False - self._loop_task: Optional[asyncio.Future] = None - - # 事件循环 & 线程 - self._loop: Optional[asyncio.AbstractEventLoop] = None - self._loop_thread: Optional[threading.Thread] = None - - try: - self.start() - except Exception as e: - print(f"[CameraController] __init__ auto start failed: {e}", file=sys.stderr) - - # ------------------------ PTZ 初始化 ------------------------ - - # ------------------------ PTZ 公开动作方法(一个动作一个函数) ------------------------ - - def ptz_move_up(self, speed: float = 0.5, duration: float = 1.0) -> bool: - print(f"[CameraController] ptz_move_up called, speed={speed}, duration={duration}") - return self._ptz.move_up(speed=speed, duration=duration) - - def ptz_move_down(self, speed: float = 0.5, duration: float = 1.0) -> bool: - print(f"[CameraController] ptz_move_down called, speed={speed}, duration={duration}") - return self._ptz.move_down(speed=speed, duration=duration) - - def ptz_move_left(self, speed: float = 0.2, duration: float = 1.0) -> bool: - print(f"[CameraController] ptz_move_left called, speed={speed}, duration={duration}") - return self._ptz.move_left(speed=speed, duration=duration) - - def ptz_move_right(self, speed: float = 0.2, duration: float = 1.0) -> bool: - print(f"[CameraController] ptz_move_right called, speed={speed}, duration={duration}") - return self._ptz.move_right(speed=speed, duration=duration) - - def zoom_in(self, speed: float = 0.2, duration: float = 1.0) -> bool: - """ - 当前设备不支持变倍;保留方法只是避免上层调用时报错。 - """ - print("[PTZ] zoom_in is disabled for this device.", file=sys.stderr) - return False - - def zoom_out(self, speed: float = 0.2, duration: float = 1.0) -> bool: - """ - 当前设备不支持变倍;保留方法只是避免上层调用时报错。 - """ - print("[PTZ] zoom_out is disabled for this device.", file=sys.stderr) - return False - - def ptz_stop(self): - if self._ptz is None: - print("[CameraController] PTZ not initialized.", file=sys.stderr) - return - self._ptz.stop() - - def _init_ptz_if_possible(self): - """ - 根据 ptz_host / user / password 初始化 PTZ; - 如果配置信息不全则不启用 PTZ(静默)。 - """ - if not (self.ptz_host and self.ptz_user and self.ptz_password): - return - ctrl = PTZController( - host=self.ptz_host, - port=self.ptz_port, - user=self.ptz_user, - password=self.ptz_password, - ) - if ctrl.connect(): - self._ptz = ctrl - else: - self._ptz = None - - # --------------------------------------------------------------------- - # 对外暴露的方法:供 Uni-Lab-OS 调用 - # --------------------------------------------------------------------- - - def start(self, config: Optional[Dict[str, Any]] = None): - """ - 启动 Camera 连接 & 消息循环,并在启动时就开启 FFmpeg 推流, - """ - - if self._running: - return {"status": "already_running", "host_id": self.host_id} - - # 应用 config 覆盖(如果有) - if config: - self.camera_rtsp_url = config.get("camera_rtsp_url", self.camera_rtsp_url) - cfg_host_id = config.get("host_id") - if cfg_host_id: - self.host_id = cfg_host_id - - signal_backend_url = config.get("signal_backend_url") - if signal_backend_url: - signal_backend_url = signal_backend_url.rstrip("/") - if not signal_backend_url.endswith("/host"): - signal_backend_url = signal_backend_url + "/host" - self.signal_backend_url = f"{signal_backend_url}/{self.host_id}" - - self.rtmp_url = config.get("rtmp_url", self.rtmp_url) - self.webrtc_api = config.get("webrtc_api", self.webrtc_api) - self.webrtc_stream_url = config.get( - "webrtc_stream_url", self.webrtc_stream_url - ) - - # PTZ 相关配置也允许通过 config 注入 - self.ptz_host = config.get("ptz_host", self.ptz_host) - self.ptz_port = int(config.get("ptz_port", self.ptz_port)) - self.ptz_user = config.get("ptz_user", self.ptz_user) - self.ptz_password = config.get("ptz_password", self.ptz_password) - self._init_ptz_if_possible() - - self._running = True - - # === start 时启动 FFmpeg 推流 === - self._start_ffmpeg() - - # 创建新的事件循环和线程(用于 WebSocket 信令) - self._loop = asyncio.new_event_loop() - - def loop_runner(loop: asyncio.AbstractEventLoop): - asyncio.set_event_loop(loop) - try: - loop.run_forever() - except Exception as e: - print(f"[CameraController] event loop error: {e}", file=sys.stderr) - - self._loop_thread = threading.Thread( - target=loop_runner, args=(self._loop,), daemon=True - ) - self._loop_thread.start() - - self._loop_task = asyncio.run_coroutine_threadsafe( - self._run_main_loop(), self._loop - ) - - return { - "status": "started", - "host_id": self.host_id, - "signal_backend_url": self.signal_backend_url, - "rtmp_url": self.rtmp_url, - "webrtc_api": self.webrtc_api, - "webrtc_stream_url": self.webrtc_stream_url, - } - - def stop(self) -> Dict[str, Any]: - """ - 停止推流 & 断开 WebSocket,并关闭事件循环线程。 - """ - self._running = False - - self._stop_ffmpeg() - - if self._ws and self._loop is not None: - async def close_ws(): - try: - await self._ws.close() - except Exception as e: - print( - f"[CameraController] error when closing WebSocket: {e}", - file=sys.stderr, - ) - - asyncio.run_coroutine_threadsafe(close_ws(), self._loop) - - if self._loop_task is not None: - if not self._loop_task.done(): - self._loop_task.cancel() - try: - self._loop_task.result() - except asyncio.CancelledError: - pass - except Exception as e: - print( - f"[CameraController] main loop task error in stop(): {e}", - file=sys.stderr, - ) - finally: - self._loop_task = None - - if self._loop is not None: - try: - self._loop.call_soon_threadsafe(self._loop.stop) - except Exception as e: - print( - f"[CameraController] error when stopping event loop: {e}", - file=sys.stderr, - ) - - if self._loop_thread is not None: - try: - self._loop_thread.join(timeout=5) - except Exception as e: - print( - f"[CameraController] error when joining loop thread: {e}", - file=sys.stderr, - ) - finally: - self._loop_thread = None - - self._ws = None - self._loop = None - - return {"status": "stopped", "host_id": self.host_id} - - def get_status(self) -> Dict[str, Any]: - """ - 查询当前状态,方便在 Uni-Lab-OS 中做监控。 - """ - ws_closed = None - if self._ws is not None: - ws_closed = getattr(self._ws, "closed", None) - - if ws_closed is None: - websocket_connected = self._ws is not None - else: - websocket_connected = (self._ws is not None) and (not ws_closed) - - return { - "host_id": self.host_id, - "running": self._running, - "websocket_connected": websocket_connected, - "ffmpeg_running": bool( - self._ffmpeg_process and self._ffmpeg_process.poll() is None - ), - "signal_backend_url": self.signal_backend_url, - "rtmp_url": self.rtmp_url, - } - - # --------------------------------------------------------------------- - # 内部实现逻辑:WebSocket 循环 / FFmpeg / WebRTC Offer 处理 - # --------------------------------------------------------------------- - - async def _run_main_loop(self): - try: - while self._running: - try: - async with websockets.connect(self.signal_backend_url) as ws: - self._ws = ws - await self._recv_loop() - except asyncio.CancelledError: - raise - except Exception as e: - if self._running: - print( - f"[CameraController] WebSocket connection error: {e}", - file=sys.stderr, - ) - await asyncio.sleep(3) - except asyncio.CancelledError: - pass - - async def _recv_loop(self): - assert self._ws is not None - ws = self._ws - - async for message in ws: - try: - data = json.loads(message) - except json.JSONDecodeError: - print( - f"[CameraController] received non-JSON message: {message}", - file=sys.stderr, - ) - continue - - try: - await self._handle_message(data) - except Exception as e: - print( - f"[CameraController] error while handling message {data}: {e}", - file=sys.stderr, - ) - - async def _handle_message(self, data: Dict[str, Any]): - """ - 处理来自信令后端的消息: - - command: start_stream / stop_stream / ptz_xxx - - type: offer (WebRTC) - """ - cmd = data.get("command") - - # ---------- 推流控制 ---------- - if cmd == "start_stream": - try: - self._start_ffmpeg() - except Exception as e: - print( - f"[CameraController] error when starting FFmpeg on start_stream: {e}", - file=sys.stderr, - ) - return - - if cmd == "stop_stream": - try: - self._stop_ffmpeg() - except Exception as e: - print( - f"[CameraController] error when stopping FFmpeg on stop_stream: {e}", - file=sys.stderr, - ) - return - - # # ---------- PTZ 控制 ---------- - # # 例如信令可以发: - # # {"command": "ptz_move", "direction": "down", "speed": 0.5, "duration": 0.5} - # if cmd == "ptz_move": - # if self._ptz is None: - # # 没有初始化 PTZ,静默忽略或打印一条 - # print("[CameraController] PTZ not initialized.", file=sys.stderr) - # return - - # direction = data.get("direction", "") - # speed = float(data.get("speed", 0.5)) - # duration = float(data.get("duration", 0.5)) - - # try: - # if direction == "up": - # self._ptz.move_up(speed=speed, duration=duration) - # elif direction == "down": - # self._ptz.move_down(speed=speed, duration=duration) - # elif direction == "left": - # self._ptz.move_left(speed=speed, duration=duration) - # elif direction == "right": - # self._ptz.move_right(speed=speed, duration=duration) - # elif direction == "zoom_in": - # self._ptz.zoom_in(speed=speed, duration=duration) - # elif direction == "zoom_out": - # self._ptz.zoom_out(speed=speed, duration=duration) - # elif direction == "stop": - # self._ptz.stop() - # else: - # # 未知方向,忽略 - # pass - # except Exception as e: - # print( - # f"[CameraController] error when handling PTZ move: {e}", - # file=sys.stderr, - # ) - # return - - # ---------- WebRTC Offer ---------- - if data.get("type") == "offer": - offer_sdp = data.get("sdp", "") - camera_id = data.get("cameraId", "camera-01") - try: - answer_sdp = await self._handle_webrtc_offer(offer_sdp) - except Exception as e: - print( - f"[CameraController] error when handling WebRTC offer: {e}", - file=sys.stderr, - ) - return - - if self._ws: - answer_payload = { - "type": "answer", - "sdp": answer_sdp, - "cameraId": camera_id, - "hostId": self.host_id, - } - try: - await self._ws.send(json.dumps(answer_payload)) - except Exception as e: - print( - f"[CameraController] error when sending WebRTC answer: {e}", - file=sys.stderr, - ) - - # ------------------------ FFmpeg 相关 ------------------------ - - def _start_ffmpeg(self): - if self._ffmpeg_process and self._ffmpeg_process.poll() is None: - return - - cmd = [ - "ffmpeg", - "-rtsp_transport", "tcp", - "-i", self.camera_rtsp_url, - - "-c:v", "libx264", - "-preset", "ultrafast", - "-tune", "zerolatency", - "-profile:v", "baseline", - "-b:v", "1M", - "-maxrate", "1M", - "-bufsize", "2M", - "-g", "10", - "-keyint_min", "10", - "-sc_threshold", "0", - "-pix_fmt", "yuv420p", - "-x264-params", "bframes=0", - - "-c:a", "aac", - "-ar", "44100", - "-ac", "1", - "-b:a", "64k", - - "-f", "flv", - self.rtmp_url, - ] - - try: - self._ffmpeg_process = subprocess.Popen( - cmd, - stdout=subprocess.DEVNULL, - stderr=subprocess.STDOUT, - shell=False, - ) - except Exception as e: - print(f"[CameraController] failed to start FFmpeg: {e}", file=sys.stderr) - self._ffmpeg_process = None - raise - - def _stop_ffmpeg(self): - proc = self._ffmpeg_process - - if proc and proc.poll() is None: - try: - proc.terminate() - try: - proc.wait(timeout=5) - except subprocess.TimeoutExpired: - try: - proc.kill() - try: - proc.wait(timeout=2) - except subprocess.TimeoutExpired: - print( - f"[CameraController] FFmpeg process did not exit even after kill (pid={proc.pid})", - file=sys.stderr, - ) - except Exception as e: - print( - f"[CameraController] failed to kill FFmpeg process: {e}", - file=sys.stderr, - ) - except Exception as e: - print( - f"[CameraController] error when stopping FFmpeg: {e}", - file=sys.stderr, - ) - - self._ffmpeg_process = None - - # ------------------------ WebRTC Offer 相关 ------------------------ - - async def _handle_webrtc_offer(self, offer_sdp: str) -> str: - payload = { - "api": self.webrtc_api, - "streamurl": self.webrtc_stream_url, - "sdp": offer_sdp, - } - - headers = {"Content-Type": "application/json"} - - def _do_request(): - return requests.post( - self.webrtc_api, - json=payload, - headers=headers, - timeout=10, - ) - - try: - loop = asyncio.get_running_loop() - resp = await loop.run_in_executor(None, _do_request) - except Exception as e: - print( - f"[CameraController] failed to send offer to media server: {e}", - file=sys.stderr, - ) - raise - - try: - resp.raise_for_status() - except Exception as e: - print( - f"[CameraController] media server HTTP error: {e}, " - f"status={resp.status_code}, body={resp.text[:200]}", - file=sys.stderr, - ) - raise - - try: - data = resp.json() - except Exception as e: - print( - f"[CameraController] failed to parse media server JSON: {e}, " - f"raw={resp.text[:200]}", - file=sys.stderr, - ) - raise - - answer_sdp = data.get("sdp", "") - if not answer_sdp: - msg = f"empty SDP from media server: {data}" - print(f"[CameraController] {msg}", file=sys.stderr) - raise RuntimeError(msg) - - return answer_sdp \ No newline at end of file diff --git a/unilabos/devices/cameraSII/cameraUSB.py b/unilabos/devices/cameraSII/cameraUSB.py deleted file mode 100644 index 5544a8bd..00000000 --- a/unilabos/devices/cameraSII/cameraUSB.py +++ /dev/null @@ -1,401 +0,0 @@ -#!/usr/bin/env python3 -import asyncio -import json -import subprocess -import sys -import threading -from typing import Optional, Dict, Any - -import requests -import websockets - - -class CameraController: - """ - Uni-Lab-OS 摄像头驱动(Linux USB 摄像头版,无 PTZ) - - - WebSocket 信令:signal_backend_url 连接到后端 - 例如: wss://sciol.ac.cn/api/realtime/signal/host/ - - 媒体服务器:RTMP 推流到 rtmp_url;WebRTC offer 转发到 SRS 的 webrtc_api - - 视频源:本地 USB 摄像头(V4L2,默认 /dev/video0) - """ - - def __init__( - self, - host_id: str = "demo-host", - signal_backend_url: str = "wss://sciol.ac.cn/api/realtime/signal/host", - rtmp_url: str = "rtmp://srs.sciol.ac.cn:4499/live/camera-01", - webrtc_api: str = "https://srs.sciol.ac.cn/rtc/v1/play/", - webrtc_stream_url: str = "webrtc://srs.sciol.ac.cn:4500/live/camera-01", - video_device: str = "/dev/video0", - width: int = 1280, - height: int = 720, - fps: int = 30, - video_bitrate: str = "1500k", - audio_device: Optional[str] = None, # 比如 "hw:1,0",没有音频就保持 None - audio_bitrate: str = "64k", - ): - self.host_id = host_id - - # 拼接最终 WebSocket URL:.../host/ - signal_backend_url = signal_backend_url.rstrip("/") - if not signal_backend_url.endswith("/host"): - signal_backend_url = signal_backend_url + "/host" - self.signal_backend_url = f"{signal_backend_url}/{host_id}" - - # 媒体服务器配置 - self.rtmp_url = rtmp_url - self.webrtc_api = webrtc_api - self.webrtc_stream_url = webrtc_stream_url - - # 本地采集配置 - self.video_device = video_device - self.width = int(width) - self.height = int(height) - self.fps = int(fps) - self.video_bitrate = video_bitrate - self.audio_device = audio_device - self.audio_bitrate = audio_bitrate - - # 运行时状态 - self._ws: Optional[object] = None - self._ffmpeg_process: Optional[subprocess.Popen] = None - self._running = False - self._loop_task: Optional[asyncio.Future] = None - - # 事件循环 & 线程 - self._loop: Optional[asyncio.AbstractEventLoop] = None - self._loop_thread: Optional[threading.Thread] = None - - try: - self.start() - except Exception as e: - print(f"[CameraController] __init__ auto start failed: {e}", file=sys.stderr) - - # --------------------------------------------------------------------- - # 对外方法 - # --------------------------------------------------------------------- - - def start(self, config: Optional[Dict[str, Any]] = None): - if self._running: - return {"status": "already_running", "host_id": self.host_id} - - # 应用 config 覆盖(如果有) - if config: - cfg_host_id = config.get("host_id") - if cfg_host_id: - self.host_id = cfg_host_id - - signal_backend_url = config.get("signal_backend_url") - if signal_backend_url: - signal_backend_url = signal_backend_url.rstrip("/") - if not signal_backend_url.endswith("/host"): - signal_backend_url = signal_backend_url + "/host" - self.signal_backend_url = f"{signal_backend_url}/{self.host_id}" - - self.rtmp_url = config.get("rtmp_url", self.rtmp_url) - self.webrtc_api = config.get("webrtc_api", self.webrtc_api) - self.webrtc_stream_url = config.get("webrtc_stream_url", self.webrtc_stream_url) - - self.video_device = config.get("video_device", self.video_device) - self.width = int(config.get("width", self.width)) - self.height = int(config.get("height", self.height)) - self.fps = int(config.get("fps", self.fps)) - self.video_bitrate = config.get("video_bitrate", self.video_bitrate) - self.audio_device = config.get("audio_device", self.audio_device) - self.audio_bitrate = config.get("audio_bitrate", self.audio_bitrate) - - self._running = True - - print("[CameraController] start(): starting FFmpeg streaming...", file=sys.stderr) - self._start_ffmpeg() - - self._loop = asyncio.new_event_loop() - - def loop_runner(loop: asyncio.AbstractEventLoop): - asyncio.set_event_loop(loop) - try: - loop.run_forever() - except Exception as e: - print(f"[CameraController] event loop error: {e}", file=sys.stderr) - - self._loop_thread = threading.Thread(target=loop_runner, args=(self._loop,), daemon=True) - self._loop_thread.start() - - self._loop_task = asyncio.run_coroutine_threadsafe(self._run_main_loop(), self._loop) - - return { - "status": "started", - "host_id": self.host_id, - "signal_backend_url": self.signal_backend_url, - "rtmp_url": self.rtmp_url, - "webrtc_api": self.webrtc_api, - "webrtc_stream_url": self.webrtc_stream_url, - "video_device": self.video_device, - "width": self.width, - "height": self.height, - "fps": self.fps, - "video_bitrate": self.video_bitrate, - "audio_device": self.audio_device, - } - - def stop(self) -> Dict[str, Any]: - self._running = False - - # 先取消主任务(让 ws connect/sleep 尽快退出) - if self._loop_task is not None and not self._loop_task.done(): - self._loop_task.cancel() - - # 停止推流 - self._stop_ffmpeg() - - # 关闭 WebSocket(在 loop 中执行) - if self._ws and self._loop is not None: - - async def close_ws(): - try: - await self._ws.close() - except Exception as e: - print(f"[CameraController] error closing WebSocket: {e}", file=sys.stderr) - - try: - asyncio.run_coroutine_threadsafe(close_ws(), self._loop) - except Exception: - pass - - # 停止事件循环 - if self._loop is not None: - try: - self._loop.call_soon_threadsafe(self._loop.stop) - except Exception as e: - print(f"[CameraController] error stopping loop: {e}", file=sys.stderr) - - # 等待线程退出 - if self._loop_thread is not None: - try: - self._loop_thread.join(timeout=5) - except Exception as e: - print(f"[CameraController] error joining loop thread: {e}", file=sys.stderr) - - self._ws = None - self._loop_task = None - self._loop = None - self._loop_thread = None - - return {"status": "stopped", "host_id": self.host_id} - - def get_status(self) -> Dict[str, Any]: - ws_closed = None - if self._ws is not None: - ws_closed = getattr(self._ws, "closed", None) - - if ws_closed is None: - websocket_connected = self._ws is not None - else: - websocket_connected = (self._ws is not None) and (not ws_closed) - - return { - "host_id": self.host_id, - "running": self._running, - "websocket_connected": websocket_connected, - "ffmpeg_running": bool(self._ffmpeg_process and self._ffmpeg_process.poll() is None), - "signal_backend_url": self.signal_backend_url, - "rtmp_url": self.rtmp_url, - "video_device": self.video_device, - "width": self.width, - "height": self.height, - "fps": self.fps, - "video_bitrate": self.video_bitrate, - } - - # --------------------------------------------------------------------- - # WebSocket / 信令 - # --------------------------------------------------------------------- - - async def _run_main_loop(self): - print("[CameraController] main loop started", file=sys.stderr) - try: - while self._running: - try: - async with websockets.connect(self.signal_backend_url) as ws: - self._ws = ws - print(f"[CameraController] WebSocket connected: {self.signal_backend_url}", file=sys.stderr) - await self._recv_loop() - except asyncio.CancelledError: - raise - except Exception as e: - if self._running: - print(f"[CameraController] WebSocket connection error: {e}", file=sys.stderr) - await asyncio.sleep(3) - except asyncio.CancelledError: - pass - finally: - print("[CameraController] main loop exited", file=sys.stderr) - - async def _recv_loop(self): - assert self._ws is not None - ws = self._ws - - async for message in ws: - try: - data = json.loads(message) - except json.JSONDecodeError: - print(f"[CameraController] non-JSON message: {message}", file=sys.stderr) - continue - - try: - await self._handle_message(data) - except Exception as e: - print(f"[CameraController] error handling message {data}: {e}", file=sys.stderr) - - async def _handle_message(self, data: Dict[str, Any]): - cmd = data.get("command") - - if cmd == "start_stream": - self._start_ffmpeg() - return - - if cmd == "stop_stream": - self._stop_ffmpeg() - return - - if data.get("type") == "offer": - offer_sdp = data.get("sdp", "") - camera_id = data.get("cameraId", "camera-01") - - answer_sdp = await self._handle_webrtc_offer(offer_sdp) - - if self._ws: - answer_payload = { - "type": "answer", - "sdp": answer_sdp, - "cameraId": camera_id, - "hostId": self.host_id, - } - await self._ws.send(json.dumps(answer_payload)) - - # --------------------------------------------------------------------- - # FFmpeg 推流(V4L2 USB 摄像头) - # --------------------------------------------------------------------- - - def _start_ffmpeg(self): - if self._ffmpeg_process and self._ffmpeg_process.poll() is None: - return - - # 兼容性优先:不强制输入像素格式;失败再通过外部调整 width/height/fps - video_size = f"{self.width}x{self.height}" - - cmd = [ - "ffmpeg", - "-hide_banner", - "-loglevel", - "warning", - - # video input - "-f", "v4l2", - "-framerate", str(self.fps), - "-video_size", video_size, - "-i", self.video_device, - ] - - # optional audio input - if self.audio_device: - cmd += [ - "-f", "alsa", - "-i", self.audio_device, - "-c:a", "aac", - "-b:a", self.audio_bitrate, - "-ar", "44100", - "-ac", "1", - ] - else: - cmd += ["-an"] - - # video encode + rtmp out - cmd += [ - "-c:v", "libx264", - "-preset", "ultrafast", - "-tune", "zerolatency", - "-profile:v", "baseline", - "-pix_fmt", "yuv420p", - "-b:v", self.video_bitrate, - "-maxrate", self.video_bitrate, - "-bufsize", "2M", - "-g", str(max(self.fps, 10)), - "-keyint_min", str(max(self.fps, 10)), - "-sc_threshold", "0", - "-x264-params", "bframes=0", - - "-f", "flv", - self.rtmp_url, - ] - - print(f"[CameraController] starting FFmpeg: {' '.join(cmd)}", file=sys.stderr) - - try: - # 不再丢弃日志,至少能看到 ffmpeg 报错(调试很关键) - self._ffmpeg_process = subprocess.Popen( - cmd, - stdout=subprocess.DEVNULL, - stderr=sys.stderr, - shell=False, - ) - except Exception as e: - self._ffmpeg_process = None - print(f"[CameraController] failed to start FFmpeg: {e}", file=sys.stderr) - - def _stop_ffmpeg(self): - proc = self._ffmpeg_process - if proc and proc.poll() is None: - try: - proc.terminate() - try: - proc.wait(timeout=5) - except subprocess.TimeoutExpired: - proc.kill() - except Exception as e: - print(f"[CameraController] error stopping FFmpeg: {e}", file=sys.stderr) - self._ffmpeg_process = None - - # --------------------------------------------------------------------- - # WebRTC offer -> SRS - # --------------------------------------------------------------------- - - async def _handle_webrtc_offer(self, offer_sdp: str) -> str: - payload = { - "api": self.webrtc_api, - "streamurl": self.webrtc_stream_url, - "sdp": offer_sdp, - } - headers = {"Content-Type": "application/json"} - - def _do_post(): - return requests.post(self.webrtc_api, json=payload, headers=headers, timeout=10) - - loop = asyncio.get_running_loop() - resp = await loop.run_in_executor(None, _do_post) - - resp.raise_for_status() - data = resp.json() - answer_sdp = data.get("sdp", "") - if not answer_sdp: - raise RuntimeError(f"empty SDP from media server: {data}") - return answer_sdp - - -if __name__ == "__main__": - # 直接运行用于手动测试 - c = CameraController( - host_id="demo-host", - video_device="/dev/video0", - width=1280, - height=720, - fps=30, - video_bitrate="1500k", - audio_device=None, - ) - try: - while True: - asyncio.sleep(1) - except KeyboardInterrupt: - c.stop() \ No newline at end of file diff --git a/unilabos/devices/cameraSII/cameraUSB_test.py b/unilabos/devices/cameraSII/cameraUSB_test.py deleted file mode 100644 index fd2da1ac..00000000 --- a/unilabos/devices/cameraSII/cameraUSB_test.py +++ /dev/null @@ -1,51 +0,0 @@ -#!/usr/bin/env python3 -import time -import json - -from cameraUSB import CameraController - - -def main(): - # 按你的实际情况改 - cfg = dict( - host_id="demo-host", - signal_backend_url="wss://sciol.ac.cn/api/realtime/signal/host", - rtmp_url="rtmp://srs.sciol.ac.cn:4499/live/camera-01", - webrtc_api="https://srs.sciol.ac.cn/rtc/v1/play/", - webrtc_stream_url="webrtc://srs.sciol.ac.cn:4500/live/camera-01", - video_device="/dev/video7", - width=1280, - height=720, - fps=30, - video_bitrate="1500k", - audio_device=None, - ) - - c = CameraController(**cfg) - - # 可选:如果你不想依赖 __init__ 自动 start,可以这样显式调用: - # c = CameraController(host_id=cfg["host_id"]) - # c.start(cfg) - - run_seconds = 30 # 测试运行时长 - t0 = time.time() - - try: - while True: - st = c.get_status() - print(json.dumps(st, ensure_ascii=False, indent=2)) - - if time.time() - t0 >= run_seconds: - break - - time.sleep(2) - except KeyboardInterrupt: - print("Interrupted, stopping...") - finally: - print("Stopping controller...") - c.stop() - print("Done.") - - -if __name__ == "__main__": - main() \ No newline at end of file diff --git a/unilabos/devices/cameraSII/demo_camera_pic.py b/unilabos/devices/cameraSII/demo_camera_pic.py deleted file mode 100644 index 6e117a97..00000000 --- a/unilabos/devices/cameraSII/demo_camera_pic.py +++ /dev/null @@ -1,36 +0,0 @@ -import cv2 - -# 推荐把 @ 进行 URL 编码:@ -> %40 -RTSP_URL = "rtsp://admin:admin123@192.168.31.164:554/stream1" -OUTPUT_IMAGE = "rtsp_test_frame.jpg" - -def main(): - print(f"尝试连接 RTSP 流: {RTSP_URL}") - cap = cv2.VideoCapture(RTSP_URL) - - if not cap.isOpened(): - print("错误:无法打开 RTSP 流,请检查:") - print(" 1. IP/端口是否正确") - print(" 2. 账号密码(尤其是 @ 是否已转成 %40)是否正确") - print(" 3. 摄像头是否允许当前主机访问(同一网段、防火墙等)") - return - - print("连接成功,开始读取一帧...") - ret, frame = cap.read() - - if not ret or frame is None: - print("错误:已连接但未能读取到帧数据(可能是码流未开启或网络抖动)") - cap.release() - return - - # 保存当前帧 - success = cv2.imwrite(OUTPUT_IMAGE, frame) - cap.release() - - if success: - print(f"成功截取一帧并保存为: {OUTPUT_IMAGE}") - else: - print("错误:写入图片失败,请检查磁盘权限/路径") - -if __name__ == "__main__": - main() \ No newline at end of file diff --git a/unilabos/devices/cameraSII/demo_camera_push.py b/unilabos/devices/cameraSII/demo_camera_push.py deleted file mode 100644 index 8cb02227..00000000 --- a/unilabos/devices/cameraSII/demo_camera_push.py +++ /dev/null @@ -1,21 +0,0 @@ -# run_camera_push.py -import time -from cameraDriver import CameraController # 这里根据你的文件名调整 - -if __name__ == "__main__": - controller = CameraController( - host_id="demo-host", - signal_backend_url="wss://sciol.ac.cn/api/realtime/signal/host", - rtmp_url="rtmp://srs.sciol.ac.cn:4499/live/camera-01", - webrtc_api="https://srs.sciol.ac.cn/rtc/v1/play/", - webrtc_stream_url="webrtc://srs.sciol.ac.cn:4500/live/camera-01", - camera_rtsp_url="rtsp://admin:admin123@192.168.31.164:554/stream1", - ) - - try: - while True: - status = controller.get_status() - print(status) - time.sleep(5) - except KeyboardInterrupt: - controller.stop() \ No newline at end of file diff --git a/unilabos/devices/cameraSII/ptz_cameracontroller_test.py b/unilabos/devices/cameraSII/ptz_cameracontroller_test.py deleted file mode 100644 index 2d788b62..00000000 --- a/unilabos/devices/cameraSII/ptz_cameracontroller_test.py +++ /dev/null @@ -1,78 +0,0 @@ -#!/usr/bin/env python3 -# -*- coding: utf-8 -*- - -""" -使用 CameraController 来测试 PTZ: -让摄像头按顺序向下、向上、向左、向右运动几次。 -""" - -import time -import sys - -# 根据你的工程结构修改导入路径: -# 假设 CameraController 定义在 cameraController.py 里 -from cameraDriver import CameraController - - -def main(): - # === 根据你的实际情况填 IP、端口、账号密码 === - ptz_host = "192.168.31.164" - ptz_port = 2020 # 注意要和你单独测试 PTZController 时保持一致 - ptz_user = "admin" - ptz_password = "admin123" - - # 1. 创建 CameraController 实例 - cam = CameraController( - # 其他摄像机相关参数按你类的 __init__ 来补充 - ptz_host=ptz_host, - ptz_port=ptz_port, - ptz_user=ptz_user, - ptz_password=ptz_password, - ) - - # 2. 启动 / 初始化(如果你的 CameraController 有 start(config) 之类的接口) - # 这里给一个最小的 config,重点是 PTZ 相关字段 - config = { - "ptz_host": ptz_host, - "ptz_port": ptz_port, - "ptz_user": ptz_user, - "ptz_password": ptz_password, - } - - try: - cam.start(config) - except Exception as e: - print(f"[TEST] CameraController start() 失败: {e}", file=sys.stderr) - return - - # 这里可以判断一下内部 _ptz 是否初始化成功(如果你对 CameraController 做了封装) - if getattr(cam, "_ptz", None) is None: - print("[TEST] CameraController 内部 PTZ 未初始化成功,请检查 ptz_host/port/user/password 配置。", file=sys.stderr) - return - - # 3. 依次调用 CameraController 的 PTZ 方法 - # 这里假设你在 CameraController 中提供了这几个对外方法: - # ptz_move_down / ptz_move_up / ptz_move_left / ptz_move_right - # 如果你命名不一样,把下面调用名改成你的即可。 - - print("向下移动(通过 CameraController)...") - cam.ptz_move_down(speed=0.5, duration=1.0) - time.sleep(1) - - print("向上移动(通过 CameraController)...") - cam.ptz_move_up(speed=0.5, duration=1.0) - time.sleep(1) - - print("向左移动(通过 CameraController)...") - cam.ptz_move_left(speed=0.5, duration=1.0) - time.sleep(1) - - print("向右移动(通过 CameraController)...") - cam.ptz_move_right(speed=0.5, duration=1.0) - time.sleep(1) - - print("测试结束。") - - -if __name__ == "__main__": - main() \ No newline at end of file diff --git a/unilabos/devices/cameraSII/ptz_test.py b/unilabos/devices/cameraSII/ptz_test.py deleted file mode 100644 index 018c3d29..00000000 --- a/unilabos/devices/cameraSII/ptz_test.py +++ /dev/null @@ -1,50 +0,0 @@ -#!/usr/bin/env python3 -# -*- coding: utf-8 -*- - -""" -测试 cameraDriver.py中的 PTZController 类,让摄像头按顺序运动几次 -""" - -import time - -from cameraDriver import PTZController - - -def main(): - # 根据你的实际情况填 IP、端口、账号密码 - host = "192.168.31.164" - port = 80 - user = "admin" - password = "admin123" - - ptz = PTZController(host=host, port=port, user=user, password=password) - - # 1. 连接摄像头 - if not ptz.connect(): - print("连接 PTZ 失败,检查 IP/用户名/密码/端口。") - return - - # 2. 依次测试几个动作 - # 每个动作之间 sleep 一下方便观察 - - print("向下移动...") - ptz.move_down(speed=0.5, duration=1.0) - time.sleep(1) - - print("向上移动...") - ptz.move_up(speed=0.5, duration=1.0) - time.sleep(1) - - print("向左移动...") - ptz.move_left(speed=0.5, duration=1.0) - time.sleep(1) - - print("向右移动...") - ptz.move_right(speed=0.5, duration=1.0) - time.sleep(1) - - print("测试结束。") - - -if __name__ == "__main__": - main() \ No newline at end of file diff --git a/unilabos/devices/cnc/__init__.py b/unilabos/devices/cnc/__init__.py deleted file mode 100644 index e69de29b..00000000 diff --git a/unilabos/devices/cnc/grbl_async.py b/unilabos/devices/cnc/grbl_async.py deleted file mode 100644 index 3ecd4ba8..00000000 --- a/unilabos/devices/cnc/grbl_async.py +++ /dev/null @@ -1,270 +0,0 @@ -import os -import asyncio -from asyncio import Event, Future, Lock, Task -from enum import Enum -from dataclasses import dataclass -import re -import time -from typing import Any, Union, Optional, overload - -import serial.tools.list_ports -from serial import Serial -from serial.serialutil import SerialException - -from unilabos.messages import Point3D -from unilabos.ros.nodes.base_device_node import BaseROS2DeviceNode - - -class GrblCNCConnectionError(Exception): - pass - - -@dataclass(frozen=True, kw_only=True) -class GrblCNCInfo: - port: str - address: str = "1" - - limits: tuple[int, int, int, int, int, int] = (-150, 150, -200, 0, 0, 60) - - def create(self): - return GrblCNCAsync(self.port, self.address, self.limits) - - -class GrblCNCAsync: - _status: str = "Offline" - _position: Point3D = Point3D(x=0.0, y=0.0, z=0.0) - _ros_node: BaseROS2DeviceNode - - def __init__(self, port: str, address: str = "1", limits: tuple[int, int, int, int, int, int] = (-150, 150, -200, 0, 0, 60)): - self.port = port - self.address = address - - self.limits = limits - - try: - self._serial = Serial( - baudrate=115200, - port=port - ) - except (OSError, SerialException) as e: - raise GrblCNCConnectionError from e - - self._busy = False - self._closing = False - self._pose_number = self.pose_number_remaining = -1 - self._error_event = Event() - self._query_future = Future[Any]() - self._query_lock = Lock() - self._read_task: Optional[Task[None]] = None - self._read_extra_line = False - self._run_future: Optional[Future[Any]] = None - self._run_lock = Lock() - - def post_init(self, ros_node: BaseROS2DeviceNode): - self._ros_node = ros_node - - def _read_all(self): - data = self._serial.read_until(b"\n") - data_decoded = data.decode() - while not "ok" in data_decoded and not "Grbl" in data_decoded: - data += self._serial.read_until(b"\n") - data_decoded = data.decode() - return data - - async def _read_loop(self): - try: - while True: - self._receive((await asyncio.to_thread(lambda: self._read_all()))) - except SerialException as e: - raise GrblCNCConnectionError from e - finally: - if not self._closing: - self._error_event.set() - - if self._query_future and not self._query_future.done(): - self._query_future.set_exception(GrblCNCConnectionError()) - if self._run_future and not self._run_future.done(): - self._run_future.set_exception(GrblCNCConnectionError()) - - @overload - async def _query(self, command: str, dtype: type[bool]) -> bool: - pass - - @overload - async def _query(self, command: str, dtype: type[int]) -> int: - pass - - @overload - async def _query(self, command: str, dtype = None) -> str: - pass - - async def _query(self, command: str, dtype: Optional[type] = None): - async with self._query_lock: - if self._closing or self._error_event.is_set(): - raise GrblCNCConnectionError - - self._query_future = Future[Any]() - - self._read_extra_line = command.startswith("?") - run = '' - full_command = f"{command}{run}\n" - full_command_data = bytearray(full_command, 'ascii') - - try: - # await asyncio.to_thread(lambda: self._serial.write(full_command_data)) - self._serial.write(full_command_data) - return self._parse(await asyncio.wait_for(asyncio.shield(self._query_future), timeout=5.0), dtype=dtype) - except (SerialException, asyncio.TimeoutError) as e: - self._error_event.set() - raise GrblCNCConnectionError from e - finally: - self._query_future = None - - def _parse(self, data: bytes, dtype: Optional[type] = None): - response = data.decode() - - if dtype == bool: - return response == "1" - elif dtype == int: - return int(response) - else: - return response - - def _receive(self, data: bytes): - ascii_string = "".join(chr(byte) for byte in data) - was_busy = self._busy - self._busy = "Idle" not in ascii_string - - # if self._read_extra_line and ascii_string.startswith("ok"): - # self._read_extra_line = False - # return - if self._run_future and was_busy and not self._busy: - self._run_future.set_result(data) - if self._query_future: - self._query_future.set_result(data) - else: - raise Exception("Dropping data") - - async def _run(self, command: str): - async with self._run_lock: - self._run_future = Future[Any]() - # self._busy = True - - try: - await self._query(command) - while True: - await self._ros_node.sleep(0.2) # Wait for 0.5 seconds before polling again - - status = await self.get_status() - if "Idle" in status: - break - await asyncio.shield(self._run_future) - finally: - self._run_future = None - - async def initialize(self): - time.sleep(0.5) - await self._run("G0X0Y0Z0") - status = await self.get_status() - return status - - # Operations - - # Status Queries - - @property - def status(self) -> str: - return self._status - - async def get_status(self): - __pos_pattern__ = re.compile('.Pos:(\-?\d+\.\d+),(\-?\d+\.\d+),(\-?\d+\.\d+)') - __status_pattern__ = re.compile('<([a-zA-Z]+),') - - response = await self._query("?") - pat = re.search(__pos_pattern__, response) - if pat is not None: - pos = pat.group().split(":")[1].split(",") - self._status = re.search(__status_pattern__, response).group(1).lstrip("<").rstrip(",") - self._position = Point3D(x=float(pos[0]), y=float(pos[1]), z=float(pos[2])) - - return self.status - - # Position Setpoint and Queries - - @property - def position(self) -> Point3D: - # 由于此时一定调用过 get_status,所以 position 一定是被更新过的 - return self._position - - def get_position(self): - return self.position - - async def set_position(self, position: Point3D): - """ - Move to absolute position (unit: mm) - - Args: - x, y, z: float - - Returns: - None - """ - x = max(self.limits[0], min(self.limits[1], position.x)) - y = max(self.limits[2], min(self.limits[3], position.y)) - z = max(self.limits[4], min(self.limits[5], position.z)) - return await self._run(f"G0X{x:.3f}Y{y:.3f}Z{z:.3f}") - - async def move_through_points(self, points: list[Point3D]): - for i, point in enumerate(points): - self._pose_number = i - self.pose_number_remaining = len(points) - i - await self.set_position(point) - await self._ros_node.sleep(0.5) - self._step_number = -1 - - async def stop_operation(self): - return await self._run("T") - - # Queries - - async def wait_error(self): - await self._error_event.wait() - - async def __aenter__(self): - await self.open() - return self - - async def __aexit__(self, exc_type, exc, tb): - await self.close() - - async def open(self): - if self._read_task: - raise GrblCNCConnectionError - self._read_task = self._ros_node.create_task(self._read_loop()) - - try: - await self.get_status() - except Exception: - await self.close() - raise - - async def close(self): - if self._closing or not self._read_task: - raise GrblCNCConnectionError - - self._closing = True - self._read_task.cancel() - - try: - await self._read_task - except asyncio.CancelledError: - pass - finally: - del self._read_task - - self._serial.close() - - @staticmethod - def list(): - for item in serial.tools.list_ports.comports(): - yield GrblCNCInfo(port=item.device) diff --git a/unilabos/devices/cnc/grbl_sync.py b/unilabos/devices/cnc/grbl_sync.py deleted file mode 100644 index b5ff716a..00000000 --- a/unilabos/devices/cnc/grbl_sync.py +++ /dev/null @@ -1,205 +0,0 @@ -import os -import asyncio -from threading import Event, Lock -from enum import Enum -from dataclasses import dataclass -import re -import time -from typing import Any, Union, Optional, overload - -import serial.tools.list_ports -from serial import Serial -from serial.serialutil import SerialException - -from unilabos.messages import Point3D - - -class GrblCNCConnectionError(Exception): - pass - - -@dataclass(frozen=True, kw_only=True) -class GrblCNCInfo: - port: str - address: str = "1" - - limits: tuple[int, int, int, int, int, int] = (-150, 150, -200, 0, -80, 0) - - def create(self): - return GrblCNC(self.port, self.address, self.limits) - - -class GrblCNC: - _status: str = "Offline" - _position: Point3D = Point3D(x=0.0, y=0.0, z=0.0) - _spindle_speed: float = 0.0 - - def __init__(self, port: str, address: str = "1", limits: tuple[int, int, int, int, int, int] = (-150, 150, -200, 0, -80, 0)): - self.port = port - self.address = address - - self.limits = limits - - try: - self._serial = Serial( - baudrate=115200, - port=port - ) - except (OSError, SerialException) as e: - raise GrblCNCConnectionError from e - - self._busy = False - self._closing = False - self._pose_number = self.pose_number_remaining = -1 - - self._query_lock = Lock() - self._run_lock = Lock() - self._error_event = Event() - - def _read_all(self): - data = self._serial.read_until(b"\n") - data_decoded = data.decode() - while not "ok" in data_decoded and not "Grbl" in data_decoded: - data += self._serial.read_until(b"\n") - data_decoded = data.decode() - return data - - @overload - def _query(self, command: str, dtype: type[bool]) -> bool: - pass - - @overload - def _query(self, command: str, dtype: type[int]) -> int: - pass - - @overload - def _query(self, command: str, dtype = None) -> str: - pass - - def _query(self, command: str, dtype: Optional[type] = None): - with self._query_lock: - if self._closing or self._error_event.is_set(): - raise GrblCNCConnectionError - - self._read_extra_line = command.startswith("?") - run = '' - full_command = f"{command}{run}\n" - full_command_data = bytearray(full_command, 'ascii') - - try: - # await asyncio.to_thread(lambda: self._serial.write(full_command_data)) - self._serial.write(full_command_data) - time.sleep(0.1) - return self._receive(self._read_all()) - except (SerialException, asyncio.TimeoutError) as e: - self._error_event.set() - raise GrblCNCConnectionError from e - - def _receive(self, data: bytes): - ascii_string = "".join(chr(byte) for byte in data) - was_busy = self._busy - self._busy = "Idle" not in ascii_string - return ascii_string - - def _run(self, command: str): - with self._run_lock: - try: - self._query(command) - while True: - time.sleep(0.2) # Wait for 0.5 seconds before polling again - - status = self.get_status() - if "Idle" in status: - break - except: - self._error_event.set() - - def initialize(self): - time.sleep(0.5) - self._run("G0X0Y0Z0") - status = self.get_status() - return status - - # Operations - - # Status Queries - - @property - def status(self) -> str: - return self._status - - def get_status(self): - __pos_pattern__ = re.compile('.Pos:(\-?\d+\.\d+),(\-?\d+\.\d+),(\-?\d+\.\d+)') - __status_pattern__ = re.compile('<([a-zA-Z]+),') - - response = self._query("?") - pat = re.search(__pos_pattern__, response) - if pat is not None: - pos = pat.group().split(":")[1].split(",") - self._status = re.search(__status_pattern__, response).group(1).lstrip("<").rstrip(",") - self._position = Point3D(x=float(pos[0]), y=float(pos[1]), z=float(pos[2])) - - return self.status - - # Position Setpoint and Queries - - @property - def position(self) -> Point3D: - # 由于此时一定调用过 get_status,所以 position 一定是被更新过的 - return self._position - - def get_position(self): - return self.position - - def set_position(self, position: Point3D): - """ - Move to absolute position (unit: mm) - - Args: - x, y, z: float - - Returns: - None - """ - x = max(self.limits[0], min(self.limits[1], position.x)) - y = max(self.limits[2], min(self.limits[3], position.y)) - z = max(self.limits[4], min(self.limits[5], position.z)) - return self._run(f"G0X{x:.3f}Y{y:.3f}Z{z:.3f}") - - def move_through_points(self, positions: list[Point3D]): - for i, point in enumerate(positions): - self._pose_number = i - self.pose_number_remaining = len(positions) - i - self.set_position(point) - time.sleep(0.5) - self._pose_number = -1 - - @property - def spindle_speed(self) -> float: - return self._spindle_speed - - # def get_spindle_speed(self): - # self._spindle_speed = float(self._query("M3?")) - # return self.spindle_speed - - def set_spindle_speed(self, spindle_speed: float, max_velocity: float = 500): - if spindle_speed < 0: - spindle_speed = 0 - self._run("M5") - else: - spindle_speed = min(max_velocity, spindle_speed) - self._run(f"M3 S{spindle_speed}") - self._spindle_speed = spindle_speed - - def stop_operation(self): - return self._run("T") - - # Queries - - async def wait_error(self): - await self._error_event.wait() - - @staticmethod - def list(): - for item in serial.tools.list_ports.comports(): - yield GrblCNCInfo(port=item.device) diff --git a/unilabos/devices/cnc/mock.py b/unilabos/devices/cnc/mock.py deleted file mode 100644 index ebe96833..00000000 --- a/unilabos/devices/cnc/mock.py +++ /dev/null @@ -1,49 +0,0 @@ -import time -import asyncio -from pydantic import BaseModel - -from unilabos.ros.nodes.base_device_node import BaseROS2DeviceNode - - -class Point3D(BaseModel): - x: float - y: float - z: float - - -def d(a: Point3D, b: Point3D) -> float: - return ((a.x - b.x) ** 2 + (a.y - b.y) ** 2 + (a.z - b.z) ** 2) ** 0.5 - - -class MockCNCAsync: - _ros_node: BaseROS2DeviceNode["MockCNCAsync"] - - def __init__(self): - self._position: Point3D = Point3D(x=0.0, y=0.0, z=0.0) - self._status = "Idle" - - def post_create(self, ros_node): - self._ros_node = ros_node - - @property - def position(self) -> Point3D: - return self._position - - async def get_position(self): - return self.position - - @property - def status(self) -> str: - return self._status - - async def set_position(self, position: Point3D, velocity: float = 10.0): - self._status = "Running" - current_pos = self.position - - move_time = d(position, current_pos) / velocity - for i in range(20): - self._position.x = current_pos.x + (position.x - current_pos.x) / 20 * (i+1) - self._position.y = current_pos.y + (position.y - current_pos.y) / 20 * (i+1) - self._position.z = current_pos.z + (position.z - current_pos.z) / 20 * (i+1) - await self._ros_node.sleep(move_time / 20) - self._status = "Idle" diff --git a/unilabos/devices/cytomat/cytomat.py b/unilabos/devices/cytomat/cytomat.py deleted file mode 100644 index 454111de..00000000 --- a/unilabos/devices/cytomat/cytomat.py +++ /dev/null @@ -1,61 +0,0 @@ -import serial -import time - -ser = serial.Serial( - port="COM18", - baudrate=9600, - bytesize=serial.EIGHTBITS, - parity=serial.PARITY_NONE, - stopbits=serial.STOPBITS_ONE, - timeout=15, - -def send_cmd(cmd: str, wait: float = 1.0) -> str: - """向 Cytomat 发送一行命令并打印/返回响应。""" - print(f">>> {cmd}") - ser.write((cmd + "\r").encode("ascii")) - time.sleep(wait) - resp = ser.read_all().decode("ascii", errors="ignore").strip() - print(f"<<< {resp or ''}") - return resp - -def initialize(): - """设备初始化 (ll:in)。""" - return send_cmd("ll:in") - -def wp_to_storage(pos: int): - """WP → 库位。pos: 1–9999 绝对地址。""" - return send_cmd(f"mv:ws {pos:04d}") - -def storage_to_tfs(stacker: int, level: int): - """库位 → TFS1。""" - return send_cmd(f"mv:st {stacker:02d} {level:02d}") - -def get_basic_state(): - """查询 Basic State Register。""" - return send_cmd("ch:bs") - -def set_pitch(stacker: int, pitch_mm: int): - """设置单个 stacker 的层间距(mm)。""" - return send_cmd(f"se:cs {stacker:02d} {pitch_mm}") - -def tfs_to_storage(stacker: int, level: int): - """TFS1 → 库位。""" - return send_cmd(f"mv:ts {stacker:02d} {level:02d}") - -# ---------- 示例工作流 ---------- -if __name__ == "__main__": - try: - if not ser.is_open: - ser.open() - initialize() - wp_to_storage(10) - storage_to_tfs(17, 3) - get_basic_state() - tfs_to_storage(7, 5) - - except Exception as exc: - print("Error:", exc) - finally: - ser.close() - print("Done.") - diff --git a/unilabos/devices/gripper/__init__.py b/unilabos/devices/gripper/__init__.py deleted file mode 100644 index e69de29b..00000000 diff --git a/unilabos/devices/gripper/mock.py b/unilabos/devices/gripper/mock.py deleted file mode 100644 index cce33c1d..00000000 --- a/unilabos/devices/gripper/mock.py +++ /dev/null @@ -1,46 +0,0 @@ -import time - - -class MockGripper: - def __init__(self): - self._position: float = 0.0 - self._velocity: float = 2.0 - self._torque: float = 0.0 - self._status = "Idle" - - @property - def position(self) -> float: - return self._position - - @property - def velocity(self) -> float: - return self._velocity - - @property - def torque(self) -> float: - return self._torque - - @property - def status(self) -> str: - return self._status - - def push_to(self, position: float, torque: float, velocity: float = 0.0): - self._status = "Running" - current_pos = self.position - if velocity == 0.0: - velocity = self.velocity - - move_time = abs(position - current_pos) / velocity - for i in range(20): - self._position = current_pos + (position - current_pos) / 20 * (i+1) - self._torque = torque / (20 - i) - self._velocity = velocity - time.sleep(move_time / 20) - self._torque = torque - self._status = "Idle" - - def edit_id(self, wf_name: str = "gripper_run", params: str = "{}", resource: dict = {"Gripper1": {}}): - v = list(resource.values())[0] - v["sample_id"] = "EDITED" - time.sleep(10) - return resource diff --git a/unilabos/devices/gripper/rmaxis_v4.py b/unilabos/devices/gripper/rmaxis_v4.py deleted file mode 100644 index ff49ade0..00000000 --- a/unilabos/devices/gripper/rmaxis_v4.py +++ /dev/null @@ -1,408 +0,0 @@ -import time -from asyncio import Event -from enum import Enum, auto -from dataclasses import dataclass -from typing import Dict, Tuple -from pymodbus.client import ModbusSerialClient as ModbusClient -from pymodbus.client import ModbusTcpClient as ModbusTcpClient - - -class CommandType(Enum): - COMMAND_NONE = 0 - COMMAND_GO_HOME = 1 - COMMAND_DELAY = 2 - COMMAND_MOVE_ABSOLUTE = 3 - COMMAND_PUSH = 4 - COMMAND_MOVE_RELATIVE = 5 - COMMAND_PRECISE_PUSH = 6 - - -class ParamType(Enum): - BOOLEAN = 0 - INT32 = 1 - FLOAT = 2 - ENUM = 3 - - -class ParamEdit(Enum): - NORMAL = 0 - READONLY = 1 - - -@dataclass -class Param: - type: ParamType - editability: ParamEdit - address: int - -# 用于存储参数的字典类型 -ParamsDict = Dict[str, Param] - - -# Constants and other required elements can be defined as needed -IO_GAP_TIME = 0.01 -EXECUTE_COMMAND_INDEX = 15 # Example index -COMMAND_REACH_SIGNAL = "reach_15" -# Define other constants or configurations as needed - - -def REVERSE(x): - return ((x << 16) & 0xFFFF0000) | ((x >> 16) & 0x0000FFFF) - - -def int32_to_uint16_list(int32_list): - uint16_list = [] - for num in int32_list: - lower_half = num & 0xFFFF - upper_half = (num >> 16) & 0xFFFF - uint16_list.extend([upper_half, lower_half]) - return uint16_list - - -def uint16_list_to_int32_list(uint16_list): - if len(uint16_list) % 2 != 0: - raise ValueError("Input list must have even number of uint16 elements.") - int32_list = [] - for i in range(0, len(uint16_list), 2): - # Combine two uint16 values into one int32 value - high = uint16_list[i + 1] - low = uint16_list[i] - # Assuming the uint16_list is in big-endian order - int32_value = (high << 16) | low - int32_list.append(int(int32_value)) - return int32_list - - -class RMAxis: - modbus_device = {} - - def __init__(self, port, is_modbus_rtu, baudrate: int = 115200, address: str = "", slave_id: int = 1): - self.device = port - self.is_modbus_rtu = is_modbus_rtu - if is_modbus_rtu: - self.client = ModbusClient(port=port, baudrate=baudrate, parity='N', stopbits=1, bytesize=8, timeout=3) - else: - self.client = ModbusTcpClient(address, port) - if not self.client.connect(): - raise Exception(f"Modbus Connection failed") - self.slave_id = slave_id - - self._error_event = Event() - self.device_params = {} # Assuming some initialization for parameters - self.command_edited = {} - self.init_parameters(self.device_params) - - def init_parameters(self, params): - params["current_command_position"] = Param(ParamType.FLOAT, ParamEdit.NORMAL, 4902) - params["current_command_velocity"] = Param(ParamType.FLOAT, ParamEdit.NORMAL, 4904) - params["current_command_acceleration"] = Param(ParamType.FLOAT, ParamEdit.NORMAL, 4906) - params["current_command_deacceleration"] = Param(ParamType.FLOAT, ParamEdit.NORMAL, 4908) - params["current_position"] = Param(ParamType.FLOAT, ParamEdit.READONLY, 0) - params["current_velocity"] = Param(ParamType.FLOAT, ParamEdit.READONLY, 2) - params["control_torque"] = Param(ParamType.FLOAT, ParamEdit.NORMAL, 4) - params["error"] = Param(ParamType.INT32, ParamEdit.READONLY, 6) - params["current_force_sensor"] = Param(ParamType.FLOAT, ParamEdit.READONLY, 18) - params["io_in_go_home"] = Param(ParamType.BOOLEAN, ParamEdit.NORMAL, 1401) - params["io_in_error_reset"] = Param(ParamType.BOOLEAN, ParamEdit.NORMAL, 1402) - params["io_in_start"] = Param(ParamType.BOOLEAN, ParamEdit.NORMAL, 1403) - params["io_in_servo"] = Param(ParamType.BOOLEAN, ParamEdit.NORMAL, 1404) - params["io_in_stop"] = Param(ParamType.BOOLEAN, ParamEdit.NORMAL, 1405) - params["io_in_force_reset"] = Param(ParamType.BOOLEAN, ParamEdit.NORMAL, 1424) - params["io_in_save_parameters"] = Param(ParamType.BOOLEAN, ParamEdit.NORMAL, 1440) - params["io_in_load_parameters"] = Param(ParamType.BOOLEAN, ParamEdit.NORMAL, 1441) - params["io_in_save_positions"] = Param(ParamType.BOOLEAN, ParamEdit.NORMAL, 1442) - params["io_in_load_positions"] = Param(ParamType.BOOLEAN, ParamEdit.NORMAL, 1443) - params["io_out_gone_home"] = Param(ParamType.BOOLEAN, ParamEdit.NORMAL, 1501) - params["command_address"] = Param(ParamType.INT32, ParamEdit.NORMAL, 5000) - params["selected_command_index"] = Param(ParamType.INT32, ParamEdit.NORMAL, 4001) - params["io_out_reach_15"] = Param(ParamType.BOOLEAN, ParamEdit.NORMAL, 1521) - params["io_out_moving"] = Param(ParamType.BOOLEAN, ParamEdit.NORMAL, 1505) - params["limit_pos"] = Param(ParamType.FLOAT, ParamEdit.NORMAL, 74) - params["limit_neg"] = Param(ParamType.FLOAT, ParamEdit.NORMAL, 72) - params["hardware_direct_output"] = Param(ParamType.INT32, ParamEdit.NORMAL, 158) - params["hardware_direct_input"] = Param(ParamType.INT32, ParamEdit.NORMAL, 160) - - def get_version(self): - version_major = self.client.read_input_registers(8, 1, unit=self.slave_id).registers[0] - version_minor = self.client.read_input_registers(10, 1, unit=self.slave_id).registers[0] - version_build = self.client.read_input_registers(12, 1, unit=self.slave_id).registers[0] - version_type = self.client.read_input_registers(14, 1, unit=self.slave_id).registers[0] - return (version_major, version_minor, version_build, version_type) - - def set_input_signal(self, signal, level): - param_name = f"io_in_{signal}" - self.set_parameter(param_name, level) - - def get_output_signal(self, signal): - param_name = f"io_out_{signal}" - return self.get_device_parameter(param_name) - - def config_motion(self, velocity, acceleration, deacceleration): - self.set_parameter("current_command_velocity", velocity) - self.set_parameter("current_command_acceleration", acceleration) - self.set_parameter("current_command_deacceleration", deacceleration) - - def move_to(self, position): - self.set_parameter("current_command_position", position) - - def go_home(self): - self.set_input_signal("go_home", False) - time.sleep(IO_GAP_TIME) # Assuming IO_GAP_TIME is 0.1 seconds - self.set_input_signal("go_home", True) - - def move_absolute(self, position, velocity, acceleration, deacceleration, band): - command = { - 'type': CommandType.COMMAND_MOVE_ABSOLUTE.value, - 'position': position, - 'velocity': velocity, - 'acceleration': acceleration, - 'deacceleration': deacceleration, - 'band': band, - 'push_force': 0, - 'push_distance': 0, - 'delay': 0, - 'next_command_index': -1 - } - self.execute_command(command) - - def move_relative(self, position, velocity, acceleration, deacceleration, band): - command = { - 'type': CommandType.COMMAND_MOVE_RELATIVE.value, - 'position': position, - 'velocity': velocity, - 'acceleration': acceleration, - 'deacceleration': deacceleration, - 'band': band, - 'push_force': 0, - 'push_distance': 0, - 'delay': 0, - 'next_command_index': -1 - } - self.execute_command(command) - - def push(self, force, distance, velocity): - command = { - 'type': CommandType.COMMAND_PUSH.value, - 'position': 0, - 'velocity': velocity, - 'acceleration': 0, - 'deacceleration': 0, - 'band': 0, - 'push_force': force, - 'push_distance': distance, - 'delay': 0, - 'next_command_index': -1 - } - self.execute_command(command) - - def precise_push(self, force, distance, velocity, force_band, force_check_time): - command = { - 'type': CommandType.COMMAND_PRECISE_PUSH.value, - 'position': 0, - 'velocity': velocity, - 'acceleration': 0, - 'deacceleration': 0, - 'band': force_band, - 'push_force': force, - 'push_distance': distance, - 'delay': force_check_time, - 'next_command_index': -1 - } - self.execute_command(command) - - def is_moving(self): - return self.get_output_signal("moving") - - def is_reached(self): - return self.get_output_signal(COMMAND_REACH_SIGNAL) - - def is_push_empty(self): - return not self.is_moving() - - def set_command(self, index, command): - print("Setting command", command) - self.command_edited[index] = True - command_buffer = [ - command['type'], - int(command['position'] * 1000), - int(command['velocity'] * 1000), - int(command['acceleration'] * 1000), - int(command['deacceleration'] * 1000), - int(command['band'] * 1000), - int(command['push_force'] * 1000), - int(command['push_distance'] * 1000), - int(command['delay']), - int(command['next_command_index']) - ] - buffer = int32_to_uint16_list(command_buffer) - response = self.client.write_registers(self.device_params["command_address"].address + index * 20, buffer, self.slave_id) - - def get_command(self, index): - response = self.client.read_holding_registers(self.device_params["command_address"].address + index * 20, 20, self.slave_id) - print(response) - buffer = response.registers - command_buffer = uint16_list_to_int32_list(buffer) - command = { - 'type': command_buffer[0], - 'position': command_buffer[1] / 1000.0, - 'velocity': command_buffer[2] / 1000.0, - 'acceleration': command_buffer[3] / 1000.0, - 'deacceleration': command_buffer[4] / 1000.0, - 'band': command_buffer[5] / 1000.0, - 'push_force': command_buffer[6] / 1000.0, - 'push_distance': command_buffer[7] / 1000.0, - 'delay': command_buffer[8], - 'next_command_index': command_buffer[9] - } - return command - - def execute_command(self, command): - self.set_command(EXECUTE_COMMAND_INDEX, command) - self.save_commands() - self.trig_command(EXECUTE_COMMAND_INDEX) - time.sleep(IO_GAP_TIME) # Assuming IO_GAP_TIME is 0.1 seconds - - def trig_command(self, index): - print("Triggering command", index) - self.set_parameter("selected_command_index", index) - self.set_input_signal("start", False) - time.sleep(IO_GAP_TIME) # Assuming IO_GAP_TIME is 0.1 seconds - self.set_input_signal("start", True) - - def load_commands(self): - self.set_input_signal("load_positions", False) - time.sleep(IO_GAP_TIME) # Assuming IO_GAP_TIME is 0.1 seconds - self.set_input_signal("load_positions", True) - - def save_commands(self): - for index, edited in self.command_edited.items(): - if edited: - self.set_parameter("selected_command_index", index) - self.set_input_signal("save_positions", False) - time.sleep(IO_GAP_TIME) # Assuming IO_GAP_TIME is 0.1 seconds - self.set_input_signal("save_positions", True) - time.sleep(IO_GAP_TIME) # Assuming IO_GAP_TIME is 0.1 seconds - self.command_edited[index] = False - - @property - def position(self) -> float: - return self.get_device_parameter("current_position") - - def get_position(self) -> float: - return self.get_device_parameter("current_position") - - @property - def velocity(self) -> float: - return self.get_device_parameter("current_velocity") - - @property - def torque(self) -> float: - return self.get_device_parameter("control_torque") - - @property - def force_sensor(self) -> float: - return self.get_device_parameter("current_force_sensor") - - def error_code(self): - return self.get_device_parameter("error") - - def get_device_parameter(self, name): - # Assuming self.device_params is a dictionary with address and type - param = self.device_params.get(name) - if not param: - self._error_event.set() - raise Exception(f"parameter {name} does not exist") - - address = param.address - if param.editability == ParamEdit.READONLY: - if param.type == ParamType.BOOLEAN: - return self.client.read_input_discretes(address, 1).bits[0] - elif param.type == ParamType.ENUM: - return self.client.read_input_registers(address, 1).registers[0] - elif param.type == ParamType.INT32: - return self.client.read_input_registers(address, 2).registers[0] # Handle as needed - elif param.type == ParamType.FLOAT: - return self.client.read_input_registers(address, 2).registers[0] # Handle as needed - else: - self._error_event.set() - raise Exception(f"parameter {name} has unknown data type {param.type}") - else: - if param.type == ParamType.BOOLEAN: - return self.client.read_holding_registers(address, 1).registers[0] - elif param.type == ParamType.ENUM: - return self.client.read_holding_registers(address, 1).registers[0] - elif param.type == ParamType.INT32: - return self.client.read_holding_registers(address, 2).registers[0] # Handle as needed - elif param.type == ParamType.FLOAT: - return self.client.read_holding_registers(address, 2).registers[0] # Handle as needed - else: - self._error_event.set() - raise Exception(f"parameter {name} has unknown data type {param['type']}") - - def set_parameter(self, name, value): - param = self.device_params.get(name) - if not param: - self._error_event.set() - raise Exception(f"parameter {name} does not exist") - - address = param.address - if param.editability == ParamEdit.READONLY: - raise Exception(f"parameter {name} is read only") - else: - if param.type == ParamType.BOOLEAN: - self.client.write_coil(address, bool(value)) - elif param.type == ParamType.ENUM: - self.client.write_register(address, value) - elif param.type == ParamType.INT32: - self.client.write_register(address, int(value)) - elif param.type == ParamType.FLOAT: - self.client.write_register(address, float(value)) - else: - self._error_event.set() - raise Exception(f"parameter {name} has unknown data type {param['type']}") - - def load_parameters(self): - self.set_input_signal("load_parameters", False) - time.sleep(IO_GAP_TIME) # Assuming IO_GAP_TIME is 0.1 seconds - self.set_input_signal("load_parameters", True) - - def save_parameters(self): - self.set_input_signal("save_parameters", False) - time.sleep(IO_GAP_TIME) # Assuming IO_GAP_TIME is 0.1 seconds - self.set_input_signal("save_parameters", True) - - def reset_error(self): - self.set_input_signal("error_reset", False) - time.sleep(IO_GAP_TIME) # Assuming IO_GAP_TIME is 0.1 seconds - self.set_input_signal("error_reset", True) - - def set_servo_on_off(self, on_off): - self.set_input_signal("servo", on_off) - - def stop(self): - self.set_input_signal("stop", False) - time.sleep(IO_GAP_TIME) # Assuming IO_GAP_TIME is 0.1 seconds - self.set_input_signal("stop", True) - - def soft_reset(self): - self.client.write_register(186, 0x22205682) - - async def wait_error(self): - await self._error_event.wait() - - def close(self): - self.client.close() - del self.client - - -if __name__ == "__main__": - # gripper = RMAxis.create_rmaxis_modbus_rtu("COM7", 115200, 1) - gripper = RMAxis.create_rmaxis_modbus_rtu('/dev/tty.usbserial-B002YGXY', 115200, 0) - gripper.go_home() - # gripper.move_to(20) - # print("Moving abs...") - # gripper.move_absolute(20, 5, 100, 100, 0.1) - # print(gripper.get_command(EXECUTE_COMMAND_INDEX)) - # gripper.go_home() - # print("Pushing...") - # gripper.push(0.7, 10, 20) diff --git a/unilabos/devices/heaterstirrer/__init__.py b/unilabos/devices/heaterstirrer/__init__.py deleted file mode 100644 index e69de29b..00000000 diff --git a/unilabos/devices/heaterstirrer/dalong.py b/unilabos/devices/heaterstirrer/dalong.py deleted file mode 100644 index 8232753a..00000000 --- a/unilabos/devices/heaterstirrer/dalong.py +++ /dev/null @@ -1,197 +0,0 @@ -import json -import serial -import time as systime - - -class HeaterStirrer_DaLong: - def __init__(self, port: str = 'COM6', temp_warning = 50.0, baudrate: int = 9600): - try: - self.serial = serial.Serial(port, baudrate, timeout=2) - except serial.SerialException as e: - print("串口错误", f"无法打开串口{port}: {e}") - self._status = "Idle" - self._stir_speed = 0.0 - self._temp = 0.0 - self._temp_warning = temp_warning - self.set_temp_warning(temp_warning) - self._temp_target = 20.0 - self.success = False - - @property - def status(self) -> str: - return self._status - - def get_status(self) -> str: - self._status = "Idle" if self.stir_speed == 0 else "Running" - - @property - def stir_speed(self) -> float: - return self._stir_speed - - def set_stir_speed(self, speed: float): - try: - # 转换速度为整数 - speed_int = int(speed) - # 确保速度在允许的范围内 - if speed_int < 0 or speed_int > 65535: - raise ValueError("速度必须在0到65535之间") - except ValueError as e: - print("输入错误", str(e)) - return - - # 计算高位和低位 - speed_high = speed_int >> 8 - speed_low = speed_int & 0xFF - - # 构建搅拌控制指令 - command = bytearray([0xfe, 0xB1, speed_high, speed_low, 0x00]) - # 计算校验和 - command.append(sum(command[1:]) % 256) - - # 发送指令 - self.serial.write(command) - # 检查响应 - response = self.serial.read(6) - if len(response) == 6 and response[0] == 0xfd and response[1] == 0xB1 and response[2] == 0x00: - print("成功", "搅拌速度更新成功") - self._stir_speed = speed - else: - print("失败", "搅拌速度更新失败") - - def heatchill( - self, - vessel: str, - temp: float, - time: float = 3600, - stir: bool = True, - stir_speed: float = 300, - purpose: str = "reaction" - ): - self.set_temp_target(temp) - if stir: - self.set_stir_speed(stir_speed) - self.status = "Stirring" - systime.sleep(time) - self.set_stir_speed(0) - self.status = "Idle" - - @property - def temp(self) -> float: - self._temp = self.get_temp() - return self._temp - - def get_temp(self): - # 构建读取温度的指令 - command = bytearray([0xfe, 0xA2, 0x00, 0x00, 0x00]) - command.append(sum(command[1:]) % 256) - - # 发送指令 - self.serial.write(command) - # 读取响应 - systime.sleep(0.1) - num_bytes = self.serial.in_waiting - response = self.serial.read(num_bytes) - try: - high_value = response[8] - low_value = response[9] - raw_temp = (high_value << 8) + low_value - if raw_temp & 0x8000: # 如果低位寄存器最高位为1,表示负值 - raw_temp -= 0x10000 # 转换为正确的负数表示 - temp = raw_temp / 10 - return temp - except: - return None - - @property - def temp_warning(self) -> float: - return self._temp_warning - - def set_temp_warning(self, temp): - self.success = False - # temp = round(float(warning_temp), 1) - if self.set_temp_inner(float(temp), "warning"): - self._temp_warning = round(float(temp), 1) - self.success = True - - @property - def temp_target(self) -> float: - return self._temp_target - - def set_temp_target(self, temp): - self.success = False - # temp = round(float(target_temp), 1) - if self.set_temp_inner(float(temp), "target"): - self._temp_target = round(float(temp), 1) - self.success = True - - def set_temp_inner(self, temp: float, type: str = "warning"): - try: - # 转换为整数 - temp_int = int(temp*10) - except ValueError as e: - print("输入错误", str(e)) - return - - # 计算高位和低位 - temp_high = temp_int >> 8 - temp_low = temp_int & 0xFF - - # 构建控制指令 - if type == "warning": - command = bytearray([0xfe, 0xB4, temp_high, temp_low, 0x00]) - elif type == "target": - command = bytearray([0xfe, 0xB2, temp_high, temp_low, 0x00]) - else: - return False - # 计算校验和 - command.append(sum(command[1:]) % 256) - print(command) - # 发送指令 - self.serial.write(command) - # 检查响应 - systime.sleep(0.1) - response = self.serial.read(6) - print(response) - if len(response) == 6 and response[0] == 0xfd and response[1] == 0xB4 and response[2] == 0x00: - print("成功", "安全温度设置成功") - return True - else: - print("失败", "安全温度设置失败") - return False - - def close(self): - self.serial.close() - - -if __name__ == "__main__": - import tkinter as tk - from tkinter import messagebox - - heaterstirrer = HeaterStirrer_DaLong() - # heaterstirrer.set_mix_speed(0) - heaterstirrer.get_temp() - # heaterstirrer.set_warning(17) - print(heaterstirrer.temp) - print(heaterstirrer.temp_warning) - - # 创建主窗口 - # root = tk.Tk() - # root.title("搅拌速度控制") - - # # 创建速度变量 - # speed_var = tk.StringVar() - - # # 创建输入框 - # speed_entry = tk.Entry(root, textvariable=speed_var) - # speed_entry.pack(pady=10) - - # # 创建按钮 - # set_speed_button = tk.Button(root, text="确定", command=heaterstirrer.set_mix_speed) - # # set_speed_button = tk.Button(root, text="确定", command=heaterstirrer.read_temp) - # set_speed_button.pack(pady=5) - - # # 运行主事件循环 - # root.mainloop() - - # 关闭串口 - heaterstirrer.serial.close() diff --git a/unilabos/devices/hplc/AgilentHPLC.py b/unilabos/devices/hplc/AgilentHPLC.py deleted file mode 100644 index 2e43c255..00000000 --- a/unilabos/devices/hplc/AgilentHPLC.py +++ /dev/null @@ -1,484 +0,0 @@ -import traceback -from datetime import datetime -import os -import re -from typing import TypedDict - -import pyautogui -from pywinauto import Application -from pywinauto.application import WindowSpecification -from pywinauto.controls.uiawrapper import UIAWrapper -from pywinauto.uia_element_info import UIAElementInfo - -from unilabos.app.oss_upload import oss_upload -from unilabos.device_comms import universal_driver as ud -from unilabos.device_comms.universal_driver import UniversalDriver - - -class DeviceStatusInfo(TypedDict): - name: str - name_obj: UIAWrapper - status: str - status_obj: UIAWrapper - open_btn: UIAWrapper - close_btn: UIAWrapper - sub_item: UIAWrapper - -class DeviceStatus(TypedDict): - VWD: DeviceStatusInfo - JinYangQi: DeviceStatusInfo - Beng: DeviceStatusInfo - ShouJiQi: DeviceStatusInfo - - -class HPLCDriver(UniversalDriver): - # 设备状态 - _device_status: DeviceStatus = None - _is_running: bool = False - _success: bool = False - _finished: int = None - _total_sample_number: int = None - _status_text: str = "" - # 外部传入 - _wf_name: str = "" - # 暂时用不到,用来支持action name - gantt: str = "" - status: str = "" - - @property - def status_text(self) -> str: - return self._status_text - - @property - def device_status(self) -> str: - return f", ".join([f"{k}:{v.get('status')}" for k, v in self._device_status.items()]) - - @property - def could_run(self) -> bool: - return self.driver_init_ok and all([v.get('status') == "空闲" for v in self._device_status.values()]) - - @property - def driver_init_ok(self) -> bool: - for k, v in self._device_status.items(): - if v.get("open_btn") is None: - return False - if v.get("close_btn") is None: - return False - return len(self._device_status) == 4 - - @property - def is_running(self) -> bool: - return self._is_running - - @property - def success(self) -> bool: - return self._success - - @property - def finish_status(self) -> str: - return f"{self._finished}/{self._total_sample_number}" - - def try_open_sub_device(self, device_name: str = None): - if not self.driver_init_ok: - self._success = False - print(f"仪器还没有初始化完成,无法查询设备:{device_name}") - return - if device_name is None: - for k, v in self._device_status.items(): - self.try_open_sub_device(k) - return - target_device_status = self._device_status[device_name] - if target_device_status["status"] == "未就绪": - print(f"尝试打开{device_name}设备") - target_device_status["open_btn"].click() - else: - print(f"{device_name}设备状态不支持打开:{target_device_status['status']}") - - def try_close_sub_device(self, device_name: str = None): - if not self.driver_init_ok: - self._success = False - print(f"仪器还没有初始化完成,无法查询设备:{device_name}") - return - if device_name is None: - for k, v in self._device_status.items(): - self.try_close_sub_device(k) - return - target_device_status = self._device_status[device_name] - if target_device_status["status"] == "空闲": - print(f"尝试关闭{device_name}设备") - target_device_status["close_btn"].click() - else: - print(f"{device_name}设备状态不支持关闭:{target_device_status['status']}") - - def _get_resource_sample_id(self, wf_name, idx): - try: - root = list(self.resource_info[wf_name].values())[0] - # print(root) - plates = root["children"] - plate_01 = list(plates.values())[0] - pots = list(plate_01["children"].values()) - return pots[idx]['sample_id'] - except Exception as ex: - traceback.print_exc() - - def start_sequence(self, wf_name: str, params: str = None, resource: dict = None): - print("!!!!!! 任务启动") - self.resource_info[wf_name] = resource - # 后续workflow_name将同步一下 - if self.is_running: - print("设备正在运行,无法启动序列") - self._success = False - return False - if not self.driver_init_ok: - print(f"仪器还没有初始化完成,无法启动序列") - self._success = False - return False - if not self.could_run: - print(f"仪器不处于空闲状态,无法运行") - self._success = False - return False - # 参考: - # with UIPath(u"PREP-LC (联机): 方法和运行控制 ||Window"): - # with UIPath(u"panelNavTabChem||Pane->||Pane->panelControlChemStation||Pane->||Tab->仪器控制||Pane->||Pane->panelChemStation||Pane->PREP-LC (联机): 方法和运行控制 ||Pane->ViewMGR||Pane->MRC view||Pane->||Pane->||Pane->||Pane->||Custom->||Custom"): - # click(u"||Button#[0,1]") - app = Application(backend='uia').connect(title=u"PREP-LC (联机): 方法和运行控制 ") - window = app['PREP-LC (联机): 方法和运行控制'] - window.allow_magic_lookup = False - panel_nav_tab = window.child_window(title="panelNavTabChem", auto_id="panelNavTabChem", control_type="Pane") - first_pane = panel_nav_tab.child_window(auto_id="uctlNavTabChem1", control_type="Pane") - panel_control_station = first_pane.child_window(title="panelControlChemStation", auto_id="panelControlChemStation", control_type="Pane") - instrument_control_tab: WindowSpecification = panel_control_station.\ - child_window(auto_id="tabControlChem", control_type="Tab").\ - child_window(title="仪器控制", auto_id="tabPage1", control_type="Pane").\ - child_window(auto_id="uctrlChemStation", control_type="Pane").\ - child_window(title="panelChemStation", auto_id="panelChemStation", control_type="Pane").\ - child_window(title="PREP-LC (联机): 方法和运行控制 ", control_type="Pane").\ - child_window(title="ViewMGR", control_type="Pane").\ - child_window(title="MRC view", control_type="Pane").\ - child_window(auto_id="mainMrcControlHost", control_type="Pane").\ - child_window(control_type="Pane", found_index=0).\ - child_window(control_type="Pane", found_index=0).\ - child_window(control_type="Custom", found_index=0).\ - child_window(control_type="Custom", found_index=0) - instrument_control_tab.dump_tree(3) - btn: UIAWrapper = instrument_control_tab.child_window(auto_id="methodButtonStartSequence", control_type="Button").wrapper_object() - self.start_time = datetime.now() - btn.click() - self._wf_name = wf_name - self._success = True - return True - - def check_status(self): - app = Application(backend='uia').connect(title=u"PREP-LC (联机): 方法和运行控制 ") - window = app['PREP-LC (联机): 方法和运行控制'] - ui_window = window.child_window(title="靠顶部", control_type="Group").\ - child_window(title="状态", control_type="ToolBar").\ - child_window(title="项目", control_type="Button", found_index=0) - # 检测pixel的颜色 - element_info: UIAElementInfo = ui_window.element_info - rectangle = element_info.rectangle - point_x = int(rectangle.left + rectangle.width() * 0.15) - point_y = int(rectangle.top + rectangle.height() * 0.15) - r, g, b = pyautogui.pixel(point_x, point_y) - if 270 > r > 250 and 200 > g > 180 and b < 10: # 是黄色 - self._is_running = False - self._status_text = "Not Ready" - elif r > 110 and g > 190 and 50 < b < 60: - self._is_running = False - self._status_text = "Ready" - elif 75 > r > 65 and 135 > g > 120 and 240 > b > 230: - self._is_running = True - self._status_text = "Running" - else: - print(point_x, point_y, "未知的状态", r, g, b) - - def extract_data_from_txt(self, file_path): - # 打开文件 - print(file_path) - with open(file_path, mode='r', encoding='utf-16') as f: - lines = f.readlines() - # 定义一个标志变量来判断是否已经找到“馏分列表” - started = False - data = [] - - for line in lines: - # 查找“馏分列表”,并开始提取后续行 - if line.startswith("-----|-----|-----"): - started = True - continue # 跳过当前行 - if started: - # 遇到"==="表示结束读取 - if '=' * 80 in line: - break - # 使用正则表达式提取馏分、孔、位置和原因 - res = re.split(r'\s+', line.strip()) - if res: - fraction, hole, position, reason = res[0], res[1], res[2], res[-1] - data.append({ - '馏分': fraction, - '孔': hole, - '位置': position, - '原因': reason.strip() - }) - - return data - - def get_data_file(self, mat_index: str = None, after_time: datetime = None) -> tuple[str, str]: - """ - 获取数据文件 - after_time: 由于HPLC是启动后生成一个带时间的目录,所以会选取after_time后的文件 - """ - if mat_index is None: - print(f"mat_index不能为空") - return None - if after_time is None: - after_time = self.start_time - files = [i for i in os.listdir(self.data_file_path) if i.startswith(self.using_method)] - time_to_files: list[tuple[datetime, str]] = [(datetime.strptime(i.split(" ", 1)[1], "%Y-%m-%d %H-%M-%S"), i) for i in files] - time_to_files.sort(key=lambda x: x[0]) - choose_folder = None - for i in time_to_files: - if i[0] > after_time: - print(i[0], after_time) - print(f"选取时间{datetime.strftime(after_time, '%Y-%m-%d %H-%M-%S')}之后的文件夹{i[1]}") - choose_folder = i[1] - break - if choose_folder is None: - print(f"没有找到{self.using_method} {datetime.strftime(after_time, '%Y-%m-%d %H-%M-%S')}之后的文件夹") - return None - current_data_path = os.path.join(self.data_file_path, choose_folder) - - # 需要匹配 数字数字数字-.* 001-P2-E1-DQJ-4-70.D - target_row = [i for i in os.listdir(current_data_path) if re.match(r"\d{3}-.*", i)] - index2filepath = {int(k.split("-")[0]): os.path.join(current_data_path, k) for k in target_row} - print(f"查找文件{mat_index}") - if int(mat_index) not in index2filepath: - print(f"没有找到{mat_index}的文件 已找到:{index2filepath}") - return None - mat_final_path = index2filepath[int(mat_index)] - pdf = os.path.join(mat_final_path, "Report.PDF") - txt = os.path.join(mat_final_path, "Report.TXT") - fractions = self.extract_data_from_txt(txt) - print(fractions) - return pdf, txt - - def __init__(self, driver_debug=False): - super().__init__() - self.data_file_path = r"D:\ChemStation\1\Data" - self.using_method = f"1106-dqj-4-64" - self.start_time = datetime.now() - self._device_status = dict() - self.resource_info: dict[str, dict] = dict() - # 启动所有监控器 - self.checkers = [ - InstrumentChecker(self, 1), - RunningChecker(self, 1), - RunningResultChecker(self, 1), - ] - if not driver_debug: - for checker in self.checkers: - checker.start_monitoring() - - -class DriverChecker(ud.DriverChecker): - driver: HPLCDriver - -class InstrumentChecker(DriverChecker): - _instrument_control_tab = None - _instrument_control_tab_wrapper = None - def get_instrument_status(self): - if self._instrument_control_tab is not None: - return self._instrument_control_tab - # 连接到目标窗口 - app = Application(backend='uia').connect(title=u"PREP-LC (联机): 方法和运行控制 ") - window = app['PREP-LC (联机): 方法和运行控制'] - window.allow_magic_lookup = False - panel_nav_tab = window.child_window(title="panelNavTabChem", auto_id="panelNavTabChem", control_type="Pane") - first_pane = panel_nav_tab.child_window(auto_id="uctlNavTabChem1", control_type="Pane") - panel_control_station = first_pane.child_window(title="panelControlChemStation", auto_id="panelControlChemStation", control_type="Pane") - instrument_control_tab: WindowSpecification = panel_control_station.\ - child_window(auto_id="tabControlChem", control_type="Tab").\ - child_window(title="仪器控制", auto_id="tabPage1", control_type="Pane").\ - child_window(auto_id="uctrlChemStation", control_type="Pane").\ - child_window(title="panelChemStation", auto_id="panelChemStation", control_type="Pane").\ - child_window(title="PREP-LC (联机): 方法和运行控制 ", control_type="Pane").\ - child_window(title="ViewMGR", control_type="Pane").\ - child_window(title="MRC view", control_type="Pane").\ - child_window(auto_id="mainMrcControlHost", control_type="Pane").\ - child_window(control_type="Pane", found_index=0).\ - child_window(control_type="Pane", found_index=0).\ - child_window(control_type="Custom", found_index=0).\ - child_window(best_match="Custom6").\ - child_window(auto_id="ListBox_DashboardPanel", control_type="List") - if self._instrument_control_tab is None: - self._instrument_control_tab = instrument_control_tab - self._instrument_control_tab_wrapper = instrument_control_tab.wrapper_object() - return self._instrument_control_tab - - - def check(self): - self.get_instrument_status() - if self._instrument_control_tab_wrapper is None or self._instrument_control_tab is None: - return - item: UIAWrapper - index = 0 - keys = list(self.driver._device_status.keys()) - for item in self._instrument_control_tab_wrapper.children(): - info: UIAElementInfo = item.element_info - if info.control_type == "ListItem" and item.window_text() == "Agilent.RapidControl.StatusDashboard.PluginViewModel": - sub_item: WindowSpecification = self._instrument_control_tab.\ - child_window(title="Agilent.RapidControl.StatusDashboard.PluginViewModel", control_type="ListItem", found_index=index).\ - child_window(control_type="Custom", found_index=0) - if index < len(keys): - deviceStatusInfo = self.driver._device_status[keys[index]] - name = deviceStatusInfo["name"] - deviceStatusInfo["status"] = deviceStatusInfo["status_obj"].window_text() - print(name, index, deviceStatusInfo["status"], "刷新") - if deviceStatusInfo["open_btn"] is not None and deviceStatusInfo["close_btn"] is not None: - index += 1 - continue - else: - name_obj = sub_item.child_window(control_type="Text", found_index=0).wrapper_object() - name = name_obj.window_text() - self.driver._device_status[name] = dict() - self.driver._device_status[name]["name_obj"] = name_obj - self.driver._device_status[name]["name"] = name - print(name, index) - status = sub_item.child_window(control_type="Custom", found_index=0).\ - child_window(auto_id="TextBlock_StateLabel", control_type="Text") - status_obj: UIAWrapper = status.wrapper_object() - self.driver._device_status[name]["status_obj"] = status_obj - self.driver._device_status[name]["status"] = status_obj.window_text() - print(status.window_text()) - sub_item = sub_item.wrapper_object() - found_index = 0 - open_btn = None - close_btn = None - for btn in sub_item.children(): - if btn.element_info.control_type == "Button": - found_index += 1 - if found_index == 5: - open_btn = btn - elif found_index == 6: - close_btn = btn - self.driver._device_status[name]["open_btn"] = open_btn - self.driver._device_status[name]["close_btn"] = close_btn - index += 1 - -class RunningChecker(DriverChecker): - def check(self): - self.driver.check_status() - -class RunningResultChecker(DriverChecker): - _finished: UIAWrapper = None - _total_sample_number: UIAWrapper = None - - def check(self): - if self._finished is None or self._total_sample_number is None: - app = Application(backend='uia').connect(title=u"PREP-LC (联机): 方法和运行控制 ") - window = app['PREP-LC (联机): 方法和运行控制'] - window.allow_magic_lookup = False - panel_nav_tab = window.child_window(title="panelNavTabChem", auto_id="panelNavTabChem", control_type="Pane") - first_pane = panel_nav_tab.child_window(auto_id="uctlNavTabChem1", control_type="Pane") - panel_control_station = first_pane.child_window(title="panelControlChemStation", auto_id="panelControlChemStation", control_type="Pane") - instrument_control_tab: WindowSpecification = panel_control_station.\ - child_window(auto_id="tabControlChem", control_type="Tab").\ - child_window(title="仪器控制", auto_id="tabPage1", control_type="Pane").\ - child_window(auto_id="uctrlChemStation", control_type="Pane").\ - child_window(title="panelChemStation", auto_id="panelChemStation", control_type="Pane").\ - child_window(title="PREP-LC (联机): 方法和运行控制 ", control_type="Pane").\ - child_window(title="ViewMGR", control_type="Pane").\ - child_window(title="MRC view", control_type="Pane").\ - child_window(auto_id="mainMrcControlHost", control_type="Pane").\ - child_window(control_type="Pane", found_index=0).\ - child_window(control_type="Pane", found_index=0).\ - child_window(control_type="Custom", found_index=0).\ - child_window(auto_id="mainControlExpanderSampleInformation", control_type="Group").\ - child_window(auto_id="controlsSampleInfo", control_type="Custom") - self._finished = instrument_control_tab.child_window(best_match="Static15").wrapper_object() - self._total_sample_number = instrument_control_tab.child_window(best_match="Static16").wrapper_object() - try: - temp = int(self._finished.window_text()) - if self.driver._finished is None or temp > self.driver._finished: - if self.driver._finished is None: - self.driver._finished = 0 - for i in range(self.driver._finished, temp): - sample_id = self.driver._get_resource_sample_id(self.driver._wf_name, i) # 从0开始计数 - pdf, txt = self.driver.get_data_file(i + 1) - # 使用新的OSS上传接口,传入driver_name和exp_type - pdf_result = oss_upload(pdf, filename=os.path.basename(pdf), driver_name="HPLC", exp_type="analysis") - txt_result = oss_upload(txt, filename=os.path.basename(txt), driver_name="HPLC", exp_type="result") - - if pdf_result["success"]: - print(f"PDF上传成功: {pdf_result['oss_path']}") - else: - print(f"PDF上传失败: {pdf_result['original_path']}") - - if txt_result["success"]: - print(f"TXT上传成功: {txt_result['oss_path']}") - else: - print(f"TXT上传失败: {txt_result['original_path']}") - # self.driver.extract_data_from_txt() - except Exception as ex: - self.driver._finished = 0 - - print("转换数字出错", ex) - try: - self.driver._total_sample_number = int(self._total_sample_number.window_text()) - except Exception as ex: - self.driver._total_sample_number = 0 - print("转换数字出错", ex) - - - - -# 示例用法 -if __name__ == "__main__": - # obj = HPLCDriver.__new__(HPLCDriver) - # obj.start_sequence() - - # obj = HPLCDriver.__new__(HPLCDriver) - # obj.data_file_path = r"D:\ChemStation\1\Data" - # obj.using_method = r"1106-dqj-4-64" - # obj.get_data_file("001", after_time=datetime(2024, 11, 6, 19, 3, 6)) - - obj = HPLCDriver.__new__(HPLCDriver) - obj.data_file_path = r"D:\ChemStation\1\Data" - obj.using_method = r"1106-dqj-4-64" - obj._wf_name = "test" - obj.resource_info = { - "test": { - "1": { - "children": { - "11": { - "children": { - "111": { - "sample_id": "sample-1" - }, - "112": { - "sample_id": "sample-2" - } - } - } - } - } - } - } - sample_id = obj._get_resource_sample_id("test", 0) - pdf, txt = obj.get_data_file("1", after_time=datetime(2024, 11, 6, 19, 3, 6)) - # 使用新的OSS上传接口,传入driver_name和exp_type - pdf_result = oss_upload(pdf, filename=os.path.basename(pdf), driver_name="HPLC", exp_type="analysis") - txt_result = oss_upload(txt, filename=os.path.basename(txt), driver_name="HPLC", exp_type="result") - - print(f"PDF上传结果: {pdf_result}") - print(f"TXT上传结果: {txt_result}") - # driver = HPLCDriver() - # for i in range(10000): - # print({k: v for k, v in driver._device_status.items() if isinstance(v, str)}) - # print(driver.device_status) - # print(driver.could_run) - # print(driver.driver_init_ok) - # print(driver.is_running) - # print(driver.finish_status) - # print(driver.status_text) - # time.sleep(5) diff --git a/unilabos/devices/hplc/__init__.py b/unilabos/devices/hplc/__init__.py deleted file mode 100644 index e69de29b..00000000 diff --git a/unilabos/devices/liquid_handling/__init__.py b/unilabos/devices/liquid_handling/__init__.py deleted file mode 100644 index e69de29b..00000000 diff --git a/unilabos/devices/liquid_handling/biomek.py b/unilabos/devices/liquid_handling/biomek.py deleted file mode 100644 index 7fbafd7e..00000000 --- a/unilabos/devices/liquid_handling/biomek.py +++ /dev/null @@ -1,1098 +0,0 @@ -import json -import pathlib -from typing import Sequence, Optional, List, Union, Literal - -import requests -from geometry_msgs.msg import Point -from pylabrobot.liquid_handling import LiquidHandler -from pylabrobot.resources import ( - TipRack, - Container, - Coordinate, -) -import copy -from unilabos_msgs.msg import Resource - -from unilabos.resources.resource_tracker import DeviceNodeResourceTracker # type: ignore - - -class LiquidHandlerBiomek: - """ - Biomek液体处理器的实现类,继承自LiquidHandlerAbstract。 - 该类用于处理Biomek液体处理器的特定操作。 - """ - - def __init__(self, *args, **kwargs): - super().__init__(*args, **kwargs) - self._status = "Idle" # 初始状态为 Idle - self._success = False # 初始成功状态为 False - self._status_queue = kwargs.get("status_queue", None) # 状态队列 - self.temp_protocol = {} - self.py32_path = "/opt/py32" # Biomek的Python 3.2路径 - - # 预定义的仪器分类 - self.tip_racks = [ - "BC230", "BC1025F", "BC50", "TipRack200", "TipRack1000", - "tip", "tips", "Tip", "Tips" - ] - - self.reservoirs = [ - "AgilentReservoir", "nest_12_reservoir_15ml", "nest_1_reservoir_195ml", - "reservoir", "Reservoir", "waste", "Waste" - ] - - self.plates_96 = [ - "BCDeep96Round", "Matrix96_750uL", "NEST 2ml Deep Well Plate", "nest_96_wellplate_100ul_pcr_full_skirt", - "nest_96_wellplate_200ul_flat", "Matrix96", "96", "plate", "Plate" - ] - - self.aspirate_techniques = { - 'MC P300 high':{ - 'Position': 'P1', - 'Height': -2.0, - 'Volume': '50', - 'liquidtype': 'Well Contents', - 'WellsX': 12, - 'LabwareClass': 'Matrix96_750uL', - 'AutoSelectPrototype': True, - 'ColsFirst': True, - 'CustomHeight': False, - 'DataSetPattern': False, - 'HeightFrom': 0, - 'LocalPattern': True, - 'Operation': 'Aspirate', - 'OverrideHeight': False, - 'Pattern': (True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True), - 'Prototype': 'MC P300 High', - 'ReferencedPattern': '', - 'RowsFirst': False, - 'SectionExpression': '', - 'SelectionInfo': (1,), - 'SetMark': True, - 'Source': True, - 'StartAtMark': False, - 'StartAtSelection': True, - 'UseExpression': False}, - } - - self.dispense_techniques = { - 'MC P300 high':{ - 'Position': 'P11', - 'Height': -2.0, - 'Volume': '50', - 'liquidtype': 'Tip Contents', - 'WellsX': 12, - 'LabwareClass': 'Matrix96_750uL', - 'AutoSelectPrototype': True, - 'ColsFirst': True, - 'CustomHeight': False, - 'DataSetPattern': False, - 'HeightFrom': 0, - 'LocalPattern': True, - 'Operation': 'Dispense', - 'OverrideHeight': False, - 'Pattern': (True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True), - 'Prototype': 'MC P300 High', - 'ReferencedPattern': '', - 'RowsFirst': False, - 'SectionExpression': '', - 'SelectionInfo': (1,), - 'SetMark': True, - 'Source': False, - 'StartAtMark': False, - 'StartAtSelection': True, - 'UseExpression': False} - } - - def _get_instrument_type(self, class_name: str) -> str: - """ - 根据class_name判断仪器类型 - - Returns: - str: "tip_rack", "reservoir", "plate_96", 或 "unknown" - """ - # 检查是否是枪头架 - for tip_name in self.tip_racks: - if tip_name in class_name: - return "tip_rack" - - # 检查是否是储液槽 - for reservoir_name in self.reservoirs: - if reservoir_name in class_name: - return "reservoir" - - # 检查是否是96孔板 - for plate_name in self.plates_96: - if plate_name in class_name: - return "plate_96" - - return "unknown" - - @classmethod - def deserialize(cls, data: dict, allow_marshal: bool = False) -> LiquidHandler: - return LiquidHandler.deserialize(data, allow_marshal) - - @property - def success(self): - """ - 获取操作是否成功的状态。 - - Returns: - bool: 如果操作成功,返回True;否则返回False。 - """ - return self._success - - def create_protocol( - self, - protocol_name: str, - protocol_description: str, - protocol_version: str, - protocol_author: str, - protocol_date: str, - protocol_type: str, - none_keys: List[str] = [], - ): - """ - 创建一个新的协议。 - - Args: - protocol_name (str): 协议名称 - protocol_description (str): 协议描述 - protocol_version (str): 协议版本 - protocol_author (str): 协议作者 - protocol_date (str): 协议日期 - protocol_type (str): 协议类型 - none_keys (List[str]): 需要设置为None的键列表 - - Returns: - dict: 创建的协议字典 - """ - self.temp_protocol = { - "meta": { - "name": protocol_name, - "description": protocol_description, - "version": protocol_version, - "author": protocol_author, - "date": protocol_date, - "type": protocol_type, - }, - "labwares": {}, - "steps": [], - } - return self.temp_protocol - - def run_protocol(self): - """ - 执行创建的实验流程。 - 工作站的完整执行流程是, - 从 create_protocol 开始,创建新的 method, - 随后执行 transfer_liquid 等操作向实验流程添加步骤, - 最后 run_protocol 执行整个方法。 - - Returns: - dict: 执行结果 - """ - #use popen or subprocess to create py32 process and communicate send the temp protocol to it - if not self.temp_protocol: - raise ValueError("No protocol created. Please create a protocol first.") - - # 模拟执行协议 - self._status = "Running" - self._success = True - # 在这里可以添加实际执行协议的逻辑 - - response = requests.post("localhost:5000/api/protocols", json=self.temp_protocol) - - def create_resource( - self, - resource_tracker: DeviceNodeResourceTracker, - resources: list[Resource], - bind_parent_id: str, - bind_location: dict[str, float], - liquid_input_slot: list[int], - liquid_type: list[str], - liquid_volume: list[int], - slot_on_deck: int, - ): - """ - 创建一个新的资源。 - - Args: - device_id (str): 设备ID - res_id (str): 资源ID - class_name (str): 资源类名 - parent (str): 父级ID - bind_locations (Point): 绑定位置 - liquid_input_slot (list[int]): 液体输入槽列表 - liquid_type (list[str]): 液体类型列表 - liquid_volume (list[int]): 液体体积列表 - slot_on_deck (int): 甲板上的槽位 - - Returns: - dict: 创建的资源字典 - """ - # TODO:需要对好接口,下面这个是临时的 - for resource in resources: - res_id = resource.id - class_name = resource.name - parent = bind_parent_id - liquid_input_slot = liquid_input_slot - liquid_type = liquid_type - liquid_volume = liquid_volume - slot_on_deck = slot_on_deck - - resource = { - "id": res_id, - "class": class_name, - "parent": parent, - "bind_locations": bind_location, - "liquid_input_slot": liquid_input_slot, - "liquid_type": liquid_type, - "liquid_volume": liquid_volume, - "slot_on_deck": slot_on_deck, - } - self.temp_protocol["labwares"].append(resource) - return resources - - def transfer_liquid( - self, - sources: Sequence[Container], - targets: Sequence[Container], - tip_racks: Sequence[TipRack], - *, - use_channels: Optional[List[int]] = None, - asp_vols: Union[List[float], float], - dis_vols: Union[List[float], float], - asp_flow_rates: Optional[List[Optional[float]]] = None, - dis_flow_rates: Optional[List[Optional[float]]] = None, - offsets: Optional[List[Coordinate]] = None, - touch_tip: bool = False, - liquid_height: Optional[List[Optional[float]]] = None, - blow_out_air_volume: Optional[List[Optional[float]]] = None, - spread: Literal["wide", "tight", "custom"] = "wide", - is_96_well: bool = False, - mix_stage: Optional[Literal["none", "before", "after", "both"]] = "none", - mix_times: Optional[int] = None, - mix_vol: Optional[int] = None, - mix_rate: Optional[int] = None, - mix_liquid_height: Optional[float] = None, - delays: Optional[List[int]] = None, - none_keys: List[str] = [] - ): - - transfer_params = { - "Span8": False, - "Pod": "Pod1", - "items": {}, - "Wash": False, - "Dynamic?": True, - "AutoSelectActiveWashTechnique": False, - "ActiveWashTechnique": "", - "ChangeTipsBetweenDests": False, - "ChangeTipsBetweenSources": False, - "DefaultCaption": "", - "UseExpression": False, - "LeaveTipsOn": False, - "MandrelExpression": "", - "Repeats": "1", - "RepeatsByVolume": False, - "Replicates": "1", - "ShowTipHandlingDetails": False, - "ShowTransferDetails": True, - "Solvent": "Well Content", - "Span8Wash": False, - "Span8WashVolume": "2", - "Span8WasteVolume": "1", - "SplitVolume": False, - "SplitVolumeCleaning": False, - "Stop": "Destinations", - "TipLocation": "BC1025F", - "UseCurrentTips": False, - "UseDisposableTips": True, - "UseFixedTips": False, - "UseJIT": True, - "UseMandrelSelection": True, - "UseProbes": [True, True, True, True, True, True, True, True], - "WashCycles": "1", - "WashVolume": "110%", - "Wizard": False - } - - items: dict = {} - for idx, (src, dst) in enumerate(zip(sources, targets)): - items[str(idx)] = { - "Source": str(src), - "Destination": str(dst), - "Volume": dis_vols[idx] - } - transfer_params["items"] = items - - transfer_params["Solvent"] = "Water" - TipLocation = tip_racks[0].name - transfer_params["TipLocation"] = TipLocation - - if len(tip_racks) == 1: - transfer_params['UseCurrentTips'] = True - elif len(tip_racks) > 1: - transfer_params["ChangeTipsBetweenDests"] = True - - self.temp_protocol["steps"].append(transfer_params) - - return - - def instrument_setup_biomek( - self, - id: str, - parent: str, - slot_on_deck: str, - class_name: str, - liquid_type: list[str], - liquid_volume: list[int], - liquid_input_wells: list[str], - ): - """ - 设置Biomek仪器的参数配置,按照DeckItems格式 - - 根据不同的仪器类型(容器、tip rack等)设置相应的参数结构 - 位置作为键,配置列表作为值 - """ - - # 判断仪器类型 - instrument_type = self._get_instrument_type(class_name) - - config = None # 初始化为None - - if instrument_type == "reservoir": - # 储液槽类型配置 - config = { - "Properties": { - "Name": id, # 使用id作为名称 - "Device": "", - "liquidtype": liquid_type[0] if liquid_type else "Water", - "BarCode": "", - "SenseEveryTime": False - }, - "Known": True, - "Class": f"LabwareClasses\\{class_name}", - "DataSets": {"Volume": {}}, - "RuntimeDataSets": {"Volume": {}}, - "EvalAmounts": (float(liquid_volume[0]),) if liquid_volume else (0,), - "Nominal": False, - "EvalLiquids": (liquid_type[0],) if liquid_type else ("Water",) - } - - elif instrument_type == "plate_96": - # 96孔板类型配置 - volume_per_well = float(liquid_volume[0]) if liquid_volume else 0 - liquid_per_well = liquid_type[0] if liquid_type else "Water" - - config = { - "Properties": { - "Name": id, # 使用id作为名称 - "Device": "", - "liquidtype": liquid_per_well, - "BarCode": "", - "SenseEveryTime": False - }, - "Known": True, - "Class": f"LabwareClasses\\{class_name}", - "DataSets": {"Volume": {}}, - "RuntimeDataSets": {"Volume": {}}, - "EvalAmounts": tuple([volume_per_well] * 96), - "Nominal": False, - "EvalLiquids": tuple([liquid_per_well] * 96) - } - - elif instrument_type == "tip_rack": - # 枪头架类型配置 - tip_config = { - "Class": "TipClasses\\T230", - "Contents": [], - "_RT_Contents": [], - "Used": False, - "RT_Used": False, - "Dirty": False, - "RT_Dirty": False, - "MaxVolumeUsed": 0.0, - "RT_MaxVolumeUsed": 0.0 - } - - config = { - "Tips": tip_config, - "RT_Tips": tip_config.copy(), - "Properties": {}, - "Known": False, - "Class": f"LabwareClasses\\{class_name}", - "DataSets": {"Volume": {}}, - "RuntimeDataSets": {"Volume": {}} - } - - # 按照DeckItems格式存储:位置作为键,配置列表作为值 - if config is not None: - self.temp_protocol["labwares"][slot_on_deck] = [config] - else: - # 空位置 - self.temp_protocol["labwares"][slot_on_deck] = [] - - return - - def transfer_biomek( - self, - source: str, - target: str, - tip_rack: str, - volume: float, - aspirate_techniques: str, - dispense_techniques: str, - ): - """ - 处理Biomek的液体转移操作。 - - """ - items = [] - - asp_params = copy.deepcopy(self.aspirate_techniques[aspirate_techniques]) - dis_params = copy.deepcopy(self.dispense_techniques[dispense_techniques]) - - asp_params['Position'] = source - dis_params['Position'] = target - asp_params['Volume'] = str(volume) - dis_params['Volume'] = str(volume) - - items.append(asp_params) - items.append(dis_params) - - transfer_params = { - "Span8": False, - "Pod": "Pod1", - "items": [], - "Wash": False, - "Dynamic?": True, - "AutoSelectActiveWashTechnique": False, - "ActiveWashTechnique": "", - "ChangeTipsBetweenDests": True, - "ChangeTipsBetweenSources": False, - "DefaultCaption": "", - "UseExpression": False, - "LeaveTipsOn": False, - "MandrelExpression": "", - "Repeats": "1", - "RepeatsByVolume": False, - "Replicates": "1", - "ShowTipHandlingDetails": False, - "ShowTransferDetails": True, - "Solvent": "Water", - "Span8Wash": False, - "Span8WashVolume": "2", - "Span8WasteVolume": "1", - "SplitVolume": False, - "SplitVolumeCleaning": False, - "Stop": "Destinations", - "TipLocation": "BC230", - "UseCurrentTips": False, - "UseDisposableTips": False, - "UseFixedTips": False, - "UseJIT": True, - "UseMandrelSelection": True, - "UseProbes": [True, True, True, True, True, True, True, True], - "WashCycles": "4", - "WashVolume": "110%", - "Wizard": False - } - transfer_params["items"] = items - transfer_params["Solvent"] = 'Water' - transfer_params["TipLocation"] = tip_rack - tmp={'transfer': transfer_params} - self.temp_protocol["steps"].append(tmp) - - return - - - def move_biomek( - self, - source: str, - target: str, - ): - """ - 处理Biomek移动板子的操作。 - - """ - - move_params = { - "Pod": "Pod1", - "GripSide": "A1 near", - "Source": source, - "Target": target, - "LeaveBottomLabware": False, - } - self.temp_protocol["steps"].append(move_params) - - return - - def incubation_biomek( - self, - time: int, - ): - """ - 处理Biomek的孵育操作。 - """ - incubation_params = { - "Message": "Paused", - "Location": "the whole system", - "Time": time, - "Mode": "TimedResource" - } - self.temp_protocol["steps"].append(incubation_params) - - return - - def oscillation_biomek( - self, - rpm: int, - time: int, - ): - """ - 处理Biomek的振荡操作。 - """ - oscillation_params = { - 'Device': 'OrbitalShaker0', - 'Parameters': (str(rpm), '2', str(time), 'CounterClockwise'), - 'Command': 'Timed Shake' - } - self.temp_protocol["steps"].append(oscillation_params) - - return - - -if __name__ == "__main__": - - print("=== Biomek完整流程测试 ===") - print("包含: 仪器设置 + 完整实验步骤") - - # 完整的步骤信息(从biomek.py复制) - steps_info = ''' - { - "steps": [ - { - "step_number": 1, - "operation": "transfer", - "description": "转移PCR产物或酶促反应液至0.5ml 96孔板中", - "parameters": { - "source": "P1", - "target": "P11", - "tip_rack": "BC230", - "volume": 50 - } - }, - { - "step_number": 2, - "operation": "transfer", - "description": "加入2倍体积的Bind Beads BC至产物中", - "parameters": { - "source": "P2", - "target": "P11", - "tip_rack": "BC230", - "volume": 100 - } - }, - { - "step_number": 3, - "operation": "oscillation", - "description": "振荡混匀300秒", - "parameters": { - "rpm": 800, - "time": 300 - } - }, - { - "step_number": 4, - "operation": "move_labware", - "description": "转移至96孔磁力架上吸附3分钟", - "parameters": { - "source": "P11", - "target": "P12" - } - }, - { - "step_number": 5, - "operation": "incubation", - "description": "吸附3分钟", - "parameters": { - "time": 180 - } - }, - { - "step_number": 6, - "operation": "transfer", - "description": "吸弃或倒除上清液", - "parameters": { - "source": "P12", - "target": "P22", - "tip_rack": "BC230", - "volume": 150 - } - }, - { - "step_number": 7, - "operation": "transfer", - "description": "加入300-500μl 75%乙醇", - "parameters": { - "source": "P3", - "target": "P12", - "tip_rack": "BC230", - "volume": 400 - } - }, - { - "step_number": 8, - "operation": "move_labware", - "description": "移动至振荡器进行振荡混匀", - "parameters": { - "source": "P12", - "target": "Orbital1" - } - }, - { - "step_number": 9, - "operation": "oscillation", - "description": "振荡混匀60秒", - "parameters": { - "rpm": 800, - "time": 60 - } - }, - { - "step_number": 10, - "operation": "move_labware", - "description": "转移至96孔磁力架上吸附3分钟", - "parameters": { - "source": "Orbital1", - "target": "P12" - } - }, - { - "step_number": 11, - "operation": "incubation", - "description": "吸附3分钟", - "parameters": { - "time": 180 - } - }, - { - "step_number": 12, - "operation": "transfer", - "description": "吸弃或倒弃废液", - "parameters": { - "source": "P12", - "target": "P22", - "tip_rack": "BC230", - "volume": 400 - } - }, - { - "step_number": 13, - "operation": "transfer", - "description": "重复加入75%乙醇", - "parameters": { - "source": "P3", - "target": "P12", - "tip_rack": "BC230", - "volume": 400 - } - }, - { - "step_number": 14, - "operation": "move_labware", - "description": "移动至振荡器进行振荡混匀", - "parameters": { - "source": "P12", - "target": "Orbital1" - } - }, - { - "step_number": 15, - "operation": "oscillation", - "description": "振荡混匀60秒", - "parameters": { - "rpm": 800, - "time": 60 - } - }, - { - "step_number": 16, - "operation": "move_labware", - "description": "转移至96孔磁力架上吸附3分钟", - "parameters": { - "source": "Orbital1", - "target": "P12" - } - }, - { - "step_number": 17, - "operation": "incubation", - "description": "吸附3分钟", - "parameters": { - "time": 180 - } - }, - { - "step_number": 18, - "operation": "transfer", - "description": "吸弃或倒弃废液", - "parameters": { - "source": "P12", - "target": "P22", - "tip_rack": "BC230", - "volume": 400 - } - }, - { - "step_number": 19, - "operation": "move_labware", - "description": "正放96孔板,空气干燥15分钟", - "parameters": { - "source": "P12", - "target": "P13" - } - }, - { - "step_number": 20, - "operation": "incubation", - "description": "空气干燥15分钟", - "parameters": { - "time": 900 - } - }, - { - "step_number": 21, - "operation": "transfer", - "description": "加入30-50μl Elution Buffer", - "parameters": { - "source": "P4", - "target": "P13", - "tip_rack": "BC230", - "volume": 40 - } - }, - { - "step_number": 22, - "operation": "move_labware", - "description": "移动至振荡器进行振荡混匀", - "parameters": { - "source": "P13", - "target": "Orbital1" - } - }, - { - "step_number": 23, - "operation": "oscillation", - "description": "振荡混匀60秒", - "parameters": { - "rpm": 800, - "time": 60 - } - }, - { - "step_number": 24, - "operation": "move_labware", - "description": "室温静置3分钟", - "parameters": { - "source": "Orbital1", - "target": "P13" - } - }, - { - "step_number": 25, - "operation": "incubation", - "description": "室温静置3分钟", - "parameters": { - "time": 180 - } - }, - { - "step_number": 26, - "operation": "move_labware", - "description": "转移至96孔磁力架上吸附2分钟", - "parameters": { - "source": "P13", - "target": "P12" - } - }, - { - "step_number": 27, - "operation": "incubation", - "description": "吸附2分钟", - "parameters": { - "time": 120 - } - }, - { - "step_number": 28, - "operation": "transfer", - "description": "将DNA转移至新的板中", - "parameters": { - "source": "P12", - "target": "P14", - "tip_rack": "BC230", - "volume": 40 - } - } - ] - } -''' - # 完整的labware配置信息 - labware_with_liquid = ''' - [ - { - "id": "Tip Rack BC230 TL1", - "parent": "deck", - "slot_on_deck": "TL1", - "class_name": "BC230", - "liquid_type": [], - "liquid_volume": [], - "liquid_input_wells": [] - }, - { - "id": "Tip Rack BC230 TL2", - "parent": "deck", - "slot_on_deck": "TL2", - "class_name": "BC230", - "liquid_type": [], - "liquid_volume": [], - "liquid_input_wells": [] - }, - { - "id": "Tip Rack BC230 TL3", - "parent": "deck", - "slot_on_deck": "TL3", - "class_name": "BC230", - "liquid_type": [], - "liquid_volume": [], - "liquid_input_wells": [] - }, - { - "id": "Tip Rack BC230 TL4", - "parent": "deck", - "slot_on_deck": "TL4", - "class_name": "BC230", - "liquid_type": [], - "liquid_volume": [], - "liquid_input_wells": [] - }, - { - "id": "Tip Rack BC230 TL5", - "parent": "deck", - "slot_on_deck": "TL5", - "class_name": "BC230", - "liquid_type": [], - "liquid_volume": [], - "liquid_input_wells": [] - }, - { - "id": "Tip Rack BC230 P5", - "parent": "deck", - "slot_on_deck": "P5", - "class_name": "BC230", - "liquid_type": [], - "liquid_volume": [], - "liquid_input_wells": [] - }, - { - "id": "Tip Rack BC230 P6", - "parent": "deck", - "slot_on_deck": "P6", - "class_name": "BC230", - "liquid_type": [], - "liquid_volume": [], - "liquid_input_wells": [] - }, - { - "id": "Tip Rack BC230 P15", - "parent": "deck", - "slot_on_deck": "P15", - "class_name": "BC230", - "liquid_type": [], - "liquid_volume": [], - "liquid_input_wells": [] - }, - { - "id": "Tip Rack BC230 P16", - "parent": "deck", - "slot_on_deck": "P16", - "class_name": "BC230", - "liquid_type": [], - "liquid_volume": [], - "liquid_input_wells": [] - }, - { - "id": "stock plate on P1", - "parent": "deck", - "slot_on_deck": "P1", - "class_name": "AgilentReservoir", - "liquid_type": ["PCR product"], - "liquid_volume": [5000], - "liquid_input_wells": ["A1"] - }, - { - "id": "stock plate on P2", - "parent": "deck", - "slot_on_deck": "P2", - "class_name": "AgilentReservoir", - "liquid_type": ["bind beads"], - "liquid_volume": [100000], - "liquid_input_wells": ["A1"] - }, - { - "id": "stock plate on P3", - "parent": "deck", - "slot_on_deck": "P3", - "class_name": "AgilentReservoir", - "liquid_type": ["75% ethanol"], - "liquid_volume": [100000], - "liquid_input_wells": ["A1"] - }, - { - "id": "stock plate on P4", - "parent": "deck", - "slot_on_deck": "P4", - "class_name": "AgilentReservoir", - "liquid_type": ["Elution Buffer"], - "liquid_volume": [5000], - "liquid_input_wells": ["A1"] - }, - { - "id": "working plate on P11", - "parent": "deck", - "slot_on_deck": "P11", - "class_name": "BCDeep96Round", - "liquid_type": [], - "liquid_volume": [], - "liquid_input_wells": [] - }, - { - "id": "working plate on P13", - "parent": "deck", - "slot_on_deck": "P13", - "class_name": "BCDeep96Round", - "liquid_type": [], - "liquid_volume": [], - "liquid_input_wells": [] - }, - { - "id": "working plate on P14", - "parent": "deck", - "slot_on_deck": "P14", - "class_name": "BCDeep96Round", - "liquid_type": [], - "liquid_volume": [], - "liquid_input_wells": [] - }, - { - "id": "waste on P22", - "parent": "deck", - "slot_on_deck": "P22", - "class_name": "AgilentReservoir", - "liquid_type": [], - "liquid_volume": [], - "liquid_input_wells": [] - }, - { - "id": "oscillation", - "parent": "deck", - "slot_on_deck": "Orbital1", - "class_name": "Orbital", - "liquid_type": [], - "liquid_volume": [], - "liquid_input_wells": [] - } - ] - ''' - - # 创建handler实例 - handler = LiquidHandlerBiomek() - - # 创建协议 - protocol = handler.create_protocol( - protocol_name="DNA纯化完整流程", - protocol_description="使用磁珠进行DNA纯化的完整自动化流程", - protocol_version="1.0", - protocol_author="Biomek系统", - protocol_date="2024-01-01", - protocol_type="DNA_purification" - ) - - print("\n=== 第一步:设置所有仪器 ===") - # 解析labware配置 - labwares = json.loads(labware_with_liquid) - - # 设置所有仪器 - instrument_count = 0 - for labware in labwares: - print(f"设置仪器: {labware['id']} ({labware['class_name']}) 在位置 {labware['slot_on_deck']}") - handler.instrument_setup_biomek( - id=labware['id'], - parent=labware['parent'], - slot_on_deck=labware['slot_on_deck'], - class_name=labware['class_name'], - liquid_type=labware['liquid_type'], - liquid_volume=labware['liquid_volume'], - liquid_input_wells=labware['liquid_input_wells'] - ) - instrument_count += 1 - - print(f"总共设置了 {instrument_count} 个仪器位置") - - print("\n=== 第二步:执行实验步骤 ===") - # 解析步骤信息 - input_steps = json.loads(steps_info) - - # 执行所有步骤 - step_count = 0 - for step in input_steps['steps']: - operation = step['operation'] - parameters = step['parameters'] - description = step['description'] - - print(f"步骤 {step['step_number']}: {description}") - - if operation == 'transfer': - handler.transfer_biomek( - source=parameters['source'], - target=parameters['target'], - volume=parameters['volume'], - tip_rack=parameters['tip_rack'], - aspirate_techniques='MC P300 high', - dispense_techniques='MC P300 high' - ) - elif operation == 'move_labware': - handler.move_biomek( - source=parameters['source'], - target=parameters['target'] - ) - elif operation == 'oscillation': - handler.oscillation_biomek( - rpm=parameters['rpm'], - time=parameters['time'] - ) - elif operation == 'incubation': - handler.incubation_biomek( - time=parameters['time'] - ) - - step_count += 1 - - print(f"总共执行了 {step_count} 个步骤") - - print("\n=== 第三步:保存完整协议 ===") - # 获取脚本目录 - script_dir = pathlib.Path(__file__).parent - - # 保存完整协议 - complete_output_path = script_dir / "complete_biomek_protocol_0608.json" - with open(complete_output_path, 'w', encoding='utf-8') as f: - json.dump(handler.temp_protocol, f, indent=4, ensure_ascii=False) - - print(f"完整协议已保存到: {complete_output_path}") - - print("\n=== 测试完成 ===") - print("完整的DNA纯化流程已成功转换为Biomek格式!") diff --git a/unilabos/devices/liquid_handling/biomek.txt b/unilabos/devices/liquid_handling/biomek.txt deleted file mode 100644 index 2d830a6d..00000000 --- a/unilabos/devices/liquid_handling/biomek.txt +++ /dev/null @@ -1,642 +0,0 @@ - - 当前方法 Method0530 包含 36 个步骤 - - 步骤 0: - Bitmap: OStepUI.ocx,START - Let: {} - Weak: {} - Prompt: {} - - 步骤 1: - BarcodeInput?: False - DeckItems: {'P1': [{'Properties': {'Name': '', 'Device': '', 'liquidtype': 'Water', 'BarCode': '', 'SenseEveryTime': False}, 'Known': True, 'Class': 'LabwareClasses\\Matrix96_750uL', 'DataSets': {'Volume': {}}, 'RuntimeDataSets': {'Volume': {}}, 'EvalAmounts': (500.0, 500.0, 500.0, 500.0, 500.0, 500.0, 500.0, 500.0, 500.0, 500.0, 500.0, 500.0, 500.0, 500.0, 500.0, 500.0, 500.0, 500.0, 500.0, 500.0, 500.0, 500.0, 500.0, 500.0, 500.0, 500.0, 500.0, 500.0, 500.0, 500.0, 500.0, 500.0, 500.0, 500.0, 500.0, 500.0, 500.0, 500.0, 500.0, 500.0, 500.0, 500.0, 500.0, 500.0, 500.0, 500.0, 500.0, 500.0, 500.0, 500.0, 500.0, 500.0, 500.0, 500.0, 500.0, 500.0, 500.0, 500.0, 500.0, 500.0, 500.0, 500.0, 500.0, 500.0, 500.0, 500.0, 500.0, 500.0, 500.0, 500.0, 500.0, 500.0, 500.0, 500.0, 500.0, 500.0, 500.0, 500.0, 500.0, 500.0, 500.0, 500.0, 500.0, 500.0, 500.0, 500.0, 500.0, 500.0, 500.0, 500.0, 500.0, 500.0, 500.0, 500.0, 500.0, 500.0), 'Nominal': False, 'EvalLiquids': ('Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water')}], 'P10': [{'Tips': {'Class': 'TipClasses\\T50F', 'Contents': [], '_RT_Contents': [], 'Used': False, 'RT_Used': False, 'Dirty': False, 'RT_Dirty': False, 'MaxVolumeUsed': 0.0, 'RT_MaxVolumeUsed': 0.0}, 'RT_Tips': {'Class': 'TipClasses\\T50F', 'Contents': [], '_RT_Contents': [], 'Used': False, 'RT_Used': False, 'Dirty': False, 'RT_Dirty': False, 'MaxVolumeUsed': 0.0, 'RT_MaxVolumeUsed': 0.0}, 'Properties': {}, 'Known': False, 'Class': 'LabwareClasses\\BC50F', 'DataSets': {'Volume': {}}, 'RuntimeDataSets': {'Volume': {}}}], 'P8': [], 'P9': [{'Tips': {'Class': 'TipClasses\\T50F', 'Contents': [], '_RT_Contents': [], 'Used': False, 'RT_Used': False, 'Dirty': False, 'RT_Dirty': False, 'MaxVolumeUsed': 0.0, 'RT_MaxVolumeUsed': 0.0}, 'RT_Tips': {'Class': 'TipClasses\\T50F', 'Contents': [], '_RT_Contents': [], 'Used': False, 'RT_Used': False, 'Dirty': False, 'RT_Dirty': False, 'MaxVolumeUsed': 0.0, 'RT_MaxVolumeUsed': 0.0}, 'Properties': {}, 'Known': False, 'Class': 'LabwareClasses\\BC50F', 'DataSets': {'Volume': {}}, 'RuntimeDataSets': {'Volume': {}}}], 'P11': [{'Properties': {'Name': '', 'Device': '', 'liquidtype': 'Water', 'BarCode': '', 'SenseEveryTime': False}, 'Known': True, 'Class': 'LabwareClasses\\BCDeep96Round', 'DataSets': {'Volume': {}}, 'RuntimeDataSets': {'Volume': {}}, 'EvalAmounts': (0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0), 'Nominal': False, 'EvalLiquids': ('Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water')}], 'P12': [], 'P13': [{'Properties': {'Name': '', 'Device': '', 'liquidtype': 'Water', 'BarCode': '', 'SenseEveryTime': False}, 'Known': True, 'Class': 'LabwareClasses\\BCDeep96Round', 'DataSets': {'Volume': {}}, 'RuntimeDataSets': {'Volume': {}}, 'EvalAmounts': (0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0), 'Nominal': False, 'EvalLiquids': ('Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water')}], 'P14': [], 'P15': [], 'P16': [{'Tips': {'Class': 'TipClasses\\T1025F', 'Contents': [], '_RT_Contents': [], 'Used': False, 'RT_Used': False, 'Dirty': False, 'RT_Dirty': False, 'MaxVolumeUsed': 0.0, 'RT_MaxVolumeUsed': 0.0}, 'RT_Tips': {'Class': 'TipClasses\\T1025F', 'Contents': [], '_RT_Contents': [], 'Used': False, 'RT_Used': False, 'Dirty': False, 'RT_Dirty': False, 'MaxVolumeUsed': 0.0, 'RT_MaxVolumeUsed': 0.0}, 'Properties': {}, 'Known': False, 'Class': 'LabwareClasses\\BC1025F', 'DataSets': {'Volume': {}}, 'RuntimeDataSets': {'Volume': {}}}], 'P17': [{'Tips': {'Class': 'TipClasses\\T1025F', 'Contents': [], '_RT_Contents': [], 'Used': False, 'RT_Used': False, 'Dirty': False, 'RT_Dirty': False, 'MaxVolumeUsed': 0.0, 'RT_MaxVolumeUsed': 0.0}, 'RT_Tips': {'Class': 'TipClasses\\T1025F', 'Contents': [], '_RT_Contents': [], 'Used': False, 'RT_Used': False, 'Dirty': False, 'RT_Dirty': False, 'MaxVolumeUsed': 0.0, 'RT_MaxVolumeUsed': 0.0}, 'Properties': {}, 'Known': False, 'Class': 'LabwareClasses\\BC1025F', 'DataSets': {'Volume': {}}, 'RuntimeDataSets': {'Volume': {}}}], 'P18': [{'Tips': {'Class': 'TipClasses\\T1025F', 'Contents': [], '_RT_Contents': [], 'Used': False, 'RT_Used': False, 'Dirty': False, 'RT_Dirty': False, 'MaxVolumeUsed': 0.0, 'RT_MaxVolumeUsed': 0.0}, 'RT_Tips': {'Class': 'TipClasses\\T1025F', 'Contents': [], '_RT_Contents': [], 'Used': False, 'RT_Used': False, 'Dirty': False, 'RT_Dirty': False, 'MaxVolumeUsed': 0.0, 'RT_MaxVolumeUsed': 0.0}, 'Properties': {}, 'Known': False, 'Class': 'LabwareClasses\\BC1025F', 'DataSets': {'Volume': {}}, 'RuntimeDataSets': {'Volume': {}}}], 'P19': [{'Tips': {'Class': 'TipClasses\\T1025F', 'Contents': [], '_RT_Contents': [], 'Used': False, 'RT_Used': False, 'Dirty': False, 'RT_Dirty': False, 'MaxVolumeUsed': 0.0, 'RT_MaxVolumeUsed': 0.0}, 'RT_Tips': {'Class': 'TipClasses\\T1025F', 'Contents': [], '_RT_Contents': [], 'Used': False, 'RT_Used': False, 'Dirty': False, 'RT_Dirty': False, 'MaxVolumeUsed': 0.0, 'RT_MaxVolumeUsed': 0.0}, 'Properties': {}, 'Known': False, 'Class': 'LabwareClasses\\BC1025F', 'DataSets': {'Volume': {}}, 'RuntimeDataSets': {'Volume': {}}}], 'P20': [], 'P2': [{'Properties': {'Name': '', 'Device': '', 'liquidtype': 'Water', 'BarCode': '', 'SenseEveryTime': False}, 'Known': True, 'Class': 'LabwareClasses\\Matrix96_750uL', 'DataSets': {'Volume': {}}, 'RuntimeDataSets': {'Volume': {}}, 'EvalAmounts': (500.0, 500.0, 500.0, 500.0, 500.0, 500.0, 500.0, 500.0, 500.0, 500.0, 500.0, 500.0, 500.0, 500.0, 500.0, 500.0, 500.0, 500.0, 500.0, 500.0, 500.0, 500.0, 500.0, 500.0, 500.0, 500.0, 500.0, 500.0, 500.0, 500.0, 500.0, 500.0, 500.0, 500.0, 500.0, 500.0, 500.0, 500.0, 500.0, 500.0, 500.0, 500.0, 500.0, 500.0, 500.0, 500.0, 500.0, 500.0, 500.0, 500.0, 500.0, 500.0, 500.0, 500.0, 500.0, 500.0, 500.0, 500.0, 500.0, 500.0, 500.0, 500.0, 500.0, 500.0, 500.0, 500.0, 500.0, 500.0, 500.0, 500.0, 500.0, 500.0, 500.0, 500.0, 500.0, 500.0, 500.0, 500.0, 500.0, 500.0, 500.0, 500.0, 500.0, 500.0, 500.0, 500.0, 500.0, 500.0, 500.0, 500.0, 500.0, 500.0, 500.0, 500.0, 500.0, 500.0), 'Nominal': False, 'EvalLiquids': ('Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water')}], 'P21': [], 'P22': [{'Properties': {'Name': '', 'Device': '', 'liquidtype': 'Water', 'BarCode': '', 'SenseEveryTime': False}, 'Known': True, 'Class': 'LabwareClasses\\AgilentReservoir', 'DataSets': {'Volume': {}}, 'RuntimeDataSets': {'Volume': {}}, 'EvalAmounts': (0.0,), 'Nominal': False, 'EvalLiquids': ('Water',)}], 'P23': [], 'P24': [], 'P25': [], 'P26': [], 'P27': [], 'P28': [{'Tips': {'Class': 'TipClasses\\T1025F', 'Contents': [], '_RT_Contents': [], 'Used': False, 'RT_Used': False, 'Dirty': False, 'RT_Dirty': False, 'MaxVolumeUsed': 0.0, 'RT_MaxVolumeUsed': 0.0}, 'RT_Tips': {'Class': 'TipClasses\\T1025F', 'Contents': [], '_RT_Contents': [], 'Used': False, 'RT_Used': False, 'Dirty': False, 'RT_Dirty': False, 'MaxVolumeUsed': 0.0, 'RT_MaxVolumeUsed': 0.0}, 'Properties': {}, 'Known': False, 'Class': 'LabwareClasses\\BC1025F', 'DataSets': {'Volume': {}}, 'RuntimeDataSets': {'Volume': {}}}], 'P29': [{'Tips': {'Class': 'TipClasses\\T1025F', 'Contents': [], '_RT_Contents': [], 'Used': False, 'RT_Used': False, 'Dirty': False, 'RT_Dirty': False, 'MaxVolumeUsed': 0.0, 'RT_MaxVolumeUsed': 0.0}, 'RT_Tips': {'Class': 'TipClasses\\T1025F', 'Contents': [], '_RT_Contents': [], 'Used': False, 'RT_Used': False, 'Dirty': False, 'RT_Dirty': False, 'MaxVolumeUsed': 0.0, 'RT_MaxVolumeUsed': 0.0}, 'Properties': {}, 'Known': False, 'Class': 'LabwareClasses\\BC1025F', 'DataSets': {'Volume': {}}, 'RuntimeDataSets': {'Volume': {}}}], 'P30': [], 'P3': [{'Properties': {'Name': '', 'Device': '', 'liquidtype': 'Water', 'BarCode': '', 'SenseEveryTime': False}, 'Known': True, 'Class': 'LabwareClasses\\AgilentReservoir', 'DataSets': {'Volume': {}}, 'RuntimeDataSets': {'Volume': {}}, 'EvalAmounts': (300000.0,), 'Nominal': False, 'EvalLiquids': ('Water',)}], 'P4': [{'Properties': {'Name': '', 'Device': '', 'liquidtype': 'Water', 'BarCode': '', 'SenseEveryTime': False}, 'Known': True, 'Class': 'LabwareClasses\\Matrix96_750uL', 'DataSets': {'Volume': {}}, 'RuntimeDataSets': {'Volume': {}}, 'EvalAmounts': (500.0, 500.0, 500.0, 500.0, 500.0, 500.0, 500.0, 500.0, 500.0, 500.0, 500.0, 500.0, 500.0, 500.0, 500.0, 500.0, 500.0, 500.0, 500.0, 500.0, 500.0, 500.0, 500.0, 500.0, 500.0, 500.0, 500.0, 500.0, 500.0, 500.0, 500.0, 500.0, 500.0, 500.0, 500.0, 500.0, 500.0, 500.0, 500.0, 500.0, 500.0, 500.0, 500.0, 500.0, 500.0, 500.0, 500.0, 500.0, 500.0, 500.0, 500.0, 500.0, 500.0, 500.0, 500.0, 500.0, 500.0, 500.0, 500.0, 500.0, 500.0, 500.0, 500.0, 500.0, 500.0, 500.0, 500.0, 500.0, 500.0, 500.0, 500.0, 500.0, 500.0, 500.0, 500.0, 500.0, 500.0, 500.0, 500.0, 500.0, 500.0, 500.0, 500.0, 500.0, 500.0, 500.0, 500.0, 500.0, 500.0, 500.0, 500.0, 500.0, 500.0, 500.0, 500.0, 500.0), 'Nominal': False, 'EvalLiquids': ('Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water', 'Water')}], 'P5': [], 'P6': [], 'P7': [], 'TL1': [{'Tips': {'Class': 'TipClasses\\T230', 'Contents': [], '_RT_Contents': [], 'Used': False, 'RT_Used': False, 'Dirty': False, 'RT_Dirty': False, 'MaxVolumeUsed': 0.0, 'RT_MaxVolumeUsed': 0.0}, 'RT_Tips': {'Class': 'TipClasses\\T230', 'Contents': [], '_RT_Contents': [], 'Used': False, 'RT_Used': False, 'Dirty': False, 'RT_Dirty': False, 'MaxVolumeUsed': 0.0, 'RT_MaxVolumeUsed': 0.0}, 'Properties': {}, 'Known': False, 'Class': 'LabwareClasses\\BC230', 'DataSets': {'Volume': {}}, 'RuntimeDataSets': {'Volume': {}}}], 'TL2': [{'Tips': {'Class': 'TipClasses\\T230', 'Contents': [], '_RT_Contents': [], 'Used': False, 'RT_Used': False, 'Dirty': False, 'RT_Dirty': False, 'MaxVolumeUsed': 0.0, 'RT_MaxVolumeUsed': 0.0}, 'RT_Tips': {'Class': 'TipClasses\\T230', 'Contents': [], '_RT_Contents': [], 'Used': False, 'RT_Used': False, 'Dirty': False, 'RT_Dirty': False, 'MaxVolumeUsed': 0.0, 'RT_MaxVolumeUsed': 0.0}, 'Properties': {}, 'Known': False, 'Class': 'LabwareClasses\\BC230', 'DataSets': {'Volume': {}}, 'RuntimeDataSets': {'Volume': {}}}], 'TL3': [{'Tips': {'Class': 'TipClasses\\T230', 'Contents': [], '_RT_Contents': [], 'Used': False, 'RT_Used': False, 'Dirty': False, 'RT_Dirty': False, 'MaxVolumeUsed': 0.0, 'RT_MaxVolumeUsed': 0.0}, 'RT_Tips': {'Class': 'TipClasses\\T230', 'Contents': [], '_RT_Contents': [], 'Used': False, 'RT_Used': False, 'Dirty': False, 'RT_Dirty': False, 'MaxVolumeUsed': 0.0, 'RT_MaxVolumeUsed': 0.0}, 'Properties': {}, 'Known': False, 'Class': 'LabwareClasses\\BC230', 'DataSets': {'Volume': {}}, 'RuntimeDataSets': {'Volume': {}}}], 'TL4': [{'Tips': {'Class': 'TipClasses\\T1025F', 'Contents': [], '_RT_Contents': [], 'Used': False, 'RT_Used': False, 'Dirty': False, 'RT_Dirty': False, 'MaxVolumeUsed': 0.0, 'RT_MaxVolumeUsed': 0.0}, 'RT_Tips': {'Class': 'TipClasses\\T1025F', 'Contents': [], '_RT_Contents': [], 'Used': False, 'RT_Used': False, 'Dirty': False, 'RT_Dirty': False, 'MaxVolumeUsed': 0.0, 'RT_MaxVolumeUsed': 0.0}, 'Properties': {}, 'Known': False, 'Class': 'LabwareClasses\\BC1025F', 'DataSets': {'Volume': {}}, 'RuntimeDataSets': {'Volume': {}}}], 'TL5': [{'Tips': {'Class': 'TipClasses\\T1025F', 'Contents': [], '_RT_Contents': [], 'Used': False, 'RT_Used': False, 'Dirty': False, 'RT_Dirty': False, 'MaxVolumeUsed': 0.0, 'RT_MaxVolumeUsed': 0.0}, 'RT_Tips': {'Class': 'TipClasses\\T1025F', 'Contents': [], '_RT_Contents': [], 'Used': False, 'RT_Used': False, 'Dirty': False, 'RT_Dirty': False, 'MaxVolumeUsed': 0.0, 'RT_MaxVolumeUsed': 0.0}, 'Properties': {}, 'Known': False, 'Class': 'LabwareClasses\\BC1025F', 'DataSets': {'Volume': {}}, 'RuntimeDataSets': {'Volume': {}}}], 'TR1': [], 'WS1': 'Water'} - Layout: Multichannel - Pause?: True - PodSetup: {'LeftHasTips': False, 'LeftTipType': '', 'RightHasTips': False, 'RightTipType': ''} - SplitterPosition: 206 - VerifyPodSetup?: True - - 步骤 2: - Span8: False - Pod: Pod1 - Wash: False - items: [{'Position': 'P1', 'Height': -2.0, 'Volume': '50', 'liquidtype': 'Well Contents', 'WellsX': 12, 'LabwareClass': 'Matrix96_750uL', 'AutoSelectPrototype': True, 'ColsFirst': True, 'CustomHeight': False, 'DataSetPattern': False, 'HeightFrom': 0, 'LocalPattern': True, 'Operation': 'Aspirate', 'OverrideHeight': False, 'Pattern': (True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True), 'Prototype': 'MC P300 High', 'ReferencedPattern': '', 'RowsFirst': False, 'SectionExpression': '', 'SelectionInfo': (1,), 'SetMark': True, 'Source': True, 'StartAtMark': False, 'StartAtSelection': True, 'UseExpression': False}, {'Position': 'P11', 'Height': -2.0, 'Volume': '50', 'liquidtype': 'Tip Contents', 'WellsX': 12, 'LabwareClass': 'BCDeep96Round', 'AutoSelectPrototype': True, 'ColsFirst': True, 'CustomHeight': False, 'DataSetPattern': False, 'HeightFrom': 0, 'LocalPattern': True, 'Operation': 'Dispense', 'OverrideHeight': False, 'Pattern': (True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True), 'Prototype': 'MC P300 High', 'ReferencedPattern': '', 'RowsFirst': False, 'SectionExpression': '', 'SelectionInfo': (1,), 'SetMark': True, 'Source': False, 'StartAtMark': False, 'StartAtSelection': True, 'UseExpression': False}] - Dynamic?: True - AutoSelectActiveWashTechnique: False - ActiveWashTechnique: - ChangeTipsBetweenDests: True - ChangeTipsBetweenSources: False - DefaultCaption: Transfer 50 µL from P1 to P11 - UseExpression: False - LeaveTipsOn: False - MandrelExpression: - Repeats: 1 - RepeatsByVolume: False - Replicates: 1 - ShowTipHandlingDetails: True - ShowTransferDetails: True - Solvent: Water - Span8Wash: False - Span8WashVolume: 2 - Span8WasteVolume: 1 - SplitVolume: False - SplitVolumeCleaning: False - Stop: Destinations - TipLocation: BC230 - UseCurrentTips: False - UseDisposableTips: False - UseFixedTips: False - UseJIT: True - UseMandrelSelection: True - UseProbes: (True, True, True, True, True, True, True, True) - WashCycles: 4 - WashVolume: 110% - Wizard: False - - 步骤 3: - Span8: False - Pod: Pod1 - Wash: False - items: [{'Position': 'P2', 'Height': -2.0, 'Volume': '100', 'liquidtype': 'Well Contents', 'WellsX': 12, 'LabwareClass': 'Matrix96_750uL', 'AutoSelectPrototype': True, 'ColsFirst': True, 'CustomHeight': False, 'DataSetPattern': False, 'HeightFrom': 0, 'LocalPattern': True, 'Operation': 'Aspirate', 'OverrideHeight': False, 'Pattern': (True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True), 'Prototype': 'MC P300 High', 'ReferencedPattern': '', 'RowsFirst': False, 'SectionExpression': '', 'SelectionInfo': (1,), 'SetMark': True, 'Source': True, 'StartAtMark': False, 'StartAtSelection': True, 'UseExpression': False}, {'Position': 'P11', 'Height': -2.0, 'Volume': '100', 'liquidtype': 'Tip Contents', 'WellsX': 12, 'LabwareClass': 'BCDeep96Round', 'AutoSelectPrototype': True, 'ColsFirst': True, 'CustomHeight': False, 'DataSetPattern': False, 'HeightFrom': 0, 'LocalPattern': True, 'Operation': 'Dispense', 'OverrideHeight': False, 'Pattern': (True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True), 'Prototype': 'MC P300 High', 'ReferencedPattern': '', 'RowsFirst': False, 'SectionExpression': '', 'SelectionInfo': (1,), 'SetMark': True, 'Source': False, 'StartAtMark': False, 'StartAtSelection': True, 'UseExpression': False}] - Dynamic?: True - AutoSelectActiveWashTechnique: False - ActiveWashTechnique: - ChangeTipsBetweenDests: True - ChangeTipsBetweenSources: False - DefaultCaption: Transfer 100 µL from P2 to P11 - UseExpression: False - LeaveTipsOn: False - MandrelExpression: - Repeats: 1 - RepeatsByVolume: False - Replicates: 1 - ShowTipHandlingDetails: True - ShowTransferDetails: True - Solvent: Water - Span8Wash: False - Span8WashVolume: 2 - Span8WasteVolume: 1 - SplitVolume: False - SplitVolumeCleaning: False - Stop: Destinations - TipLocation: BC230 - UseCurrentTips: False - UseDisposableTips: False - UseFixedTips: False - UseJIT: True - UseMandrelSelection: True - UseProbes: (True, True, True, True, True, True, True, True) - WashCycles: 4 - WashVolume: 110% - Wizard: False - - 步骤 4: - Pod: Pod1 - GripSide: A1 near - Source: P11 - Target: Orbital1 - LeaveBottomLabware: False - - 步骤 5: - Device: - Parameters: () - Command: - - 步骤 6: - Device: - Parameters: () - Command: - - 步骤 7: - Pod: Pod1 - GripSide: A1 near - Source: Orbital1 - Target: P11 - LeaveBottomLabware: False - - 步骤 8: - Pod: Pod1 - GripSide: A1 near - Source: P11 - Target: P12 - LeaveBottomLabware: False - - 步骤 9: - Message: Paused - Location: the whole system - Time: 180 - Mode: TimedResource - - 步骤 10: - Span8: False - Pod: Pod1 - Wash: False - items: [{'Position': 'P12', 'Height': -2.0, 'Volume': '150', 'liquidtype': 'Well Contents', 'WellsX': 12, 'LabwareClass': 'BCDeep96Round', 'AutoSelectPrototype': True, 'ColsFirst': True, 'CustomHeight': False, 'DataSetPattern': False, 'HeightFrom': 0, 'LocalPattern': True, 'Operation': 'Aspirate', 'OverrideHeight': False, 'Pattern': (True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True), 'Prototype': 'MC P300 High', 'ReferencedPattern': '', 'RowsFirst': False, 'SectionExpression': '', 'SelectionInfo': (1,), 'SetMark': True, 'Source': True, 'StartAtMark': False, 'StartAtSelection': True, 'UseExpression': False}, {'Position': 'P22', 'Height': -2.0, 'Volume': '150', 'liquidtype': 'Tip Contents', 'LabwareClass': 'AgilentReservoir', 'AutoSelectPrototype': True, 'ColsFirst': True, 'CustomHeight': False, 'DataSetPattern': False, 'HeightFrom': 0, 'LocalPattern': True, 'Operation': 'Dispense', 'OverrideHeight': False, 'Pattern': (True,), 'Prototype': 'MC P300 High', 'ReferencedPattern': '', 'RowsFirst': False, 'SectionExpression': '', 'SelectionInfo': (1,), 'SetMark': True, 'Source': False, 'StartAtMark': False, 'StartAtSelection': True, 'UseExpression': False}] - Dynamic?: True - AutoSelectActiveWashTechnique: False - ActiveWashTechnique: - ChangeTipsBetweenDests: True - ChangeTipsBetweenSources: False - DefaultCaption: Transfer 150 µL from P12 to P22 - UseExpression: False - LeaveTipsOn: False - MandrelExpression: - Repeats: 1 - RepeatsByVolume: False - Replicates: 1 - ShowTipHandlingDetails: True - ShowTransferDetails: True - Solvent: Water - Span8Wash: False - Span8WashVolume: 2 - Span8WasteVolume: 1 - SplitVolume: False - SplitVolumeCleaning: False - Stop: Destinations - TipLocation: BC230 - UseCurrentTips: False - UseDisposableTips: False - UseFixedTips: False - UseJIT: True - UseMandrelSelection: True - UseProbes: (True, True, True, True, True, True, True, True) - WashCycles: 4 - WashVolume: 110% - Wizard: False - - 步骤 11: - Span8: False - Pod: Pod1 - Wash: False - items: [{'Position': 'P3', 'Height': -2.0, 'Volume': '400', 'liquidtype': 'Well Contents', 'LabwareClass': 'AgilentReservoir', 'AutoSelectPrototype': True, 'ColsFirst': True, 'CustomHeight': False, 'DataSetPattern': False, 'HeightFrom': 0, 'LocalPattern': True, 'Operation': 'Aspirate', 'OverrideHeight': False, 'Pattern': (True,), 'Prototype': 'MC P300 High', 'ReferencedPattern': '', 'RowsFirst': False, 'SectionExpression': '', 'SelectionInfo': (1,), 'SetMark': True, 'Source': True, 'StartAtMark': False, 'StartAtSelection': True, 'UseExpression': False}, {'Position': 'P12', 'Height': -2.0, 'Volume': '200', 'liquidtype': 'Tip Contents', 'WellsX': 12, 'LabwareClass': 'BCDeep96Round', 'AutoSelectPrototype': True, 'ColsFirst': True, 'CustomHeight': False, 'DataSetPattern': False, 'HeightFrom': 0, 'LocalPattern': True, 'Operation': 'Dispense', 'OverrideHeight': False, 'Pattern': (True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True), 'Prototype': 'MC P300 High', 'ReferencedPattern': '', 'RowsFirst': False, 'SectionExpression': '', 'SelectionInfo': (1,), 'SetMark': True, 'Source': False, 'StartAtMark': False, 'StartAtSelection': True, 'UseExpression': False}] - Dynamic?: True - AutoSelectActiveWashTechnique: False - ActiveWashTechnique: - ChangeTipsBetweenDests: True - ChangeTipsBetweenSources: False - DefaultCaption: Transfer 200 µL from P3 to P12 - UseExpression: False - LeaveTipsOn: False - MandrelExpression: - Repeats: 1 - RepeatsByVolume: False - Replicates: 1 - ShowTipHandlingDetails: True - ShowTransferDetails: True - Solvent: Water - Span8Wash: False - Span8WashVolume: 2 - Span8WasteVolume: 1 - SplitVolume: False - SplitVolumeCleaning: False - Stop: Destinations - TipLocation: BC1025F - UseCurrentTips: False - UseDisposableTips: False - UseFixedTips: False - UseJIT: True - UseMandrelSelection: True - UseProbes: (True, True, True, True, True, True, True, True) - WashCycles: 4 - WashVolume: 110% - Wizard: False - - 步骤 12: - Span8: False - Pod: Pod1 - Wash: False - items: [{'Position': 'P3', 'Height': -2.0, 'Volume': '200', 'liquidtype': 'Well Contents', 'LabwareClass': 'AgilentReservoir', 'AutoSelectPrototype': True, 'ColsFirst': True, 'CustomHeight': False, 'DataSetPattern': False, 'HeightFrom': 0, 'LocalPattern': True, 'Operation': 'Aspirate', 'OverrideHeight': False, 'Pattern': (True,), 'Prototype': 'MC P300 High', 'ReferencedPattern': '', 'RowsFirst': False, 'SectionExpression': '', 'SelectionInfo': (1,), 'SetMark': True, 'Source': True, 'StartAtMark': False, 'StartAtSelection': True, 'UseExpression': False}, {'Position': 'P12', 'Height': -2.0, 'Volume': '200', 'liquidtype': 'Tip Contents', 'WellsX': 12, 'LabwareClass': 'BCDeep96Round', 'AutoSelectPrototype': True, 'ColsFirst': True, 'CustomHeight': False, 'DataSetPattern': False, 'HeightFrom': 0, 'LocalPattern': True, 'Operation': 'Dispense', 'OverrideHeight': False, 'Pattern': (True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True), 'Prototype': 'MC P300 High', 'ReferencedPattern': '', 'RowsFirst': False, 'SectionExpression': '', 'SelectionInfo': (1,), 'SetMark': True, 'Source': False, 'StartAtMark': False, 'StartAtSelection': True, 'UseExpression': False}] - Dynamic?: True - AutoSelectActiveWashTechnique: False - ActiveWashTechnique: - ChangeTipsBetweenDests: True - ChangeTipsBetweenSources: False - DefaultCaption: Transfer 200 µL from P3 to P12 - UseExpression: False - LeaveTipsOn: False - MandrelExpression: - Repeats: 1 - RepeatsByVolume: False - Replicates: 1 - ShowTipHandlingDetails: True - ShowTransferDetails: True - Solvent: Water - Span8Wash: False - Span8WashVolume: 2 - Span8WasteVolume: 1 - SplitVolume: False - SplitVolumeCleaning: False - Stop: Destinations - TipLocation: BC1025F - UseCurrentTips: False - UseDisposableTips: False - UseFixedTips: False - UseJIT: True - UseMandrelSelection: True - UseProbes: (True, True, True, True, True, True, True, True) - WashCycles: 4 - WashVolume: 110% - Wizard: False - - 步骤 13: - Pod: Pod1 - GripSide: A1 near - Source: P12 - Target: Orbital1 - LeaveBottomLabware: False - - 步骤 14: - Device: - Parameters: () - Command: - - 步骤 15: - Pod: Pod1 - GripSide: A1 near - Source: Orbital1 - Target: P12 - LeaveBottomLabware: False - - 步骤 16: - Message: Paused - Location: the whole system - Time: 180 - Mode: TimedResource - - 步骤 17: - Span8: False - Pod: Pod1 - Wash: False - items: [{'Position': 'P12', 'Height': -2.0, 'Volume': '200', 'liquidtype': 'Well Contents', 'WellsX': 12, 'LabwareClass': 'BCDeep96Round', 'AutoSelectPrototype': True, 'ColsFirst': True, 'CustomHeight': False, 'DataSetPattern': False, 'HeightFrom': 0, 'LocalPattern': True, 'Operation': 'Aspirate', 'OverrideHeight': False, 'Pattern': (True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True), 'Prototype': 'MC P300 High', 'ReferencedPattern': '', 'RowsFirst': False, 'SectionExpression': '', 'SelectionInfo': (1,), 'SetMark': True, 'Source': True, 'StartAtMark': False, 'StartAtSelection': True, 'UseExpression': False}, {'Position': 'P22', 'Height': -2.0, 'Volume': '200', 'liquidtype': 'Tip Contents', 'LabwareClass': 'AgilentReservoir', 'AutoSelectPrototype': True, 'ColsFirst': True, 'CustomHeight': False, 'DataSetPattern': False, 'HeightFrom': 0, 'LocalPattern': True, 'Operation': 'Dispense', 'OverrideHeight': False, 'Pattern': (True,), 'Prototype': 'MC P300 High', 'ReferencedPattern': '', 'RowsFirst': False, 'SectionExpression': '', 'SelectionInfo': (1,), 'SetMark': True, 'Source': False, 'StartAtMark': False, 'StartAtSelection': True, 'UseExpression': False}] - Dynamic?: True - AutoSelectActiveWashTechnique: False - ActiveWashTechnique: - ChangeTipsBetweenDests: True - ChangeTipsBetweenSources: False - DefaultCaption: Transfer 200 µL from P12 to P22 - UseExpression: False - LeaveTipsOn: False - MandrelExpression: - Repeats: 1 - RepeatsByVolume: False - Replicates: 1 - ShowTipHandlingDetails: True - ShowTransferDetails: True - Solvent: Water - Span8Wash: False - Span8WashVolume: 2 - Span8WasteVolume: 1 - SplitVolume: False - SplitVolumeCleaning: False - Stop: Destinations - TipLocation: BC1025F - UseCurrentTips: False - UseDisposableTips: False - UseFixedTips: False - UseJIT: True - UseMandrelSelection: True - UseProbes: (True, True, True, True, True, True, True, True) - WashCycles: 4 - WashVolume: 110% - Wizard: False - - 步骤 18: - Span8: False - Pod: Pod1 - Wash: False - items: [{'Position': 'P12', 'Height': -2.0, 'Volume': '200', 'liquidtype': 'Well Contents', 'WellsX': 12, 'LabwareClass': 'BCDeep96Round', 'AutoSelectPrototype': True, 'ColsFirst': True, 'CustomHeight': False, 'DataSetPattern': False, 'HeightFrom': 0, 'LocalPattern': True, 'Operation': 'Aspirate', 'OverrideHeight': False, 'Pattern': (True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True), 'Prototype': 'MC P300 High', 'ReferencedPattern': '', 'RowsFirst': False, 'SectionExpression': '', 'SelectionInfo': (1,), 'SetMark': True, 'Source': True, 'StartAtMark': False, 'StartAtSelection': True, 'UseExpression': False}, {'Position': 'P22', 'Height': -2.0, 'Volume': '200', 'liquidtype': 'Tip Contents', 'LabwareClass': 'AgilentReservoir', 'AutoSelectPrototype': True, 'ColsFirst': True, 'CustomHeight': False, 'DataSetPattern': False, 'HeightFrom': 0, 'LocalPattern': True, 'Operation': 'Dispense', 'OverrideHeight': False, 'Pattern': (True,), 'Prototype': 'MC P300 High', 'ReferencedPattern': '', 'RowsFirst': False, 'SectionExpression': '', 'SelectionInfo': (1,), 'SetMark': True, 'Source': False, 'StartAtMark': False, 'StartAtSelection': True, 'UseExpression': False}] - Dynamic?: True - AutoSelectActiveWashTechnique: False - ActiveWashTechnique: - ChangeTipsBetweenDests: True - ChangeTipsBetweenSources: False - DefaultCaption: Transfer 200 µL from P12 to P22 - UseExpression: False - LeaveTipsOn: False - MandrelExpression: - Repeats: 1 - RepeatsByVolume: False - Replicates: 1 - ShowTipHandlingDetails: True - ShowTransferDetails: True - Solvent: Water - Span8Wash: False - Span8WashVolume: 2 - Span8WasteVolume: 1 - SplitVolume: False - SplitVolumeCleaning: False - Stop: Destinations - TipLocation: BC1025F - UseCurrentTips: False - UseDisposableTips: False - UseFixedTips: False - UseJIT: True - UseMandrelSelection: True - UseProbes: (True, True, True, True, True, True, True, True) - WashCycles: 4 - WashVolume: 110% - Wizard: False - - 步骤 19: - Span8: False - Pod: Pod1 - Wash: False - items: [{'Position': 'P3', 'Height': -2.0, 'Volume': '200', 'liquidtype': 'Well Contents', 'LabwareClass': 'AgilentReservoir', 'AutoSelectPrototype': True, 'ColsFirst': True, 'CustomHeight': False, 'DataSetPattern': False, 'HeightFrom': 0, 'LocalPattern': True, 'Operation': 'Aspirate', 'OverrideHeight': False, 'Pattern': (True,), 'Prototype': 'MC P300 High', 'ReferencedPattern': '', 'RowsFirst': False, 'SectionExpression': '', 'SelectionInfo': (1,), 'SetMark': True, 'Source': True, 'StartAtMark': False, 'StartAtSelection': True, 'UseExpression': False}, {'Position': 'P12', 'Height': -2.0, 'Volume': '200', 'liquidtype': 'Tip Contents', 'WellsX': 12, 'LabwareClass': 'BCDeep96Round', 'AutoSelectPrototype': True, 'ColsFirst': True, 'CustomHeight': False, 'DataSetPattern': False, 'HeightFrom': 0, 'LocalPattern': True, 'Operation': 'Dispense', 'OverrideHeight': False, 'Pattern': (True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True), 'Prototype': 'MC P300 High', 'ReferencedPattern': '', 'RowsFirst': False, 'SectionExpression': '', 'SelectionInfo': (1,), 'SetMark': True, 'Source': False, 'StartAtMark': False, 'StartAtSelection': True, 'UseExpression': False}] - Dynamic?: True - AutoSelectActiveWashTechnique: False - ActiveWashTechnique: - ChangeTipsBetweenDests: True - ChangeTipsBetweenSources: False - DefaultCaption: Transfer 200 µL from P3 to P12 - UseExpression: False - LeaveTipsOn: False - MandrelExpression: - Repeats: 1 - RepeatsByVolume: False - Replicates: 1 - ShowTipHandlingDetails: True - ShowTransferDetails: True - Solvent: Water - Span8Wash: False - Span8WashVolume: 2 - Span8WasteVolume: 1 - SplitVolume: False - SplitVolumeCleaning: False - Stop: Destinations - TipLocation: BC1025F - UseCurrentTips: False - UseDisposableTips: False - UseFixedTips: False - UseJIT: True - UseMandrelSelection: True - UseProbes: (True, True, True, True, True, True, True, True) - WashCycles: 4 - WashVolume: 110% - Wizard: False - - 步骤 20: - Span8: False - Pod: Pod1 - Wash: False - items: [{'Position': 'P3', 'Height': -2.0, 'Volume': '200', 'liquidtype': 'Well Contents', 'LabwareClass': 'AgilentReservoir', 'AutoSelectPrototype': True, 'ColsFirst': True, 'CustomHeight': False, 'DataSetPattern': False, 'HeightFrom': 0, 'LocalPattern': True, 'Operation': 'Aspirate', 'OverrideHeight': False, 'Pattern': (True,), 'Prototype': 'MC P300 High', 'ReferencedPattern': '', 'RowsFirst': False, 'SectionExpression': '', 'SelectionInfo': (1,), 'SetMark': True, 'Source': True, 'StartAtMark': False, 'StartAtSelection': True, 'UseExpression': False}, {'Position': 'P12', 'Height': -2.0, 'Volume': '200', 'liquidtype': 'Tip Contents', 'WellsX': 12, 'LabwareClass': 'BCDeep96Round', 'AutoSelectPrototype': True, 'ColsFirst': True, 'CustomHeight': False, 'DataSetPattern': False, 'HeightFrom': 0, 'LocalPattern': True, 'Operation': 'Dispense', 'OverrideHeight': False, 'Pattern': (True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True), 'Prototype': 'MC P300 High', 'ReferencedPattern': '', 'RowsFirst': False, 'SectionExpression': '', 'SelectionInfo': (1,), 'SetMark': True, 'Source': False, 'StartAtMark': False, 'StartAtSelection': True, 'UseExpression': False}] - Dynamic?: True - AutoSelectActiveWashTechnique: False - ActiveWashTechnique: - ChangeTipsBetweenDests: True - ChangeTipsBetweenSources: False - DefaultCaption: Transfer 200 µL from P3 to P12 - UseExpression: False - LeaveTipsOn: False - MandrelExpression: - Repeats: 1 - RepeatsByVolume: False - Replicates: 1 - ShowTipHandlingDetails: True - ShowTransferDetails: True - Solvent: Water - Span8Wash: False - Span8WashVolume: 2 - Span8WasteVolume: 1 - SplitVolume: False - SplitVolumeCleaning: False - Stop: Destinations - TipLocation: BC1025F - UseCurrentTips: False - UseDisposableTips: False - UseFixedTips: False - UseJIT: True - UseMandrelSelection: True - UseProbes: (True, True, True, True, True, True, True, True) - WashCycles: 4 - WashVolume: 110% - Wizard: False - - 步骤 21: - Pod: Pod1 - GripSide: A1 near - Source: P12 - Target: Orbital1 - LeaveBottomLabware: False - - 步骤 22: - Device: OrbitalShaker0 - Parameters: ('800', '3', '45', 'CounterClockwise', None) - Command: Timed Shake - - 步骤 23: - Pod: Pod1 - GripSide: A1 near - Source: Orbital1 - Target: P12 - LeaveBottomLabware: False - - 步骤 24: - Message: Paused - Location: the whole system - Time: 180 - Mode: TimedResource - - 步骤 25: - Span8: False - Pod: Pod1 - Wash: False - items: [{'Position': 'P12', 'Height': -2.0, 'Volume': '200', 'liquidtype': 'Well Contents', 'WellsX': 12, 'LabwareClass': 'BCDeep96Round', 'AutoSelectPrototype': True, 'ColsFirst': True, 'CustomHeight': False, 'DataSetPattern': False, 'HeightFrom': 0, 'LocalPattern': True, 'Operation': 'Aspirate', 'OverrideHeight': False, 'Pattern': (True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True), 'Prototype': 'MC P300 High', 'ReferencedPattern': '', 'RowsFirst': False, 'SectionExpression': '', 'SelectionInfo': (1,), 'SetMark': True, 'Source': True, 'StartAtMark': False, 'StartAtSelection': True, 'UseExpression': False}, {'Position': 'P22', 'Height': -2.0, 'Volume': '200', 'liquidtype': 'Tip Contents', 'LabwareClass': 'AgilentReservoir', 'AutoSelectPrototype': True, 'ColsFirst': True, 'CustomHeight': False, 'DataSetPattern': False, 'HeightFrom': 0, 'LocalPattern': True, 'Operation': 'Dispense', 'OverrideHeight': False, 'Pattern': (True,), 'Prototype': 'MC P300 High', 'ReferencedPattern': '', 'RowsFirst': False, 'SectionExpression': '', 'SelectionInfo': (1,), 'SetMark': True, 'Source': False, 'StartAtMark': False, 'StartAtSelection': True, 'UseExpression': False}] - Dynamic?: True - AutoSelectActiveWashTechnique: False - ActiveWashTechnique: - ChangeTipsBetweenDests: True - ChangeTipsBetweenSources: False - DefaultCaption: Transfer 200 µL from P12 to P22 - UseExpression: False - LeaveTipsOn: False - MandrelExpression: - Repeats: 1 - RepeatsByVolume: False - Replicates: 1 - ShowTipHandlingDetails: True - ShowTransferDetails: True - Solvent: Water - Span8Wash: False - Span8WashVolume: 2 - Span8WasteVolume: 1 - SplitVolume: False - SplitVolumeCleaning: False - Stop: Destinations - TipLocation: BC1025F - UseCurrentTips: False - UseDisposableTips: False - UseFixedTips: False - UseJIT: True - UseMandrelSelection: True - UseProbes: (True, True, True, True, True, True, True, True) - WashCycles: 4 - WashVolume: 110% - Wizard: False - - 步骤 26: - Span8: False - Pod: Pod1 - Wash: False - items: [{'Position': 'P12', 'Height': -2.0, 'Volume': '200', 'liquidtype': 'Well Contents', 'WellsX': 12, 'LabwareClass': 'BCDeep96Round', 'AutoSelectPrototype': True, 'ColsFirst': True, 'CustomHeight': False, 'DataSetPattern': False, 'HeightFrom': 0, 'LocalPattern': True, 'Operation': 'Aspirate', 'OverrideHeight': False, 'Pattern': (True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True), 'Prototype': 'MC P300 High', 'ReferencedPattern': '', 'RowsFirst': False, 'SectionExpression': '', 'SelectionInfo': (1,), 'SetMark': True, 'Source': True, 'StartAtMark': False, 'StartAtSelection': True, 'UseExpression': False}, {'Position': 'P22', 'Height': -2.0, 'Volume': '200', 'liquidtype': 'Tip Contents', 'LabwareClass': 'AgilentReservoir', 'AutoSelectPrototype': True, 'ColsFirst': True, 'CustomHeight': False, 'DataSetPattern': False, 'HeightFrom': 0, 'LocalPattern': True, 'Operation': 'Dispense', 'OverrideHeight': False, 'Pattern': (True,), 'Prototype': 'MC P300 High', 'ReferencedPattern': '', 'RowsFirst': False, 'SectionExpression': '', 'SelectionInfo': (1,), 'SetMark': True, 'Source': False, 'StartAtMark': False, 'StartAtSelection': True, 'UseExpression': False}] - Dynamic?: True - AutoSelectActiveWashTechnique: False - ActiveWashTechnique: - ChangeTipsBetweenDests: True - ChangeTipsBetweenSources: False - DefaultCaption: Transfer 200 µL from P12 to P22 - UseExpression: False - LeaveTipsOn: False - MandrelExpression: - Repeats: 1 - RepeatsByVolume: False - Replicates: 1 - ShowTipHandlingDetails: True - ShowTransferDetails: True - Solvent: Water - Span8Wash: False - Span8WashVolume: 2 - Span8WasteVolume: 1 - SplitVolume: False - SplitVolumeCleaning: False - Stop: Destinations - TipLocation: BC1025F - UseCurrentTips: False - UseDisposableTips: False - UseFixedTips: False - UseJIT: True - UseMandrelSelection: True - UseProbes: (True, True, True, True, True, True, True, True) - WashCycles: 4 - WashVolume: 110% - Wizard: False - - 步骤 27: - Message: Paused - Location: the whole system - Time: 900 - Mode: TimedResource - - 步骤 28: - Span8: False - Pod: Pod1 - Wash: False - items: [{'Position': 'P4', 'Height': -2.0, 'Volume': '40', 'liquidtype': 'Well Contents', 'WellsX': 12, 'LabwareClass': 'Matrix96_750uL', 'AutoSelectPrototype': True, 'ColsFirst': True, 'CustomHeight': False, 'DataSetPattern': False, 'HeightFrom': 0, 'LocalPattern': True, 'Operation': 'Aspirate', 'OverrideHeight': False, 'Pattern': (True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True), 'Prototype': 'MC', 'ReferencedPattern': '', 'RowsFirst': False, 'SectionExpression': '', 'SelectionInfo': (1,), 'SetMark': True, 'Source': True, 'StartAtMark': False, 'StartAtSelection': True, 'UseExpression': False}, {'Position': 'P12', 'Height': -2.0, 'Volume': '40', 'liquidtype': 'Tip Contents', 'WellsX': 12, 'LabwareClass': 'BCDeep96Round', 'AutoSelectPrototype': True, 'ColsFirst': True, 'CustomHeight': False, 'DataSetPattern': False, 'HeightFrom': 0, 'LocalPattern': True, 'Operation': 'Dispense', 'OverrideHeight': False, 'Pattern': (True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True), 'Prototype': 'MC', 'ReferencedPattern': '', 'RowsFirst': False, 'SectionExpression': '', 'SelectionInfo': (1,), 'SetMark': True, 'Source': False, 'StartAtMark': False, 'StartAtSelection': True, 'UseExpression': False}] - Dynamic?: True - AutoSelectActiveWashTechnique: False - ActiveWashTechnique: - ChangeTipsBetweenDests: True - ChangeTipsBetweenSources: False - DefaultCaption: Transfer 40 µL from P4 to P12 - UseExpression: False - LeaveTipsOn: False - MandrelExpression: - Repeats: 1 - RepeatsByVolume: False - Replicates: 1 - ShowTipHandlingDetails: True - ShowTransferDetails: True - Solvent: Water - Span8Wash: False - Span8WashVolume: 2 - Span8WasteVolume: 1 - SplitVolume: False - SplitVolumeCleaning: False - Stop: Destinations - TipLocation: BC50F - UseCurrentTips: False - UseDisposableTips: False - UseFixedTips: False - UseJIT: True - UseMandrelSelection: True - UseProbes: (True, True, True, True, True, True, True, True) - WashCycles: 4 - WashVolume: 110% - Wizard: False - - 步骤 29: - Pod: Pod1 - GripSide: A1 near - Source: P12 - Target: Orbital1 - LeaveBottomLabware: False - - 步骤 30: - Device: OrbitalShaker0 - Parameters: ('800', '3', '60', 'CounterClockwise', None) - Command: Timed Shake - - 步骤 31: - Message: Paused - Location: the whole system - Time: 180 - Mode: TimedResource - - 步骤 32: - Pod: Pod1 - GripSide: A1 near - Source: Orbital1 - Target: P12 - LeaveBottomLabware: False - - 步骤 33: - Message: Paused - Location: the whole system - Time: 120 - Mode: TimedResource - - 步骤 34: - Span8: False - Pod: Pod1 - Wash: False - items: [{'Position': 'P12', 'Height': -2.0, 'Volume': '40', 'liquidtype': 'Well Contents', 'WellsX': 12, 'LabwareClass': 'BCDeep96Round', 'AutoSelectPrototype': True, 'ColsFirst': True, 'CustomHeight': False, 'DataSetPattern': False, 'HeightFrom': 0, 'LocalPattern': True, 'Operation': 'Aspirate', 'OverrideHeight': False, 'Pattern': (True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True), 'Prototype': 'MC', 'ReferencedPattern': '', 'RowsFirst': False, 'SectionExpression': '', 'SelectionInfo': (1,), 'SetMark': True, 'Source': True, 'StartAtMark': False, 'StartAtSelection': True, 'UseExpression': False}, {'Position': 'P13', 'Height': -2.0, 'Volume': '40', 'liquidtype': 'Tip Contents', 'WellsX': 12, 'LabwareClass': 'BCDeep96Round', 'AutoSelectPrototype': True, 'ColsFirst': True, 'CustomHeight': False, 'DataSetPattern': False, 'HeightFrom': 0, 'LocalPattern': True, 'Operation': 'Dispense', 'OverrideHeight': False, 'Pattern': (True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True), 'Prototype': 'MC', 'ReferencedPattern': '', 'RowsFirst': False, 'SectionExpression': '', 'SelectionInfo': (1,), 'SetMark': True, 'Source': False, 'StartAtMark': False, 'StartAtSelection': True, 'UseExpression': False}] - Dynamic?: True - AutoSelectActiveWashTechnique: False - ActiveWashTechnique: - ChangeTipsBetweenDests: True - ChangeTipsBetweenSources: False - DefaultCaption: Transfer 40 µL from P12 to P13 - UseExpression: False - LeaveTipsOn: False - MandrelExpression: - Repeats: 1 - RepeatsByVolume: False - Replicates: 1 - ShowTipHandlingDetails: True - ShowTransferDetails: True - Solvent: Water - Span8Wash: False - Span8WashVolume: 2 - Span8WasteVolume: 1 - SplitVolume: False - SplitVolumeCleaning: False - Stop: Destinations - TipLocation: BC50F - UseCurrentTips: False - UseDisposableTips: False - UseFixedTips: False - UseJIT: True - UseMandrelSelection: True - UseProbes: (True, True, True, True, True, True, True, True) - WashCycles: 4 - WashVolume: 110% - Wizard: False - - 步骤 35: - Type: - Bitmap: OStepUI.ocx,FINISH - cleardeck: True - cleardevices: True - cleanuppods: True - PodsToMaxZ: True - ClearGlobals: True - ParkPods: True - Authent: False - Collapsed: True - ConnectionString: - Password: - Path: - Report: False - Server: - TableName: - UserName: - Catalog: diff --git a/unilabos/devices/liquid_handling/biomek_temporary_protocol.json b/unilabos/devices/liquid_handling/biomek_temporary_protocol.json deleted file mode 100644 index 129c3ba2..00000000 --- a/unilabos/devices/liquid_handling/biomek_temporary_protocol.json +++ /dev/null @@ -1,2697 +0,0 @@ -{ - "meta": {}, - "labwares": [], - "steps": [ - { - "Span8": false, - "Pod": "Pod1", - "items": [ - { - "Position": "P12", - "Height": -2.0, - "Volume": "40", - "liquidtype": "Well Contents", - "WellsX": 12, - "LabwareClass": "Matrix96_750uL", - "AutoSelectPrototype": true, - "ColsFirst": true, - "CustomHeight": false, - "DataSetPattern": false, - "HeightFrom": 0, - "LocalPattern": true, - "Operation": "Aspirate", - "OverrideHeight": false, - "Pattern": [ - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true - ], - "Prototype": "MC P300 High", - "ReferencedPattern": "", - "RowsFirst": false, - "SectionExpression": "", - "SelectionInfo": [ - 1 - ], - "SetMark": true, - "Source": true, - "StartAtMark": false, - "StartAtSelection": true, - "UseExpression": false - }, - { - "Position": "P13", - "Height": -2.0, - "Volume": "40", - "liquidtype": "Tip Contents", - "WellsX": 12, - "LabwareClass": "Matrix96_750uL", - "AutoSelectPrototype": true, - "ColsFirst": true, - "CustomHeight": false, - "DataSetPattern": false, - "HeightFrom": 0, - "LocalPattern": true, - "Operation": "Dispense", - "OverrideHeight": false, - "Pattern": [ - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true - ], - "Prototype": "MC P300 High", - "ReferencedPattern": "", - "RowsFirst": false, - "SectionExpression": "", - "SelectionInfo": [ - 1 - ], - "SetMark": true, - "Source": false, - "StartAtMark": false, - "StartAtSelection": true, - "UseExpression": false - } - ], - "Wash": false, - "Dynamic?": true, - "AutoSelectActiveWashTechnique": false, - "ActiveWashTechnique": "", - "ChangeTipsBetweenDests": true, - "ChangeTipsBetweenSources": false, - "DefaultCaption": "", - "UseExpression": false, - "LeaveTipsOn": false, - "MandrelExpression": "", - "Repeats": "1", - "RepeatsByVolume": false, - "Replicates": "1", - "ShowTipHandlingDetails": false, - "ShowTransferDetails": true, - "Solvent": "Water", - "Span8Wash": false, - "Span8WashVolume": "2", - "Span8WasteVolume": "1", - "SplitVolume": false, - "SplitVolumeCleaning": false, - "Stop": "Destinations", - "TipLocation": "BC230", - "UseCurrentTips": false, - "UseDisposableTips": false, - "UseFixedTips": false, - "UseJIT": true, - "UseMandrelSelection": true, - "UseProbes": [ - true, - true, - true, - true, - true, - true, - true, - true - ], - "WashCycles": "4", - "WashVolume": "110%", - "Wizard": false - }, - { - "Span8": false, - "Pod": "Pod1", - "items": [ - { - "Position": "P12", - "Height": -2.0, - "Volume": "40", - "liquidtype": "Well Contents", - "WellsX": 12, - "LabwareClass": "Matrix96_750uL", - "AutoSelectPrototype": true, - "ColsFirst": true, - "CustomHeight": false, - "DataSetPattern": false, - "HeightFrom": 0, - "LocalPattern": true, - "Operation": "Aspirate", - "OverrideHeight": false, - "Pattern": [ - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true - ], - "Prototype": "MC P300 High", - "ReferencedPattern": "", - "RowsFirst": false, - "SectionExpression": "", - "SelectionInfo": [ - 1 - ], - "SetMark": true, - "Source": true, - "StartAtMark": false, - "StartAtSelection": true, - "UseExpression": false - }, - { - "Position": "P13", - "Height": -2.0, - "Volume": "40", - "liquidtype": "Tip Contents", - "WellsX": 12, - "LabwareClass": "Matrix96_750uL", - "AutoSelectPrototype": true, - "ColsFirst": true, - "CustomHeight": false, - "DataSetPattern": false, - "HeightFrom": 0, - "LocalPattern": true, - "Operation": "Dispense", - "OverrideHeight": false, - "Pattern": [ - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true - ], - "Prototype": "MC P300 High", - "ReferencedPattern": "", - "RowsFirst": false, - "SectionExpression": "", - "SelectionInfo": [ - 1 - ], - "SetMark": true, - "Source": false, - "StartAtMark": false, - "StartAtSelection": true, - "UseExpression": false - } - ], - "Wash": false, - "Dynamic?": true, - "AutoSelectActiveWashTechnique": false, - "ActiveWashTechnique": "", - "ChangeTipsBetweenDests": true, - "ChangeTipsBetweenSources": false, - "DefaultCaption": "", - "UseExpression": false, - "LeaveTipsOn": false, - "MandrelExpression": "", - "Repeats": "1", - "RepeatsByVolume": false, - "Replicates": "1", - "ShowTipHandlingDetails": false, - "ShowTransferDetails": true, - "Solvent": "Water", - "Span8Wash": false, - "Span8WashVolume": "2", - "Span8WasteVolume": "1", - "SplitVolume": false, - "SplitVolumeCleaning": false, - "Stop": "Destinations", - "TipLocation": "BC230", - "UseCurrentTips": false, - "UseDisposableTips": false, - "UseFixedTips": false, - "UseJIT": true, - "UseMandrelSelection": true, - "UseProbes": [ - true, - true, - true, - true, - true, - true, - true, - true - ], - "WashCycles": "4", - "WashVolume": "110%", - "Wizard": false - }, - { - "Span8": false, - "Pod": "Pod1", - "items": [ - { - "Position": "P12", - "Height": -2.0, - "Volume": "40", - "liquidtype": "Well Contents", - "WellsX": 12, - "LabwareClass": "Matrix96_750uL", - "AutoSelectPrototype": true, - "ColsFirst": true, - "CustomHeight": false, - "DataSetPattern": false, - "HeightFrom": 0, - "LocalPattern": true, - "Operation": "Aspirate", - "OverrideHeight": false, - "Pattern": [ - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true - ], - "Prototype": "MC P300 High", - "ReferencedPattern": "", - "RowsFirst": false, - "SectionExpression": "", - "SelectionInfo": [ - 1 - ], - "SetMark": true, - "Source": true, - "StartAtMark": false, - "StartAtSelection": true, - "UseExpression": false - }, - { - "Position": "P13", - "Height": -2.0, - "Volume": "40", - "liquidtype": "Tip Contents", - "WellsX": 12, - "LabwareClass": "Matrix96_750uL", - "AutoSelectPrototype": true, - "ColsFirst": true, - "CustomHeight": false, - "DataSetPattern": false, - "HeightFrom": 0, - "LocalPattern": true, - "Operation": "Dispense", - "OverrideHeight": false, - "Pattern": [ - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true - ], - "Prototype": "MC P300 High", - "ReferencedPattern": "", - "RowsFirst": false, - "SectionExpression": "", - "SelectionInfo": [ - 1 - ], - "SetMark": true, - "Source": false, - "StartAtMark": false, - "StartAtSelection": true, - "UseExpression": false - } - ], - "Wash": false, - "Dynamic?": true, - "AutoSelectActiveWashTechnique": false, - "ActiveWashTechnique": "", - "ChangeTipsBetweenDests": true, - "ChangeTipsBetweenSources": false, - "DefaultCaption": "", - "UseExpression": false, - "LeaveTipsOn": false, - "MandrelExpression": "", - "Repeats": "1", - "RepeatsByVolume": false, - "Replicates": "1", - "ShowTipHandlingDetails": false, - "ShowTransferDetails": true, - "Solvent": "Water", - "Span8Wash": false, - "Span8WashVolume": "2", - "Span8WasteVolume": "1", - "SplitVolume": false, - "SplitVolumeCleaning": false, - "Stop": "Destinations", - "TipLocation": "BC230", - "UseCurrentTips": false, - "UseDisposableTips": false, - "UseFixedTips": false, - "UseJIT": true, - "UseMandrelSelection": true, - "UseProbes": [ - true, - true, - true, - true, - true, - true, - true, - true - ], - "WashCycles": "4", - "WashVolume": "110%", - "Wizard": false - }, - { - "Span8": false, - "Pod": "Pod1", - "items": [ - { - "Position": "P12", - "Height": -2.0, - "Volume": "40", - "liquidtype": "Well Contents", - "WellsX": 12, - "LabwareClass": "Matrix96_750uL", - "AutoSelectPrototype": true, - "ColsFirst": true, - "CustomHeight": false, - "DataSetPattern": false, - "HeightFrom": 0, - "LocalPattern": true, - "Operation": "Aspirate", - "OverrideHeight": false, - "Pattern": [ - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true - ], - "Prototype": "MC P300 High", - "ReferencedPattern": "", - "RowsFirst": false, - "SectionExpression": "", - "SelectionInfo": [ - 1 - ], - "SetMark": true, - "Source": true, - "StartAtMark": false, - "StartAtSelection": true, - "UseExpression": false - }, - { - "Position": "P13", - "Height": -2.0, - "Volume": "40", - "liquidtype": "Tip Contents", - "WellsX": 12, - "LabwareClass": "Matrix96_750uL", - "AutoSelectPrototype": true, - "ColsFirst": true, - "CustomHeight": false, - "DataSetPattern": false, - "HeightFrom": 0, - "LocalPattern": true, - "Operation": "Dispense", - "OverrideHeight": false, - "Pattern": [ - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true - ], - "Prototype": "MC P300 High", - "ReferencedPattern": "", - "RowsFirst": false, - "SectionExpression": "", - "SelectionInfo": [ - 1 - ], - "SetMark": true, - "Source": false, - "StartAtMark": false, - "StartAtSelection": true, - "UseExpression": false - } - ], - "Wash": false, - "Dynamic?": true, - "AutoSelectActiveWashTechnique": false, - "ActiveWashTechnique": "", - "ChangeTipsBetweenDests": true, - "ChangeTipsBetweenSources": false, - "DefaultCaption": "", - "UseExpression": false, - "LeaveTipsOn": false, - "MandrelExpression": "", - "Repeats": "1", - "RepeatsByVolume": false, - "Replicates": "1", - "ShowTipHandlingDetails": false, - "ShowTransferDetails": true, - "Solvent": "Water", - "Span8Wash": false, - "Span8WashVolume": "2", - "Span8WasteVolume": "1", - "SplitVolume": false, - "SplitVolumeCleaning": false, - "Stop": "Destinations", - "TipLocation": "BC230", - "UseCurrentTips": false, - "UseDisposableTips": false, - "UseFixedTips": false, - "UseJIT": true, - "UseMandrelSelection": true, - "UseProbes": [ - true, - true, - true, - true, - true, - true, - true, - true - ], - "WashCycles": "4", - "WashVolume": "110%", - "Wizard": false - }, - { - "Span8": false, - "Pod": "Pod1", - "items": [ - { - "Position": "P12", - "Height": -2.0, - "Volume": "40", - "liquidtype": "Well Contents", - "WellsX": 12, - "LabwareClass": "Matrix96_750uL", - "AutoSelectPrototype": true, - "ColsFirst": true, - "CustomHeight": false, - "DataSetPattern": false, - "HeightFrom": 0, - "LocalPattern": true, - "Operation": "Aspirate", - "OverrideHeight": false, - "Pattern": [ - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true - ], - "Prototype": "MC P300 High", - "ReferencedPattern": "", - "RowsFirst": false, - "SectionExpression": "", - "SelectionInfo": [ - 1 - ], - "SetMark": true, - "Source": true, - "StartAtMark": false, - "StartAtSelection": true, - "UseExpression": false - }, - { - "Position": "P13", - "Height": -2.0, - "Volume": "40", - "liquidtype": "Tip Contents", - "WellsX": 12, - "LabwareClass": "Matrix96_750uL", - "AutoSelectPrototype": true, - "ColsFirst": true, - "CustomHeight": false, - "DataSetPattern": false, - "HeightFrom": 0, - "LocalPattern": true, - "Operation": "Dispense", - "OverrideHeight": false, - "Pattern": [ - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true - ], - "Prototype": "MC P300 High", - "ReferencedPattern": "", - "RowsFirst": false, - "SectionExpression": "", - "SelectionInfo": [ - 1 - ], - "SetMark": true, - "Source": false, - "StartAtMark": false, - "StartAtSelection": true, - "UseExpression": false - } - ], - "Wash": false, - "Dynamic?": true, - "AutoSelectActiveWashTechnique": false, - "ActiveWashTechnique": "", - "ChangeTipsBetweenDests": true, - "ChangeTipsBetweenSources": false, - "DefaultCaption": "", - "UseExpression": false, - "LeaveTipsOn": false, - "MandrelExpression": "", - "Repeats": "1", - "RepeatsByVolume": false, - "Replicates": "1", - "ShowTipHandlingDetails": false, - "ShowTransferDetails": true, - "Solvent": "Water", - "Span8Wash": false, - "Span8WashVolume": "2", - "Span8WasteVolume": "1", - "SplitVolume": false, - "SplitVolumeCleaning": false, - "Stop": "Destinations", - "TipLocation": "BC230", - "UseCurrentTips": false, - "UseDisposableTips": false, - "UseFixedTips": false, - "UseJIT": true, - "UseMandrelSelection": true, - "UseProbes": [ - true, - true, - true, - true, - true, - true, - true, - true - ], - "WashCycles": "4", - "WashVolume": "110%", - "Wizard": false - }, - { - "Span8": false, - "Pod": "Pod1", - "items": [ - { - "Position": "P12", - "Height": -2.0, - "Volume": "40", - "liquidtype": "Well Contents", - "WellsX": 12, - "LabwareClass": "Matrix96_750uL", - "AutoSelectPrototype": true, - "ColsFirst": true, - "CustomHeight": false, - "DataSetPattern": false, - "HeightFrom": 0, - "LocalPattern": true, - "Operation": "Aspirate", - "OverrideHeight": false, - "Pattern": [ - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true - ], - "Prototype": "MC P300 High", - "ReferencedPattern": "", - "RowsFirst": false, - "SectionExpression": "", - "SelectionInfo": [ - 1 - ], - "SetMark": true, - "Source": true, - "StartAtMark": false, - "StartAtSelection": true, - "UseExpression": false - }, - { - "Position": "P13", - "Height": -2.0, - "Volume": "40", - "liquidtype": "Tip Contents", - "WellsX": 12, - "LabwareClass": "Matrix96_750uL", - "AutoSelectPrototype": true, - "ColsFirst": true, - "CustomHeight": false, - "DataSetPattern": false, - "HeightFrom": 0, - "LocalPattern": true, - "Operation": "Dispense", - "OverrideHeight": false, - "Pattern": [ - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true - ], - "Prototype": "MC P300 High", - "ReferencedPattern": "", - "RowsFirst": false, - "SectionExpression": "", - "SelectionInfo": [ - 1 - ], - "SetMark": true, - "Source": false, - "StartAtMark": false, - "StartAtSelection": true, - "UseExpression": false - } - ], - "Wash": false, - "Dynamic?": true, - "AutoSelectActiveWashTechnique": false, - "ActiveWashTechnique": "", - "ChangeTipsBetweenDests": true, - "ChangeTipsBetweenSources": false, - "DefaultCaption": "", - "UseExpression": false, - "LeaveTipsOn": false, - "MandrelExpression": "", - "Repeats": "1", - "RepeatsByVolume": false, - "Replicates": "1", - "ShowTipHandlingDetails": false, - "ShowTransferDetails": true, - "Solvent": "Water", - "Span8Wash": false, - "Span8WashVolume": "2", - "Span8WasteVolume": "1", - "SplitVolume": false, - "SplitVolumeCleaning": false, - "Stop": "Destinations", - "TipLocation": "BC230", - "UseCurrentTips": false, - "UseDisposableTips": false, - "UseFixedTips": false, - "UseJIT": true, - "UseMandrelSelection": true, - "UseProbes": [ - true, - true, - true, - true, - true, - true, - true, - true - ], - "WashCycles": "4", - "WashVolume": "110%", - "Wizard": false - }, - { - "Span8": false, - "Pod": "Pod1", - "items": [ - { - "Position": "P12", - "Height": -2.0, - "Volume": "40", - "liquidtype": "Well Contents", - "WellsX": 12, - "LabwareClass": "Matrix96_750uL", - "AutoSelectPrototype": true, - "ColsFirst": true, - "CustomHeight": false, - "DataSetPattern": false, - "HeightFrom": 0, - "LocalPattern": true, - "Operation": "Aspirate", - "OverrideHeight": false, - "Pattern": [ - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true - ], - "Prototype": "MC P300 High", - "ReferencedPattern": "", - "RowsFirst": false, - "SectionExpression": "", - "SelectionInfo": [ - 1 - ], - "SetMark": true, - "Source": true, - "StartAtMark": false, - "StartAtSelection": true, - "UseExpression": false - }, - { - "Position": "P13", - "Height": -2.0, - "Volume": "40", - "liquidtype": "Tip Contents", - "WellsX": 12, - "LabwareClass": "Matrix96_750uL", - "AutoSelectPrototype": true, - "ColsFirst": true, - "CustomHeight": false, - "DataSetPattern": false, - "HeightFrom": 0, - "LocalPattern": true, - "Operation": "Dispense", - "OverrideHeight": false, - "Pattern": [ - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true - ], - "Prototype": "MC P300 High", - "ReferencedPattern": "", - "RowsFirst": false, - "SectionExpression": "", - "SelectionInfo": [ - 1 - ], - "SetMark": true, - "Source": false, - "StartAtMark": false, - "StartAtSelection": true, - "UseExpression": false - } - ], - "Wash": false, - "Dynamic?": true, - "AutoSelectActiveWashTechnique": false, - "ActiveWashTechnique": "", - "ChangeTipsBetweenDests": true, - "ChangeTipsBetweenSources": false, - "DefaultCaption": "", - "UseExpression": false, - "LeaveTipsOn": false, - "MandrelExpression": "", - "Repeats": "1", - "RepeatsByVolume": false, - "Replicates": "1", - "ShowTipHandlingDetails": false, - "ShowTransferDetails": true, - "Solvent": "Water", - "Span8Wash": false, - "Span8WashVolume": "2", - "Span8WasteVolume": "1", - "SplitVolume": false, - "SplitVolumeCleaning": false, - "Stop": "Destinations", - "TipLocation": "BC230", - "UseCurrentTips": false, - "UseDisposableTips": false, - "UseFixedTips": false, - "UseJIT": true, - "UseMandrelSelection": true, - "UseProbes": [ - true, - true, - true, - true, - true, - true, - true, - true - ], - "WashCycles": "4", - "WashVolume": "110%", - "Wizard": false - }, - { - "Span8": false, - "Pod": "Pod1", - "items": [ - { - "Position": "P12", - "Height": -2.0, - "Volume": "40", - "liquidtype": "Well Contents", - "WellsX": 12, - "LabwareClass": "Matrix96_750uL", - "AutoSelectPrototype": true, - "ColsFirst": true, - "CustomHeight": false, - "DataSetPattern": false, - "HeightFrom": 0, - "LocalPattern": true, - "Operation": "Aspirate", - "OverrideHeight": false, - "Pattern": [ - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true - ], - "Prototype": "MC P300 High", - "ReferencedPattern": "", - "RowsFirst": false, - "SectionExpression": "", - "SelectionInfo": [ - 1 - ], - "SetMark": true, - "Source": true, - "StartAtMark": false, - "StartAtSelection": true, - "UseExpression": false - }, - { - "Position": "P13", - "Height": -2.0, - "Volume": "40", - "liquidtype": "Tip Contents", - "WellsX": 12, - "LabwareClass": "Matrix96_750uL", - "AutoSelectPrototype": true, - "ColsFirst": true, - "CustomHeight": false, - "DataSetPattern": false, - "HeightFrom": 0, - "LocalPattern": true, - "Operation": "Dispense", - "OverrideHeight": false, - "Pattern": [ - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true - ], - "Prototype": "MC P300 High", - "ReferencedPattern": "", - "RowsFirst": false, - "SectionExpression": "", - "SelectionInfo": [ - 1 - ], - "SetMark": true, - "Source": false, - "StartAtMark": false, - "StartAtSelection": true, - "UseExpression": false - } - ], - "Wash": false, - "Dynamic?": true, - "AutoSelectActiveWashTechnique": false, - "ActiveWashTechnique": "", - "ChangeTipsBetweenDests": true, - "ChangeTipsBetweenSources": false, - "DefaultCaption": "", - "UseExpression": false, - "LeaveTipsOn": false, - "MandrelExpression": "", - "Repeats": "1", - "RepeatsByVolume": false, - "Replicates": "1", - "ShowTipHandlingDetails": false, - "ShowTransferDetails": true, - "Solvent": "Water", - "Span8Wash": false, - "Span8WashVolume": "2", - "Span8WasteVolume": "1", - "SplitVolume": false, - "SplitVolumeCleaning": false, - "Stop": "Destinations", - "TipLocation": "BC230", - "UseCurrentTips": false, - "UseDisposableTips": false, - "UseFixedTips": false, - "UseJIT": true, - "UseMandrelSelection": true, - "UseProbes": [ - true, - true, - true, - true, - true, - true, - true, - true - ], - "WashCycles": "4", - "WashVolume": "110%", - "Wizard": false - }, - { - "Span8": false, - "Pod": "Pod1", - "items": [ - { - "Position": "P12", - "Height": -2.0, - "Volume": "40", - "liquidtype": "Well Contents", - "WellsX": 12, - "LabwareClass": "Matrix96_750uL", - "AutoSelectPrototype": true, - "ColsFirst": true, - "CustomHeight": false, - "DataSetPattern": false, - "HeightFrom": 0, - "LocalPattern": true, - "Operation": "Aspirate", - "OverrideHeight": false, - "Pattern": [ - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true - ], - "Prototype": "MC P300 High", - "ReferencedPattern": "", - "RowsFirst": false, - "SectionExpression": "", - "SelectionInfo": [ - 1 - ], - "SetMark": true, - "Source": true, - "StartAtMark": false, - "StartAtSelection": true, - "UseExpression": false - }, - { - "Position": "P13", - "Height": -2.0, - "Volume": "40", - "liquidtype": "Tip Contents", - "WellsX": 12, - "LabwareClass": "Matrix96_750uL", - "AutoSelectPrototype": true, - "ColsFirst": true, - "CustomHeight": false, - "DataSetPattern": false, - "HeightFrom": 0, - "LocalPattern": true, - "Operation": "Dispense", - "OverrideHeight": false, - "Pattern": [ - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true - ], - "Prototype": "MC P300 High", - "ReferencedPattern": "", - "RowsFirst": false, - "SectionExpression": "", - "SelectionInfo": [ - 1 - ], - "SetMark": true, - "Source": false, - "StartAtMark": false, - "StartAtSelection": true, - "UseExpression": false - } - ], - "Wash": false, - "Dynamic?": true, - "AutoSelectActiveWashTechnique": false, - "ActiveWashTechnique": "", - "ChangeTipsBetweenDests": true, - "ChangeTipsBetweenSources": false, - "DefaultCaption": "", - "UseExpression": false, - "LeaveTipsOn": false, - "MandrelExpression": "", - "Repeats": "1", - "RepeatsByVolume": false, - "Replicates": "1", - "ShowTipHandlingDetails": false, - "ShowTransferDetails": true, - "Solvent": "Water", - "Span8Wash": false, - "Span8WashVolume": "2", - "Span8WasteVolume": "1", - "SplitVolume": false, - "SplitVolumeCleaning": false, - "Stop": "Destinations", - "TipLocation": "BC230", - "UseCurrentTips": false, - "UseDisposableTips": false, - "UseFixedTips": false, - "UseJIT": true, - "UseMandrelSelection": true, - "UseProbes": [ - true, - true, - true, - true, - true, - true, - true, - true - ], - "WashCycles": "4", - "WashVolume": "110%", - "Wizard": false - } - ] -} \ No newline at end of file diff --git a/unilabos/devices/liquid_handling/biomek_test.py b/unilabos/devices/liquid_handling/biomek_test.py deleted file mode 100644 index af6339a1..00000000 --- a/unilabos/devices/liquid_handling/biomek_test.py +++ /dev/null @@ -1,1006 +0,0 @@ -# import requests -from typing import List, Sequence, Optional, Union, Literal -# from geometry_msgs.msg import Point -# from unilabos_msgs.msg import Resource -# from pylabrobot.resources import ( -# Resource, -# TipRack, -# Container, -# Coordinate, -# Well -# ) -# from unilabos.ros.nodes.resource_tracker import DeviceNodeResourceTracker # type: ignore -# from .liquid_handler_abstract import LiquidHandlerAbstract - -import json -import pathlib -from typing import Sequence, Optional, List, Union, Literal -import copy - - - -#class LiquidHandlerBiomek(LiquidHandlerAbstract): - - -class LiquidHandlerBiomek: - """ - Biomek液体处理器的实现类,继承自LiquidHandlerAbstract。 - 该类用于处理Biomek液体处理器的特定操作。 - """ - - def __init__(self, *args, **kwargs): - super().__init__(*args, **kwargs) - self._status = "Idle" # 初始状态为 Idle - self._success = False # 初始成功状态为 False - self._status_queue = kwargs.get("status_queue", None) # 状态队列 - self.temp_protocol = {} - self.py32_path = "/opt/py32" # Biomek的Python 3.2路径 - - # 预定义的仪器分类 - self.tip_racks = [ - "BC230", "BC1025F", "BC50", "TipRack200", "TipRack1000", - "tip", "tips", "Tip", "Tips" - ] - - self.reservoirs = [ - "AgilentReservoir", "nest_12_reservoir_15ml", "nest_1_reservoir_195ml", - "reservoir", "Reservoir", "waste", "Waste" - ] - - self.plates_96 = [ - "BCDeep96Round", "Matrix96_750uL", "NEST 2ml Deep Well Plate", "nest_96_wellplate_100ul_pcr_full_skirt", - "nest_96_wellplate_200ul_flat", "Matrix96", "96", "plate", "Plate" - ] - - self.aspirate_techniques = { - 'MC P300 high':{ - 'Position': 'P1', - 'Height': -2.0, - 'Volume': '50', - 'liquidtype': 'Well Contents', - 'WellsX': 12, - 'LabwareClass': 'Matrix96_750uL', - 'AutoSelectPrototype': True, - 'ColsFirst': True, - 'CustomHeight': False, - 'DataSetPattern': False, - 'HeightFrom': 0, - 'LocalPattern': True, - 'Operation': 'Aspirate', - 'OverrideHeight': False, - 'Pattern': (True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True), - 'Prototype': 'MC P300 High', - 'ReferencedPattern': '', - 'RowsFirst': False, - 'SectionExpression': '', - 'SelectionInfo': (1,), - 'SetMark': True, - 'Source': True, - 'StartAtMark': False, - 'StartAtSelection': True, - 'UseExpression': False}, - } - - self.dispense_techniques = { - 'MC P300 high':{ - 'Position': 'P11', - 'Height': -2.0, - 'Volume': '50', - 'liquidtype': 'Tip Contents', - 'WellsX': 12, - 'LabwareClass': 'Matrix96_750uL', - 'AutoSelectPrototype': True, - 'ColsFirst': True, - 'CustomHeight': False, - 'DataSetPattern': False, - 'HeightFrom': 0, - 'LocalPattern': True, - 'Operation': 'Dispense', - 'OverrideHeight': False, - 'Pattern': (True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True), - 'Prototype': 'MC P300 High', - 'ReferencedPattern': '', - 'RowsFirst': False, - 'SectionExpression': '', - 'SelectionInfo': (1,), - 'SetMark': True, - 'Source': False, - 'StartAtMark': False, - 'StartAtSelection': True, - 'UseExpression': False} - } - - - def _get_instrument_type(self, class_name: str) -> str: - """ - 根据class_name判断仪器类型 - - Returns: - str: "tip_rack", "reservoir", "plate_96", 或 "unknown" - """ - # 检查是否是枪头架 - for tip_name in self.tip_racks: - if tip_name in class_name: - return "tip_rack" - - # 检查是否是储液槽 - for reservoir_name in self.reservoirs: - if reservoir_name in class_name: - return "reservoir" - - # 检查是否是96孔板 - for plate_name in self.plates_96: - if plate_name in class_name: - return "plate_96" - - return "unknown" - - def create_protocol( - self, - protocol_name: str, - protocol_description: str, - protocol_version: str, - protocol_author: str, - protocol_date: str, - protocol_type: str, - none_keys: List[str] = [], - ): - """ - 创建一个新的协议。 - - Args: - protocol_name (str): 协议名称 - protocol_description (str): 协议描述 - protocol_version (str): 协议版本 - protocol_author (str): 协议作者 - protocol_date (str): 协议日期 - protocol_type (str): 协议类型 - none_keys (List[str]): 需要设置为None的键列表 - - Returns: - dict: 创建的协议字典 - """ - self.temp_protocol = { - "meta": { - "name": protocol_name, - "description": protocol_description, - "version": protocol_version, - "author": protocol_author, - "date": protocol_date, - "type": protocol_type, - }, - "labwares": {}, # 改为字典格式以匹配DeckItems - "steps": [], - } - return self.temp_protocol - -# def run_protocol(self): -# """ -# 执行创建的实验流程。 -# 工作站的完整执行流程是, -# 从 create_protocol 开始,创建新的 method, -# 随后执行 transfer_liquid 等操作向实验流程添加步骤, -# 最后 run_protocol 执行整个方法。 - -# Returns: -# dict: 执行结果 -# """ -# #use popen or subprocess to create py32 process and communicate send the temp protocol to it -# if not self.temp_protocol: -# raise ValueError("No protocol created. Please create a protocol first.") - -# # 模拟执行协议 -# self._status = "Running" -# self._success = True -# # 在这里可以添加实际执行协议的逻辑 - -# response = requests.post("localhost:5000/api/protocols", json=self.temp_protocol) - -# def create_resource( -# self, -# resource_tracker: DeviceNodeResourceTracker, -# resources: list[Resource], -# bind_parent_id: str, -# bind_location: dict[str, float], -# liquid_input_slot: list[int], -# liquid_type: list[str], -# liquid_volume: list[int], -# slot_on_deck: int, -# res_id, -# class_name, -# bind_locations, -# parent -# ): -# """ -# 创建一个新的资源。 - -# Args: -# device_id (str): 设备ID -# res_id (str): 资源ID -# class_name (str): 资源类名 -# parent (str): 父级ID -# bind_locations (Point): 绑定位置 -# liquid_input_slot (list[int]): 液体输入槽列表 -# liquid_type (list[str]): 液体类型列表 -# liquid_volume (list[int]): 液体体积列表 -# slot_on_deck (int): 甲板上的槽位 - -# Returns: -# dict: 创建的资源字典 -# """ -# # TODO:需要对好接口,下面这个是临时的 -# resource = { -# "id": res_id, -# "class": class_name, -# "parent": parent, -# "bind_locations": bind_locations.to_dict(), -# "liquid_input_slot": liquid_input_slot, -# "liquid_type": liquid_type, -# "liquid_volume": liquid_volume, -# "slot_on_deck": slot_on_deck, -# } -# self.temp_protocol["labwares"].append(resource) -# return resource - def instrument_setup_biomek( - self, - id: str, - parent: str, - slot_on_deck: str, - class_name: str, - liquid_type: list[str], - liquid_volume: list[int], - liquid_input_wells: list[str], - ): - """ - 设置Biomek仪器的参数配置,按照DeckItems格式 - - 根据不同的仪器类型(容器、tip rack等)设置相应的参数结构 - 位置作为键,配置列表作为值 - """ - - # 判断仪器类型 - instrument_type = self._get_instrument_type(class_name) - - config = None # 初始化为None - - if instrument_type == "reservoir": - # 储液槽类型配置 - config = { - "Properties": { - "Name": id, # 使用id作为名称 - "Device": "", - "liquidtype": liquid_type[0] if liquid_type else "Water", - "BarCode": "", - "SenseEveryTime": False - }, - "Known": True, - "Class": f"LabwareClasses\\{class_name}", - "DataSets": {"Volume": {}}, - "RuntimeDataSets": {"Volume": {}}, - "EvalAmounts": (float(liquid_volume[0]),) if liquid_volume else (0,), - "Nominal": False, - "EvalLiquids": (liquid_type[0],) if liquid_type else ("Water",) - } - - elif instrument_type == "plate_96": - # 96孔板类型配置 - volume_per_well = float(liquid_volume[0]) if liquid_volume else 0 - liquid_per_well = liquid_type[0] if liquid_type else "Water" - - config = { - "Properties": { - "Name": id, # 使用id作为名称 - "Device": "", - "liquidtype": liquid_per_well, - "BarCode": "", - "SenseEveryTime": False - }, - "Known": True, - "Class": f"LabwareClasses\\{class_name}", - "DataSets": {"Volume": {}}, - "RuntimeDataSets": {"Volume": {}}, - "EvalAmounts": tuple([volume_per_well] * 96), - "Nominal": False, - "EvalLiquids": tuple([liquid_per_well] * 96) - } - - elif instrument_type == "tip_rack": - # 枪头架类型配置 - tip_config = { - "Class": "TipClasses\\T230", - "Contents": [], - "_RT_Contents": [], - "Used": False, - "RT_Used": False, - "Dirty": False, - "RT_Dirty": False, - "MaxVolumeUsed": 0.0, - "RT_MaxVolumeUsed": 0.0 - } - - config = { - "Tips": tip_config, - "RT_Tips": tip_config.copy(), - "Properties": {}, - "Known": False, - "Class": f"LabwareClasses\\{class_name}", - "DataSets": {"Volume": {}}, - "RuntimeDataSets": {"Volume": {}} - } - - # 按照DeckItems格式存储:位置作为键,配置列表作为值 - if config is not None: - self.temp_protocol["labwares"][slot_on_deck] = [config] - else: - # 空位置 - self.temp_protocol["labwares"][slot_on_deck] = [] - - return - - def transfer_biomek( - self, - source: str, - target: str, - tip_rack: str, - volume: float, - aspirate_techniques: str, - dispense_techniques: str, - ): - """ - 处理Biomek的液体转移操作。 - - """ - items = [] - - asp_params = copy.deepcopy(self.aspirate_techniques[aspirate_techniques]) - dis_params = copy.deepcopy(self.dispense_techniques[dispense_techniques]) - - - asp_params['Position'] = source - dis_params['Position'] = target - asp_params['Volume'] = str(volume) - dis_params['Volume'] = str(volume) - - items.append(asp_params) - items.append(dis_params) - - transfer_params = { - "Span8": False, - "Pod": "Pod1", - "items": [], - "Wash": False, - "Dynamic?": True, - "AutoSelectActiveWashTechnique": False, - "ActiveWashTechnique": "", - "ChangeTipsBetweenDests": True, - "ChangeTipsBetweenSources": False, - "DefaultCaption": "", - "UseExpression": False, - "LeaveTipsOn": False, - "MandrelExpression": "", - "Repeats": "1", - "RepeatsByVolume": False, - "Replicates": "1", - "ShowTipHandlingDetails": False, - "ShowTransferDetails": True, - "Solvent": "Water", - "Span8Wash": False, - "Span8WashVolume": "2", - "Span8WasteVolume": "1", - "SplitVolume": False, - "SplitVolumeCleaning": False, - "Stop": "Destinations", - "TipLocation": "BC230", - "UseCurrentTips": False, - "UseDisposableTips": False, - "UseFixedTips": False, - "UseJIT": True, - "UseMandrelSelection": True, - "UseProbes": [True, True, True, True, True, True, True, True], - "WashCycles": "4", - "WashVolume": "110%", - "Wizard": False - } - transfer_params["items"] = items - transfer_params["Solvent"] = 'Water' - transfer_params["TipLocation"] = tip_rack - tmp={'transfer': transfer_params} - - self.temp_protocol["steps"].append(tmp) - - - return - - def move_biomek( - self, - source: str, - target: str, - ): - """ - 处理Biomek移动板子的操作。 - - """ - - move_params = { - "Pod": "Pod1", - "GripSide": "A1 near", - "Source": source, - "Target": target, - "LeaveBottomLabware": False, - } - tmp={'move': move_params} - self.temp_protocol["steps"].append(tmp) - - return - - def incubation_biomek( - self, - time: int, - ): - """ - 处理Biomek的孵育操作。 - """ - incubation_params = { - "Message": "Paused", - "Location": "the whole system", - "Time": time, - "Mode": "TimedResource" - } - tmp={'incubation': incubation_params} - self.temp_protocol["steps"].append(tmp) - - return - - def oscillation_biomek( - self, - rpm: int, - time: int, - ): - """ - 处理Biomek的振荡操作。 - """ - oscillation_params = { - 'Device': 'OrbitalShaker0', - 'Parameters': (str(rpm), '2', str(time), 'CounterClockwise'), - 'Command': 'Timed Shake' - } - tmp={'oscillation': oscillation_params} - self.temp_protocol["steps"].append(tmp) - - return - - - -if __name__ == "__main__": - - print("=== Biomek完整流程测试 ===") - print("包含: 仪器设置 + 完整实验步骤") - - # 完整的步骤信息(从biomek.py复制) - steps_info = ''' - { - "steps": [ - { - "step_number": 1, - "operation": "transfer", - "description": "转移PCR产物或酶促反应液至0.5ml 96孔板中", - "parameters": { - "source": "P1", - "target": "P11", - "tip_rack": "BC230", - "volume": 50 - } - }, - { - "step_number": 2, - "operation": "transfer", - "description": "加入2倍体积的Bind Beads BC至产物中", - "parameters": { - "source": "P2", - "target": "P11", - "tip_rack": "BC230", - "volume": 100 - } - }, - { - "step_number": 3, - "operation": "oscillation", - "description": "振荡混匀300秒", - "parameters": { - "rpm": 800, - "time": 300 - } - }, - { - "step_number": 4, - "operation": "move_labware", - "description": "转移至96孔磁力架上吸附3分钟", - "parameters": { - "source": "P11", - "target": "P12" - } - }, - { - "step_number": 5, - "operation": "incubation", - "description": "吸附3分钟", - "parameters": { - "time": 180 - } - }, - { - "step_number": 6, - "operation": "transfer", - "description": "吸弃或倒除上清液", - "parameters": { - "source": "P12", - "target": "P22", - "tip_rack": "BC230", - "volume": 150 - } - }, - { - "step_number": 7, - "operation": "transfer", - "description": "加入300-500μl 75%乙醇", - "parameters": { - "source": "P3", - "target": "P12", - "tip_rack": "BC230", - "volume": 400 - } - }, - { - "step_number": 8, - "operation": "move_labware", - "description": "移动至振荡器进行振荡混匀", - "parameters": { - "source": "P12", - "target": "Orbital1" - } - }, - { - "step_number": 9, - "operation": "oscillation", - "description": "振荡混匀60秒", - "parameters": { - "rpm": 800, - "time": 60 - } - }, - { - "step_number": 10, - "operation": "move_labware", - "description": "转移至96孔磁力架上吸附3分钟", - "parameters": { - "source": "Orbital1", - "target": "P12" - } - }, - { - "step_number": 11, - "operation": "incubation", - "description": "吸附3分钟", - "parameters": { - "time": 180 - } - }, - { - "step_number": 12, - "operation": "transfer", - "description": "吸弃或倒弃废液", - "parameters": { - "source": "P12", - "target": "P22", - "tip_rack": "BC230", - "volume": 400 - } - }, - { - "step_number": 13, - "operation": "transfer", - "description": "重复加入75%乙醇", - "parameters": { - "source": "P3", - "target": "P12", - "tip_rack": "BC230", - "volume": 400 - } - }, - { - "step_number": 14, - "operation": "move_labware", - "description": "移动至振荡器进行振荡混匀", - "parameters": { - "source": "P12", - "target": "Orbital1" - } - }, - { - "step_number": 15, - "operation": "oscillation", - "description": "振荡混匀60秒", - "parameters": { - "rpm": 800, - "time": 60 - } - }, - { - "step_number": 16, - "operation": "move_labware", - "description": "转移至96孔磁力架上吸附3分钟", - "parameters": { - "source": "Orbital1", - "target": "P12" - } - }, - { - "step_number": 17, - "operation": "incubation", - "description": "吸附3分钟", - "parameters": { - "time": 180 - } - }, - { - "step_number": 18, - "operation": "transfer", - "description": "吸弃或倒弃废液", - "parameters": { - "source": "P12", - "target": "P22", - "tip_rack": "BC230", - "volume": 400 - } - }, - { - "step_number": 19, - "operation": "move_labware", - "description": "正放96孔板,空气干燥15分钟", - "parameters": { - "source": "P12", - "target": "P13" - } - }, - { - "step_number": 20, - "operation": "incubation", - "description": "空气干燥15分钟", - "parameters": { - "time": 900 - } - }, - { - "step_number": 21, - "operation": "transfer", - "description": "加入30-50μl Elution Buffer", - "parameters": { - "source": "P4", - "target": "P13", - "tip_rack": "BC230", - "volume": 40 - } - }, - { - "step_number": 22, - "operation": "move_labware", - "description": "移动至振荡器进行振荡混匀", - "parameters": { - "source": "P13", - "target": "Orbital1" - } - }, - { - "step_number": 23, - "operation": "oscillation", - "description": "振荡混匀60秒", - "parameters": { - "rpm": 800, - "time": 60 - } - }, - { - "step_number": 24, - "operation": "move_labware", - "description": "室温静置3分钟", - "parameters": { - "source": "Orbital1", - "target": "P13" - } - }, - { - "step_number": 25, - "operation": "incubation", - "description": "室温静置3分钟", - "parameters": { - "time": 180 - } - }, - { - "step_number": 26, - "operation": "move_labware", - "description": "转移至96孔磁力架上吸附2分钟", - "parameters": { - "source": "P13", - "target": "P12" - } - }, - { - "step_number": 27, - "operation": "incubation", - "description": "吸附2分钟", - "parameters": { - "time": 120 - } - }, - { - "step_number": 28, - "operation": "transfer", - "description": "将DNA转移至新的板中", - "parameters": { - "source": "P12", - "target": "P14", - "tip_rack": "BC230", - "volume": 40 - } - } - ] - } -''' - # 完整的labware配置信息 - labware_with_liquid = ''' - [ - { - "id": "Tip Rack BC230 TL1", - "parent": "deck", - "slot_on_deck": "TL1", - "class_name": "BC230", - "liquid_type": [], - "liquid_volume": [], - "liquid_input_wells": [] - }, - { - "id": "Tip Rack BC230 TL2", - "parent": "deck", - "slot_on_deck": "TL2", - "class_name": "BC230", - "liquid_type": [], - "liquid_volume": [], - "liquid_input_wells": [] - }, - { - "id": "Tip Rack BC230 TL3", - "parent": "deck", - "slot_on_deck": "TL3", - "class_name": "BC230", - "liquid_type": [], - "liquid_volume": [], - "liquid_input_wells": [] - }, - { - "id": "Tip Rack BC230 TL4", - "parent": "deck", - "slot_on_deck": "TL4", - "class_name": "BC230", - "liquid_type": [], - "liquid_volume": [], - "liquid_input_wells": [] - }, - { - "id": "Tip Rack BC230 TL5", - "parent": "deck", - "slot_on_deck": "TL5", - "class_name": "BC230", - "liquid_type": [], - "liquid_volume": [], - "liquid_input_wells": [] - }, - { - "id": "Tip Rack BC230 P5", - "parent": "deck", - "slot_on_deck": "P5", - "class_name": "BC230", - "liquid_type": [], - "liquid_volume": [], - "liquid_input_wells": [] - }, - { - "id": "Tip Rack BC230 P6", - "parent": "deck", - "slot_on_deck": "P6", - "class_name": "BC230", - "liquid_type": [], - "liquid_volume": [], - "liquid_input_wells": [] - }, - { - "id": "Tip Rack BC230 P15", - "parent": "deck", - "slot_on_deck": "P15", - "class_name": "BC230", - "liquid_type": [], - "liquid_volume": [], - "liquid_input_wells": [] - }, - { - "id": "Tip Rack BC230 P16", - "parent": "deck", - "slot_on_deck": "P16", - "class_name": "BC230", - "liquid_type": [], - "liquid_volume": [], - "liquid_input_wells": [] - }, - { - "id": "stock plate on P1", - "parent": "deck", - "slot_on_deck": "P1", - "class_name": "AgilentReservoir", - "liquid_type": ["PCR product"], - "liquid_volume": [5000], - "liquid_input_wells": ["A1"] - }, - { - "id": "stock plate on P2", - "parent": "deck", - "slot_on_deck": "P2", - "class_name": "AgilentReservoir", - "liquid_type": ["bind beads"], - "liquid_volume": [100000], - "liquid_input_wells": ["A1"] - }, - { - "id": "stock plate on P3", - "parent": "deck", - "slot_on_deck": "P3", - "class_name": "AgilentReservoir", - "liquid_type": ["75% ethanol"], - "liquid_volume": [100000], - "liquid_input_wells": ["A1"] - }, - { - "id": "stock plate on P4", - "parent": "deck", - "slot_on_deck": "P4", - "class_name": "AgilentReservoir", - "liquid_type": ["Elution Buffer"], - "liquid_volume": [5000], - "liquid_input_wells": ["A1"] - }, - { - "id": "working plate on P11", - "parent": "deck", - "slot_on_deck": "P11", - "class_name": "BCDeep96Round", - "liquid_type": [], - "liquid_volume": [], - "liquid_input_wells": [] - }, - { - "id": "working plate on P13", - "parent": "deck", - "slot_on_deck": "P13", - "class_name": "BCDeep96Round", - "liquid_type": [], - "liquid_volume": [], - "liquid_input_wells": [] - }, - { - "id": "working plate on P14", - "parent": "deck", - "slot_on_deck": "P14", - "class_name": "BCDeep96Round", - "liquid_type": [], - "liquid_volume": [], - "liquid_input_wells": [] - }, - { - "id": "waste on P22", - "parent": "deck", - "slot_on_deck": "P22", - "class_name": "AgilentReservoir", - "liquid_type": [], - "liquid_volume": [], - "liquid_input_wells": [] - }, - { - "id": "oscillation", - "parent": "deck", - "slot_on_deck": "Orbital1", - "class_name": "Orbital", - "liquid_type": [], - "liquid_volume": [], - "liquid_input_wells": [] - } - ] - ''' - - # 创建handler实例 - handler = LiquidHandlerBiomek() - - # 创建协议 - protocol = handler.create_protocol( - protocol_name="DNA纯化完整流程", - protocol_description="使用磁珠进行DNA纯化的完整自动化流程", - protocol_version="1.0", - protocol_author="Biomek系统", - protocol_date="2024-01-01", - protocol_type="DNA_purification" - ) - - print("\n=== 第一步:设置所有仪器 ===") - # 解析labware配置 - labwares = json.loads(labware_with_liquid) - - # 设置所有仪器 - instrument_count = 0 - for labware in labwares: - print(f"设置仪器: {labware['id']} ({labware['class_name']}) 在位置 {labware['slot_on_deck']}") - handler.instrument_setup_biomek( - id=labware['id'], - parent=labware['parent'], - slot_on_deck=labware['slot_on_deck'], - class_name=labware['class_name'], - liquid_type=labware['liquid_type'], - liquid_volume=labware['liquid_volume'], - liquid_input_wells=labware['liquid_input_wells'] - ) - instrument_count += 1 - - print(f"总共设置了 {instrument_count} 个仪器位置") - - print("\n=== 第二步:执行实验步骤 ===") - # 解析步骤信息 - input_steps = json.loads(steps_info) - - # 执行所有步骤 - step_count = 0 - for step in input_steps['steps']: - operation = step['operation'] - parameters = step['parameters'] - description = step['description'] - - print(f"步骤 {step['step_number']}: {description}") - - if operation == 'transfer': - - handler.transfer_biomek( - source=parameters['source'], - target=parameters['target'], - volume=parameters['volume'], - tip_rack=parameters['tip_rack'], - aspirate_techniques='MC P300 high', - dispense_techniques='MC P300 high' - ) - elif operation == 'move_labware': - handler.move_biomek( - source=parameters['source'], - target=parameters['target'] - ) - elif operation == 'oscillation': - handler.oscillation_biomek( - rpm=parameters['rpm'], - time=parameters['time'] - ) - elif operation == 'incubation': - handler.incubation_biomek( - time=parameters['time'] - ) - - step_count += 1 - - print(f"总共执行了 {step_count} 个步骤") - - print("\n=== 第三步:保存完整协议 ===") - # 获取脚本目录 - script_dir = pathlib.Path(__file__).parent - - # 保存完整协议 - complete_output_path = script_dir / "complete_biomek_protocol_0608.json" - with open(complete_output_path, 'w', encoding='utf-8') as f: - json.dump(handler.temp_protocol, f, indent=4, ensure_ascii=False) - - print(f"完整协议已保存到: {complete_output_path}") - - print("\n=== 测试完成 ===") - print("完整的DNA纯化流程已成功转换为Biomek格式!") diff --git a/unilabos/devices/liquid_handling/complete_biomek_protocol.json b/unilabos/devices/liquid_handling/complete_biomek_protocol.json deleted file mode 100644 index 2c0e95fd..00000000 --- a/unilabos/devices/liquid_handling/complete_biomek_protocol.json +++ /dev/null @@ -1,3760 +0,0 @@ -{ - "meta": { - "name": "DNA纯化完整流程", - "description": "使用磁珠进行DNA纯化的完整自动化流程", - "version": "1.0", - "author": "Biomek系统", - "date": "2024-01-01", - "type": "DNA_purification" - }, - "labwares": [ - { - "Tips": { - "Class": "TipClasses\\T230", - "Contents": [], - "_RT_Contents": [], - "Used": false, - "RT_Used": false, - "Dirty": false, - "RT_Dirty": false, - "MaxVolumeUsed": 0.0, - "RT_MaxVolumeUsed": 0.0 - }, - "RT_Tips": { - "Class": "TipClasses\\T230", - "Contents": [], - "_RT_Contents": [], - "Used": false, - "RT_Used": false, - "Dirty": false, - "RT_Dirty": false, - "MaxVolumeUsed": 0.0, - "RT_MaxVolumeUsed": 0.0 - }, - "Properties": {}, - "Known": false, - "Class": "LabwareClasses\\BC230", - "DataSets": { - "Volume": {} - }, - "RuntimeDataSets": { - "Volume": {} - }, - "Name": "Tip Rack BC230 on TL1", - "Position": "TL1" - }, - { - "Tips": { - "Class": "TipClasses\\T230", - "Contents": [], - "_RT_Contents": [], - "Used": false, - "RT_Used": false, - "Dirty": false, - "RT_Dirty": false, - "MaxVolumeUsed": 0.0, - "RT_MaxVolumeUsed": 0.0 - }, - "RT_Tips": { - "Class": "TipClasses\\T230", - "Contents": [], - "_RT_Contents": [], - "Used": false, - "RT_Used": false, - "Dirty": false, - "RT_Dirty": false, - "MaxVolumeUsed": 0.0, - "RT_MaxVolumeUsed": 0.0 - }, - "Properties": {}, - "Known": false, - "Class": "LabwareClasses\\BC230", - "DataSets": { - "Volume": {} - }, - "RuntimeDataSets": { - "Volume": {} - }, - "Name": "Tip Rack BC230 on TL2", - "Position": "TL2" - }, - { - "Tips": { - "Class": "TipClasses\\T230", - "Contents": [], - "_RT_Contents": [], - "Used": false, - "RT_Used": false, - "Dirty": false, - "RT_Dirty": false, - "MaxVolumeUsed": 0.0, - "RT_MaxVolumeUsed": 0.0 - }, - "RT_Tips": { - "Class": "TipClasses\\T230", - "Contents": [], - "_RT_Contents": [], - "Used": false, - "RT_Used": false, - "Dirty": false, - "RT_Dirty": false, - "MaxVolumeUsed": 0.0, - "RT_MaxVolumeUsed": 0.0 - }, - "Properties": {}, - "Known": false, - "Class": "LabwareClasses\\BC230", - "DataSets": { - "Volume": {} - }, - "RuntimeDataSets": { - "Volume": {} - }, - "Name": "Tip Rack BC230 on TL3", - "Position": "TL3" - }, - { - "Tips": { - "Class": "TipClasses\\T230", - "Contents": [], - "_RT_Contents": [], - "Used": false, - "RT_Used": false, - "Dirty": false, - "RT_Dirty": false, - "MaxVolumeUsed": 0.0, - "RT_MaxVolumeUsed": 0.0 - }, - "RT_Tips": { - "Class": "TipClasses\\T230", - "Contents": [], - "_RT_Contents": [], - "Used": false, - "RT_Used": false, - "Dirty": false, - "RT_Dirty": false, - "MaxVolumeUsed": 0.0, - "RT_MaxVolumeUsed": 0.0 - }, - "Properties": {}, - "Known": false, - "Class": "LabwareClasses\\BC230", - "DataSets": { - "Volume": {} - }, - "RuntimeDataSets": { - "Volume": {} - }, - "Name": "Tip Rack BC230 on TL4", - "Position": "TL4" - }, - { - "Tips": { - "Class": "TipClasses\\T230", - "Contents": [], - "_RT_Contents": [], - "Used": false, - "RT_Used": false, - "Dirty": false, - "RT_Dirty": false, - "MaxVolumeUsed": 0.0, - "RT_MaxVolumeUsed": 0.0 - }, - "RT_Tips": { - "Class": "TipClasses\\T230", - "Contents": [], - "_RT_Contents": [], - "Used": false, - "RT_Used": false, - "Dirty": false, - "RT_Dirty": false, - "MaxVolumeUsed": 0.0, - "RT_MaxVolumeUsed": 0.0 - }, - "Properties": {}, - "Known": false, - "Class": "LabwareClasses\\BC230", - "DataSets": { - "Volume": {} - }, - "RuntimeDataSets": { - "Volume": {} - }, - "Name": "Tip Rack BC230 on TL5", - "Position": "TL5" - }, - { - "Tips": { - "Class": "TipClasses\\T230", - "Contents": [], - "_RT_Contents": [], - "Used": false, - "RT_Used": false, - "Dirty": false, - "RT_Dirty": false, - "MaxVolumeUsed": 0.0, - "RT_MaxVolumeUsed": 0.0 - }, - "RT_Tips": { - "Class": "TipClasses\\T230", - "Contents": [], - "_RT_Contents": [], - "Used": false, - "RT_Used": false, - "Dirty": false, - "RT_Dirty": false, - "MaxVolumeUsed": 0.0, - "RT_MaxVolumeUsed": 0.0 - }, - "Properties": {}, - "Known": false, - "Class": "LabwareClasses\\BC230", - "DataSets": { - "Volume": {} - }, - "RuntimeDataSets": { - "Volume": {} - }, - "Name": "Tip Rack BC230 on P5", - "Position": "P5" - }, - { - "Tips": { - "Class": "TipClasses\\T230", - "Contents": [], - "_RT_Contents": [], - "Used": false, - "RT_Used": false, - "Dirty": false, - "RT_Dirty": false, - "MaxVolumeUsed": 0.0, - "RT_MaxVolumeUsed": 0.0 - }, - "RT_Tips": { - "Class": "TipClasses\\T230", - "Contents": [], - "_RT_Contents": [], - "Used": false, - "RT_Used": false, - "Dirty": false, - "RT_Dirty": false, - "MaxVolumeUsed": 0.0, - "RT_MaxVolumeUsed": 0.0 - }, - "Properties": {}, - "Known": false, - "Class": "LabwareClasses\\BC230", - "DataSets": { - "Volume": {} - }, - "RuntimeDataSets": { - "Volume": {} - }, - "Name": "Tip Rack BC230 on P6", - "Position": "P6" - }, - { - "Tips": { - "Class": "TipClasses\\T230", - "Contents": [], - "_RT_Contents": [], - "Used": false, - "RT_Used": false, - "Dirty": false, - "RT_Dirty": false, - "MaxVolumeUsed": 0.0, - "RT_MaxVolumeUsed": 0.0 - }, - "RT_Tips": { - "Class": "TipClasses\\T230", - "Contents": [], - "_RT_Contents": [], - "Used": false, - "RT_Used": false, - "Dirty": false, - "RT_Dirty": false, - "MaxVolumeUsed": 0.0, - "RT_MaxVolumeUsed": 0.0 - }, - "Properties": {}, - "Known": false, - "Class": "LabwareClasses\\BC230", - "DataSets": { - "Volume": {} - }, - "RuntimeDataSets": { - "Volume": {} - }, - "Name": "Tip Rack BC230 on P15", - "Position": "P15" - }, - { - "Tips": { - "Class": "TipClasses\\T230", - "Contents": [], - "_RT_Contents": [], - "Used": false, - "RT_Used": false, - "Dirty": false, - "RT_Dirty": false, - "MaxVolumeUsed": 0.0, - "RT_MaxVolumeUsed": 0.0 - }, - "RT_Tips": { - "Class": "TipClasses\\T230", - "Contents": [], - "_RT_Contents": [], - "Used": false, - "RT_Used": false, - "Dirty": false, - "RT_Dirty": false, - "MaxVolumeUsed": 0.0, - "RT_MaxVolumeUsed": 0.0 - }, - "Properties": {}, - "Known": false, - "Class": "LabwareClasses\\BC230", - "DataSets": { - "Volume": {} - }, - "RuntimeDataSets": { - "Volume": {} - }, - "Name": "Tip Rack BC230 on P16", - "Position": "P16" - }, - { - "Properties": { - "Name": "stock plate on P1", - "Device": "", - "liquidtype": "master_mix", - "BarCode": "", - "SenseEveryTime": false - }, - "Known": true, - "Class": "LabwareClasses\\nest_12_reservoir_15ml", - "DataSets": { - "Volume": {} - }, - "RuntimeDataSets": { - "Volume": {} - }, - "EvalAmounts": [ - 10000.0 - ], - "Nominal": false, - "EvalLiquids": [ - "master_mix" - ], - "Name": "stock plate on P1", - "Position": "P1" - }, - { - "Properties": { - "Name": "stock plate on P2", - "Device": "", - "liquidtype": "bind beads", - "BarCode": "", - "SenseEveryTime": false - }, - "Known": true, - "Class": "LabwareClasses\\nest_12_reservoir_15ml", - "DataSets": { - "Volume": {} - }, - "RuntimeDataSets": { - "Volume": {} - }, - "EvalAmounts": [ - 10000.0 - ], - "Nominal": false, - "EvalLiquids": [ - "bind beads" - ], - "Name": "stock plate on P2", - "Position": "P2" - }, - { - "Properties": { - "Name": "stock plate on P3", - "Device": "", - "liquidtype": "ethyl alcohol", - "BarCode": "", - "SenseEveryTime": false - }, - "Known": true, - "Class": "LabwareClasses\\nest_12_reservoir_15ml", - "DataSets": { - "Volume": {} - }, - "RuntimeDataSets": { - "Volume": {} - }, - "EvalAmounts": [ - 10000.0 - ], - "Nominal": false, - "EvalLiquids": [ - "ethyl alcohol" - ], - "Name": "stock plate on P3", - "Position": "P3" - }, - { - "Properties": { - "Name": "elution buffer on P4", - "Device": "", - "liquidtype": "elution buffer", - "BarCode": "", - "SenseEveryTime": false - }, - "Known": true, - "Class": "LabwareClasses\\nest_12_reservoir_15ml", - "DataSets": { - "Volume": {} - }, - "RuntimeDataSets": { - "Volume": {} - }, - "EvalAmounts": [ - 5000.0 - ], - "Nominal": false, - "EvalLiquids": [ - "elution buffer" - ], - "Name": "elution buffer on P4", - "Position": "P4" - }, - { - "Properties": { - "Name": "working plate on P11", - "Device": "", - "liquidtype": "Water", - "BarCode": "", - "SenseEveryTime": false - }, - "Known": true, - "Class": "LabwareClasses\\NEST 2ml Deep Well Plate", - "DataSets": { - "Volume": {} - }, - "RuntimeDataSets": { - "Volume": {} - }, - "EvalAmounts": [ - 500.0, - 500.0, - 500.0, - 500.0, - 500.0, - 500.0, - 500.0, - 500.0, - 500.0, - 500.0, - 500.0, - 500.0, - 500.0, - 500.0, - 500.0, - 500.0, - 500.0, - 500.0, - 500.0, - 500.0, - 500.0, - 500.0, - 500.0, - 500.0, - 500.0, - 500.0, - 500.0, - 500.0, - 500.0, - 500.0, - 500.0, - 500.0, - 500.0, - 500.0, - 500.0, - 500.0, - 500.0, - 500.0, - 500.0, - 500.0, - 500.0, - 500.0, - 500.0, - 500.0, - 500.0, - 500.0, - 500.0, - 500.0, - 500.0, - 500.0, - 500.0, - 500.0, - 500.0, - 500.0, - 500.0, - 500.0, - 500.0, - 500.0, - 500.0, - 500.0, - 500.0, - 500.0, - 500.0, - 500.0, - 500.0, - 500.0, - 500.0, - 500.0, - 500.0, - 500.0, - 500.0, - 500.0, - 500.0, - 500.0, - 500.0, - 500.0, - 500.0, - 500.0, - 500.0, - 500.0, - 500.0, - 500.0, - 500.0, - 500.0, - 500.0, - 500.0, - 500.0, - 500.0, - 500.0, - 500.0, - 500.0, - 500.0, - 500.0, - 500.0, - 500.0, - 500.0 - ], - "Nominal": false, - "EvalLiquids": [ - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water" - ], - "Name": "working plate on P11", - "Position": "P11" - }, - { - "Properties": { - "Name": "working plate on P13", - "Device": "", - "liquidtype": "Water", - "BarCode": "", - "SenseEveryTime": false - }, - "Known": true, - "Class": "LabwareClasses\\NEST 2ml Deep Well Plate", - "DataSets": { - "Volume": {} - }, - "RuntimeDataSets": { - "Volume": {} - }, - "EvalAmounts": [ - 500.0, - 500.0, - 500.0, - 500.0, - 500.0, - 500.0, - 500.0, - 500.0, - 500.0, - 500.0, - 500.0, - 500.0, - 500.0, - 500.0, - 500.0, - 500.0, - 500.0, - 500.0, - 500.0, - 500.0, - 500.0, - 500.0, - 500.0, - 500.0, - 500.0, - 500.0, - 500.0, - 500.0, - 500.0, - 500.0, - 500.0, - 500.0, - 500.0, - 500.0, - 500.0, - 500.0, - 500.0, - 500.0, - 500.0, - 500.0, - 500.0, - 500.0, - 500.0, - 500.0, - 500.0, - 500.0, - 500.0, - 500.0, - 500.0, - 500.0, - 500.0, - 500.0, - 500.0, - 500.0, - 500.0, - 500.0, - 500.0, - 500.0, - 500.0, - 500.0, - 500.0, - 500.0, - 500.0, - 500.0, - 500.0, - 500.0, - 500.0, - 500.0, - 500.0, - 500.0, - 500.0, - 500.0, - 500.0, - 500.0, - 500.0, - 500.0, - 500.0, - 500.0, - 500.0, - 500.0, - 500.0, - 500.0, - 500.0, - 500.0, - 500.0, - 500.0, - 500.0, - 500.0, - 500.0, - 500.0, - 500.0, - 500.0, - 500.0, - 500.0, - 500.0, - 500.0 - ], - "Nominal": false, - "EvalLiquids": [ - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water" - ], - "Name": "working plate on P13", - "Position": "P13" - }, - { - "Properties": { - "Name": "waste on P22", - "Device": "", - "liquidtype": "Water", - "BarCode": "", - "SenseEveryTime": false - }, - "Known": true, - "Class": "LabwareClasses\\nest_1_reservoir_195ml", - "DataSets": { - "Volume": {} - }, - "RuntimeDataSets": { - "Volume": {} - }, - "EvalAmounts": [ - 0.0 - ], - "Nominal": false, - "EvalLiquids": [ - "Water" - ], - "Name": "waste on P22", - "Position": "P22" - } - ], - "steps": [ - { - "transfer": { - "Span8": false, - "Pod": "Pod1", - "items": [ - { - "Position": "P12", - "Height": -2.0, - "Volume": "40", - "liquidtype": "Well Contents", - "WellsX": 12, - "LabwareClass": "Matrix96_750uL", - "AutoSelectPrototype": true, - "ColsFirst": true, - "CustomHeight": false, - "DataSetPattern": false, - "HeightFrom": 0, - "LocalPattern": true, - "Operation": "Aspirate", - "OverrideHeight": false, - "Pattern": [ - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true - ], - "Prototype": "MC P300 High", - "ReferencedPattern": "", - "RowsFirst": false, - "SectionExpression": "", - "SelectionInfo": [ - 1 - ], - "SetMark": true, - "Source": true, - "StartAtMark": false, - "StartAtSelection": true, - "UseExpression": false - }, - { - "Position": "P13", - "Height": -2.0, - "Volume": "40", - "liquidtype": "Tip Contents", - "WellsX": 12, - "LabwareClass": "Matrix96_750uL", - "AutoSelectPrototype": true, - "ColsFirst": true, - "CustomHeight": false, - "DataSetPattern": false, - "HeightFrom": 0, - "LocalPattern": true, - "Operation": "Dispense", - "OverrideHeight": false, - "Pattern": [ - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true - ], - "Prototype": "MC P300 High", - "ReferencedPattern": "", - "RowsFirst": false, - "SectionExpression": "", - "SelectionInfo": [ - 1 - ], - "SetMark": true, - "Source": false, - "StartAtMark": false, - "StartAtSelection": true, - "UseExpression": false - } - ], - "Wash": false, - "Dynamic?": true, - "AutoSelectActiveWashTechnique": false, - "ActiveWashTechnique": "", - "ChangeTipsBetweenDests": true, - "ChangeTipsBetweenSources": false, - "DefaultCaption": "", - "UseExpression": false, - "LeaveTipsOn": false, - "MandrelExpression": "", - "Repeats": "1", - "RepeatsByVolume": false, - "Replicates": "1", - "ShowTipHandlingDetails": false, - "ShowTransferDetails": true, - "Solvent": "Water", - "Span8Wash": false, - "Span8WashVolume": "2", - "Span8WasteVolume": "1", - "SplitVolume": false, - "SplitVolumeCleaning": false, - "Stop": "Destinations", - "TipLocation": "BC230", - "UseCurrentTips": false, - "UseDisposableTips": false, - "UseFixedTips": false, - "UseJIT": true, - "UseMandrelSelection": true, - "UseProbes": [ - true, - true, - true, - true, - true, - true, - true, - true - ], - "WashCycles": "4", - "WashVolume": "110%", - "Wizard": false - } - }, - { - "transfer": { - "Span8": false, - "Pod": "Pod1", - "items": [ - { - "Position": "P12", - "Height": -2.0, - "Volume": "40", - "liquidtype": "Well Contents", - "WellsX": 12, - "LabwareClass": "Matrix96_750uL", - "AutoSelectPrototype": true, - "ColsFirst": true, - "CustomHeight": false, - "DataSetPattern": false, - "HeightFrom": 0, - "LocalPattern": true, - "Operation": "Aspirate", - "OverrideHeight": false, - "Pattern": [ - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true - ], - "Prototype": "MC P300 High", - "ReferencedPattern": "", - "RowsFirst": false, - "SectionExpression": "", - "SelectionInfo": [ - 1 - ], - "SetMark": true, - "Source": true, - "StartAtMark": false, - "StartAtSelection": true, - "UseExpression": false - }, - { - "Position": "P13", - "Height": -2.0, - "Volume": "40", - "liquidtype": "Tip Contents", - "WellsX": 12, - "LabwareClass": "Matrix96_750uL", - "AutoSelectPrototype": true, - "ColsFirst": true, - "CustomHeight": false, - "DataSetPattern": false, - "HeightFrom": 0, - "LocalPattern": true, - "Operation": "Dispense", - "OverrideHeight": false, - "Pattern": [ - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true - ], - "Prototype": "MC P300 High", - "ReferencedPattern": "", - "RowsFirst": false, - "SectionExpression": "", - "SelectionInfo": [ - 1 - ], - "SetMark": true, - "Source": false, - "StartAtMark": false, - "StartAtSelection": true, - "UseExpression": false - } - ], - "Wash": false, - "Dynamic?": true, - "AutoSelectActiveWashTechnique": false, - "ActiveWashTechnique": "", - "ChangeTipsBetweenDests": true, - "ChangeTipsBetweenSources": false, - "DefaultCaption": "", - "UseExpression": false, - "LeaveTipsOn": false, - "MandrelExpression": "", - "Repeats": "1", - "RepeatsByVolume": false, - "Replicates": "1", - "ShowTipHandlingDetails": false, - "ShowTransferDetails": true, - "Solvent": "Water", - "Span8Wash": false, - "Span8WashVolume": "2", - "Span8WasteVolume": "1", - "SplitVolume": false, - "SplitVolumeCleaning": false, - "Stop": "Destinations", - "TipLocation": "BC230", - "UseCurrentTips": false, - "UseDisposableTips": false, - "UseFixedTips": false, - "UseJIT": true, - "UseMandrelSelection": true, - "UseProbes": [ - true, - true, - true, - true, - true, - true, - true, - true - ], - "WashCycles": "4", - "WashVolume": "110%", - "Wizard": false - } - }, - { - "move": { - "Pod": "Pod1", - "GripSide": "A1 near", - "Source": "P11", - "Target": "Orbital1", - "LeaveBottomLabware": false - } - }, - { - "oscillation": { - "Device": "OrbitalShaker0", - "Parameters": [ - "800", - "2", - "300", - "CounterClockwise" - ], - "Command": "Timed Shake" - } - }, - { - "move": { - "Pod": "Pod1", - "GripSide": "A1 near", - "Source": "Orbital1", - "Target": "P11", - "LeaveBottomLabware": false - } - }, - { - "move": { - "Pod": "Pod1", - "GripSide": "A1 near", - "Source": "P11", - "Target": "P12", - "LeaveBottomLabware": false - } - }, - { - "incubation": { - "Message": "Paused", - "Location": "the whole system", - "Time": 180, - "Mode": "TimedResource" - } - }, - { - "transfer": { - "Span8": false, - "Pod": "Pod1", - "items": [ - { - "Position": "P12", - "Height": -2.0, - "Volume": "40", - "liquidtype": "Well Contents", - "WellsX": 12, - "LabwareClass": "Matrix96_750uL", - "AutoSelectPrototype": true, - "ColsFirst": true, - "CustomHeight": false, - "DataSetPattern": false, - "HeightFrom": 0, - "LocalPattern": true, - "Operation": "Aspirate", - "OverrideHeight": false, - "Pattern": [ - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true - ], - "Prototype": "MC P300 High", - "ReferencedPattern": "", - "RowsFirst": false, - "SectionExpression": "", - "SelectionInfo": [ - 1 - ], - "SetMark": true, - "Source": true, - "StartAtMark": false, - "StartAtSelection": true, - "UseExpression": false - }, - { - "Position": "P13", - "Height": -2.0, - "Volume": "40", - "liquidtype": "Tip Contents", - "WellsX": 12, - "LabwareClass": "Matrix96_750uL", - "AutoSelectPrototype": true, - "ColsFirst": true, - "CustomHeight": false, - "DataSetPattern": false, - "HeightFrom": 0, - "LocalPattern": true, - "Operation": "Dispense", - "OverrideHeight": false, - "Pattern": [ - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true - ], - "Prototype": "MC P300 High", - "ReferencedPattern": "", - "RowsFirst": false, - "SectionExpression": "", - "SelectionInfo": [ - 1 - ], - "SetMark": true, - "Source": false, - "StartAtMark": false, - "StartAtSelection": true, - "UseExpression": false - } - ], - "Wash": false, - "Dynamic?": true, - "AutoSelectActiveWashTechnique": false, - "ActiveWashTechnique": "", - "ChangeTipsBetweenDests": true, - "ChangeTipsBetweenSources": false, - "DefaultCaption": "", - "UseExpression": false, - "LeaveTipsOn": false, - "MandrelExpression": "", - "Repeats": "1", - "RepeatsByVolume": false, - "Replicates": "1", - "ShowTipHandlingDetails": false, - "ShowTransferDetails": true, - "Solvent": "Water", - "Span8Wash": false, - "Span8WashVolume": "2", - "Span8WasteVolume": "1", - "SplitVolume": false, - "SplitVolumeCleaning": false, - "Stop": "Destinations", - "TipLocation": "BC230", - "UseCurrentTips": false, - "UseDisposableTips": false, - "UseFixedTips": false, - "UseJIT": true, - "UseMandrelSelection": true, - "UseProbes": [ - true, - true, - true, - true, - true, - true, - true, - true - ], - "WashCycles": "4", - "WashVolume": "110%", - "Wizard": false - } - }, - { - "transfer": { - "Span8": false, - "Pod": "Pod1", - "items": [ - { - "Position": "P12", - "Height": -2.0, - "Volume": "40", - "liquidtype": "Well Contents", - "WellsX": 12, - "LabwareClass": "Matrix96_750uL", - "AutoSelectPrototype": true, - "ColsFirst": true, - "CustomHeight": false, - "DataSetPattern": false, - "HeightFrom": 0, - "LocalPattern": true, - "Operation": "Aspirate", - "OverrideHeight": false, - "Pattern": [ - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true - ], - "Prototype": "MC P300 High", - "ReferencedPattern": "", - "RowsFirst": false, - "SectionExpression": "", - "SelectionInfo": [ - 1 - ], - "SetMark": true, - "Source": true, - "StartAtMark": false, - "StartAtSelection": true, - "UseExpression": false - }, - { - "Position": "P13", - "Height": -2.0, - "Volume": "40", - "liquidtype": "Tip Contents", - "WellsX": 12, - "LabwareClass": "Matrix96_750uL", - "AutoSelectPrototype": true, - "ColsFirst": true, - "CustomHeight": false, - "DataSetPattern": false, - "HeightFrom": 0, - "LocalPattern": true, - "Operation": "Dispense", - "OverrideHeight": false, - "Pattern": [ - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true - ], - "Prototype": "MC P300 High", - "ReferencedPattern": "", - "RowsFirst": false, - "SectionExpression": "", - "SelectionInfo": [ - 1 - ], - "SetMark": true, - "Source": false, - "StartAtMark": false, - "StartAtSelection": true, - "UseExpression": false - } - ], - "Wash": false, - "Dynamic?": true, - "AutoSelectActiveWashTechnique": false, - "ActiveWashTechnique": "", - "ChangeTipsBetweenDests": true, - "ChangeTipsBetweenSources": false, - "DefaultCaption": "", - "UseExpression": false, - "LeaveTipsOn": false, - "MandrelExpression": "", - "Repeats": "1", - "RepeatsByVolume": false, - "Replicates": "1", - "ShowTipHandlingDetails": false, - "ShowTransferDetails": true, - "Solvent": "Water", - "Span8Wash": false, - "Span8WashVolume": "2", - "Span8WasteVolume": "1", - "SplitVolume": false, - "SplitVolumeCleaning": false, - "Stop": "Destinations", - "TipLocation": "BC230", - "UseCurrentTips": false, - "UseDisposableTips": false, - "UseFixedTips": false, - "UseJIT": true, - "UseMandrelSelection": true, - "UseProbes": [ - true, - true, - true, - true, - true, - true, - true, - true - ], - "WashCycles": "4", - "WashVolume": "110%", - "Wizard": false - } - }, - { - "move": { - "Pod": "Pod1", - "GripSide": "A1 near", - "Source": "P12", - "Target": "Orbital1", - "LeaveBottomLabware": false - } - }, - { - "oscillation": { - "Device": "OrbitalShaker0", - "Parameters": [ - "800", - "2", - "45", - "CounterClockwise" - ], - "Command": "Timed Shake" - } - }, - { - "move": { - "Pod": "Pod1", - "GripSide": "A1 near", - "Source": "Orbital1", - "Target": "P12", - "LeaveBottomLabware": false - } - }, - { - "incubation": { - "Message": "Paused", - "Location": "the whole system", - "Time": 180, - "Mode": "TimedResource" - } - }, - { - "transfer": { - "Span8": false, - "Pod": "Pod1", - "items": [ - { - "Position": "P12", - "Height": -2.0, - "Volume": "40", - "liquidtype": "Well Contents", - "WellsX": 12, - "LabwareClass": "Matrix96_750uL", - "AutoSelectPrototype": true, - "ColsFirst": true, - "CustomHeight": false, - "DataSetPattern": false, - "HeightFrom": 0, - "LocalPattern": true, - "Operation": "Aspirate", - "OverrideHeight": false, - "Pattern": [ - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true - ], - "Prototype": "MC P300 High", - "ReferencedPattern": "", - "RowsFirst": false, - "SectionExpression": "", - "SelectionInfo": [ - 1 - ], - "SetMark": true, - "Source": true, - "StartAtMark": false, - "StartAtSelection": true, - "UseExpression": false - }, - { - "Position": "P13", - "Height": -2.0, - "Volume": "40", - "liquidtype": "Tip Contents", - "WellsX": 12, - "LabwareClass": "Matrix96_750uL", - "AutoSelectPrototype": true, - "ColsFirst": true, - "CustomHeight": false, - "DataSetPattern": false, - "HeightFrom": 0, - "LocalPattern": true, - "Operation": "Dispense", - "OverrideHeight": false, - "Pattern": [ - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true - ], - "Prototype": "MC P300 High", - "ReferencedPattern": "", - "RowsFirst": false, - "SectionExpression": "", - "SelectionInfo": [ - 1 - ], - "SetMark": true, - "Source": false, - "StartAtMark": false, - "StartAtSelection": true, - "UseExpression": false - } - ], - "Wash": false, - "Dynamic?": true, - "AutoSelectActiveWashTechnique": false, - "ActiveWashTechnique": "", - "ChangeTipsBetweenDests": true, - "ChangeTipsBetweenSources": false, - "DefaultCaption": "", - "UseExpression": false, - "LeaveTipsOn": false, - "MandrelExpression": "", - "Repeats": "1", - "RepeatsByVolume": false, - "Replicates": "1", - "ShowTipHandlingDetails": false, - "ShowTransferDetails": true, - "Solvent": "Water", - "Span8Wash": false, - "Span8WashVolume": "2", - "Span8WasteVolume": "1", - "SplitVolume": false, - "SplitVolumeCleaning": false, - "Stop": "Destinations", - "TipLocation": "BC230", - "UseCurrentTips": false, - "UseDisposableTips": false, - "UseFixedTips": false, - "UseJIT": true, - "UseMandrelSelection": true, - "UseProbes": [ - true, - true, - true, - true, - true, - true, - true, - true - ], - "WashCycles": "4", - "WashVolume": "110%", - "Wizard": false - } - }, - { - "transfer": { - "Span8": false, - "Pod": "Pod1", - "items": [ - { - "Position": "P12", - "Height": -2.0, - "Volume": "40", - "liquidtype": "Well Contents", - "WellsX": 12, - "LabwareClass": "Matrix96_750uL", - "AutoSelectPrototype": true, - "ColsFirst": true, - "CustomHeight": false, - "DataSetPattern": false, - "HeightFrom": 0, - "LocalPattern": true, - "Operation": "Aspirate", - "OverrideHeight": false, - "Pattern": [ - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true - ], - "Prototype": "MC P300 High", - "ReferencedPattern": "", - "RowsFirst": false, - "SectionExpression": "", - "SelectionInfo": [ - 1 - ], - "SetMark": true, - "Source": true, - "StartAtMark": false, - "StartAtSelection": true, - "UseExpression": false - }, - { - "Position": "P13", - "Height": -2.0, - "Volume": "40", - "liquidtype": "Tip Contents", - "WellsX": 12, - "LabwareClass": "Matrix96_750uL", - "AutoSelectPrototype": true, - "ColsFirst": true, - "CustomHeight": false, - "DataSetPattern": false, - "HeightFrom": 0, - "LocalPattern": true, - "Operation": "Dispense", - "OverrideHeight": false, - "Pattern": [ - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true - ], - "Prototype": "MC P300 High", - "ReferencedPattern": "", - "RowsFirst": false, - "SectionExpression": "", - "SelectionInfo": [ - 1 - ], - "SetMark": true, - "Source": false, - "StartAtMark": false, - "StartAtSelection": true, - "UseExpression": false - } - ], - "Wash": false, - "Dynamic?": true, - "AutoSelectActiveWashTechnique": false, - "ActiveWashTechnique": "", - "ChangeTipsBetweenDests": true, - "ChangeTipsBetweenSources": false, - "DefaultCaption": "", - "UseExpression": false, - "LeaveTipsOn": false, - "MandrelExpression": "", - "Repeats": "1", - "RepeatsByVolume": false, - "Replicates": "1", - "ShowTipHandlingDetails": false, - "ShowTransferDetails": true, - "Solvent": "Water", - "Span8Wash": false, - "Span8WashVolume": "2", - "Span8WasteVolume": "1", - "SplitVolume": false, - "SplitVolumeCleaning": false, - "Stop": "Destinations", - "TipLocation": "BC230", - "UseCurrentTips": false, - "UseDisposableTips": false, - "UseFixedTips": false, - "UseJIT": true, - "UseMandrelSelection": true, - "UseProbes": [ - true, - true, - true, - true, - true, - true, - true, - true - ], - "WashCycles": "4", - "WashVolume": "110%", - "Wizard": false - } - }, - { - "move": { - "Pod": "Pod1", - "GripSide": "A1 near", - "Source": "P12", - "Target": "Orbital1", - "LeaveBottomLabware": false - } - }, - { - "oscillation": { - "Device": "OrbitalShaker0", - "Parameters": [ - "800", - "2", - "45", - "CounterClockwise" - ], - "Command": "Timed Shake" - } - }, - { - "move": { - "Pod": "Pod1", - "GripSide": "A1 near", - "Source": "Orbital1", - "Target": "P12", - "LeaveBottomLabware": false - } - }, - { - "incubation": { - "Message": "Paused", - "Location": "the whole system", - "Time": 180, - "Mode": "TimedResource" - } - }, - { - "transfer": { - "Span8": false, - "Pod": "Pod1", - "items": [ - { - "Position": "P12", - "Height": -2.0, - "Volume": "40", - "liquidtype": "Well Contents", - "WellsX": 12, - "LabwareClass": "Matrix96_750uL", - "AutoSelectPrototype": true, - "ColsFirst": true, - "CustomHeight": false, - "DataSetPattern": false, - "HeightFrom": 0, - "LocalPattern": true, - "Operation": "Aspirate", - "OverrideHeight": false, - "Pattern": [ - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true - ], - "Prototype": "MC P300 High", - "ReferencedPattern": "", - "RowsFirst": false, - "SectionExpression": "", - "SelectionInfo": [ - 1 - ], - "SetMark": true, - "Source": true, - "StartAtMark": false, - "StartAtSelection": true, - "UseExpression": false - }, - { - "Position": "P13", - "Height": -2.0, - "Volume": "40", - "liquidtype": "Tip Contents", - "WellsX": 12, - "LabwareClass": "Matrix96_750uL", - "AutoSelectPrototype": true, - "ColsFirst": true, - "CustomHeight": false, - "DataSetPattern": false, - "HeightFrom": 0, - "LocalPattern": true, - "Operation": "Dispense", - "OverrideHeight": false, - "Pattern": [ - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true - ], - "Prototype": "MC P300 High", - "ReferencedPattern": "", - "RowsFirst": false, - "SectionExpression": "", - "SelectionInfo": [ - 1 - ], - "SetMark": true, - "Source": false, - "StartAtMark": false, - "StartAtSelection": true, - "UseExpression": false - } - ], - "Wash": false, - "Dynamic?": true, - "AutoSelectActiveWashTechnique": false, - "ActiveWashTechnique": "", - "ChangeTipsBetweenDests": true, - "ChangeTipsBetweenSources": false, - "DefaultCaption": "", - "UseExpression": false, - "LeaveTipsOn": false, - "MandrelExpression": "", - "Repeats": "1", - "RepeatsByVolume": false, - "Replicates": "1", - "ShowTipHandlingDetails": false, - "ShowTransferDetails": true, - "Solvent": "Water", - "Span8Wash": false, - "Span8WashVolume": "2", - "Span8WasteVolume": "1", - "SplitVolume": false, - "SplitVolumeCleaning": false, - "Stop": "Destinations", - "TipLocation": "BC230", - "UseCurrentTips": false, - "UseDisposableTips": false, - "UseFixedTips": false, - "UseJIT": true, - "UseMandrelSelection": true, - "UseProbes": [ - true, - true, - true, - true, - true, - true, - true, - true - ], - "WashCycles": "4", - "WashVolume": "110%", - "Wizard": false - } - }, - { - "incubation": { - "Message": "Paused", - "Location": "the whole system", - "Time": 900, - "Mode": "TimedResource" - } - }, - { - "transfer": { - "Span8": false, - "Pod": "Pod1", - "items": [ - { - "Position": "P12", - "Height": -2.0, - "Volume": "40", - "liquidtype": "Well Contents", - "WellsX": 12, - "LabwareClass": "Matrix96_750uL", - "AutoSelectPrototype": true, - "ColsFirst": true, - "CustomHeight": false, - "DataSetPattern": false, - "HeightFrom": 0, - "LocalPattern": true, - "Operation": "Aspirate", - "OverrideHeight": false, - "Pattern": [ - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true - ], - "Prototype": "MC P300 High", - "ReferencedPattern": "", - "RowsFirst": false, - "SectionExpression": "", - "SelectionInfo": [ - 1 - ], - "SetMark": true, - "Source": true, - "StartAtMark": false, - "StartAtSelection": true, - "UseExpression": false - }, - { - "Position": "P13", - "Height": -2.0, - "Volume": "40", - "liquidtype": "Tip Contents", - "WellsX": 12, - "LabwareClass": "Matrix96_750uL", - "AutoSelectPrototype": true, - "ColsFirst": true, - "CustomHeight": false, - "DataSetPattern": false, - "HeightFrom": 0, - "LocalPattern": true, - "Operation": "Dispense", - "OverrideHeight": false, - "Pattern": [ - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true - ], - "Prototype": "MC P300 High", - "ReferencedPattern": "", - "RowsFirst": false, - "SectionExpression": "", - "SelectionInfo": [ - 1 - ], - "SetMark": true, - "Source": false, - "StartAtMark": false, - "StartAtSelection": true, - "UseExpression": false - } - ], - "Wash": false, - "Dynamic?": true, - "AutoSelectActiveWashTechnique": false, - "ActiveWashTechnique": "", - "ChangeTipsBetweenDests": true, - "ChangeTipsBetweenSources": false, - "DefaultCaption": "", - "UseExpression": false, - "LeaveTipsOn": false, - "MandrelExpression": "", - "Repeats": "1", - "RepeatsByVolume": false, - "Replicates": "1", - "ShowTipHandlingDetails": false, - "ShowTransferDetails": true, - "Solvent": "Water", - "Span8Wash": false, - "Span8WashVolume": "2", - "Span8WasteVolume": "1", - "SplitVolume": false, - "SplitVolumeCleaning": false, - "Stop": "Destinations", - "TipLocation": "BC230", - "UseCurrentTips": false, - "UseDisposableTips": false, - "UseFixedTips": false, - "UseJIT": true, - "UseMandrelSelection": true, - "UseProbes": [ - true, - true, - true, - true, - true, - true, - true, - true - ], - "WashCycles": "4", - "WashVolume": "110%", - "Wizard": false - } - }, - { - "move": { - "Pod": "Pod1", - "GripSide": "A1 near", - "Source": "P12", - "Target": "Orbital1", - "LeaveBottomLabware": false - } - }, - { - "oscillation": { - "Device": "OrbitalShaker0", - "Parameters": [ - "800", - "2", - "60", - "CounterClockwise" - ], - "Command": "Timed Shake" - } - }, - { - "move": { - "Pod": "Pod1", - "GripSide": "A1 near", - "Source": "Orbital1", - "Target": "P12", - "LeaveBottomLabware": false - } - }, - { - "incubation": { - "Message": "Paused", - "Location": "the whole system", - "Time": 180, - "Mode": "TimedResource" - } - }, - { - "transfer": { - "Span8": false, - "Pod": "Pod1", - "items": [ - { - "Position": "P12", - "Height": -2.0, - "Volume": "40", - "liquidtype": "Well Contents", - "WellsX": 12, - "LabwareClass": "Matrix96_750uL", - "AutoSelectPrototype": true, - "ColsFirst": true, - "CustomHeight": false, - "DataSetPattern": false, - "HeightFrom": 0, - "LocalPattern": true, - "Operation": "Aspirate", - "OverrideHeight": false, - "Pattern": [ - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true - ], - "Prototype": "MC P300 High", - "ReferencedPattern": "", - "RowsFirst": false, - "SectionExpression": "", - "SelectionInfo": [ - 1 - ], - "SetMark": true, - "Source": true, - "StartAtMark": false, - "StartAtSelection": true, - "UseExpression": false - }, - { - "Position": "P13", - "Height": -2.0, - "Volume": "40", - "liquidtype": "Tip Contents", - "WellsX": 12, - "LabwareClass": "Matrix96_750uL", - "AutoSelectPrototype": true, - "ColsFirst": true, - "CustomHeight": false, - "DataSetPattern": false, - "HeightFrom": 0, - "LocalPattern": true, - "Operation": "Dispense", - "OverrideHeight": false, - "Pattern": [ - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true - ], - "Prototype": "MC P300 High", - "ReferencedPattern": "", - "RowsFirst": false, - "SectionExpression": "", - "SelectionInfo": [ - 1 - ], - "SetMark": true, - "Source": false, - "StartAtMark": false, - "StartAtSelection": true, - "UseExpression": false - } - ], - "Wash": false, - "Dynamic?": true, - "AutoSelectActiveWashTechnique": false, - "ActiveWashTechnique": "", - "ChangeTipsBetweenDests": true, - "ChangeTipsBetweenSources": false, - "DefaultCaption": "", - "UseExpression": false, - "LeaveTipsOn": false, - "MandrelExpression": "", - "Repeats": "1", - "RepeatsByVolume": false, - "Replicates": "1", - "ShowTipHandlingDetails": false, - "ShowTransferDetails": true, - "Solvent": "Water", - "Span8Wash": false, - "Span8WashVolume": "2", - "Span8WasteVolume": "1", - "SplitVolume": false, - "SplitVolumeCleaning": false, - "Stop": "Destinations", - "TipLocation": "BC230", - "UseCurrentTips": false, - "UseDisposableTips": false, - "UseFixedTips": false, - "UseJIT": true, - "UseMandrelSelection": true, - "UseProbes": [ - true, - true, - true, - true, - true, - true, - true, - true - ], - "WashCycles": "4", - "WashVolume": "110%", - "Wizard": false - } - } - ] -} \ No newline at end of file diff --git a/unilabos/devices/liquid_handling/complete_biomek_protocol_0608.json b/unilabos/devices/liquid_handling/complete_biomek_protocol_0608.json deleted file mode 100644 index 24b3d455..00000000 --- a/unilabos/devices/liquid_handling/complete_biomek_protocol_0608.json +++ /dev/null @@ -1,4201 +0,0 @@ -{ - "meta": { - "name": "DNA纯化完整流程", - "description": "使用磁珠进行DNA纯化的完整自动化流程", - "version": "1.0", - "author": "Biomek系统", - "date": "2024-01-01", - "type": "DNA_purification" - }, - "labwares": { - "TL1": [ - { - "Tips": { - "Class": "TipClasses\\T230", - "Contents": [], - "_RT_Contents": [], - "Used": false, - "RT_Used": false, - "Dirty": false, - "RT_Dirty": false, - "MaxVolumeUsed": 0.0, - "RT_MaxVolumeUsed": 0.0 - }, - "RT_Tips": { - "Class": "TipClasses\\T230", - "Contents": [], - "_RT_Contents": [], - "Used": false, - "RT_Used": false, - "Dirty": false, - "RT_Dirty": false, - "MaxVolumeUsed": 0.0, - "RT_MaxVolumeUsed": 0.0 - }, - "Properties": {}, - "Known": false, - "Class": "LabwareClasses\\BC230", - "DataSets": { - "Volume": {} - }, - "RuntimeDataSets": { - "Volume": {} - } - } - ], - "TL2": [ - { - "Tips": { - "Class": "TipClasses\\T230", - "Contents": [], - "_RT_Contents": [], - "Used": false, - "RT_Used": false, - "Dirty": false, - "RT_Dirty": false, - "MaxVolumeUsed": 0.0, - "RT_MaxVolumeUsed": 0.0 - }, - "RT_Tips": { - "Class": "TipClasses\\T230", - "Contents": [], - "_RT_Contents": [], - "Used": false, - "RT_Used": false, - "Dirty": false, - "RT_Dirty": false, - "MaxVolumeUsed": 0.0, - "RT_MaxVolumeUsed": 0.0 - }, - "Properties": {}, - "Known": false, - "Class": "LabwareClasses\\BC230", - "DataSets": { - "Volume": {} - }, - "RuntimeDataSets": { - "Volume": {} - } - } - ], - "TL3": [ - { - "Tips": { - "Class": "TipClasses\\T230", - "Contents": [], - "_RT_Contents": [], - "Used": false, - "RT_Used": false, - "Dirty": false, - "RT_Dirty": false, - "MaxVolumeUsed": 0.0, - "RT_MaxVolumeUsed": 0.0 - }, - "RT_Tips": { - "Class": "TipClasses\\T230", - "Contents": [], - "_RT_Contents": [], - "Used": false, - "RT_Used": false, - "Dirty": false, - "RT_Dirty": false, - "MaxVolumeUsed": 0.0, - "RT_MaxVolumeUsed": 0.0 - }, - "Properties": {}, - "Known": false, - "Class": "LabwareClasses\\BC230", - "DataSets": { - "Volume": {} - }, - "RuntimeDataSets": { - "Volume": {} - } - } - ], - "TL4": [ - { - "Tips": { - "Class": "TipClasses\\T230", - "Contents": [], - "_RT_Contents": [], - "Used": false, - "RT_Used": false, - "Dirty": false, - "RT_Dirty": false, - "MaxVolumeUsed": 0.0, - "RT_MaxVolumeUsed": 0.0 - }, - "RT_Tips": { - "Class": "TipClasses\\T230", - "Contents": [], - "_RT_Contents": [], - "Used": false, - "RT_Used": false, - "Dirty": false, - "RT_Dirty": false, - "MaxVolumeUsed": 0.0, - "RT_MaxVolumeUsed": 0.0 - }, - "Properties": {}, - "Known": false, - "Class": "LabwareClasses\\BC230", - "DataSets": { - "Volume": {} - }, - "RuntimeDataSets": { - "Volume": {} - } - } - ], - "TL5": [ - { - "Tips": { - "Class": "TipClasses\\T230", - "Contents": [], - "_RT_Contents": [], - "Used": false, - "RT_Used": false, - "Dirty": false, - "RT_Dirty": false, - "MaxVolumeUsed": 0.0, - "RT_MaxVolumeUsed": 0.0 - }, - "RT_Tips": { - "Class": "TipClasses\\T230", - "Contents": [], - "_RT_Contents": [], - "Used": false, - "RT_Used": false, - "Dirty": false, - "RT_Dirty": false, - "MaxVolumeUsed": 0.0, - "RT_MaxVolumeUsed": 0.0 - }, - "Properties": {}, - "Known": false, - "Class": "LabwareClasses\\BC230", - "DataSets": { - "Volume": {} - }, - "RuntimeDataSets": { - "Volume": {} - } - } - ], - "P5": [ - { - "Tips": { - "Class": "TipClasses\\T230", - "Contents": [], - "_RT_Contents": [], - "Used": false, - "RT_Used": false, - "Dirty": false, - "RT_Dirty": false, - "MaxVolumeUsed": 0.0, - "RT_MaxVolumeUsed": 0.0 - }, - "RT_Tips": { - "Class": "TipClasses\\T230", - "Contents": [], - "_RT_Contents": [], - "Used": false, - "RT_Used": false, - "Dirty": false, - "RT_Dirty": false, - "MaxVolumeUsed": 0.0, - "RT_MaxVolumeUsed": 0.0 - }, - "Properties": {}, - "Known": false, - "Class": "LabwareClasses\\BC230", - "DataSets": { - "Volume": {} - }, - "RuntimeDataSets": { - "Volume": {} - } - } - ], - "P6": [ - { - "Tips": { - "Class": "TipClasses\\T230", - "Contents": [], - "_RT_Contents": [], - "Used": false, - "RT_Used": false, - "Dirty": false, - "RT_Dirty": false, - "MaxVolumeUsed": 0.0, - "RT_MaxVolumeUsed": 0.0 - }, - "RT_Tips": { - "Class": "TipClasses\\T230", - "Contents": [], - "_RT_Contents": [], - "Used": false, - "RT_Used": false, - "Dirty": false, - "RT_Dirty": false, - "MaxVolumeUsed": 0.0, - "RT_MaxVolumeUsed": 0.0 - }, - "Properties": {}, - "Known": false, - "Class": "LabwareClasses\\BC230", - "DataSets": { - "Volume": {} - }, - "RuntimeDataSets": { - "Volume": {} - } - } - ], - "P15": [ - { - "Tips": { - "Class": "TipClasses\\T230", - "Contents": [], - "_RT_Contents": [], - "Used": false, - "RT_Used": false, - "Dirty": false, - "RT_Dirty": false, - "MaxVolumeUsed": 0.0, - "RT_MaxVolumeUsed": 0.0 - }, - "RT_Tips": { - "Class": "TipClasses\\T230", - "Contents": [], - "_RT_Contents": [], - "Used": false, - "RT_Used": false, - "Dirty": false, - "RT_Dirty": false, - "MaxVolumeUsed": 0.0, - "RT_MaxVolumeUsed": 0.0 - }, - "Properties": {}, - "Known": false, - "Class": "LabwareClasses\\BC230", - "DataSets": { - "Volume": {} - }, - "RuntimeDataSets": { - "Volume": {} - } - } - ], - "P16": [ - { - "Tips": { - "Class": "TipClasses\\T230", - "Contents": [], - "_RT_Contents": [], - "Used": false, - "RT_Used": false, - "Dirty": false, - "RT_Dirty": false, - "MaxVolumeUsed": 0.0, - "RT_MaxVolumeUsed": 0.0 - }, - "RT_Tips": { - "Class": "TipClasses\\T230", - "Contents": [], - "_RT_Contents": [], - "Used": false, - "RT_Used": false, - "Dirty": false, - "RT_Dirty": false, - "MaxVolumeUsed": 0.0, - "RT_MaxVolumeUsed": 0.0 - }, - "Properties": {}, - "Known": false, - "Class": "LabwareClasses\\BC230", - "DataSets": { - "Volume": {} - }, - "RuntimeDataSets": { - "Volume": {} - } - } - ], - "P1": [ - { - "Properties": { - "Name": "stock plate on P1", - "Device": "", - "liquidtype": "PCR product", - "BarCode": "", - "SenseEveryTime": false - }, - "Known": true, - "Class": "LabwareClasses\\AgilentReservoir", - "DataSets": { - "Volume": {} - }, - "RuntimeDataSets": { - "Volume": {} - }, - "EvalAmounts": [ - 5000.0 - ], - "Nominal": false, - "EvalLiquids": [ - "PCR product" - ] - } - ], - "P2": [ - { - "Properties": { - "Name": "stock plate on P2", - "Device": "", - "liquidtype": "bind beads", - "BarCode": "", - "SenseEveryTime": false - }, - "Known": true, - "Class": "LabwareClasses\\AgilentReservoir", - "DataSets": { - "Volume": {} - }, - "RuntimeDataSets": { - "Volume": {} - }, - "EvalAmounts": [ - 100000.0 - ], - "Nominal": false, - "EvalLiquids": [ - "bind beads" - ] - } - ], - "P3": [ - { - "Properties": { - "Name": "stock plate on P3", - "Device": "", - "liquidtype": "75% ethanol", - "BarCode": "", - "SenseEveryTime": false - }, - "Known": true, - "Class": "LabwareClasses\\AgilentReservoir", - "DataSets": { - "Volume": {} - }, - "RuntimeDataSets": { - "Volume": {} - }, - "EvalAmounts": [ - 100000.0 - ], - "Nominal": false, - "EvalLiquids": [ - "75% ethanol" - ] - } - ], - "P4": [ - { - "Properties": { - "Name": "stock plate on P4", - "Device": "", - "liquidtype": "Elution Buffer", - "BarCode": "", - "SenseEveryTime": false - }, - "Known": true, - "Class": "LabwareClasses\\AgilentReservoir", - "DataSets": { - "Volume": {} - }, - "RuntimeDataSets": { - "Volume": {} - }, - "EvalAmounts": [ - 5000.0 - ], - "Nominal": false, - "EvalLiquids": [ - "Elution Buffer" - ] - } - ], - "P11": [ - { - "Properties": { - "Name": "working plate on P11", - "Device": "", - "liquidtype": "Water", - "BarCode": "", - "SenseEveryTime": false - }, - "Known": true, - "Class": "LabwareClasses\\BCDeep96Round", - "DataSets": { - "Volume": {} - }, - "RuntimeDataSets": { - "Volume": {} - }, - "EvalAmounts": [ - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0 - ], - "Nominal": false, - "EvalLiquids": [ - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water" - ] - } - ], - "P12": [ - { - "Properties": { - "Name": "working plate on P12", - "Device": "", - "liquidtype": "Water", - "BarCode": "", - "SenseEveryTime": false - }, - "Known": true, - "Class": "LabwareClasses\\BCDeep96Round", - "DataSets": { - "Volume": {} - }, - "RuntimeDataSets": { - "Volume": {} - }, - "EvalAmounts": [ - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0 - ], - "Nominal": false, - "EvalLiquids": [ - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water" - ] - } - ], - "P13": [ - { - "Properties": { - "Name": "working plate on P13", - "Device": "", - "liquidtype": "Water", - "BarCode": "", - "SenseEveryTime": false - }, - "Known": true, - "Class": "LabwareClasses\\BCDeep96Round", - "DataSets": { - "Volume": {} - }, - "RuntimeDataSets": { - "Volume": {} - }, - "EvalAmounts": [ - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0 - ], - "Nominal": false, - "EvalLiquids": [ - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water" - ] - } - ], - "P14": [ - { - "Properties": { - "Name": "working plate on P14", - "Device": "", - "liquidtype": "Water", - "BarCode": "", - "SenseEveryTime": false - }, - "Known": true, - "Class": "LabwareClasses\\BCDeep96Round", - "DataSets": { - "Volume": {} - }, - "RuntimeDataSets": { - "Volume": {} - }, - "EvalAmounts": [ - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0 - ], - "Nominal": false, - "EvalLiquids": [ - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water", - "Water" - ] - } - ], - "P22": [ - { - "Properties": { - "Name": "waste on P22", - "Device": "", - "liquidtype": "Water", - "BarCode": "", - "SenseEveryTime": false - }, - "Known": true, - "Class": "LabwareClasses\\AgilentReservoir", - "DataSets": { - "Volume": {} - }, - "RuntimeDataSets": { - "Volume": {} - }, - "EvalAmounts": [ - 0 - ], - "Nominal": false, - "EvalLiquids": [ - "Water" - ] - } - ], - "Orbital1": [] - }, - "steps": [ - { - "transfer": { - "Span8": false, - "Pod": "Pod1", - "items": [ - { - "Position": "P12", - "Height": -2.0, - "Volume": "40", - "liquidtype": "Well Contents", - "WellsX": 12, - "LabwareClass": "Matrix96_750uL", - "AutoSelectPrototype": true, - "ColsFirst": true, - "CustomHeight": false, - "DataSetPattern": false, - "HeightFrom": 0, - "LocalPattern": true, - "Operation": "Aspirate", - "OverrideHeight": false, - "Pattern": [ - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true - ], - "Prototype": "MC P300 High", - "ReferencedPattern": "", - "RowsFirst": false, - "SectionExpression": "", - "SelectionInfo": [ - 1 - ], - "SetMark": true, - "Source": true, - "StartAtMark": false, - "StartAtSelection": true, - "UseExpression": false - }, - { - "Position": "P14", - "Height": -2.0, - "Volume": "40", - "liquidtype": "Tip Contents", - "WellsX": 12, - "LabwareClass": "Matrix96_750uL", - "AutoSelectPrototype": true, - "ColsFirst": true, - "CustomHeight": false, - "DataSetPattern": false, - "HeightFrom": 0, - "LocalPattern": true, - "Operation": "Dispense", - "OverrideHeight": false, - "Pattern": [ - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true - ], - "Prototype": "MC P300 High", - "ReferencedPattern": "", - "RowsFirst": false, - "SectionExpression": "", - "SelectionInfo": [ - 1 - ], - "SetMark": true, - "Source": false, - "StartAtMark": false, - "StartAtSelection": true, - "UseExpression": false - } - ], - "Wash": false, - "Dynamic?": true, - "AutoSelectActiveWashTechnique": false, - "ActiveWashTechnique": "", - "ChangeTipsBetweenDests": true, - "ChangeTipsBetweenSources": false, - "DefaultCaption": "", - "UseExpression": false, - "LeaveTipsOn": false, - "MandrelExpression": "", - "Repeats": "1", - "RepeatsByVolume": false, - "Replicates": "1", - "ShowTipHandlingDetails": false, - "ShowTransferDetails": true, - "Solvent": "Water", - "Span8Wash": false, - "Span8WashVolume": "2", - "Span8WasteVolume": "1", - "SplitVolume": false, - "SplitVolumeCleaning": false, - "Stop": "Destinations", - "TipLocation": "BC230", - "UseCurrentTips": false, - "UseDisposableTips": false, - "UseFixedTips": false, - "UseJIT": true, - "UseMandrelSelection": true, - "UseProbes": [ - true, - true, - true, - true, - true, - true, - true, - true - ], - "WashCycles": "4", - "WashVolume": "110%", - "Wizard": false - } - }, - { - "transfer": { - "Span8": false, - "Pod": "Pod1", - "items": [ - { - "Position": "P12", - "Height": -2.0, - "Volume": "40", - "liquidtype": "Well Contents", - "WellsX": 12, - "LabwareClass": "Matrix96_750uL", - "AutoSelectPrototype": true, - "ColsFirst": true, - "CustomHeight": false, - "DataSetPattern": false, - "HeightFrom": 0, - "LocalPattern": true, - "Operation": "Aspirate", - "OverrideHeight": false, - "Pattern": [ - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true - ], - "Prototype": "MC P300 High", - "ReferencedPattern": "", - "RowsFirst": false, - "SectionExpression": "", - "SelectionInfo": [ - 1 - ], - "SetMark": true, - "Source": true, - "StartAtMark": false, - "StartAtSelection": true, - "UseExpression": false - }, - { - "Position": "P14", - "Height": -2.0, - "Volume": "40", - "liquidtype": "Tip Contents", - "WellsX": 12, - "LabwareClass": "Matrix96_750uL", - "AutoSelectPrototype": true, - "ColsFirst": true, - "CustomHeight": false, - "DataSetPattern": false, - "HeightFrom": 0, - "LocalPattern": true, - "Operation": "Dispense", - "OverrideHeight": false, - "Pattern": [ - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true - ], - "Prototype": "MC P300 High", - "ReferencedPattern": "", - "RowsFirst": false, - "SectionExpression": "", - "SelectionInfo": [ - 1 - ], - "SetMark": true, - "Source": false, - "StartAtMark": false, - "StartAtSelection": true, - "UseExpression": false - } - ], - "Wash": false, - "Dynamic?": true, - "AutoSelectActiveWashTechnique": false, - "ActiveWashTechnique": "", - "ChangeTipsBetweenDests": true, - "ChangeTipsBetweenSources": false, - "DefaultCaption": "", - "UseExpression": false, - "LeaveTipsOn": false, - "MandrelExpression": "", - "Repeats": "1", - "RepeatsByVolume": false, - "Replicates": "1", - "ShowTipHandlingDetails": false, - "ShowTransferDetails": true, - "Solvent": "Water", - "Span8Wash": false, - "Span8WashVolume": "2", - "Span8WasteVolume": "1", - "SplitVolume": false, - "SplitVolumeCleaning": false, - "Stop": "Destinations", - "TipLocation": "BC230", - "UseCurrentTips": false, - "UseDisposableTips": false, - "UseFixedTips": false, - "UseJIT": true, - "UseMandrelSelection": true, - "UseProbes": [ - true, - true, - true, - true, - true, - true, - true, - true - ], - "WashCycles": "4", - "WashVolume": "110%", - "Wizard": false - } - }, - { - "oscillation": { - "Device": "OrbitalShaker0", - "Parameters": [ - "800", - "2", - "300", - "CounterClockwise" - ], - "Command": "Timed Shake" - } - }, - { - "move": { - "Pod": "Pod1", - "GripSide": "A1 near", - "Source": "P11", - "Target": "P12", - "LeaveBottomLabware": false - } - }, - { - "incubation": { - "Message": "Paused", - "Location": "the whole system", - "Time": 180, - "Mode": "TimedResource" - } - }, - { - "transfer": { - "Span8": false, - "Pod": "Pod1", - "items": [ - { - "Position": "P12", - "Height": -2.0, - "Volume": "40", - "liquidtype": "Well Contents", - "WellsX": 12, - "LabwareClass": "Matrix96_750uL", - "AutoSelectPrototype": true, - "ColsFirst": true, - "CustomHeight": false, - "DataSetPattern": false, - "HeightFrom": 0, - "LocalPattern": true, - "Operation": "Aspirate", - "OverrideHeight": false, - "Pattern": [ - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true - ], - "Prototype": "MC P300 High", - "ReferencedPattern": "", - "RowsFirst": false, - "SectionExpression": "", - "SelectionInfo": [ - 1 - ], - "SetMark": true, - "Source": true, - "StartAtMark": false, - "StartAtSelection": true, - "UseExpression": false - }, - { - "Position": "P14", - "Height": -2.0, - "Volume": "40", - "liquidtype": "Tip Contents", - "WellsX": 12, - "LabwareClass": "Matrix96_750uL", - "AutoSelectPrototype": true, - "ColsFirst": true, - "CustomHeight": false, - "DataSetPattern": false, - "HeightFrom": 0, - "LocalPattern": true, - "Operation": "Dispense", - "OverrideHeight": false, - "Pattern": [ - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true - ], - "Prototype": "MC P300 High", - "ReferencedPattern": "", - "RowsFirst": false, - "SectionExpression": "", - "SelectionInfo": [ - 1 - ], - "SetMark": true, - "Source": false, - "StartAtMark": false, - "StartAtSelection": true, - "UseExpression": false - } - ], - "Wash": false, - "Dynamic?": true, - "AutoSelectActiveWashTechnique": false, - "ActiveWashTechnique": "", - "ChangeTipsBetweenDests": true, - "ChangeTipsBetweenSources": false, - "DefaultCaption": "", - "UseExpression": false, - "LeaveTipsOn": false, - "MandrelExpression": "", - "Repeats": "1", - "RepeatsByVolume": false, - "Replicates": "1", - "ShowTipHandlingDetails": false, - "ShowTransferDetails": true, - "Solvent": "Water", - "Span8Wash": false, - "Span8WashVolume": "2", - "Span8WasteVolume": "1", - "SplitVolume": false, - "SplitVolumeCleaning": false, - "Stop": "Destinations", - "TipLocation": "BC230", - "UseCurrentTips": false, - "UseDisposableTips": false, - "UseFixedTips": false, - "UseJIT": true, - "UseMandrelSelection": true, - "UseProbes": [ - true, - true, - true, - true, - true, - true, - true, - true - ], - "WashCycles": "4", - "WashVolume": "110%", - "Wizard": false - } - }, - { - "transfer": { - "Span8": false, - "Pod": "Pod1", - "items": [ - { - "Position": "P12", - "Height": -2.0, - "Volume": "40", - "liquidtype": "Well Contents", - "WellsX": 12, - "LabwareClass": "Matrix96_750uL", - "AutoSelectPrototype": true, - "ColsFirst": true, - "CustomHeight": false, - "DataSetPattern": false, - "HeightFrom": 0, - "LocalPattern": true, - "Operation": "Aspirate", - "OverrideHeight": false, - "Pattern": [ - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true - ], - "Prototype": "MC P300 High", - "ReferencedPattern": "", - "RowsFirst": false, - "SectionExpression": "", - "SelectionInfo": [ - 1 - ], - "SetMark": true, - "Source": true, - "StartAtMark": false, - "StartAtSelection": true, - "UseExpression": false - }, - { - "Position": "P14", - "Height": -2.0, - "Volume": "40", - "liquidtype": "Tip Contents", - "WellsX": 12, - "LabwareClass": "Matrix96_750uL", - "AutoSelectPrototype": true, - "ColsFirst": true, - "CustomHeight": false, - "DataSetPattern": false, - "HeightFrom": 0, - "LocalPattern": true, - "Operation": "Dispense", - "OverrideHeight": false, - "Pattern": [ - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true - ], - "Prototype": "MC P300 High", - "ReferencedPattern": "", - "RowsFirst": false, - "SectionExpression": "", - "SelectionInfo": [ - 1 - ], - "SetMark": true, - "Source": false, - "StartAtMark": false, - "StartAtSelection": true, - "UseExpression": false - } - ], - "Wash": false, - "Dynamic?": true, - "AutoSelectActiveWashTechnique": false, - "ActiveWashTechnique": "", - "ChangeTipsBetweenDests": true, - "ChangeTipsBetweenSources": false, - "DefaultCaption": "", - "UseExpression": false, - "LeaveTipsOn": false, - "MandrelExpression": "", - "Repeats": "1", - "RepeatsByVolume": false, - "Replicates": "1", - "ShowTipHandlingDetails": false, - "ShowTransferDetails": true, - "Solvent": "Water", - "Span8Wash": false, - "Span8WashVolume": "2", - "Span8WasteVolume": "1", - "SplitVolume": false, - "SplitVolumeCleaning": false, - "Stop": "Destinations", - "TipLocation": "BC230", - "UseCurrentTips": false, - "UseDisposableTips": false, - "UseFixedTips": false, - "UseJIT": true, - "UseMandrelSelection": true, - "UseProbes": [ - true, - true, - true, - true, - true, - true, - true, - true - ], - "WashCycles": "4", - "WashVolume": "110%", - "Wizard": false - } - }, - { - "move": { - "Pod": "Pod1", - "GripSide": "A1 near", - "Source": "P12", - "Target": "Orbital1", - "LeaveBottomLabware": false - } - }, - { - "oscillation": { - "Device": "OrbitalShaker0", - "Parameters": [ - "800", - "2", - "60", - "CounterClockwise" - ], - "Command": "Timed Shake" - } - }, - { - "move": { - "Pod": "Pod1", - "GripSide": "A1 near", - "Source": "Orbital1", - "Target": "P12", - "LeaveBottomLabware": false - } - }, - { - "incubation": { - "Message": "Paused", - "Location": "the whole system", - "Time": 180, - "Mode": "TimedResource" - } - }, - { - "transfer": { - "Span8": false, - "Pod": "Pod1", - "items": [ - { - "Position": "P12", - "Height": -2.0, - "Volume": "40", - "liquidtype": "Well Contents", - "WellsX": 12, - "LabwareClass": "Matrix96_750uL", - "AutoSelectPrototype": true, - "ColsFirst": true, - "CustomHeight": false, - "DataSetPattern": false, - "HeightFrom": 0, - "LocalPattern": true, - "Operation": "Aspirate", - "OverrideHeight": false, - "Pattern": [ - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true - ], - "Prototype": "MC P300 High", - "ReferencedPattern": "", - "RowsFirst": false, - "SectionExpression": "", - "SelectionInfo": [ - 1 - ], - "SetMark": true, - "Source": true, - "StartAtMark": false, - "StartAtSelection": true, - "UseExpression": false - }, - { - "Position": "P14", - "Height": -2.0, - "Volume": "40", - "liquidtype": "Tip Contents", - "WellsX": 12, - "LabwareClass": "Matrix96_750uL", - "AutoSelectPrototype": true, - "ColsFirst": true, - "CustomHeight": false, - "DataSetPattern": false, - "HeightFrom": 0, - "LocalPattern": true, - "Operation": "Dispense", - "OverrideHeight": false, - "Pattern": [ - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true - ], - "Prototype": "MC P300 High", - "ReferencedPattern": "", - "RowsFirst": false, - "SectionExpression": "", - "SelectionInfo": [ - 1 - ], - "SetMark": true, - "Source": false, - "StartAtMark": false, - "StartAtSelection": true, - "UseExpression": false - } - ], - "Wash": false, - "Dynamic?": true, - "AutoSelectActiveWashTechnique": false, - "ActiveWashTechnique": "", - "ChangeTipsBetweenDests": true, - "ChangeTipsBetweenSources": false, - "DefaultCaption": "", - "UseExpression": false, - "LeaveTipsOn": false, - "MandrelExpression": "", - "Repeats": "1", - "RepeatsByVolume": false, - "Replicates": "1", - "ShowTipHandlingDetails": false, - "ShowTransferDetails": true, - "Solvent": "Water", - "Span8Wash": false, - "Span8WashVolume": "2", - "Span8WasteVolume": "1", - "SplitVolume": false, - "SplitVolumeCleaning": false, - "Stop": "Destinations", - "TipLocation": "BC230", - "UseCurrentTips": false, - "UseDisposableTips": false, - "UseFixedTips": false, - "UseJIT": true, - "UseMandrelSelection": true, - "UseProbes": [ - true, - true, - true, - true, - true, - true, - true, - true - ], - "WashCycles": "4", - "WashVolume": "110%", - "Wizard": false - } - }, - { - "transfer": { - "Span8": false, - "Pod": "Pod1", - "items": [ - { - "Position": "P12", - "Height": -2.0, - "Volume": "40", - "liquidtype": "Well Contents", - "WellsX": 12, - "LabwareClass": "Matrix96_750uL", - "AutoSelectPrototype": true, - "ColsFirst": true, - "CustomHeight": false, - "DataSetPattern": false, - "HeightFrom": 0, - "LocalPattern": true, - "Operation": "Aspirate", - "OverrideHeight": false, - "Pattern": [ - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true - ], - "Prototype": "MC P300 High", - "ReferencedPattern": "", - "RowsFirst": false, - "SectionExpression": "", - "SelectionInfo": [ - 1 - ], - "SetMark": true, - "Source": true, - "StartAtMark": false, - "StartAtSelection": true, - "UseExpression": false - }, - { - "Position": "P14", - "Height": -2.0, - "Volume": "40", - "liquidtype": "Tip Contents", - "WellsX": 12, - "LabwareClass": "Matrix96_750uL", - "AutoSelectPrototype": true, - "ColsFirst": true, - "CustomHeight": false, - "DataSetPattern": false, - "HeightFrom": 0, - "LocalPattern": true, - "Operation": "Dispense", - "OverrideHeight": false, - "Pattern": [ - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true - ], - "Prototype": "MC P300 High", - "ReferencedPattern": "", - "RowsFirst": false, - "SectionExpression": "", - "SelectionInfo": [ - 1 - ], - "SetMark": true, - "Source": false, - "StartAtMark": false, - "StartAtSelection": true, - "UseExpression": false - } - ], - "Wash": false, - "Dynamic?": true, - "AutoSelectActiveWashTechnique": false, - "ActiveWashTechnique": "", - "ChangeTipsBetweenDests": true, - "ChangeTipsBetweenSources": false, - "DefaultCaption": "", - "UseExpression": false, - "LeaveTipsOn": false, - "MandrelExpression": "", - "Repeats": "1", - "RepeatsByVolume": false, - "Replicates": "1", - "ShowTipHandlingDetails": false, - "ShowTransferDetails": true, - "Solvent": "Water", - "Span8Wash": false, - "Span8WashVolume": "2", - "Span8WasteVolume": "1", - "SplitVolume": false, - "SplitVolumeCleaning": false, - "Stop": "Destinations", - "TipLocation": "BC230", - "UseCurrentTips": false, - "UseDisposableTips": false, - "UseFixedTips": false, - "UseJIT": true, - "UseMandrelSelection": true, - "UseProbes": [ - true, - true, - true, - true, - true, - true, - true, - true - ], - "WashCycles": "4", - "WashVolume": "110%", - "Wizard": false - } - }, - { - "move": { - "Pod": "Pod1", - "GripSide": "A1 near", - "Source": "P12", - "Target": "Orbital1", - "LeaveBottomLabware": false - } - }, - { - "oscillation": { - "Device": "OrbitalShaker0", - "Parameters": [ - "800", - "2", - "60", - "CounterClockwise" - ], - "Command": "Timed Shake" - } - }, - { - "move": { - "Pod": "Pod1", - "GripSide": "A1 near", - "Source": "Orbital1", - "Target": "P12", - "LeaveBottomLabware": false - } - }, - { - "incubation": { - "Message": "Paused", - "Location": "the whole system", - "Time": 180, - "Mode": "TimedResource" - } - }, - { - "transfer": { - "Span8": false, - "Pod": "Pod1", - "items": [ - { - "Position": "P12", - "Height": -2.0, - "Volume": "40", - "liquidtype": "Well Contents", - "WellsX": 12, - "LabwareClass": "Matrix96_750uL", - "AutoSelectPrototype": true, - "ColsFirst": true, - "CustomHeight": false, - "DataSetPattern": false, - "HeightFrom": 0, - "LocalPattern": true, - "Operation": "Aspirate", - "OverrideHeight": false, - "Pattern": [ - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true - ], - "Prototype": "MC P300 High", - "ReferencedPattern": "", - "RowsFirst": false, - "SectionExpression": "", - "SelectionInfo": [ - 1 - ], - "SetMark": true, - "Source": true, - "StartAtMark": false, - "StartAtSelection": true, - "UseExpression": false - }, - { - "Position": "P14", - "Height": -2.0, - "Volume": "40", - "liquidtype": "Tip Contents", - "WellsX": 12, - "LabwareClass": "Matrix96_750uL", - "AutoSelectPrototype": true, - "ColsFirst": true, - "CustomHeight": false, - "DataSetPattern": false, - "HeightFrom": 0, - "LocalPattern": true, - "Operation": "Dispense", - "OverrideHeight": false, - "Pattern": [ - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true - ], - "Prototype": "MC P300 High", - "ReferencedPattern": "", - "RowsFirst": false, - "SectionExpression": "", - "SelectionInfo": [ - 1 - ], - "SetMark": true, - "Source": false, - "StartAtMark": false, - "StartAtSelection": true, - "UseExpression": false - } - ], - "Wash": false, - "Dynamic?": true, - "AutoSelectActiveWashTechnique": false, - "ActiveWashTechnique": "", - "ChangeTipsBetweenDests": true, - "ChangeTipsBetweenSources": false, - "DefaultCaption": "", - "UseExpression": false, - "LeaveTipsOn": false, - "MandrelExpression": "", - "Repeats": "1", - "RepeatsByVolume": false, - "Replicates": "1", - "ShowTipHandlingDetails": false, - "ShowTransferDetails": true, - "Solvent": "Water", - "Span8Wash": false, - "Span8WashVolume": "2", - "Span8WasteVolume": "1", - "SplitVolume": false, - "SplitVolumeCleaning": false, - "Stop": "Destinations", - "TipLocation": "BC230", - "UseCurrentTips": false, - "UseDisposableTips": false, - "UseFixedTips": false, - "UseJIT": true, - "UseMandrelSelection": true, - "UseProbes": [ - true, - true, - true, - true, - true, - true, - true, - true - ], - "WashCycles": "4", - "WashVolume": "110%", - "Wizard": false - } - }, - { - "move": { - "Pod": "Pod1", - "GripSide": "A1 near", - "Source": "P12", - "Target": "P13", - "LeaveBottomLabware": false - } - }, - { - "incubation": { - "Message": "Paused", - "Location": "the whole system", - "Time": 900, - "Mode": "TimedResource" - } - }, - { - "transfer": { - "Span8": false, - "Pod": "Pod1", - "items": [ - { - "Position": "P12", - "Height": -2.0, - "Volume": "40", - "liquidtype": "Well Contents", - "WellsX": 12, - "LabwareClass": "Matrix96_750uL", - "AutoSelectPrototype": true, - "ColsFirst": true, - "CustomHeight": false, - "DataSetPattern": false, - "HeightFrom": 0, - "LocalPattern": true, - "Operation": "Aspirate", - "OverrideHeight": false, - "Pattern": [ - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true - ], - "Prototype": "MC P300 High", - "ReferencedPattern": "", - "RowsFirst": false, - "SectionExpression": "", - "SelectionInfo": [ - 1 - ], - "SetMark": true, - "Source": true, - "StartAtMark": false, - "StartAtSelection": true, - "UseExpression": false - }, - { - "Position": "P14", - "Height": -2.0, - "Volume": "40", - "liquidtype": "Tip Contents", - "WellsX": 12, - "LabwareClass": "Matrix96_750uL", - "AutoSelectPrototype": true, - "ColsFirst": true, - "CustomHeight": false, - "DataSetPattern": false, - "HeightFrom": 0, - "LocalPattern": true, - "Operation": "Dispense", - "OverrideHeight": false, - "Pattern": [ - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true - ], - "Prototype": "MC P300 High", - "ReferencedPattern": "", - "RowsFirst": false, - "SectionExpression": "", - "SelectionInfo": [ - 1 - ], - "SetMark": true, - "Source": false, - "StartAtMark": false, - "StartAtSelection": true, - "UseExpression": false - } - ], - "Wash": false, - "Dynamic?": true, - "AutoSelectActiveWashTechnique": false, - "ActiveWashTechnique": "", - "ChangeTipsBetweenDests": true, - "ChangeTipsBetweenSources": false, - "DefaultCaption": "", - "UseExpression": false, - "LeaveTipsOn": false, - "MandrelExpression": "", - "Repeats": "1", - "RepeatsByVolume": false, - "Replicates": "1", - "ShowTipHandlingDetails": false, - "ShowTransferDetails": true, - "Solvent": "Water", - "Span8Wash": false, - "Span8WashVolume": "2", - "Span8WasteVolume": "1", - "SplitVolume": false, - "SplitVolumeCleaning": false, - "Stop": "Destinations", - "TipLocation": "BC230", - "UseCurrentTips": false, - "UseDisposableTips": false, - "UseFixedTips": false, - "UseJIT": true, - "UseMandrelSelection": true, - "UseProbes": [ - true, - true, - true, - true, - true, - true, - true, - true - ], - "WashCycles": "4", - "WashVolume": "110%", - "Wizard": false - } - }, - { - "move": { - "Pod": "Pod1", - "GripSide": "A1 near", - "Source": "P13", - "Target": "Orbital1", - "LeaveBottomLabware": false - } - }, - { - "oscillation": { - "Device": "OrbitalShaker0", - "Parameters": [ - "800", - "2", - "60", - "CounterClockwise" - ], - "Command": "Timed Shake" - } - }, - { - "move": { - "Pod": "Pod1", - "GripSide": "A1 near", - "Source": "Orbital1", - "Target": "P13", - "LeaveBottomLabware": false - } - }, - { - "incubation": { - "Message": "Paused", - "Location": "the whole system", - "Time": 180, - "Mode": "TimedResource" - } - }, - { - "move": { - "Pod": "Pod1", - "GripSide": "A1 near", - "Source": "P13", - "Target": "P12", - "LeaveBottomLabware": false - } - }, - { - "incubation": { - "Message": "Paused", - "Location": "the whole system", - "Time": 120, - "Mode": "TimedResource" - } - }, - { - "transfer": { - "Span8": false, - "Pod": "Pod1", - "items": [ - { - "Position": "P12", - "Height": -2.0, - "Volume": "40", - "liquidtype": "Well Contents", - "WellsX": 12, - "LabwareClass": "Matrix96_750uL", - "AutoSelectPrototype": true, - "ColsFirst": true, - "CustomHeight": false, - "DataSetPattern": false, - "HeightFrom": 0, - "LocalPattern": true, - "Operation": "Aspirate", - "OverrideHeight": false, - "Pattern": [ - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true - ], - "Prototype": "MC P300 High", - "ReferencedPattern": "", - "RowsFirst": false, - "SectionExpression": "", - "SelectionInfo": [ - 1 - ], - "SetMark": true, - "Source": true, - "StartAtMark": false, - "StartAtSelection": true, - "UseExpression": false - }, - { - "Position": "P14", - "Height": -2.0, - "Volume": "40", - "liquidtype": "Tip Contents", - "WellsX": 12, - "LabwareClass": "Matrix96_750uL", - "AutoSelectPrototype": true, - "ColsFirst": true, - "CustomHeight": false, - "DataSetPattern": false, - "HeightFrom": 0, - "LocalPattern": true, - "Operation": "Dispense", - "OverrideHeight": false, - "Pattern": [ - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true - ], - "Prototype": "MC P300 High", - "ReferencedPattern": "", - "RowsFirst": false, - "SectionExpression": "", - "SelectionInfo": [ - 1 - ], - "SetMark": true, - "Source": false, - "StartAtMark": false, - "StartAtSelection": true, - "UseExpression": false - } - ], - "Wash": false, - "Dynamic?": true, - "AutoSelectActiveWashTechnique": false, - "ActiveWashTechnique": "", - "ChangeTipsBetweenDests": true, - "ChangeTipsBetweenSources": false, - "DefaultCaption": "", - "UseExpression": false, - "LeaveTipsOn": false, - "MandrelExpression": "", - "Repeats": "1", - "RepeatsByVolume": false, - "Replicates": "1", - "ShowTipHandlingDetails": false, - "ShowTransferDetails": true, - "Solvent": "Water", - "Span8Wash": false, - "Span8WashVolume": "2", - "Span8WasteVolume": "1", - "SplitVolume": false, - "SplitVolumeCleaning": false, - "Stop": "Destinations", - "TipLocation": "BC230", - "UseCurrentTips": false, - "UseDisposableTips": false, - "UseFixedTips": false, - "UseJIT": true, - "UseMandrelSelection": true, - "UseProbes": [ - true, - true, - true, - true, - true, - true, - true, - true - ], - "WashCycles": "4", - "WashVolume": "110%", - "Wizard": false - } - } - ] -} \ No newline at end of file diff --git a/unilabos/devices/liquid_handling/converted protocol/sci-lucif-assay4_plr_background_tested.ipynb b/unilabos/devices/liquid_handling/converted protocol/sci-lucif-assay4_plr_background_tested.ipynb deleted file mode 100644 index f380fc68..00000000 --- a/unilabos/devices/liquid_handling/converted protocol/sci-lucif-assay4_plr_background_tested.ipynb +++ /dev/null @@ -1,10286 +0,0 @@ -{ - "cells": [ - { - "cell_type": "code", - "id": "6e581f88", - "metadata": { - "ExecuteTime": { - "end_time": "2025-06-08T15:32:44.429407Z", - "start_time": "2025-06-08T15:32:43.584559Z" - } - }, - "source": [ - "# NF‑κB Luciferase Reporter Assay – pylabrobot version\n", - "\n", - "import os\n", - "import sys\n", - "from pylabrobot.resources import Coordinate\n", - "from pylabrobot.liquid_handling.backends.chatterbox import LiquidHandlerChatterboxBackend\n", - "from pylabrobot.visualizer.visualizer import Visualizer\n", - "from pylabrobot.resources.opentrons import (\n", - " OTDeck,\n", - " corning_96_wellplate_360ul_flat,\n", - " nest_12_reservoir_15ml,\n", - " nest_1_reservoir_195ml,\n", - " opentrons_96_tiprack_300ul\n", - ")\n", - "from pylabrobot.liquid_handling import LiquidHandler" - ], - "outputs": [], - "execution_count": 1 - }, - { - "cell_type": "code", - "id": "c3127d6e", - "metadata": { - "ExecuteTime": { - "end_time": "2025-06-08T15:32:45.234924Z", - "start_time": "2025-06-08T15:32:45.194957Z" - } - }, - "source": [ - "\n", - "# from pylabrobot.resources import set_volume_tracking\n", - "# from pylabrobot.resources import set_tip_tracking\n", - "# set_volume_tracking(enabled=True)\n", - "# set_tip_tracking(enabled=True)\n", - "# ──────────────────────────────────────\n", - "# User‑configurable constants (µL)\n", - "MEDIUM_VOL = 100 # volume of spent medium to remove\n", - "PBS_VOL = 50 # PBS wash volume\n", - "LYSIS_VOL = 30 # lysis buffer volume\n", - "LUC_VOL = 100 # luciferase reagent volume\n", - "TOTAL_COL = 12 # process A1–A12\n", - "\n", - "\n", - "# ──────────────────────────────────────\n", - "\n", - "lh = LiquidHandler(backend=LiquidHandlerChatterboxBackend(), deck=OTDeck())\n", - "await lh.setup()\n", - "#vis = Visualizer(resource=lh)\n", - "#await vis.setup()\n", - "\n", - "tiprack_slots = [1, 4, 8, 11]\n", - "tipracks = {\n", - " f\"tiprack_{slot}\": opentrons_96_tiprack_300ul(name=f\"tiprack_{slot}\")\n", - " for slot in tiprack_slots\n", - "}\n", - "\n", - "for name, tiprack in tipracks.items():\n", - " slot = int(name.split(\"_\")[1])\n", - " lh.deck.assign_child_at_slot(tiprack, slot=slot)\n", - "\n", - "# Working 96‑well plate at slot 6\n", - "working_plate = corning_96_wellplate_360ul_flat(name=\"working_plate\")\n", - "lh.deck.assign_child_at_slot(working_plate, slot=6)\n", - "\n", - "# 12‑channel reservoir (PBS, Lysis, Luciferase) at slot 3\n", - "reagent_stock = nest_12_reservoir_15ml(name='reagent_stock')\n", - "lh.deck.assign_child_at_slot(reagent_stock, slot=3)\n", - "\n", - "# 1‑channel waste reservoir at slot 9\n", - "waste_liq = nest_1_reservoir_195ml(name='waste_liq')\n", - "lh.deck.assign_child_at_slot(waste_liq, slot=9)" - ], - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Setting up the liquid handler.\n", - "Resource deck was assigned to the liquid handler.\n", - "Resource trash_container was assigned to the liquid handler.\n", - "Resource tiprack_1 was assigned to the liquid handler.\n", - "Resource tiprack_4 was assigned to the liquid handler.\n", - "Resource tiprack_8 was assigned to the liquid handler.\n", - "Resource tiprack_11 was assigned to the liquid handler.\n", - "Resource working_plate was assigned to the liquid handler.\n", - "Resource reagent_stock was assigned to the liquid handler.\n", - "Resource waste_liq was assigned to the liquid handler.\n" - ] - } - ], - "execution_count": 2 - }, - { - "cell_type": "code", - "id": "b5313453", - "metadata": { - "ExecuteTime": { - "end_time": "2025-06-08T15:32:45.425953Z", - "start_time": "2025-06-08T15:32:45.420965Z" - } - }, - "source": [ - "pbs = reagent_stock[0][0]\n", - "lysis = reagent_stock[1][0]\n", - "luciferase = reagent_stock[2][0]\n", - "waste_liq = waste_liq[0]\n", - "wells_name = [f\"A{i}\" for i in range(1, 13)]\n", - "cells_all = working_plate[wells_name] # A1–A12" - ], - "outputs": [], - "execution_count": 3 - }, - { - "cell_type": "code", - "id": "e85d6752", - "metadata": { - "ExecuteTime": { - "end_time": "2025-06-08T15:32:46.480024Z", - "start_time": "2025-06-08T15:32:46.473896Z" - } - }, - "source": [ - "working_plate_volumes = [\n", - " ('culture medium', MEDIUM_VOL) if i % 8 == 0 else (None, 0)\n", - " for i in range(96)\n", - "]\n", - "working_plate.set_well_liquids(working_plate_volumes)\n", - "reagent_info = [('PBS Buffer', 5000), ('Lysis Buffer', 5000), ('Luciferase Reagent', 5000)]+[ (None, 0) ]* 9\n", - "reagent_stock.set_well_liquids(reagent_info)\n", - "# lh.deck.set_tiprack(list(tipracks.values()))" - ], - "outputs": [], - "execution_count": 4 - }, - { - "metadata": { - "ExecuteTime": { - "end_time": "2025-06-08T15:32:47.742983Z", - "start_time": "2025-06-08T15:32:47.731878Z" - } - }, - "cell_type": "code", - "source": [ - "# state = reagent_stock.serialize_all_state()\n", - "# print(state)\n", - "reagent_stock.load_all_state({'reagent_stock': {}, 'reagent_stock_A1': {'liquids': [['PBS Buffer', 5000]], 'pending_liquids': [], 'liquid_history': []}, 'reagent_stock_A2': {'liquids': [['Lysis Buffer', 5000]], 'pending_liquids': [['Lysis Buffer', 5000]], 'liquid_history': ['Lysis Buffer']}, 'reagent_stock_A3': {'liquids': [['Luciferase Reagent', 5000]], 'pending_liquids': [['Luciferase Reagent', 5000]], 'liquid_history': ['Luciferase Reagent']}, 'reagent_stock_A4': {'liquids': [[None, 0]], 'pending_liquids': [[None, 0]], 'liquid_history': [None]}, 'reagent_stock_A5': {'liquids': [[None, 0]], 'pending_liquids': [[None, 0]], 'liquid_history': [None]}, 'reagent_stock_A6': {'liquids': [[None, 0]], 'pending_liquids': [[None, 0]], 'liquid_history': [None]}, 'reagent_stock_A7': {'liquids': [[None, 0]], 'pending_liquids': [[None, 0]], 'liquid_history': [None]}, 'reagent_stock_A8': {'liquids': [[None, 0]], 'pending_liquids': [[None, 0]], 'liquid_history': [None]}, 'reagent_stock_A9': {'liquids': [[None, 0]], 'pending_liquids': [[None, 0]], 'liquid_history': [None]}, 'reagent_stock_A10': {'liquids': [[None, 0]], 'pending_liquids': [[None, 0]], 'liquid_history': [None]}, 'reagent_stock_A11': {'liquids': [[None, 0]], 'pending_liquids': [[None, 0]], 'liquid_history': [None]}, 'reagent_stock_A12': {'liquids': [[None, 0]], 'pending_liquids': [[None, 0]], 'liquid_history': [None]}})\n", - "\n", - "reagent_stock[0][0].tracker.liquids" - ], - "id": "cd6ad8fb6494f14a", - "outputs": [ - { - "data": { - "text/plain": [ - "[('PBS Buffer', 5000)]" - ] - }, - "execution_count": 5, - "metadata": {}, - "output_type": "execute_result" - } - ], - "execution_count": 5 - }, - { - "cell_type": "code", - "id": "9dbfb0e2", - "metadata": { - "ExecuteTime": { - "end_time": "2025-06-08T15:32:02.047523Z", - "start_time": "2025-06-08T15:32:02.042034Z" - } - }, - "source": [ - "from pylabrobot.resources import set_tip_tracking, set_volume_tracking\n", - "set_tip_tracking(True), set_volume_tracking(True)" - ], - "outputs": [ - { - "data": { - "text/plain": [ - "(None, None)" - ] - }, - "execution_count": 12, - "metadata": {}, - "output_type": "execute_result" - } - ], - "execution_count": 12 - }, - { - "metadata": { - "ExecuteTime": { - "end_time": "2025-06-08T16:04:23.597819Z", - "start_time": "2025-06-08T16:04:23.427478Z" - } - }, - "cell_type": "code", - "source": "lh.serialize()", - "id": "6b2801f34ac96ef6", - "outputs": [ - { - "data": { - "text/plain": [ - "{'name': 'lh_deck',\n", - " 'type': 'LiquidHandler',\n", - " 'size_x': 624.3,\n", - " 'size_y': 565.2,\n", - " 'size_z': 900,\n", - " 'location': {'x': 0, 'y': 0, 'z': 0, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'liquid_handler',\n", - " 'model': None,\n", - " 'children': [{'name': 'deck',\n", - " 'type': 'OTDeck',\n", - " 'size_x': 624.3,\n", - " 'size_y': 565.2,\n", - " 'size_z': 900,\n", - " 'location': {'x': 0, 'y': 0, 'z': 0, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'deck',\n", - " 'children': [{'name': 'trash_container',\n", - " 'type': 'Resource',\n", - " 'size_x': 172.86,\n", - " 'size_y': 165.86,\n", - " 'size_z': 82,\n", - " 'location': {'x': 265.0, 'y': 271.5, 'z': 0.0, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': None,\n", - " 'model': None,\n", - " 'children': [{'name': 'trash',\n", - " 'type': 'Trash',\n", - " 'size_x': 172.86,\n", - " 'size_y': 165.86,\n", - " 'size_z': 82,\n", - " 'location': {'x': 0, 'y': 0, 'z': 0, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'trash',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'trash_container',\n", - " 'max_volume': 'Infinity',\n", - " 'material_z_thickness': 0,\n", - " 'compute_volume_from_height': None,\n", - " 'compute_height_from_volume': None}],\n", - " 'parent_name': 'deck'},\n", - " {'name': 'tiprack_1',\n", - " 'type': 'TipRack',\n", - " 'size_x': 127.76,\n", - " 'size_y': 85.48,\n", - " 'size_z': 64.49,\n", - " 'location': {'x': 0.0, 'y': 0.0, 'z': 0.0, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_rack',\n", - " 'model': 'Opentrons OT-2 96 Tip Rack 300 µL',\n", - " 'children': [{'name': 'tiprack_1_A1',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 12.531, 'y': 72.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_1',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_1_B1',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 12.531, 'y': 63.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_1',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_1_C1',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 12.531, 'y': 54.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_1',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_1_D1',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 12.531, 'y': 45.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_1',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_1_E1',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 12.531, 'y': 36.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_1',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_1_F1',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 12.531, 'y': 27.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_1',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_1_G1',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 12.531, 'y': 18.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_1',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_1_H1',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 12.531, 'y': 9.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_1',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_1_A2',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 21.531, 'y': 72.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_1',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_1_B2',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 21.531, 'y': 63.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_1',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_1_C2',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 21.531, 'y': 54.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_1',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_1_D2',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 21.531, 'y': 45.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_1',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_1_E2',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 21.531, 'y': 36.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_1',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_1_F2',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 21.531, 'y': 27.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_1',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_1_G2',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 21.531, 'y': 18.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_1',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_1_H2',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 21.531, 'y': 9.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_1',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_1_A3',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 30.531, 'y': 72.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_1',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_1_B3',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 30.531, 'y': 63.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_1',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_1_C3',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 30.531, 'y': 54.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_1',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_1_D3',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 30.531, 'y': 45.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_1',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_1_E3',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 30.531, 'y': 36.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_1',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_1_F3',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 30.531, 'y': 27.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_1',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_1_G3',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 30.531, 'y': 18.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_1',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_1_H3',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 30.531, 'y': 9.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_1',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_1_A4',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 39.531, 'y': 72.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_1',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_1_B4',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 39.531, 'y': 63.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_1',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_1_C4',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 39.531, 'y': 54.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_1',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_1_D4',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 39.531, 'y': 45.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_1',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_1_E4',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 39.531, 'y': 36.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_1',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_1_F4',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 39.531, 'y': 27.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_1',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_1_G4',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 39.531, 'y': 18.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_1',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_1_H4',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 39.531, 'y': 9.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_1',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_1_A5',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 48.531, 'y': 72.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_1',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_1_B5',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 48.531, 'y': 63.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_1',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_1_C5',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 48.531, 'y': 54.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_1',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_1_D5',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 48.531, 'y': 45.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_1',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_1_E5',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 48.531, 'y': 36.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_1',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_1_F5',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 48.531, 'y': 27.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_1',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_1_G5',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 48.531, 'y': 18.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_1',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_1_H5',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 48.531, 'y': 9.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_1',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_1_A6',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 57.531, 'y': 72.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_1',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_1_B6',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 57.531, 'y': 63.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_1',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_1_C6',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 57.531, 'y': 54.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_1',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_1_D6',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 57.531, 'y': 45.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_1',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_1_E6',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 57.531, 'y': 36.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_1',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_1_F6',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 57.531, 'y': 27.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_1',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_1_G6',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 57.531, 'y': 18.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_1',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_1_H6',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 57.531, 'y': 9.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_1',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_1_A7',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 66.531, 'y': 72.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_1',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_1_B7',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 66.531, 'y': 63.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_1',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_1_C7',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 66.531, 'y': 54.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_1',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_1_D7',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 66.531, 'y': 45.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_1',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_1_E7',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 66.531, 'y': 36.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_1',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_1_F7',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 66.531, 'y': 27.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_1',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_1_G7',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 66.531, 'y': 18.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_1',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_1_H7',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 66.531, 'y': 9.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_1',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_1_A8',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 75.531, 'y': 72.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_1',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_1_B8',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 75.531, 'y': 63.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_1',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_1_C8',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 75.531, 'y': 54.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_1',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_1_D8',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 75.531, 'y': 45.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_1',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_1_E8',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 75.531, 'y': 36.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_1',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_1_F8',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 75.531, 'y': 27.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_1',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_1_G8',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 75.531, 'y': 18.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_1',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_1_H8',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 75.531, 'y': 9.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_1',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_1_A9',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 84.531, 'y': 72.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_1',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_1_B9',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 84.531, 'y': 63.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_1',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_1_C9',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 84.531, 'y': 54.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_1',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_1_D9',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 84.531, 'y': 45.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_1',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_1_E9',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 84.531, 'y': 36.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_1',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_1_F9',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 84.531, 'y': 27.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_1',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_1_G9',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 84.531, 'y': 18.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_1',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_1_H9',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 84.531, 'y': 9.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_1',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_1_A10',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 93.531, 'y': 72.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_1',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_1_B10',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 93.531, 'y': 63.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_1',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_1_C10',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 93.531, 'y': 54.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_1',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_1_D10',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 93.531, 'y': 45.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_1',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_1_E10',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 93.531, 'y': 36.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_1',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_1_F10',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 93.531, 'y': 27.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_1',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_1_G10',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 93.531, 'y': 18.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_1',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_1_H10',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 93.531, 'y': 9.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_1',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_1_A11',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 102.531,\n", - " 'y': 72.391,\n", - " 'z': 5.39,\n", - " 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_1',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_1_B11',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 102.531,\n", - " 'y': 63.391,\n", - " 'z': 5.39,\n", - " 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_1',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_1_C11',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 102.531,\n", - " 'y': 54.391,\n", - " 'z': 5.39,\n", - " 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_1',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_1_D11',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 102.531,\n", - " 'y': 45.391,\n", - " 'z': 5.39,\n", - " 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_1',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_1_E11',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 102.531,\n", - " 'y': 36.391,\n", - " 'z': 5.39,\n", - " 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_1',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_1_F11',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 102.531,\n", - " 'y': 27.391,\n", - " 'z': 5.39,\n", - " 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_1',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_1_G11',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 102.531,\n", - " 'y': 18.391,\n", - " 'z': 5.39,\n", - " 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_1',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_1_H11',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 102.531, 'y': 9.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_1',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_1_A12',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 111.531,\n", - " 'y': 72.391,\n", - " 'z': 5.39,\n", - " 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_1',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_1_B12',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 111.531,\n", - " 'y': 63.391,\n", - " 'z': 5.39,\n", - " 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_1',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_1_C12',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 111.531,\n", - " 'y': 54.391,\n", - " 'z': 5.39,\n", - " 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_1',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_1_D12',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 111.531,\n", - " 'y': 45.391,\n", - " 'z': 5.39,\n", - " 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_1',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_1_E12',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 111.531,\n", - " 'y': 36.391,\n", - " 'z': 5.39,\n", - " 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_1',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_1_F12',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 111.531,\n", - " 'y': 27.391,\n", - " 'z': 5.39,\n", - " 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_1',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_1_G12',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 111.531,\n", - " 'y': 18.391,\n", - " 'z': 5.39,\n", - " 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_1',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_1_H12',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 111.531, 'y': 9.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_1',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}}],\n", - " 'parent_name': 'deck',\n", - " 'ordering': ['A1',\n", - " 'B1',\n", - " 'C1',\n", - " 'D1',\n", - " 'E1',\n", - " 'F1',\n", - " 'G1',\n", - " 'H1',\n", - " 'A2',\n", - " 'B2',\n", - " 'C2',\n", - " 'D2',\n", - " 'E2',\n", - " 'F2',\n", - " 'G2',\n", - " 'H2',\n", - " 'A3',\n", - " 'B3',\n", - " 'C3',\n", - " 'D3',\n", - " 'E3',\n", - " 'F3',\n", - " 'G3',\n", - " 'H3',\n", - " 'A4',\n", - " 'B4',\n", - " 'C4',\n", - " 'D4',\n", - " 'E4',\n", - " 'F4',\n", - " 'G4',\n", - " 'H4',\n", - " 'A5',\n", - " 'B5',\n", - " 'C5',\n", - " 'D5',\n", - " 'E5',\n", - " 'F5',\n", - " 'G5',\n", - " 'H5',\n", - " 'A6',\n", - " 'B6',\n", - " 'C6',\n", - " 'D6',\n", - " 'E6',\n", - " 'F6',\n", - " 'G6',\n", - " 'H6',\n", - " 'A7',\n", - " 'B7',\n", - " 'C7',\n", - " 'D7',\n", - " 'E7',\n", - " 'F7',\n", - " 'G7',\n", - " 'H7',\n", - " 'A8',\n", - " 'B8',\n", - " 'C8',\n", - " 'D8',\n", - " 'E8',\n", - " 'F8',\n", - " 'G8',\n", - " 'H8',\n", - " 'A9',\n", - " 'B9',\n", - " 'C9',\n", - " 'D9',\n", - " 'E9',\n", - " 'F9',\n", - " 'G9',\n", - " 'H9',\n", - " 'A10',\n", - " 'B10',\n", - " 'C10',\n", - " 'D10',\n", - " 'E10',\n", - " 'F10',\n", - " 'G10',\n", - " 'H10',\n", - " 'A11',\n", - " 'B11',\n", - " 'C11',\n", - " 'D11',\n", - " 'E11',\n", - " 'F11',\n", - " 'G11',\n", - " 'H11',\n", - " 'A12',\n", - " 'B12',\n", - " 'C12',\n", - " 'D12',\n", - " 'E12',\n", - " 'F12',\n", - " 'G12',\n", - " 'H12']},\n", - " {'name': 'tiprack_4',\n", - " 'type': 'TipRack',\n", - " 'size_x': 127.76,\n", - " 'size_y': 85.48,\n", - " 'size_z': 64.49,\n", - " 'location': {'x': 0.0, 'y': 90.5, 'z': 0.0, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_rack',\n", - " 'model': 'Opentrons OT-2 96 Tip Rack 300 µL',\n", - " 'children': [{'name': 'tiprack_4_A1',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 12.531, 'y': 72.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_4',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_4_B1',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 12.531, 'y': 63.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_4',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_4_C1',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 12.531, 'y': 54.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_4',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_4_D1',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 12.531, 'y': 45.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_4',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_4_E1',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 12.531, 'y': 36.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_4',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_4_F1',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 12.531, 'y': 27.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_4',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_4_G1',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 12.531, 'y': 18.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_4',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_4_H1',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 12.531, 'y': 9.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_4',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_4_A2',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 21.531, 'y': 72.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_4',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_4_B2',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 21.531, 'y': 63.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_4',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_4_C2',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 21.531, 'y': 54.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_4',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_4_D2',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 21.531, 'y': 45.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_4',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_4_E2',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 21.531, 'y': 36.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_4',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_4_F2',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 21.531, 'y': 27.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_4',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_4_G2',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 21.531, 'y': 18.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_4',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_4_H2',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 21.531, 'y': 9.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_4',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_4_A3',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 30.531, 'y': 72.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_4',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_4_B3',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 30.531, 'y': 63.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_4',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_4_C3',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 30.531, 'y': 54.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_4',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_4_D3',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 30.531, 'y': 45.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_4',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_4_E3',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 30.531, 'y': 36.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_4',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_4_F3',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 30.531, 'y': 27.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_4',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_4_G3',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 30.531, 'y': 18.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_4',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_4_H3',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 30.531, 'y': 9.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_4',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_4_A4',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 39.531, 'y': 72.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_4',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_4_B4',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 39.531, 'y': 63.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_4',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_4_C4',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 39.531, 'y': 54.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_4',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_4_D4',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 39.531, 'y': 45.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_4',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_4_E4',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 39.531, 'y': 36.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_4',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_4_F4',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 39.531, 'y': 27.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_4',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_4_G4',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 39.531, 'y': 18.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_4',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_4_H4',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 39.531, 'y': 9.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_4',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_4_A5',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 48.531, 'y': 72.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_4',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_4_B5',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 48.531, 'y': 63.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_4',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_4_C5',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 48.531, 'y': 54.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_4',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_4_D5',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 48.531, 'y': 45.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_4',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_4_E5',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 48.531, 'y': 36.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_4',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_4_F5',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 48.531, 'y': 27.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_4',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_4_G5',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 48.531, 'y': 18.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_4',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_4_H5',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 48.531, 'y': 9.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_4',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_4_A6',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 57.531, 'y': 72.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_4',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_4_B6',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 57.531, 'y': 63.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_4',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_4_C6',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 57.531, 'y': 54.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_4',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_4_D6',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 57.531, 'y': 45.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_4',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_4_E6',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 57.531, 'y': 36.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_4',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_4_F6',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 57.531, 'y': 27.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_4',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_4_G6',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 57.531, 'y': 18.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_4',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_4_H6',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 57.531, 'y': 9.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_4',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_4_A7',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 66.531, 'y': 72.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_4',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_4_B7',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 66.531, 'y': 63.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_4',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_4_C7',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 66.531, 'y': 54.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_4',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_4_D7',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 66.531, 'y': 45.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_4',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_4_E7',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 66.531, 'y': 36.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_4',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_4_F7',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 66.531, 'y': 27.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_4',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_4_G7',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 66.531, 'y': 18.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_4',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_4_H7',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 66.531, 'y': 9.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_4',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_4_A8',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 75.531, 'y': 72.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_4',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_4_B8',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 75.531, 'y': 63.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_4',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_4_C8',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 75.531, 'y': 54.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_4',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_4_D8',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 75.531, 'y': 45.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_4',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_4_E8',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 75.531, 'y': 36.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_4',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_4_F8',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 75.531, 'y': 27.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_4',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_4_G8',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 75.531, 'y': 18.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_4',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_4_H8',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 75.531, 'y': 9.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_4',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_4_A9',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 84.531, 'y': 72.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_4',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_4_B9',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 84.531, 'y': 63.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_4',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_4_C9',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 84.531, 'y': 54.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_4',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_4_D9',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 84.531, 'y': 45.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_4',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_4_E9',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 84.531, 'y': 36.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_4',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_4_F9',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 84.531, 'y': 27.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_4',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_4_G9',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 84.531, 'y': 18.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_4',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_4_H9',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 84.531, 'y': 9.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_4',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_4_A10',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 93.531, 'y': 72.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_4',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_4_B10',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 93.531, 'y': 63.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_4',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_4_C10',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 93.531, 'y': 54.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_4',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_4_D10',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 93.531, 'y': 45.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_4',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_4_E10',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 93.531, 'y': 36.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_4',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_4_F10',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 93.531, 'y': 27.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_4',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_4_G10',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 93.531, 'y': 18.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_4',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_4_H10',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 93.531, 'y': 9.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_4',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_4_A11',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 102.531,\n", - " 'y': 72.391,\n", - " 'z': 5.39,\n", - " 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_4',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_4_B11',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 102.531,\n", - " 'y': 63.391,\n", - " 'z': 5.39,\n", - " 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_4',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_4_C11',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 102.531,\n", - " 'y': 54.391,\n", - " 'z': 5.39,\n", - " 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_4',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_4_D11',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 102.531,\n", - " 'y': 45.391,\n", - " 'z': 5.39,\n", - " 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_4',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_4_E11',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 102.531,\n", - " 'y': 36.391,\n", - " 'z': 5.39,\n", - " 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_4',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_4_F11',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 102.531,\n", - " 'y': 27.391,\n", - " 'z': 5.39,\n", - " 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_4',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_4_G11',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 102.531,\n", - " 'y': 18.391,\n", - " 'z': 5.39,\n", - " 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_4',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_4_H11',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 102.531, 'y': 9.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_4',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_4_A12',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 111.531,\n", - " 'y': 72.391,\n", - " 'z': 5.39,\n", - " 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_4',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_4_B12',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 111.531,\n", - " 'y': 63.391,\n", - " 'z': 5.39,\n", - " 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_4',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_4_C12',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 111.531,\n", - " 'y': 54.391,\n", - " 'z': 5.39,\n", - " 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_4',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_4_D12',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 111.531,\n", - " 'y': 45.391,\n", - " 'z': 5.39,\n", - " 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_4',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_4_E12',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 111.531,\n", - " 'y': 36.391,\n", - " 'z': 5.39,\n", - " 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_4',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_4_F12',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 111.531,\n", - " 'y': 27.391,\n", - " 'z': 5.39,\n", - " 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_4',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_4_G12',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 111.531,\n", - " 'y': 18.391,\n", - " 'z': 5.39,\n", - " 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_4',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_4_H12',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 111.531, 'y': 9.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_4',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}}],\n", - " 'parent_name': 'deck',\n", - " 'ordering': ['A1',\n", - " 'B1',\n", - " 'C1',\n", - " 'D1',\n", - " 'E1',\n", - " 'F1',\n", - " 'G1',\n", - " 'H1',\n", - " 'A2',\n", - " 'B2',\n", - " 'C2',\n", - " 'D2',\n", - " 'E2',\n", - " 'F2',\n", - " 'G2',\n", - " 'H2',\n", - " 'A3',\n", - " 'B3',\n", - " 'C3',\n", - " 'D3',\n", - " 'E3',\n", - " 'F3',\n", - " 'G3',\n", - " 'H3',\n", - " 'A4',\n", - " 'B4',\n", - " 'C4',\n", - " 'D4',\n", - " 'E4',\n", - " 'F4',\n", - " 'G4',\n", - " 'H4',\n", - " 'A5',\n", - " 'B5',\n", - " 'C5',\n", - " 'D5',\n", - " 'E5',\n", - " 'F5',\n", - " 'G5',\n", - " 'H5',\n", - " 'A6',\n", - " 'B6',\n", - " 'C6',\n", - " 'D6',\n", - " 'E6',\n", - " 'F6',\n", - " 'G6',\n", - " 'H6',\n", - " 'A7',\n", - " 'B7',\n", - " 'C7',\n", - " 'D7',\n", - " 'E7',\n", - " 'F7',\n", - " 'G7',\n", - " 'H7',\n", - " 'A8',\n", - " 'B8',\n", - " 'C8',\n", - " 'D8',\n", - " 'E8',\n", - " 'F8',\n", - " 'G8',\n", - " 'H8',\n", - " 'A9',\n", - " 'B9',\n", - " 'C9',\n", - " 'D9',\n", - " 'E9',\n", - " 'F9',\n", - " 'G9',\n", - " 'H9',\n", - " 'A10',\n", - " 'B10',\n", - " 'C10',\n", - " 'D10',\n", - " 'E10',\n", - " 'F10',\n", - " 'G10',\n", - " 'H10',\n", - " 'A11',\n", - " 'B11',\n", - " 'C11',\n", - " 'D11',\n", - " 'E11',\n", - " 'F11',\n", - " 'G11',\n", - " 'H11',\n", - " 'A12',\n", - " 'B12',\n", - " 'C12',\n", - " 'D12',\n", - " 'E12',\n", - " 'F12',\n", - " 'G12',\n", - " 'H12']},\n", - " {'name': 'tiprack_8',\n", - " 'type': 'TipRack',\n", - " 'size_x': 127.76,\n", - " 'size_y': 85.48,\n", - " 'size_z': 64.49,\n", - " 'location': {'x': 132.5, 'y': 181.0, 'z': 0.0, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_rack',\n", - " 'model': 'Opentrons OT-2 96 Tip Rack 300 µL',\n", - " 'children': [{'name': 'tiprack_8_A1',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 12.531, 'y': 72.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_8',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_8_B1',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 12.531, 'y': 63.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_8',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_8_C1',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 12.531, 'y': 54.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_8',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_8_D1',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 12.531, 'y': 45.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_8',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_8_E1',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 12.531, 'y': 36.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_8',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_8_F1',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 12.531, 'y': 27.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_8',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_8_G1',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 12.531, 'y': 18.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_8',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_8_H1',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 12.531, 'y': 9.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_8',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_8_A2',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 21.531, 'y': 72.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_8',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_8_B2',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 21.531, 'y': 63.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_8',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_8_C2',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 21.531, 'y': 54.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_8',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_8_D2',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 21.531, 'y': 45.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_8',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_8_E2',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 21.531, 'y': 36.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_8',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_8_F2',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 21.531, 'y': 27.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_8',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_8_G2',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 21.531, 'y': 18.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_8',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_8_H2',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 21.531, 'y': 9.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_8',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_8_A3',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 30.531, 'y': 72.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_8',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_8_B3',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 30.531, 'y': 63.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_8',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_8_C3',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 30.531, 'y': 54.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_8',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_8_D3',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 30.531, 'y': 45.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_8',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_8_E3',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 30.531, 'y': 36.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_8',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_8_F3',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 30.531, 'y': 27.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_8',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_8_G3',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 30.531, 'y': 18.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_8',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_8_H3',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 30.531, 'y': 9.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_8',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_8_A4',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 39.531, 'y': 72.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_8',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_8_B4',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 39.531, 'y': 63.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_8',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_8_C4',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 39.531, 'y': 54.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_8',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_8_D4',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 39.531, 'y': 45.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_8',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_8_E4',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 39.531, 'y': 36.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_8',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_8_F4',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 39.531, 'y': 27.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_8',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_8_G4',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 39.531, 'y': 18.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_8',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_8_H4',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 39.531, 'y': 9.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_8',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_8_A5',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 48.531, 'y': 72.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_8',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_8_B5',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 48.531, 'y': 63.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_8',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_8_C5',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 48.531, 'y': 54.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_8',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_8_D5',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 48.531, 'y': 45.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_8',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_8_E5',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 48.531, 'y': 36.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_8',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_8_F5',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 48.531, 'y': 27.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_8',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_8_G5',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 48.531, 'y': 18.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_8',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_8_H5',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 48.531, 'y': 9.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_8',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_8_A6',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 57.531, 'y': 72.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_8',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_8_B6',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 57.531, 'y': 63.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_8',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_8_C6',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 57.531, 'y': 54.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_8',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_8_D6',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 57.531, 'y': 45.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_8',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_8_E6',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 57.531, 'y': 36.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_8',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_8_F6',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 57.531, 'y': 27.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_8',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_8_G6',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 57.531, 'y': 18.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_8',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_8_H6',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 57.531, 'y': 9.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_8',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_8_A7',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 66.531, 'y': 72.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_8',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_8_B7',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 66.531, 'y': 63.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_8',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_8_C7',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 66.531, 'y': 54.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_8',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_8_D7',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 66.531, 'y': 45.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_8',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_8_E7',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 66.531, 'y': 36.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_8',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_8_F7',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 66.531, 'y': 27.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_8',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_8_G7',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 66.531, 'y': 18.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_8',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_8_H7',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 66.531, 'y': 9.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_8',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_8_A8',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 75.531, 'y': 72.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_8',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_8_B8',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 75.531, 'y': 63.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_8',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_8_C8',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 75.531, 'y': 54.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_8',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_8_D8',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 75.531, 'y': 45.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_8',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_8_E8',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 75.531, 'y': 36.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_8',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_8_F8',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 75.531, 'y': 27.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_8',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_8_G8',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 75.531, 'y': 18.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_8',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_8_H8',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 75.531, 'y': 9.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_8',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_8_A9',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 84.531, 'y': 72.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_8',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_8_B9',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 84.531, 'y': 63.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_8',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_8_C9',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 84.531, 'y': 54.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_8',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_8_D9',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 84.531, 'y': 45.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_8',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_8_E9',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 84.531, 'y': 36.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_8',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_8_F9',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 84.531, 'y': 27.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_8',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_8_G9',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 84.531, 'y': 18.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_8',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_8_H9',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 84.531, 'y': 9.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_8',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_8_A10',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 93.531, 'y': 72.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_8',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_8_B10',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 93.531, 'y': 63.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_8',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_8_C10',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 93.531, 'y': 54.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_8',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_8_D10',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 93.531, 'y': 45.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_8',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_8_E10',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 93.531, 'y': 36.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_8',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_8_F10',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 93.531, 'y': 27.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_8',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_8_G10',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 93.531, 'y': 18.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_8',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_8_H10',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 93.531, 'y': 9.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_8',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_8_A11',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 102.531,\n", - " 'y': 72.391,\n", - " 'z': 5.39,\n", - " 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_8',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_8_B11',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 102.531,\n", - " 'y': 63.391,\n", - " 'z': 5.39,\n", - " 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_8',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_8_C11',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 102.531,\n", - " 'y': 54.391,\n", - " 'z': 5.39,\n", - " 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_8',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_8_D11',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 102.531,\n", - " 'y': 45.391,\n", - " 'z': 5.39,\n", - " 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_8',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_8_E11',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 102.531,\n", - " 'y': 36.391,\n", - " 'z': 5.39,\n", - " 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_8',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_8_F11',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 102.531,\n", - " 'y': 27.391,\n", - " 'z': 5.39,\n", - " 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_8',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_8_G11',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 102.531,\n", - " 'y': 18.391,\n", - " 'z': 5.39,\n", - " 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_8',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_8_H11',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 102.531, 'y': 9.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_8',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_8_A12',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 111.531,\n", - " 'y': 72.391,\n", - " 'z': 5.39,\n", - " 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_8',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_8_B12',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 111.531,\n", - " 'y': 63.391,\n", - " 'z': 5.39,\n", - " 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_8',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_8_C12',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 111.531,\n", - " 'y': 54.391,\n", - " 'z': 5.39,\n", - " 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_8',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_8_D12',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 111.531,\n", - " 'y': 45.391,\n", - " 'z': 5.39,\n", - " 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_8',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_8_E12',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 111.531,\n", - " 'y': 36.391,\n", - " 'z': 5.39,\n", - " 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_8',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_8_F12',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 111.531,\n", - " 'y': 27.391,\n", - " 'z': 5.39,\n", - " 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_8',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_8_G12',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 111.531,\n", - " 'y': 18.391,\n", - " 'z': 5.39,\n", - " 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_8',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_8_H12',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 111.531, 'y': 9.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_8',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}}],\n", - " 'parent_name': 'deck',\n", - " 'ordering': ['A1',\n", - " 'B1',\n", - " 'C1',\n", - " 'D1',\n", - " 'E1',\n", - " 'F1',\n", - " 'G1',\n", - " 'H1',\n", - " 'A2',\n", - " 'B2',\n", - " 'C2',\n", - " 'D2',\n", - " 'E2',\n", - " 'F2',\n", - " 'G2',\n", - " 'H2',\n", - " 'A3',\n", - " 'B3',\n", - " 'C3',\n", - " 'D3',\n", - " 'E3',\n", - " 'F3',\n", - " 'G3',\n", - " 'H3',\n", - " 'A4',\n", - " 'B4',\n", - " 'C4',\n", - " 'D4',\n", - " 'E4',\n", - " 'F4',\n", - " 'G4',\n", - " 'H4',\n", - " 'A5',\n", - " 'B5',\n", - " 'C5',\n", - " 'D5',\n", - " 'E5',\n", - " 'F5',\n", - " 'G5',\n", - " 'H5',\n", - " 'A6',\n", - " 'B6',\n", - " 'C6',\n", - " 'D6',\n", - " 'E6',\n", - " 'F6',\n", - " 'G6',\n", - " 'H6',\n", - " 'A7',\n", - " 'B7',\n", - " 'C7',\n", - " 'D7',\n", - " 'E7',\n", - " 'F7',\n", - " 'G7',\n", - " 'H7',\n", - " 'A8',\n", - " 'B8',\n", - " 'C8',\n", - " 'D8',\n", - " 'E8',\n", - " 'F8',\n", - " 'G8',\n", - " 'H8',\n", - " 'A9',\n", - " 'B9',\n", - " 'C9',\n", - " 'D9',\n", - " 'E9',\n", - " 'F9',\n", - " 'G9',\n", - " 'H9',\n", - " 'A10',\n", - " 'B10',\n", - " 'C10',\n", - " 'D10',\n", - " 'E10',\n", - " 'F10',\n", - " 'G10',\n", - " 'H10',\n", - " 'A11',\n", - " 'B11',\n", - " 'C11',\n", - " 'D11',\n", - " 'E11',\n", - " 'F11',\n", - " 'G11',\n", - " 'H11',\n", - " 'A12',\n", - " 'B12',\n", - " 'C12',\n", - " 'D12',\n", - " 'E12',\n", - " 'F12',\n", - " 'G12',\n", - " 'H12']},\n", - " {'name': 'tiprack_11',\n", - " 'type': 'TipRack',\n", - " 'size_x': 127.76,\n", - " 'size_y': 85.48,\n", - " 'size_z': 64.49,\n", - " 'location': {'x': 132.5, 'y': 271.5, 'z': 0.0, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_rack',\n", - " 'model': 'Opentrons OT-2 96 Tip Rack 300 µL',\n", - " 'children': [{'name': 'tiprack_11_A1',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 12.531, 'y': 72.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_11',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_11_B1',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 12.531, 'y': 63.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_11',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_11_C1',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 12.531, 'y': 54.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_11',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_11_D1',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 12.531, 'y': 45.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_11',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_11_E1',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 12.531, 'y': 36.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_11',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_11_F1',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 12.531, 'y': 27.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_11',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_11_G1',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 12.531, 'y': 18.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_11',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_11_H1',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 12.531, 'y': 9.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_11',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_11_A2',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 21.531, 'y': 72.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_11',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_11_B2',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 21.531, 'y': 63.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_11',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_11_C2',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 21.531, 'y': 54.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_11',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_11_D2',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 21.531, 'y': 45.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_11',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_11_E2',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 21.531, 'y': 36.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_11',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_11_F2',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 21.531, 'y': 27.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_11',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_11_G2',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 21.531, 'y': 18.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_11',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_11_H2',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 21.531, 'y': 9.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_11',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_11_A3',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 30.531, 'y': 72.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_11',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_11_B3',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 30.531, 'y': 63.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_11',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_11_C3',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 30.531, 'y': 54.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_11',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_11_D3',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 30.531, 'y': 45.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_11',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_11_E3',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 30.531, 'y': 36.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_11',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_11_F3',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 30.531, 'y': 27.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_11',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_11_G3',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 30.531, 'y': 18.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_11',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_11_H3',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 30.531, 'y': 9.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_11',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_11_A4',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 39.531, 'y': 72.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_11',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_11_B4',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 39.531, 'y': 63.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_11',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_11_C4',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 39.531, 'y': 54.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_11',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_11_D4',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 39.531, 'y': 45.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_11',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_11_E4',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 39.531, 'y': 36.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_11',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_11_F4',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 39.531, 'y': 27.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_11',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_11_G4',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 39.531, 'y': 18.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_11',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_11_H4',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 39.531, 'y': 9.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_11',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_11_A5',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 48.531, 'y': 72.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_11',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_11_B5',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 48.531, 'y': 63.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_11',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_11_C5',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 48.531, 'y': 54.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_11',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_11_D5',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 48.531, 'y': 45.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_11',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_11_E5',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 48.531, 'y': 36.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_11',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_11_F5',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 48.531, 'y': 27.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_11',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_11_G5',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 48.531, 'y': 18.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_11',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_11_H5',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 48.531, 'y': 9.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_11',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_11_A6',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 57.531, 'y': 72.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_11',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_11_B6',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 57.531, 'y': 63.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_11',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_11_C6',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 57.531, 'y': 54.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_11',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_11_D6',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 57.531, 'y': 45.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_11',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_11_E6',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 57.531, 'y': 36.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_11',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_11_F6',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 57.531, 'y': 27.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_11',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_11_G6',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 57.531, 'y': 18.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_11',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_11_H6',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 57.531, 'y': 9.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_11',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_11_A7',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 66.531, 'y': 72.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_11',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_11_B7',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 66.531, 'y': 63.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_11',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_11_C7',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 66.531, 'y': 54.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_11',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_11_D7',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 66.531, 'y': 45.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_11',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_11_E7',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 66.531, 'y': 36.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_11',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_11_F7',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 66.531, 'y': 27.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_11',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_11_G7',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 66.531, 'y': 18.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_11',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_11_H7',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 66.531, 'y': 9.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_11',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_11_A8',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 75.531, 'y': 72.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_11',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_11_B8',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 75.531, 'y': 63.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_11',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_11_C8',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 75.531, 'y': 54.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_11',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_11_D8',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 75.531, 'y': 45.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_11',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_11_E8',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 75.531, 'y': 36.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_11',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_11_F8',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 75.531, 'y': 27.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_11',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_11_G8',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 75.531, 'y': 18.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_11',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_11_H8',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 75.531, 'y': 9.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_11',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_11_A9',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 84.531, 'y': 72.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_11',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_11_B9',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 84.531, 'y': 63.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_11',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_11_C9',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 84.531, 'y': 54.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_11',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_11_D9',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 84.531, 'y': 45.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_11',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_11_E9',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 84.531, 'y': 36.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_11',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_11_F9',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 84.531, 'y': 27.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_11',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_11_G9',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 84.531, 'y': 18.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_11',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_11_H9',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 84.531, 'y': 9.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_11',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_11_A10',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 93.531, 'y': 72.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_11',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_11_B10',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 93.531, 'y': 63.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_11',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_11_C10',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 93.531, 'y': 54.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_11',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_11_D10',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 93.531, 'y': 45.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_11',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_11_E10',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 93.531, 'y': 36.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_11',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_11_F10',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 93.531, 'y': 27.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_11',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_11_G10',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 93.531, 'y': 18.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_11',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_11_H10',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 93.531, 'y': 9.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_11',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_11_A11',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 102.531,\n", - " 'y': 72.391,\n", - " 'z': 5.39,\n", - " 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_11',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_11_B11',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 102.531,\n", - " 'y': 63.391,\n", - " 'z': 5.39,\n", - " 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_11',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_11_C11',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 102.531,\n", - " 'y': 54.391,\n", - " 'z': 5.39,\n", - " 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_11',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_11_D11',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 102.531,\n", - " 'y': 45.391,\n", - " 'z': 5.39,\n", - " 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_11',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_11_E11',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 102.531,\n", - " 'y': 36.391,\n", - " 'z': 5.39,\n", - " 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_11',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_11_F11',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 102.531,\n", - " 'y': 27.391,\n", - " 'z': 5.39,\n", - " 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_11',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_11_G11',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 102.531,\n", - " 'y': 18.391,\n", - " 'z': 5.39,\n", - " 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_11',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_11_H11',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 102.531, 'y': 9.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_11',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_11_A12',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 111.531,\n", - " 'y': 72.391,\n", - " 'z': 5.39,\n", - " 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_11',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_11_B12',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 111.531,\n", - " 'y': 63.391,\n", - " 'z': 5.39,\n", - " 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_11',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_11_C12',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 111.531,\n", - " 'y': 54.391,\n", - " 'z': 5.39,\n", - " 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_11',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_11_D12',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 111.531,\n", - " 'y': 45.391,\n", - " 'z': 5.39,\n", - " 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_11',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_11_E12',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 111.531,\n", - " 'y': 36.391,\n", - " 'z': 5.39,\n", - " 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_11',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_11_F12',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 111.531,\n", - " 'y': 27.391,\n", - " 'z': 5.39,\n", - " 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_11',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_11_G12',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 111.531,\n", - " 'y': 18.391,\n", - " 'z': 5.39,\n", - " 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_11',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}},\n", - " {'name': 'tiprack_11_H12',\n", - " 'type': 'TipSpot',\n", - " 'size_x': 3.698,\n", - " 'size_y': 3.698,\n", - " 'size_z': 0,\n", - " 'location': {'x': 111.531, 'y': 9.391, 'z': 5.39, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'tip_spot',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'tiprack_11',\n", - " 'prototype_tip': {'type': 'Tip',\n", - " 'total_tip_length': 59.3,\n", - " 'has_filter': False,\n", - " 'maximal_volume': 300.0,\n", - " 'fitting_depth': 7.47}}],\n", - " 'parent_name': 'deck',\n", - " 'ordering': ['A1',\n", - " 'B1',\n", - " 'C1',\n", - " 'D1',\n", - " 'E1',\n", - " 'F1',\n", - " 'G1',\n", - " 'H1',\n", - " 'A2',\n", - " 'B2',\n", - " 'C2',\n", - " 'D2',\n", - " 'E2',\n", - " 'F2',\n", - " 'G2',\n", - " 'H2',\n", - " 'A3',\n", - " 'B3',\n", - " 'C3',\n", - " 'D3',\n", - " 'E3',\n", - " 'F3',\n", - " 'G3',\n", - " 'H3',\n", - " 'A4',\n", - " 'B4',\n", - " 'C4',\n", - " 'D4',\n", - " 'E4',\n", - " 'F4',\n", - " 'G4',\n", - " 'H4',\n", - " 'A5',\n", - " 'B5',\n", - " 'C5',\n", - " 'D5',\n", - " 'E5',\n", - " 'F5',\n", - " 'G5',\n", - " 'H5',\n", - " 'A6',\n", - " 'B6',\n", - " 'C6',\n", - " 'D6',\n", - " 'E6',\n", - " 'F6',\n", - " 'G6',\n", - " 'H6',\n", - " 'A7',\n", - " 'B7',\n", - " 'C7',\n", - " 'D7',\n", - " 'E7',\n", - " 'F7',\n", - " 'G7',\n", - " 'H7',\n", - " 'A8',\n", - " 'B8',\n", - " 'C8',\n", - " 'D8',\n", - " 'E8',\n", - " 'F8',\n", - " 'G8',\n", - " 'H8',\n", - " 'A9',\n", - " 'B9',\n", - " 'C9',\n", - " 'D9',\n", - " 'E9',\n", - " 'F9',\n", - " 'G9',\n", - " 'H9',\n", - " 'A10',\n", - " 'B10',\n", - " 'C10',\n", - " 'D10',\n", - " 'E10',\n", - " 'F10',\n", - " 'G10',\n", - " 'H10',\n", - " 'A11',\n", - " 'B11',\n", - " 'C11',\n", - " 'D11',\n", - " 'E11',\n", - " 'F11',\n", - " 'G11',\n", - " 'H11',\n", - " 'A12',\n", - " 'B12',\n", - " 'C12',\n", - " 'D12',\n", - " 'E12',\n", - " 'F12',\n", - " 'G12',\n", - " 'H12']},\n", - " {'name': 'working_plate',\n", - " 'type': 'Plate',\n", - " 'size_x': 127.76,\n", - " 'size_y': 85.47,\n", - " 'size_z': 14.22,\n", - " 'location': {'x': 265.0, 'y': 90.5, 'z': 0.0, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'plate',\n", - " 'model': 'Corning 96 Well Plate 360 µL Flat',\n", - " 'children': [{'name': 'working_plate_A1',\n", - " 'type': 'Well',\n", - " 'size_x': 4.851,\n", - " 'size_y': 4.851,\n", - " 'size_z': 10.67,\n", - " 'location': {'x': 11.9545,\n", - " 'y': 71.8145,\n", - " 'z': 3.55,\n", - " 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'well',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'working_plate',\n", - " 'max_volume': 360,\n", - " 'material_z_thickness': None,\n", - " 'compute_volume_from_height': None,\n", - " 'compute_height_from_volume': None,\n", - " 'bottom_type': 'unknown',\n", - " 'cross_section_type': 'circle'},\n", - " {'name': 'working_plate_B1',\n", - " 'type': 'Well',\n", - " 'size_x': 4.851,\n", - " 'size_y': 4.851,\n", - " 'size_z': 10.67,\n", - " 'location': {'x': 11.9545,\n", - " 'y': 62.8145,\n", - " 'z': 3.55,\n", - " 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'well',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'working_plate',\n", - " 'max_volume': 360,\n", - " 'material_z_thickness': None,\n", - " 'compute_volume_from_height': None,\n", - " 'compute_height_from_volume': None,\n", - " 'bottom_type': 'unknown',\n", - " 'cross_section_type': 'circle'},\n", - " {'name': 'working_plate_C1',\n", - " 'type': 'Well',\n", - " 'size_x': 4.851,\n", - " 'size_y': 4.851,\n", - " 'size_z': 10.67,\n", - " 'location': {'x': 11.9545,\n", - " 'y': 53.8145,\n", - " 'z': 3.55,\n", - " 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'well',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'working_plate',\n", - " 'max_volume': 360,\n", - " 'material_z_thickness': None,\n", - " 'compute_volume_from_height': None,\n", - " 'compute_height_from_volume': None,\n", - " 'bottom_type': 'unknown',\n", - " 'cross_section_type': 'circle'},\n", - " {'name': 'working_plate_D1',\n", - " 'type': 'Well',\n", - " 'size_x': 4.851,\n", - " 'size_y': 4.851,\n", - " 'size_z': 10.67,\n", - " 'location': {'x': 11.9545,\n", - " 'y': 44.8145,\n", - " 'z': 3.55,\n", - " 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'well',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'working_plate',\n", - " 'max_volume': 360,\n", - " 'material_z_thickness': None,\n", - " 'compute_volume_from_height': None,\n", - " 'compute_height_from_volume': None,\n", - " 'bottom_type': 'unknown',\n", - " 'cross_section_type': 'circle'},\n", - " {'name': 'working_plate_E1',\n", - " 'type': 'Well',\n", - " 'size_x': 4.851,\n", - " 'size_y': 4.851,\n", - " 'size_z': 10.67,\n", - " 'location': {'x': 11.9545,\n", - " 'y': 35.8145,\n", - " 'z': 3.55,\n", - " 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'well',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'working_plate',\n", - " 'max_volume': 360,\n", - " 'material_z_thickness': None,\n", - " 'compute_volume_from_height': None,\n", - " 'compute_height_from_volume': None,\n", - " 'bottom_type': 'unknown',\n", - " 'cross_section_type': 'circle'},\n", - " {'name': 'working_plate_F1',\n", - " 'type': 'Well',\n", - " 'size_x': 4.851,\n", - " 'size_y': 4.851,\n", - " 'size_z': 10.67,\n", - " 'location': {'x': 11.9545,\n", - " 'y': 26.8145,\n", - " 'z': 3.55,\n", - " 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'well',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'working_plate',\n", - " 'max_volume': 360,\n", - " 'material_z_thickness': None,\n", - " 'compute_volume_from_height': None,\n", - " 'compute_height_from_volume': None,\n", - " 'bottom_type': 'unknown',\n", - " 'cross_section_type': 'circle'},\n", - " {'name': 'working_plate_G1',\n", - " 'type': 'Well',\n", - " 'size_x': 4.851,\n", - " 'size_y': 4.851,\n", - " 'size_z': 10.67,\n", - " 'location': {'x': 11.9545,\n", - " 'y': 17.8145,\n", - " 'z': 3.55,\n", - " 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'well',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'working_plate',\n", - " 'max_volume': 360,\n", - " 'material_z_thickness': None,\n", - " 'compute_volume_from_height': None,\n", - " 'compute_height_from_volume': None,\n", - " 'bottom_type': 'unknown',\n", - " 'cross_section_type': 'circle'},\n", - " {'name': 'working_plate_H1',\n", - " 'type': 'Well',\n", - " 'size_x': 4.851,\n", - " 'size_y': 4.851,\n", - " 'size_z': 10.67,\n", - " 'location': {'x': 11.9545,\n", - " 'y': 8.8145,\n", - " 'z': 3.55,\n", - " 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'well',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'working_plate',\n", - " 'max_volume': 360,\n", - " 'material_z_thickness': None,\n", - " 'compute_volume_from_height': None,\n", - " 'compute_height_from_volume': None,\n", - " 'bottom_type': 'unknown',\n", - " 'cross_section_type': 'circle'},\n", - " {'name': 'working_plate_A2',\n", - " 'type': 'Well',\n", - " 'size_x': 4.851,\n", - " 'size_y': 4.851,\n", - " 'size_z': 10.67,\n", - " 'location': {'x': 20.9545,\n", - " 'y': 71.8145,\n", - " 'z': 3.55,\n", - " 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'well',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'working_plate',\n", - " 'max_volume': 360,\n", - " 'material_z_thickness': None,\n", - " 'compute_volume_from_height': None,\n", - " 'compute_height_from_volume': None,\n", - " 'bottom_type': 'unknown',\n", - " 'cross_section_type': 'circle'},\n", - " {'name': 'working_plate_B2',\n", - " 'type': 'Well',\n", - " 'size_x': 4.851,\n", - " 'size_y': 4.851,\n", - " 'size_z': 10.67,\n", - " 'location': {'x': 20.9545,\n", - " 'y': 62.8145,\n", - " 'z': 3.55,\n", - " 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'well',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'working_plate',\n", - " 'max_volume': 360,\n", - " 'material_z_thickness': None,\n", - " 'compute_volume_from_height': None,\n", - " 'compute_height_from_volume': None,\n", - " 'bottom_type': 'unknown',\n", - " 'cross_section_type': 'circle'},\n", - " {'name': 'working_plate_C2',\n", - " 'type': 'Well',\n", - " 'size_x': 4.851,\n", - " 'size_y': 4.851,\n", - " 'size_z': 10.67,\n", - " 'location': {'x': 20.9545,\n", - " 'y': 53.8145,\n", - " 'z': 3.55,\n", - " 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'well',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'working_plate',\n", - " 'max_volume': 360,\n", - " 'material_z_thickness': None,\n", - " 'compute_volume_from_height': None,\n", - " 'compute_height_from_volume': None,\n", - " 'bottom_type': 'unknown',\n", - " 'cross_section_type': 'circle'},\n", - " {'name': 'working_plate_D2',\n", - " 'type': 'Well',\n", - " 'size_x': 4.851,\n", - " 'size_y': 4.851,\n", - " 'size_z': 10.67,\n", - " 'location': {'x': 20.9545,\n", - " 'y': 44.8145,\n", - " 'z': 3.55,\n", - " 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'well',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'working_plate',\n", - " 'max_volume': 360,\n", - " 'material_z_thickness': None,\n", - " 'compute_volume_from_height': None,\n", - " 'compute_height_from_volume': None,\n", - " 'bottom_type': 'unknown',\n", - " 'cross_section_type': 'circle'},\n", - " {'name': 'working_plate_E2',\n", - " 'type': 'Well',\n", - " 'size_x': 4.851,\n", - " 'size_y': 4.851,\n", - " 'size_z': 10.67,\n", - " 'location': {'x': 20.9545,\n", - " 'y': 35.8145,\n", - " 'z': 3.55,\n", - " 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'well',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'working_plate',\n", - " 'max_volume': 360,\n", - " 'material_z_thickness': None,\n", - " 'compute_volume_from_height': None,\n", - " 'compute_height_from_volume': None,\n", - " 'bottom_type': 'unknown',\n", - " 'cross_section_type': 'circle'},\n", - " {'name': 'working_plate_F2',\n", - " 'type': 'Well',\n", - " 'size_x': 4.851,\n", - " 'size_y': 4.851,\n", - " 'size_z': 10.67,\n", - " 'location': {'x': 20.9545,\n", - " 'y': 26.8145,\n", - " 'z': 3.55,\n", - " 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'well',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'working_plate',\n", - " 'max_volume': 360,\n", - " 'material_z_thickness': None,\n", - " 'compute_volume_from_height': None,\n", - " 'compute_height_from_volume': None,\n", - " 'bottom_type': 'unknown',\n", - " 'cross_section_type': 'circle'},\n", - " {'name': 'working_plate_G2',\n", - " 'type': 'Well',\n", - " 'size_x': 4.851,\n", - " 'size_y': 4.851,\n", - " 'size_z': 10.67,\n", - " 'location': {'x': 20.9545,\n", - " 'y': 17.8145,\n", - " 'z': 3.55,\n", - " 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'well',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'working_plate',\n", - " 'max_volume': 360,\n", - " 'material_z_thickness': None,\n", - " 'compute_volume_from_height': None,\n", - " 'compute_height_from_volume': None,\n", - " 'bottom_type': 'unknown',\n", - " 'cross_section_type': 'circle'},\n", - " {'name': 'working_plate_H2',\n", - " 'type': 'Well',\n", - " 'size_x': 4.851,\n", - " 'size_y': 4.851,\n", - " 'size_z': 10.67,\n", - " 'location': {'x': 20.9545,\n", - " 'y': 8.8145,\n", - " 'z': 3.55,\n", - " 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'well',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'working_plate',\n", - " 'max_volume': 360,\n", - " 'material_z_thickness': None,\n", - " 'compute_volume_from_height': None,\n", - " 'compute_height_from_volume': None,\n", - " 'bottom_type': 'unknown',\n", - " 'cross_section_type': 'circle'},\n", - " {'name': 'working_plate_A3',\n", - " 'type': 'Well',\n", - " 'size_x': 4.851,\n", - " 'size_y': 4.851,\n", - " 'size_z': 10.67,\n", - " 'location': {'x': 29.9545,\n", - " 'y': 71.8145,\n", - " 'z': 3.55,\n", - " 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'well',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'working_plate',\n", - " 'max_volume': 360,\n", - " 'material_z_thickness': None,\n", - " 'compute_volume_from_height': None,\n", - " 'compute_height_from_volume': None,\n", - " 'bottom_type': 'unknown',\n", - " 'cross_section_type': 'circle'},\n", - " {'name': 'working_plate_B3',\n", - " 'type': 'Well',\n", - " 'size_x': 4.851,\n", - " 'size_y': 4.851,\n", - " 'size_z': 10.67,\n", - " 'location': {'x': 29.9545,\n", - " 'y': 62.8145,\n", - " 'z': 3.55,\n", - " 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'well',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'working_plate',\n", - " 'max_volume': 360,\n", - " 'material_z_thickness': None,\n", - " 'compute_volume_from_height': None,\n", - " 'compute_height_from_volume': None,\n", - " 'bottom_type': 'unknown',\n", - " 'cross_section_type': 'circle'},\n", - " {'name': 'working_plate_C3',\n", - " 'type': 'Well',\n", - " 'size_x': 4.851,\n", - " 'size_y': 4.851,\n", - " 'size_z': 10.67,\n", - " 'location': {'x': 29.9545,\n", - " 'y': 53.8145,\n", - " 'z': 3.55,\n", - " 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'well',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'working_plate',\n", - " 'max_volume': 360,\n", - " 'material_z_thickness': None,\n", - " 'compute_volume_from_height': None,\n", - " 'compute_height_from_volume': None,\n", - " 'bottom_type': 'unknown',\n", - " 'cross_section_type': 'circle'},\n", - " {'name': 'working_plate_D3',\n", - " 'type': 'Well',\n", - " 'size_x': 4.851,\n", - " 'size_y': 4.851,\n", - " 'size_z': 10.67,\n", - " 'location': {'x': 29.9545,\n", - " 'y': 44.8145,\n", - " 'z': 3.55,\n", - " 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'well',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'working_plate',\n", - " 'max_volume': 360,\n", - " 'material_z_thickness': None,\n", - " 'compute_volume_from_height': None,\n", - " 'compute_height_from_volume': None,\n", - " 'bottom_type': 'unknown',\n", - " 'cross_section_type': 'circle'},\n", - " {'name': 'working_plate_E3',\n", - " 'type': 'Well',\n", - " 'size_x': 4.851,\n", - " 'size_y': 4.851,\n", - " 'size_z': 10.67,\n", - " 'location': {'x': 29.9545,\n", - " 'y': 35.8145,\n", - " 'z': 3.55,\n", - " 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'well',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'working_plate',\n", - " 'max_volume': 360,\n", - " 'material_z_thickness': None,\n", - " 'compute_volume_from_height': None,\n", - " 'compute_height_from_volume': None,\n", - " 'bottom_type': 'unknown',\n", - " 'cross_section_type': 'circle'},\n", - " {'name': 'working_plate_F3',\n", - " 'type': 'Well',\n", - " 'size_x': 4.851,\n", - " 'size_y': 4.851,\n", - " 'size_z': 10.67,\n", - " 'location': {'x': 29.9545,\n", - " 'y': 26.8145,\n", - " 'z': 3.55,\n", - " 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'well',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'working_plate',\n", - " 'max_volume': 360,\n", - " 'material_z_thickness': None,\n", - " 'compute_volume_from_height': None,\n", - " 'compute_height_from_volume': None,\n", - " 'bottom_type': 'unknown',\n", - " 'cross_section_type': 'circle'},\n", - " {'name': 'working_plate_G3',\n", - " 'type': 'Well',\n", - " 'size_x': 4.851,\n", - " 'size_y': 4.851,\n", - " 'size_z': 10.67,\n", - " 'location': {'x': 29.9545,\n", - " 'y': 17.8145,\n", - " 'z': 3.55,\n", - " 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'well',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'working_plate',\n", - " 'max_volume': 360,\n", - " 'material_z_thickness': None,\n", - " 'compute_volume_from_height': None,\n", - " 'compute_height_from_volume': None,\n", - " 'bottom_type': 'unknown',\n", - " 'cross_section_type': 'circle'},\n", - " {'name': 'working_plate_H3',\n", - " 'type': 'Well',\n", - " 'size_x': 4.851,\n", - " 'size_y': 4.851,\n", - " 'size_z': 10.67,\n", - " 'location': {'x': 29.9545,\n", - " 'y': 8.8145,\n", - " 'z': 3.55,\n", - " 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'well',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'working_plate',\n", - " 'max_volume': 360,\n", - " 'material_z_thickness': None,\n", - " 'compute_volume_from_height': None,\n", - " 'compute_height_from_volume': None,\n", - " 'bottom_type': 'unknown',\n", - " 'cross_section_type': 'circle'},\n", - " {'name': 'working_plate_A4',\n", - " 'type': 'Well',\n", - " 'size_x': 4.851,\n", - " 'size_y': 4.851,\n", - " 'size_z': 10.67,\n", - " 'location': {'x': 38.9545,\n", - " 'y': 71.8145,\n", - " 'z': 3.55,\n", - " 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'well',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'working_plate',\n", - " 'max_volume': 360,\n", - " 'material_z_thickness': None,\n", - " 'compute_volume_from_height': None,\n", - " 'compute_height_from_volume': None,\n", - " 'bottom_type': 'unknown',\n", - " 'cross_section_type': 'circle'},\n", - " {'name': 'working_plate_B4',\n", - " 'type': 'Well',\n", - " 'size_x': 4.851,\n", - " 'size_y': 4.851,\n", - " 'size_z': 10.67,\n", - " 'location': {'x': 38.9545,\n", - " 'y': 62.8145,\n", - " 'z': 3.55,\n", - " 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'well',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'working_plate',\n", - " 'max_volume': 360,\n", - " 'material_z_thickness': None,\n", - " 'compute_volume_from_height': None,\n", - " 'compute_height_from_volume': None,\n", - " 'bottom_type': 'unknown',\n", - " 'cross_section_type': 'circle'},\n", - " {'name': 'working_plate_C4',\n", - " 'type': 'Well',\n", - " 'size_x': 4.851,\n", - " 'size_y': 4.851,\n", - " 'size_z': 10.67,\n", - " 'location': {'x': 38.9545,\n", - " 'y': 53.8145,\n", - " 'z': 3.55,\n", - " 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'well',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'working_plate',\n", - " 'max_volume': 360,\n", - " 'material_z_thickness': None,\n", - " 'compute_volume_from_height': None,\n", - " 'compute_height_from_volume': None,\n", - " 'bottom_type': 'unknown',\n", - " 'cross_section_type': 'circle'},\n", - " {'name': 'working_plate_D4',\n", - " 'type': 'Well',\n", - " 'size_x': 4.851,\n", - " 'size_y': 4.851,\n", - " 'size_z': 10.67,\n", - " 'location': {'x': 38.9545,\n", - " 'y': 44.8145,\n", - " 'z': 3.55,\n", - " 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'well',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'working_plate',\n", - " 'max_volume': 360,\n", - " 'material_z_thickness': None,\n", - " 'compute_volume_from_height': None,\n", - " 'compute_height_from_volume': None,\n", - " 'bottom_type': 'unknown',\n", - " 'cross_section_type': 'circle'},\n", - " {'name': 'working_plate_E4',\n", - " 'type': 'Well',\n", - " 'size_x': 4.851,\n", - " 'size_y': 4.851,\n", - " 'size_z': 10.67,\n", - " 'location': {'x': 38.9545,\n", - " 'y': 35.8145,\n", - " 'z': 3.55,\n", - " 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'well',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'working_plate',\n", - " 'max_volume': 360,\n", - " 'material_z_thickness': None,\n", - " 'compute_volume_from_height': None,\n", - " 'compute_height_from_volume': None,\n", - " 'bottom_type': 'unknown',\n", - " 'cross_section_type': 'circle'},\n", - " {'name': 'working_plate_F4',\n", - " 'type': 'Well',\n", - " 'size_x': 4.851,\n", - " 'size_y': 4.851,\n", - " 'size_z': 10.67,\n", - " 'location': {'x': 38.9545,\n", - " 'y': 26.8145,\n", - " 'z': 3.55,\n", - " 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'well',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'working_plate',\n", - " 'max_volume': 360,\n", - " 'material_z_thickness': None,\n", - " 'compute_volume_from_height': None,\n", - " 'compute_height_from_volume': None,\n", - " 'bottom_type': 'unknown',\n", - " 'cross_section_type': 'circle'},\n", - " {'name': 'working_plate_G4',\n", - " 'type': 'Well',\n", - " 'size_x': 4.851,\n", - " 'size_y': 4.851,\n", - " 'size_z': 10.67,\n", - " 'location': {'x': 38.9545,\n", - " 'y': 17.8145,\n", - " 'z': 3.55,\n", - " 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'well',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'working_plate',\n", - " 'max_volume': 360,\n", - " 'material_z_thickness': None,\n", - " 'compute_volume_from_height': None,\n", - " 'compute_height_from_volume': None,\n", - " 'bottom_type': 'unknown',\n", - " 'cross_section_type': 'circle'},\n", - " {'name': 'working_plate_H4',\n", - " 'type': 'Well',\n", - " 'size_x': 4.851,\n", - " 'size_y': 4.851,\n", - " 'size_z': 10.67,\n", - " 'location': {'x': 38.9545,\n", - " 'y': 8.8145,\n", - " 'z': 3.55,\n", - " 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'well',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'working_plate',\n", - " 'max_volume': 360,\n", - " 'material_z_thickness': None,\n", - " 'compute_volume_from_height': None,\n", - " 'compute_height_from_volume': None,\n", - " 'bottom_type': 'unknown',\n", - " 'cross_section_type': 'circle'},\n", - " {'name': 'working_plate_A5',\n", - " 'type': 'Well',\n", - " 'size_x': 4.851,\n", - " 'size_y': 4.851,\n", - " 'size_z': 10.67,\n", - " 'location': {'x': 47.9545,\n", - " 'y': 71.8145,\n", - " 'z': 3.55,\n", - " 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'well',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'working_plate',\n", - " 'max_volume': 360,\n", - " 'material_z_thickness': None,\n", - " 'compute_volume_from_height': None,\n", - " 'compute_height_from_volume': None,\n", - " 'bottom_type': 'unknown',\n", - " 'cross_section_type': 'circle'},\n", - " {'name': 'working_plate_B5',\n", - " 'type': 'Well',\n", - " 'size_x': 4.851,\n", - " 'size_y': 4.851,\n", - " 'size_z': 10.67,\n", - " 'location': {'x': 47.9545,\n", - " 'y': 62.8145,\n", - " 'z': 3.55,\n", - " 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'well',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'working_plate',\n", - " 'max_volume': 360,\n", - " 'material_z_thickness': None,\n", - " 'compute_volume_from_height': None,\n", - " 'compute_height_from_volume': None,\n", - " 'bottom_type': 'unknown',\n", - " 'cross_section_type': 'circle'},\n", - " {'name': 'working_plate_C5',\n", - " 'type': 'Well',\n", - " 'size_x': 4.851,\n", - " 'size_y': 4.851,\n", - " 'size_z': 10.67,\n", - " 'location': {'x': 47.9545,\n", - " 'y': 53.8145,\n", - " 'z': 3.55,\n", - " 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'well',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'working_plate',\n", - " 'max_volume': 360,\n", - " 'material_z_thickness': None,\n", - " 'compute_volume_from_height': None,\n", - " 'compute_height_from_volume': None,\n", - " 'bottom_type': 'unknown',\n", - " 'cross_section_type': 'circle'},\n", - " {'name': 'working_plate_D5',\n", - " 'type': 'Well',\n", - " 'size_x': 4.851,\n", - " 'size_y': 4.851,\n", - " 'size_z': 10.67,\n", - " 'location': {'x': 47.9545,\n", - " 'y': 44.8145,\n", - " 'z': 3.55,\n", - " 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'well',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'working_plate',\n", - " 'max_volume': 360,\n", - " 'material_z_thickness': None,\n", - " 'compute_volume_from_height': None,\n", - " 'compute_height_from_volume': None,\n", - " 'bottom_type': 'unknown',\n", - " 'cross_section_type': 'circle'},\n", - " {'name': 'working_plate_E5',\n", - " 'type': 'Well',\n", - " 'size_x': 4.851,\n", - " 'size_y': 4.851,\n", - " 'size_z': 10.67,\n", - " 'location': {'x': 47.9545,\n", - " 'y': 35.8145,\n", - " 'z': 3.55,\n", - " 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'well',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'working_plate',\n", - " 'max_volume': 360,\n", - " 'material_z_thickness': None,\n", - " 'compute_volume_from_height': None,\n", - " 'compute_height_from_volume': None,\n", - " 'bottom_type': 'unknown',\n", - " 'cross_section_type': 'circle'},\n", - " {'name': 'working_plate_F5',\n", - " 'type': 'Well',\n", - " 'size_x': 4.851,\n", - " 'size_y': 4.851,\n", - " 'size_z': 10.67,\n", - " 'location': {'x': 47.9545,\n", - " 'y': 26.8145,\n", - " 'z': 3.55,\n", - " 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'well',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'working_plate',\n", - " 'max_volume': 360,\n", - " 'material_z_thickness': None,\n", - " 'compute_volume_from_height': None,\n", - " 'compute_height_from_volume': None,\n", - " 'bottom_type': 'unknown',\n", - " 'cross_section_type': 'circle'},\n", - " {'name': 'working_plate_G5',\n", - " 'type': 'Well',\n", - " 'size_x': 4.851,\n", - " 'size_y': 4.851,\n", - " 'size_z': 10.67,\n", - " 'location': {'x': 47.9545,\n", - " 'y': 17.8145,\n", - " 'z': 3.55,\n", - " 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'well',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'working_plate',\n", - " 'max_volume': 360,\n", - " 'material_z_thickness': None,\n", - " 'compute_volume_from_height': None,\n", - " 'compute_height_from_volume': None,\n", - " 'bottom_type': 'unknown',\n", - " 'cross_section_type': 'circle'},\n", - " {'name': 'working_plate_H5',\n", - " 'type': 'Well',\n", - " 'size_x': 4.851,\n", - " 'size_y': 4.851,\n", - " 'size_z': 10.67,\n", - " 'location': {'x': 47.9545,\n", - " 'y': 8.8145,\n", - " 'z': 3.55,\n", - " 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'well',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'working_plate',\n", - " 'max_volume': 360,\n", - " 'material_z_thickness': None,\n", - " 'compute_volume_from_height': None,\n", - " 'compute_height_from_volume': None,\n", - " 'bottom_type': 'unknown',\n", - " 'cross_section_type': 'circle'},\n", - " {'name': 'working_plate_A6',\n", - " 'type': 'Well',\n", - " 'size_x': 4.851,\n", - " 'size_y': 4.851,\n", - " 'size_z': 10.67,\n", - " 'location': {'x': 56.9545,\n", - " 'y': 71.8145,\n", - " 'z': 3.55,\n", - " 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'well',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'working_plate',\n", - " 'max_volume': 360,\n", - " 'material_z_thickness': None,\n", - " 'compute_volume_from_height': None,\n", - " 'compute_height_from_volume': None,\n", - " 'bottom_type': 'unknown',\n", - " 'cross_section_type': 'circle'},\n", - " {'name': 'working_plate_B6',\n", - " 'type': 'Well',\n", - " 'size_x': 4.851,\n", - " 'size_y': 4.851,\n", - " 'size_z': 10.67,\n", - " 'location': {'x': 56.9545,\n", - " 'y': 62.8145,\n", - " 'z': 3.55,\n", - " 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'well',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'working_plate',\n", - " 'max_volume': 360,\n", - " 'material_z_thickness': None,\n", - " 'compute_volume_from_height': None,\n", - " 'compute_height_from_volume': None,\n", - " 'bottom_type': 'unknown',\n", - " 'cross_section_type': 'circle'},\n", - " {'name': 'working_plate_C6',\n", - " 'type': 'Well',\n", - " 'size_x': 4.851,\n", - " 'size_y': 4.851,\n", - " 'size_z': 10.67,\n", - " 'location': {'x': 56.9545,\n", - " 'y': 53.8145,\n", - " 'z': 3.55,\n", - " 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'well',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'working_plate',\n", - " 'max_volume': 360,\n", - " 'material_z_thickness': None,\n", - " 'compute_volume_from_height': None,\n", - " 'compute_height_from_volume': None,\n", - " 'bottom_type': 'unknown',\n", - " 'cross_section_type': 'circle'},\n", - " {'name': 'working_plate_D6',\n", - " 'type': 'Well',\n", - " 'size_x': 4.851,\n", - " 'size_y': 4.851,\n", - " 'size_z': 10.67,\n", - " 'location': {'x': 56.9545,\n", - " 'y': 44.8145,\n", - " 'z': 3.55,\n", - " 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'well',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'working_plate',\n", - " 'max_volume': 360,\n", - " 'material_z_thickness': None,\n", - " 'compute_volume_from_height': None,\n", - " 'compute_height_from_volume': None,\n", - " 'bottom_type': 'unknown',\n", - " 'cross_section_type': 'circle'},\n", - " {'name': 'working_plate_E6',\n", - " 'type': 'Well',\n", - " 'size_x': 4.851,\n", - " 'size_y': 4.851,\n", - " 'size_z': 10.67,\n", - " 'location': {'x': 56.9545,\n", - " 'y': 35.8145,\n", - " 'z': 3.55,\n", - " 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'well',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'working_plate',\n", - " 'max_volume': 360,\n", - " 'material_z_thickness': None,\n", - " 'compute_volume_from_height': None,\n", - " 'compute_height_from_volume': None,\n", - " 'bottom_type': 'unknown',\n", - " 'cross_section_type': 'circle'},\n", - " {'name': 'working_plate_F6',\n", - " 'type': 'Well',\n", - " 'size_x': 4.851,\n", - " 'size_y': 4.851,\n", - " 'size_z': 10.67,\n", - " 'location': {'x': 56.9545,\n", - " 'y': 26.8145,\n", - " 'z': 3.55,\n", - " 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'well',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'working_plate',\n", - " 'max_volume': 360,\n", - " 'material_z_thickness': None,\n", - " 'compute_volume_from_height': None,\n", - " 'compute_height_from_volume': None,\n", - " 'bottom_type': 'unknown',\n", - " 'cross_section_type': 'circle'},\n", - " {'name': 'working_plate_G6',\n", - " 'type': 'Well',\n", - " 'size_x': 4.851,\n", - " 'size_y': 4.851,\n", - " 'size_z': 10.67,\n", - " 'location': {'x': 56.9545,\n", - " 'y': 17.8145,\n", - " 'z': 3.55,\n", - " 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'well',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'working_plate',\n", - " 'max_volume': 360,\n", - " 'material_z_thickness': None,\n", - " 'compute_volume_from_height': None,\n", - " 'compute_height_from_volume': None,\n", - " 'bottom_type': 'unknown',\n", - " 'cross_section_type': 'circle'},\n", - " {'name': 'working_plate_H6',\n", - " 'type': 'Well',\n", - " 'size_x': 4.851,\n", - " 'size_y': 4.851,\n", - " 'size_z': 10.67,\n", - " 'location': {'x': 56.9545,\n", - " 'y': 8.8145,\n", - " 'z': 3.55,\n", - " 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'well',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'working_plate',\n", - " 'max_volume': 360,\n", - " 'material_z_thickness': None,\n", - " 'compute_volume_from_height': None,\n", - " 'compute_height_from_volume': None,\n", - " 'bottom_type': 'unknown',\n", - " 'cross_section_type': 'circle'},\n", - " {'name': 'working_plate_A7',\n", - " 'type': 'Well',\n", - " 'size_x': 4.851,\n", - " 'size_y': 4.851,\n", - " 'size_z': 10.67,\n", - " 'location': {'x': 65.9545,\n", - " 'y': 71.8145,\n", - " 'z': 3.55,\n", - " 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'well',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'working_plate',\n", - " 'max_volume': 360,\n", - " 'material_z_thickness': None,\n", - " 'compute_volume_from_height': None,\n", - " 'compute_height_from_volume': None,\n", - " 'bottom_type': 'unknown',\n", - " 'cross_section_type': 'circle'},\n", - " {'name': 'working_plate_B7',\n", - " 'type': 'Well',\n", - " 'size_x': 4.851,\n", - " 'size_y': 4.851,\n", - " 'size_z': 10.67,\n", - " 'location': {'x': 65.9545,\n", - " 'y': 62.8145,\n", - " 'z': 3.55,\n", - " 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'well',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'working_plate',\n", - " 'max_volume': 360,\n", - " 'material_z_thickness': None,\n", - " 'compute_volume_from_height': None,\n", - " 'compute_height_from_volume': None,\n", - " 'bottom_type': 'unknown',\n", - " 'cross_section_type': 'circle'},\n", - " {'name': 'working_plate_C7',\n", - " 'type': 'Well',\n", - " 'size_x': 4.851,\n", - " 'size_y': 4.851,\n", - " 'size_z': 10.67,\n", - " 'location': {'x': 65.9545,\n", - " 'y': 53.8145,\n", - " 'z': 3.55,\n", - " 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'well',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'working_plate',\n", - " 'max_volume': 360,\n", - " 'material_z_thickness': None,\n", - " 'compute_volume_from_height': None,\n", - " 'compute_height_from_volume': None,\n", - " 'bottom_type': 'unknown',\n", - " 'cross_section_type': 'circle'},\n", - " {'name': 'working_plate_D7',\n", - " 'type': 'Well',\n", - " 'size_x': 4.851,\n", - " 'size_y': 4.851,\n", - " 'size_z': 10.67,\n", - " 'location': {'x': 65.9545,\n", - " 'y': 44.8145,\n", - " 'z': 3.55,\n", - " 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'well',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'working_plate',\n", - " 'max_volume': 360,\n", - " 'material_z_thickness': None,\n", - " 'compute_volume_from_height': None,\n", - " 'compute_height_from_volume': None,\n", - " 'bottom_type': 'unknown',\n", - " 'cross_section_type': 'circle'},\n", - " {'name': 'working_plate_E7',\n", - " 'type': 'Well',\n", - " 'size_x': 4.851,\n", - " 'size_y': 4.851,\n", - " 'size_z': 10.67,\n", - " 'location': {'x': 65.9545,\n", - " 'y': 35.8145,\n", - " 'z': 3.55,\n", - " 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'well',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'working_plate',\n", - " 'max_volume': 360,\n", - " 'material_z_thickness': None,\n", - " 'compute_volume_from_height': None,\n", - " 'compute_height_from_volume': None,\n", - " 'bottom_type': 'unknown',\n", - " 'cross_section_type': 'circle'},\n", - " {'name': 'working_plate_F7',\n", - " 'type': 'Well',\n", - " 'size_x': 4.851,\n", - " 'size_y': 4.851,\n", - " 'size_z': 10.67,\n", - " 'location': {'x': 65.9545,\n", - " 'y': 26.8145,\n", - " 'z': 3.55,\n", - " 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'well',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'working_plate',\n", - " 'max_volume': 360,\n", - " 'material_z_thickness': None,\n", - " 'compute_volume_from_height': None,\n", - " 'compute_height_from_volume': None,\n", - " 'bottom_type': 'unknown',\n", - " 'cross_section_type': 'circle'},\n", - " {'name': 'working_plate_G7',\n", - " 'type': 'Well',\n", - " 'size_x': 4.851,\n", - " 'size_y': 4.851,\n", - " 'size_z': 10.67,\n", - " 'location': {'x': 65.9545,\n", - " 'y': 17.8145,\n", - " 'z': 3.55,\n", - " 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'well',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'working_plate',\n", - " 'max_volume': 360,\n", - " 'material_z_thickness': None,\n", - " 'compute_volume_from_height': None,\n", - " 'compute_height_from_volume': None,\n", - " 'bottom_type': 'unknown',\n", - " 'cross_section_type': 'circle'},\n", - " {'name': 'working_plate_H7',\n", - " 'type': 'Well',\n", - " 'size_x': 4.851,\n", - " 'size_y': 4.851,\n", - " 'size_z': 10.67,\n", - " 'location': {'x': 65.9545,\n", - " 'y': 8.8145,\n", - " 'z': 3.55,\n", - " 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'well',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'working_plate',\n", - " 'max_volume': 360,\n", - " 'material_z_thickness': None,\n", - " 'compute_volume_from_height': None,\n", - " 'compute_height_from_volume': None,\n", - " 'bottom_type': 'unknown',\n", - " 'cross_section_type': 'circle'},\n", - " {'name': 'working_plate_A8',\n", - " 'type': 'Well',\n", - " 'size_x': 4.851,\n", - " 'size_y': 4.851,\n", - " 'size_z': 10.67,\n", - " 'location': {'x': 74.9545,\n", - " 'y': 71.8145,\n", - " 'z': 3.55,\n", - " 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'well',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'working_plate',\n", - " 'max_volume': 360,\n", - " 'material_z_thickness': None,\n", - " 'compute_volume_from_height': None,\n", - " 'compute_height_from_volume': None,\n", - " 'bottom_type': 'unknown',\n", - " 'cross_section_type': 'circle'},\n", - " {'name': 'working_plate_B8',\n", - " 'type': 'Well',\n", - " 'size_x': 4.851,\n", - " 'size_y': 4.851,\n", - " 'size_z': 10.67,\n", - " 'location': {'x': 74.9545,\n", - " 'y': 62.8145,\n", - " 'z': 3.55,\n", - " 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'well',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'working_plate',\n", - " 'max_volume': 360,\n", - " 'material_z_thickness': None,\n", - " 'compute_volume_from_height': None,\n", - " 'compute_height_from_volume': None,\n", - " 'bottom_type': 'unknown',\n", - " 'cross_section_type': 'circle'},\n", - " {'name': 'working_plate_C8',\n", - " 'type': 'Well',\n", - " 'size_x': 4.851,\n", - " 'size_y': 4.851,\n", - " 'size_z': 10.67,\n", - " 'location': {'x': 74.9545,\n", - " 'y': 53.8145,\n", - " 'z': 3.55,\n", - " 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'well',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'working_plate',\n", - " 'max_volume': 360,\n", - " 'material_z_thickness': None,\n", - " 'compute_volume_from_height': None,\n", - " 'compute_height_from_volume': None,\n", - " 'bottom_type': 'unknown',\n", - " 'cross_section_type': 'circle'},\n", - " {'name': 'working_plate_D8',\n", - " 'type': 'Well',\n", - " 'size_x': 4.851,\n", - " 'size_y': 4.851,\n", - " 'size_z': 10.67,\n", - " 'location': {'x': 74.9545,\n", - " 'y': 44.8145,\n", - " 'z': 3.55,\n", - " 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'well',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'working_plate',\n", - " 'max_volume': 360,\n", - " 'material_z_thickness': None,\n", - " 'compute_volume_from_height': None,\n", - " 'compute_height_from_volume': None,\n", - " 'bottom_type': 'unknown',\n", - " 'cross_section_type': 'circle'},\n", - " {'name': 'working_plate_E8',\n", - " 'type': 'Well',\n", - " 'size_x': 4.851,\n", - " 'size_y': 4.851,\n", - " 'size_z': 10.67,\n", - " 'location': {'x': 74.9545,\n", - " 'y': 35.8145,\n", - " 'z': 3.55,\n", - " 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'well',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'working_plate',\n", - " 'max_volume': 360,\n", - " 'material_z_thickness': None,\n", - " 'compute_volume_from_height': None,\n", - " 'compute_height_from_volume': None,\n", - " 'bottom_type': 'unknown',\n", - " 'cross_section_type': 'circle'},\n", - " {'name': 'working_plate_F8',\n", - " 'type': 'Well',\n", - " 'size_x': 4.851,\n", - " 'size_y': 4.851,\n", - " 'size_z': 10.67,\n", - " 'location': {'x': 74.9545,\n", - " 'y': 26.8145,\n", - " 'z': 3.55,\n", - " 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'well',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'working_plate',\n", - " 'max_volume': 360,\n", - " 'material_z_thickness': None,\n", - " 'compute_volume_from_height': None,\n", - " 'compute_height_from_volume': None,\n", - " 'bottom_type': 'unknown',\n", - " 'cross_section_type': 'circle'},\n", - " {'name': 'working_plate_G8',\n", - " 'type': 'Well',\n", - " 'size_x': 4.851,\n", - " 'size_y': 4.851,\n", - " 'size_z': 10.67,\n", - " 'location': {'x': 74.9545,\n", - " 'y': 17.8145,\n", - " 'z': 3.55,\n", - " 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'well',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'working_plate',\n", - " 'max_volume': 360,\n", - " 'material_z_thickness': None,\n", - " 'compute_volume_from_height': None,\n", - " 'compute_height_from_volume': None,\n", - " 'bottom_type': 'unknown',\n", - " 'cross_section_type': 'circle'},\n", - " {'name': 'working_plate_H8',\n", - " 'type': 'Well',\n", - " 'size_x': 4.851,\n", - " 'size_y': 4.851,\n", - " 'size_z': 10.67,\n", - " 'location': {'x': 74.9545,\n", - " 'y': 8.8145,\n", - " 'z': 3.55,\n", - " 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'well',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'working_plate',\n", - " 'max_volume': 360,\n", - " 'material_z_thickness': None,\n", - " 'compute_volume_from_height': None,\n", - " 'compute_height_from_volume': None,\n", - " 'bottom_type': 'unknown',\n", - " 'cross_section_type': 'circle'},\n", - " {'name': 'working_plate_A9',\n", - " 'type': 'Well',\n", - " 'size_x': 4.851,\n", - " 'size_y': 4.851,\n", - " 'size_z': 10.67,\n", - " 'location': {'x': 83.9545,\n", - " 'y': 71.8145,\n", - " 'z': 3.55,\n", - " 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'well',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'working_plate',\n", - " 'max_volume': 360,\n", - " 'material_z_thickness': None,\n", - " 'compute_volume_from_height': None,\n", - " 'compute_height_from_volume': None,\n", - " 'bottom_type': 'unknown',\n", - " 'cross_section_type': 'circle'},\n", - " {'name': 'working_plate_B9',\n", - " 'type': 'Well',\n", - " 'size_x': 4.851,\n", - " 'size_y': 4.851,\n", - " 'size_z': 10.67,\n", - " 'location': {'x': 83.9545,\n", - " 'y': 62.8145,\n", - " 'z': 3.55,\n", - " 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'well',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'working_plate',\n", - " 'max_volume': 360,\n", - " 'material_z_thickness': None,\n", - " 'compute_volume_from_height': None,\n", - " 'compute_height_from_volume': None,\n", - " 'bottom_type': 'unknown',\n", - " 'cross_section_type': 'circle'},\n", - " {'name': 'working_plate_C9',\n", - " 'type': 'Well',\n", - " 'size_x': 4.851,\n", - " 'size_y': 4.851,\n", - " 'size_z': 10.67,\n", - " 'location': {'x': 83.9545,\n", - " 'y': 53.8145,\n", - " 'z': 3.55,\n", - " 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'well',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'working_plate',\n", - " 'max_volume': 360,\n", - " 'material_z_thickness': None,\n", - " 'compute_volume_from_height': None,\n", - " 'compute_height_from_volume': None,\n", - " 'bottom_type': 'unknown',\n", - " 'cross_section_type': 'circle'},\n", - " {'name': 'working_plate_D9',\n", - " 'type': 'Well',\n", - " 'size_x': 4.851,\n", - " 'size_y': 4.851,\n", - " 'size_z': 10.67,\n", - " 'location': {'x': 83.9545,\n", - " 'y': 44.8145,\n", - " 'z': 3.55,\n", - " 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'well',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'working_plate',\n", - " 'max_volume': 360,\n", - " 'material_z_thickness': None,\n", - " 'compute_volume_from_height': None,\n", - " 'compute_height_from_volume': None,\n", - " 'bottom_type': 'unknown',\n", - " 'cross_section_type': 'circle'},\n", - " {'name': 'working_plate_E9',\n", - " 'type': 'Well',\n", - " 'size_x': 4.851,\n", - " 'size_y': 4.851,\n", - " 'size_z': 10.67,\n", - " 'location': {'x': 83.9545,\n", - " 'y': 35.8145,\n", - " 'z': 3.55,\n", - " 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'well',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'working_plate',\n", - " 'max_volume': 360,\n", - " 'material_z_thickness': None,\n", - " 'compute_volume_from_height': None,\n", - " 'compute_height_from_volume': None,\n", - " 'bottom_type': 'unknown',\n", - " 'cross_section_type': 'circle'},\n", - " {'name': 'working_plate_F9',\n", - " 'type': 'Well',\n", - " 'size_x': 4.851,\n", - " 'size_y': 4.851,\n", - " 'size_z': 10.67,\n", - " 'location': {'x': 83.9545,\n", - " 'y': 26.8145,\n", - " 'z': 3.55,\n", - " 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'well',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'working_plate',\n", - " 'max_volume': 360,\n", - " 'material_z_thickness': None,\n", - " 'compute_volume_from_height': None,\n", - " 'compute_height_from_volume': None,\n", - " 'bottom_type': 'unknown',\n", - " 'cross_section_type': 'circle'},\n", - " {'name': 'working_plate_G9',\n", - " 'type': 'Well',\n", - " 'size_x': 4.851,\n", - " 'size_y': 4.851,\n", - " 'size_z': 10.67,\n", - " 'location': {'x': 83.9545,\n", - " 'y': 17.8145,\n", - " 'z': 3.55,\n", - " 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'well',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'working_plate',\n", - " 'max_volume': 360,\n", - " 'material_z_thickness': None,\n", - " 'compute_volume_from_height': None,\n", - " 'compute_height_from_volume': None,\n", - " 'bottom_type': 'unknown',\n", - " 'cross_section_type': 'circle'},\n", - " {'name': 'working_plate_H9',\n", - " 'type': 'Well',\n", - " 'size_x': 4.851,\n", - " 'size_y': 4.851,\n", - " 'size_z': 10.67,\n", - " 'location': {'x': 83.9545,\n", - " 'y': 8.8145,\n", - " 'z': 3.55,\n", - " 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'well',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'working_plate',\n", - " 'max_volume': 360,\n", - " 'material_z_thickness': None,\n", - " 'compute_volume_from_height': None,\n", - " 'compute_height_from_volume': None,\n", - " 'bottom_type': 'unknown',\n", - " 'cross_section_type': 'circle'},\n", - " {'name': 'working_plate_A10',\n", - " 'type': 'Well',\n", - " 'size_x': 4.851,\n", - " 'size_y': 4.851,\n", - " 'size_z': 10.67,\n", - " 'location': {'x': 92.9545,\n", - " 'y': 71.8145,\n", - " 'z': 3.55,\n", - " 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'well',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'working_plate',\n", - " 'max_volume': 360,\n", - " 'material_z_thickness': None,\n", - " 'compute_volume_from_height': None,\n", - " 'compute_height_from_volume': None,\n", - " 'bottom_type': 'unknown',\n", - " 'cross_section_type': 'circle'},\n", - " {'name': 'working_plate_B10',\n", - " 'type': 'Well',\n", - " 'size_x': 4.851,\n", - " 'size_y': 4.851,\n", - " 'size_z': 10.67,\n", - " 'location': {'x': 92.9545,\n", - " 'y': 62.8145,\n", - " 'z': 3.55,\n", - " 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'well',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'working_plate',\n", - " 'max_volume': 360,\n", - " 'material_z_thickness': None,\n", - " 'compute_volume_from_height': None,\n", - " 'compute_height_from_volume': None,\n", - " 'bottom_type': 'unknown',\n", - " 'cross_section_type': 'circle'},\n", - " {'name': 'working_plate_C10',\n", - " 'type': 'Well',\n", - " 'size_x': 4.851,\n", - " 'size_y': 4.851,\n", - " 'size_z': 10.67,\n", - " 'location': {'x': 92.9545,\n", - " 'y': 53.8145,\n", - " 'z': 3.55,\n", - " 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'well',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'working_plate',\n", - " 'max_volume': 360,\n", - " 'material_z_thickness': None,\n", - " 'compute_volume_from_height': None,\n", - " 'compute_height_from_volume': None,\n", - " 'bottom_type': 'unknown',\n", - " 'cross_section_type': 'circle'},\n", - " {'name': 'working_plate_D10',\n", - " 'type': 'Well',\n", - " 'size_x': 4.851,\n", - " 'size_y': 4.851,\n", - " 'size_z': 10.67,\n", - " 'location': {'x': 92.9545,\n", - " 'y': 44.8145,\n", - " 'z': 3.55,\n", - " 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'well',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'working_plate',\n", - " 'max_volume': 360,\n", - " 'material_z_thickness': None,\n", - " 'compute_volume_from_height': None,\n", - " 'compute_height_from_volume': None,\n", - " 'bottom_type': 'unknown',\n", - " 'cross_section_type': 'circle'},\n", - " {'name': 'working_plate_E10',\n", - " 'type': 'Well',\n", - " 'size_x': 4.851,\n", - " 'size_y': 4.851,\n", - " 'size_z': 10.67,\n", - " 'location': {'x': 92.9545,\n", - " 'y': 35.8145,\n", - " 'z': 3.55,\n", - " 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'well',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'working_plate',\n", - " 'max_volume': 360,\n", - " 'material_z_thickness': None,\n", - " 'compute_volume_from_height': None,\n", - " 'compute_height_from_volume': None,\n", - " 'bottom_type': 'unknown',\n", - " 'cross_section_type': 'circle'},\n", - " {'name': 'working_plate_F10',\n", - " 'type': 'Well',\n", - " 'size_x': 4.851,\n", - " 'size_y': 4.851,\n", - " 'size_z': 10.67,\n", - " 'location': {'x': 92.9545,\n", - " 'y': 26.8145,\n", - " 'z': 3.55,\n", - " 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'well',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'working_plate',\n", - " 'max_volume': 360,\n", - " 'material_z_thickness': None,\n", - " 'compute_volume_from_height': None,\n", - " 'compute_height_from_volume': None,\n", - " 'bottom_type': 'unknown',\n", - " 'cross_section_type': 'circle'},\n", - " {'name': 'working_plate_G10',\n", - " 'type': 'Well',\n", - " 'size_x': 4.851,\n", - " 'size_y': 4.851,\n", - " 'size_z': 10.67,\n", - " 'location': {'x': 92.9545,\n", - " 'y': 17.8145,\n", - " 'z': 3.55,\n", - " 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'well',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'working_plate',\n", - " 'max_volume': 360,\n", - " 'material_z_thickness': None,\n", - " 'compute_volume_from_height': None,\n", - " 'compute_height_from_volume': None,\n", - " 'bottom_type': 'unknown',\n", - " 'cross_section_type': 'circle'},\n", - " {'name': 'working_plate_H10',\n", - " 'type': 'Well',\n", - " 'size_x': 4.851,\n", - " 'size_y': 4.851,\n", - " 'size_z': 10.67,\n", - " 'location': {'x': 92.9545,\n", - " 'y': 8.8145,\n", - " 'z': 3.55,\n", - " 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'well',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'working_plate',\n", - " 'max_volume': 360,\n", - " 'material_z_thickness': None,\n", - " 'compute_volume_from_height': None,\n", - " 'compute_height_from_volume': None,\n", - " 'bottom_type': 'unknown',\n", - " 'cross_section_type': 'circle'},\n", - " {'name': 'working_plate_A11',\n", - " 'type': 'Well',\n", - " 'size_x': 4.851,\n", - " 'size_y': 4.851,\n", - " 'size_z': 10.67,\n", - " 'location': {'x': 101.9545,\n", - " 'y': 71.8145,\n", - " 'z': 3.55,\n", - " 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'well',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'working_plate',\n", - " 'max_volume': 360,\n", - " 'material_z_thickness': None,\n", - " 'compute_volume_from_height': None,\n", - " 'compute_height_from_volume': None,\n", - " 'bottom_type': 'unknown',\n", - " 'cross_section_type': 'circle'},\n", - " {'name': 'working_plate_B11',\n", - " 'type': 'Well',\n", - " 'size_x': 4.851,\n", - " 'size_y': 4.851,\n", - " 'size_z': 10.67,\n", - " 'location': {'x': 101.9545,\n", - " 'y': 62.8145,\n", - " 'z': 3.55,\n", - " 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'well',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'working_plate',\n", - " 'max_volume': 360,\n", - " 'material_z_thickness': None,\n", - " 'compute_volume_from_height': None,\n", - " 'compute_height_from_volume': None,\n", - " 'bottom_type': 'unknown',\n", - " 'cross_section_type': 'circle'},\n", - " {'name': 'working_plate_C11',\n", - " 'type': 'Well',\n", - " 'size_x': 4.851,\n", - " 'size_y': 4.851,\n", - " 'size_z': 10.67,\n", - " 'location': {'x': 101.9545,\n", - " 'y': 53.8145,\n", - " 'z': 3.55,\n", - " 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'well',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'working_plate',\n", - " 'max_volume': 360,\n", - " 'material_z_thickness': None,\n", - " 'compute_volume_from_height': None,\n", - " 'compute_height_from_volume': None,\n", - " 'bottom_type': 'unknown',\n", - " 'cross_section_type': 'circle'},\n", - " {'name': 'working_plate_D11',\n", - " 'type': 'Well',\n", - " 'size_x': 4.851,\n", - " 'size_y': 4.851,\n", - " 'size_z': 10.67,\n", - " 'location': {'x': 101.9545,\n", - " 'y': 44.8145,\n", - " 'z': 3.55,\n", - " 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'well',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'working_plate',\n", - " 'max_volume': 360,\n", - " 'material_z_thickness': None,\n", - " 'compute_volume_from_height': None,\n", - " 'compute_height_from_volume': None,\n", - " 'bottom_type': 'unknown',\n", - " 'cross_section_type': 'circle'},\n", - " {'name': 'working_plate_E11',\n", - " 'type': 'Well',\n", - " 'size_x': 4.851,\n", - " 'size_y': 4.851,\n", - " 'size_z': 10.67,\n", - " 'location': {'x': 101.9545,\n", - " 'y': 35.8145,\n", - " 'z': 3.55,\n", - " 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'well',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'working_plate',\n", - " 'max_volume': 360,\n", - " 'material_z_thickness': None,\n", - " 'compute_volume_from_height': None,\n", - " 'compute_height_from_volume': None,\n", - " 'bottom_type': 'unknown',\n", - " 'cross_section_type': 'circle'},\n", - " {'name': 'working_plate_F11',\n", - " 'type': 'Well',\n", - " 'size_x': 4.851,\n", - " 'size_y': 4.851,\n", - " 'size_z': 10.67,\n", - " 'location': {'x': 101.9545,\n", - " 'y': 26.8145,\n", - " 'z': 3.55,\n", - " 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'well',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'working_plate',\n", - " 'max_volume': 360,\n", - " 'material_z_thickness': None,\n", - " 'compute_volume_from_height': None,\n", - " 'compute_height_from_volume': None,\n", - " 'bottom_type': 'unknown',\n", - " 'cross_section_type': 'circle'},\n", - " {'name': 'working_plate_G11',\n", - " 'type': 'Well',\n", - " 'size_x': 4.851,\n", - " 'size_y': 4.851,\n", - " 'size_z': 10.67,\n", - " 'location': {'x': 101.9545,\n", - " 'y': 17.8145,\n", - " 'z': 3.55,\n", - " 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'well',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'working_plate',\n", - " 'max_volume': 360,\n", - " 'material_z_thickness': None,\n", - " 'compute_volume_from_height': None,\n", - " 'compute_height_from_volume': None,\n", - " 'bottom_type': 'unknown',\n", - " 'cross_section_type': 'circle'},\n", - " {'name': 'working_plate_H11',\n", - " 'type': 'Well',\n", - " 'size_x': 4.851,\n", - " 'size_y': 4.851,\n", - " 'size_z': 10.67,\n", - " 'location': {'x': 101.9545,\n", - " 'y': 8.8145,\n", - " 'z': 3.55,\n", - " 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'well',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'working_plate',\n", - " 'max_volume': 360,\n", - " 'material_z_thickness': None,\n", - " 'compute_volume_from_height': None,\n", - " 'compute_height_from_volume': None,\n", - " 'bottom_type': 'unknown',\n", - " 'cross_section_type': 'circle'},\n", - " {'name': 'working_plate_A12',\n", - " 'type': 'Well',\n", - " 'size_x': 4.851,\n", - " 'size_y': 4.851,\n", - " 'size_z': 10.67,\n", - " 'location': {'x': 110.9545,\n", - " 'y': 71.8145,\n", - " 'z': 3.55,\n", - " 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'well',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'working_plate',\n", - " 'max_volume': 360,\n", - " 'material_z_thickness': None,\n", - " 'compute_volume_from_height': None,\n", - " 'compute_height_from_volume': None,\n", - " 'bottom_type': 'unknown',\n", - " 'cross_section_type': 'circle'},\n", - " {'name': 'working_plate_B12',\n", - " 'type': 'Well',\n", - " 'size_x': 4.851,\n", - " 'size_y': 4.851,\n", - " 'size_z': 10.67,\n", - " 'location': {'x': 110.9545,\n", - " 'y': 62.8145,\n", - " 'z': 3.55,\n", - " 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'well',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'working_plate',\n", - " 'max_volume': 360,\n", - " 'material_z_thickness': None,\n", - " 'compute_volume_from_height': None,\n", - " 'compute_height_from_volume': None,\n", - " 'bottom_type': 'unknown',\n", - " 'cross_section_type': 'circle'},\n", - " {'name': 'working_plate_C12',\n", - " 'type': 'Well',\n", - " 'size_x': 4.851,\n", - " 'size_y': 4.851,\n", - " 'size_z': 10.67,\n", - " 'location': {'x': 110.9545,\n", - " 'y': 53.8145,\n", - " 'z': 3.55,\n", - " 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'well',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'working_plate',\n", - " 'max_volume': 360,\n", - " 'material_z_thickness': None,\n", - " 'compute_volume_from_height': None,\n", - " 'compute_height_from_volume': None,\n", - " 'bottom_type': 'unknown',\n", - " 'cross_section_type': 'circle'},\n", - " {'name': 'working_plate_D12',\n", - " 'type': 'Well',\n", - " 'size_x': 4.851,\n", - " 'size_y': 4.851,\n", - " 'size_z': 10.67,\n", - " 'location': {'x': 110.9545,\n", - " 'y': 44.8145,\n", - " 'z': 3.55,\n", - " 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'well',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'working_plate',\n", - " 'max_volume': 360,\n", - " 'material_z_thickness': None,\n", - " 'compute_volume_from_height': None,\n", - " 'compute_height_from_volume': None,\n", - " 'bottom_type': 'unknown',\n", - " 'cross_section_type': 'circle'},\n", - " {'name': 'working_plate_E12',\n", - " 'type': 'Well',\n", - " 'size_x': 4.851,\n", - " 'size_y': 4.851,\n", - " 'size_z': 10.67,\n", - " 'location': {'x': 110.9545,\n", - " 'y': 35.8145,\n", - " 'z': 3.55,\n", - " 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'well',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'working_plate',\n", - " 'max_volume': 360,\n", - " 'material_z_thickness': None,\n", - " 'compute_volume_from_height': None,\n", - " 'compute_height_from_volume': None,\n", - " 'bottom_type': 'unknown',\n", - " 'cross_section_type': 'circle'},\n", - " {'name': 'working_plate_F12',\n", - " 'type': 'Well',\n", - " 'size_x': 4.851,\n", - " 'size_y': 4.851,\n", - " 'size_z': 10.67,\n", - " 'location': {'x': 110.9545,\n", - " 'y': 26.8145,\n", - " 'z': 3.55,\n", - " 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'well',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'working_plate',\n", - " 'max_volume': 360,\n", - " 'material_z_thickness': None,\n", - " 'compute_volume_from_height': None,\n", - " 'compute_height_from_volume': None,\n", - " 'bottom_type': 'unknown',\n", - " 'cross_section_type': 'circle'},\n", - " {'name': 'working_plate_G12',\n", - " 'type': 'Well',\n", - " 'size_x': 4.851,\n", - " 'size_y': 4.851,\n", - " 'size_z': 10.67,\n", - " 'location': {'x': 110.9545,\n", - " 'y': 17.8145,\n", - " 'z': 3.55,\n", - " 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'well',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'working_plate',\n", - " 'max_volume': 360,\n", - " 'material_z_thickness': None,\n", - " 'compute_volume_from_height': None,\n", - " 'compute_height_from_volume': None,\n", - " 'bottom_type': 'unknown',\n", - " 'cross_section_type': 'circle'},\n", - " {'name': 'working_plate_H12',\n", - " 'type': 'Well',\n", - " 'size_x': 4.851,\n", - " 'size_y': 4.851,\n", - " 'size_z': 10.67,\n", - " 'location': {'x': 110.9545,\n", - " 'y': 8.8145,\n", - " 'z': 3.55,\n", - " 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'well',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'working_plate',\n", - " 'max_volume': 360,\n", - " 'material_z_thickness': None,\n", - " 'compute_volume_from_height': None,\n", - " 'compute_height_from_volume': None,\n", - " 'bottom_type': 'unknown',\n", - " 'cross_section_type': 'circle'}],\n", - " 'parent_name': 'deck',\n", - " 'ordering': ['A1',\n", - " 'B1',\n", - " 'C1',\n", - " 'D1',\n", - " 'E1',\n", - " 'F1',\n", - " 'G1',\n", - " 'H1',\n", - " 'A2',\n", - " 'B2',\n", - " 'C2',\n", - " 'D2',\n", - " 'E2',\n", - " 'F2',\n", - " 'G2',\n", - " 'H2',\n", - " 'A3',\n", - " 'B3',\n", - " 'C3',\n", - " 'D3',\n", - " 'E3',\n", - " 'F3',\n", - " 'G3',\n", - " 'H3',\n", - " 'A4',\n", - " 'B4',\n", - " 'C4',\n", - " 'D4',\n", - " 'E4',\n", - " 'F4',\n", - " 'G4',\n", - " 'H4',\n", - " 'A5',\n", - " 'B5',\n", - " 'C5',\n", - " 'D5',\n", - " 'E5',\n", - " 'F5',\n", - " 'G5',\n", - " 'H5',\n", - " 'A6',\n", - " 'B6',\n", - " 'C6',\n", - " 'D6',\n", - " 'E6',\n", - " 'F6',\n", - " 'G6',\n", - " 'H6',\n", - " 'A7',\n", - " 'B7',\n", - " 'C7',\n", - " 'D7',\n", - " 'E7',\n", - " 'F7',\n", - " 'G7',\n", - " 'H7',\n", - " 'A8',\n", - " 'B8',\n", - " 'C8',\n", - " 'D8',\n", - " 'E8',\n", - " 'F8',\n", - " 'G8',\n", - " 'H8',\n", - " 'A9',\n", - " 'B9',\n", - " 'C9',\n", - " 'D9',\n", - " 'E9',\n", - " 'F9',\n", - " 'G9',\n", - " 'H9',\n", - " 'A10',\n", - " 'B10',\n", - " 'C10',\n", - " 'D10',\n", - " 'E10',\n", - " 'F10',\n", - " 'G10',\n", - " 'H10',\n", - " 'A11',\n", - " 'B11',\n", - " 'C11',\n", - " 'D11',\n", - " 'E11',\n", - " 'F11',\n", - " 'G11',\n", - " 'H11',\n", - " 'A12',\n", - " 'B12',\n", - " 'C12',\n", - " 'D12',\n", - " 'E12',\n", - " 'F12',\n", - " 'G12',\n", - " 'H12']},\n", - " {'name': 'reagent_stock',\n", - " 'type': 'Plate',\n", - " 'size_x': 127.76,\n", - " 'size_y': 85.48,\n", - " 'size_z': 31.4,\n", - " 'location': {'x': 265.0, 'y': 0.0, 'z': 0.0, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'plate',\n", - " 'model': 'NEST 12 Well Reservoir 15 mL',\n", - " 'children': [{'name': 'reagent_stock_A1',\n", - " 'type': 'Well',\n", - " 'size_x': 8.2,\n", - " 'size_y': 71.2,\n", - " 'size_z': 26.85,\n", - " 'location': {'x': 10.28, 'y': 7.18, 'z': 4.55, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'well',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'reagent_stock',\n", - " 'max_volume': 15000,\n", - " 'material_z_thickness': None,\n", - " 'compute_volume_from_height': None,\n", - " 'compute_height_from_volume': None,\n", - " 'bottom_type': 'unknown',\n", - " 'cross_section_type': 'rectangle'},\n", - " {'name': 'reagent_stock_A2',\n", - " 'type': 'Well',\n", - " 'size_x': 8.2,\n", - " 'size_y': 71.2,\n", - " 'size_z': 26.85,\n", - " 'location': {'x': 19.28, 'y': 7.18, 'z': 4.55, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'well',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'reagent_stock',\n", - " 'max_volume': 15000,\n", - " 'material_z_thickness': None,\n", - " 'compute_volume_from_height': None,\n", - " 'compute_height_from_volume': None,\n", - " 'bottom_type': 'unknown',\n", - " 'cross_section_type': 'rectangle'},\n", - " {'name': 'reagent_stock_A3',\n", - " 'type': 'Well',\n", - " 'size_x': 8.2,\n", - " 'size_y': 71.2,\n", - " 'size_z': 26.85,\n", - " 'location': {'x': 28.28, 'y': 7.18, 'z': 4.55, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'well',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'reagent_stock',\n", - " 'max_volume': 15000,\n", - " 'material_z_thickness': None,\n", - " 'compute_volume_from_height': None,\n", - " 'compute_height_from_volume': None,\n", - " 'bottom_type': 'unknown',\n", - " 'cross_section_type': 'rectangle'},\n", - " {'name': 'reagent_stock_A4',\n", - " 'type': 'Well',\n", - " 'size_x': 8.2,\n", - " 'size_y': 71.2,\n", - " 'size_z': 26.85,\n", - " 'location': {'x': 37.28, 'y': 7.18, 'z': 4.55, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'well',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'reagent_stock',\n", - " 'max_volume': 15000,\n", - " 'material_z_thickness': None,\n", - " 'compute_volume_from_height': None,\n", - " 'compute_height_from_volume': None,\n", - " 'bottom_type': 'unknown',\n", - " 'cross_section_type': 'rectangle'},\n", - " {'name': 'reagent_stock_A5',\n", - " 'type': 'Well',\n", - " 'size_x': 8.2,\n", - " 'size_y': 71.2,\n", - " 'size_z': 26.85,\n", - " 'location': {'x': 46.28, 'y': 7.18, 'z': 4.55, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'well',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'reagent_stock',\n", - " 'max_volume': 15000,\n", - " 'material_z_thickness': None,\n", - " 'compute_volume_from_height': None,\n", - " 'compute_height_from_volume': None,\n", - " 'bottom_type': 'unknown',\n", - " 'cross_section_type': 'rectangle'},\n", - " {'name': 'reagent_stock_A6',\n", - " 'type': 'Well',\n", - " 'size_x': 8.2,\n", - " 'size_y': 71.2,\n", - " 'size_z': 26.85,\n", - " 'location': {'x': 55.28, 'y': 7.18, 'z': 4.55, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'well',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'reagent_stock',\n", - " 'max_volume': 15000,\n", - " 'material_z_thickness': None,\n", - " 'compute_volume_from_height': None,\n", - " 'compute_height_from_volume': None,\n", - " 'bottom_type': 'unknown',\n", - " 'cross_section_type': 'rectangle'},\n", - " {'name': 'reagent_stock_A7',\n", - " 'type': 'Well',\n", - " 'size_x': 8.2,\n", - " 'size_y': 71.2,\n", - " 'size_z': 26.85,\n", - " 'location': {'x': 64.28, 'y': 7.18, 'z': 4.55, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'well',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'reagent_stock',\n", - " 'max_volume': 15000,\n", - " 'material_z_thickness': None,\n", - " 'compute_volume_from_height': None,\n", - " 'compute_height_from_volume': None,\n", - " 'bottom_type': 'unknown',\n", - " 'cross_section_type': 'rectangle'},\n", - " {'name': 'reagent_stock_A8',\n", - " 'type': 'Well',\n", - " 'size_x': 8.2,\n", - " 'size_y': 71.2,\n", - " 'size_z': 26.85,\n", - " 'location': {'x': 73.28, 'y': 7.18, 'z': 4.55, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'well',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'reagent_stock',\n", - " 'max_volume': 15000,\n", - " 'material_z_thickness': None,\n", - " 'compute_volume_from_height': None,\n", - " 'compute_height_from_volume': None,\n", - " 'bottom_type': 'unknown',\n", - " 'cross_section_type': 'rectangle'},\n", - " {'name': 'reagent_stock_A9',\n", - " 'type': 'Well',\n", - " 'size_x': 8.2,\n", - " 'size_y': 71.2,\n", - " 'size_z': 26.85,\n", - " 'location': {'x': 82.28, 'y': 7.18, 'z': 4.55, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'well',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'reagent_stock',\n", - " 'max_volume': 15000,\n", - " 'material_z_thickness': None,\n", - " 'compute_volume_from_height': None,\n", - " 'compute_height_from_volume': None,\n", - " 'bottom_type': 'unknown',\n", - " 'cross_section_type': 'rectangle'},\n", - " {'name': 'reagent_stock_A10',\n", - " 'type': 'Well',\n", - " 'size_x': 8.2,\n", - " 'size_y': 71.2,\n", - " 'size_z': 26.85,\n", - " 'location': {'x': 91.28, 'y': 7.18, 'z': 4.55, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'well',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'reagent_stock',\n", - " 'max_volume': 15000,\n", - " 'material_z_thickness': None,\n", - " 'compute_volume_from_height': None,\n", - " 'compute_height_from_volume': None,\n", - " 'bottom_type': 'unknown',\n", - " 'cross_section_type': 'rectangle'},\n", - " {'name': 'reagent_stock_A11',\n", - " 'type': 'Well',\n", - " 'size_x': 8.2,\n", - " 'size_y': 71.2,\n", - " 'size_z': 26.85,\n", - " 'location': {'x': 100.28, 'y': 7.18, 'z': 4.55, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'well',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'reagent_stock',\n", - " 'max_volume': 15000,\n", - " 'material_z_thickness': None,\n", - " 'compute_volume_from_height': None,\n", - " 'compute_height_from_volume': None,\n", - " 'bottom_type': 'unknown',\n", - " 'cross_section_type': 'rectangle'},\n", - " {'name': 'reagent_stock_A12',\n", - " 'type': 'Well',\n", - " 'size_x': 8.2,\n", - " 'size_y': 71.2,\n", - " 'size_z': 26.85,\n", - " 'location': {'x': 109.28, 'y': 7.18, 'z': 4.55, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'well',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'reagent_stock',\n", - " 'max_volume': 15000,\n", - " 'material_z_thickness': None,\n", - " 'compute_volume_from_height': None,\n", - " 'compute_height_from_volume': None,\n", - " 'bottom_type': 'unknown',\n", - " 'cross_section_type': 'rectangle'}],\n", - " 'parent_name': 'deck',\n", - " 'ordering': ['A1',\n", - " 'A2',\n", - " 'A3',\n", - " 'A4',\n", - " 'A5',\n", - " 'A6',\n", - " 'A7',\n", - " 'A8',\n", - " 'A9',\n", - " 'A10',\n", - " 'A11',\n", - " 'A12']},\n", - " {'name': 'waste_liq',\n", - " 'type': 'Plate',\n", - " 'size_x': 127.76,\n", - " 'size_y': 85.48,\n", - " 'size_z': 31.4,\n", - " 'location': {'x': 265.0, 'y': 181.0, 'z': 0.0, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'plate',\n", - " 'model': 'NEST 1 Well Reservoir 195 mL',\n", - " 'children': [{'name': 'waste_liq_A1',\n", - " 'type': 'Well',\n", - " 'size_x': 106.8,\n", - " 'size_y': 71.2,\n", - " 'size_z': 25,\n", - " 'location': {'x': 10.48, 'y': 7.14, 'z': 4.55, 'type': 'Coordinate'},\n", - " 'rotation': {'x': 0, 'y': 0, 'z': 0, 'type': 'Rotation'},\n", - " 'category': 'well',\n", - " 'model': None,\n", - " 'children': [],\n", - " 'parent_name': 'waste_liq',\n", - " 'max_volume': 195000,\n", - " 'material_z_thickness': None,\n", - " 'compute_volume_from_height': None,\n", - " 'compute_height_from_volume': None,\n", - " 'bottom_type': 'unknown',\n", - " 'cross_section_type': 'rectangle'}],\n", - " 'parent_name': 'deck',\n", - " 'ordering': ['A1']}],\n", - " 'parent_name': 'lh_deck'}],\n", - " 'parent_name': None,\n", - " 'backend': {'type': 'LiquidHandlerChatterboxBackend', 'num_channels': 8}}" - ] - }, - "execution_count": 6, - "metadata": {}, - "output_type": "execute_result" - } - ], - "execution_count": 6 - }, - { - "cell_type": "code", - "id": "70094125", - "metadata": { - "ExecuteTime": { - "end_time": "2025-06-08T14:25:19.507693Z", - "start_time": "2025-06-08T14:25:18.487272Z" - } - }, - "source": [ - "await lh.remove_liquid(\n", - " vols=[MEDIUM_VOL]*12,\n", - " sources=cells_all,\n", - " waste_liquid=waste_liq,\n", - " top=[-0.2],\n", - " liquid_height=[0.2,0],\n", - " flow_rates=[0.2,3],\n", - " offsets=[Coordinate(-2.5, 0, 0),Coordinate(0, 0, -5)]\n", - ")" - ], - "outputs": [ - { - "ename": "AttributeError", - "evalue": "'LiquidHandler' object has no attribute 'remove_liquid'", - "output_type": "error", - "traceback": [ - "\u001B[31m---------------------------------------------------------------------------\u001B[39m", - "\u001B[31mAttributeError\u001B[39m Traceback (most recent call last)", - "\u001B[36mCell\u001B[39m\u001B[36m \u001B[39m\u001B[32mIn[6]\u001B[39m\u001B[32m, line 1\u001B[39m\n\u001B[32m----> \u001B[39m\u001B[32m1\u001B[39m \u001B[38;5;28;01mawait\u001B[39;00m \u001B[43mlh\u001B[49m\u001B[43m.\u001B[49m\u001B[43mremove_liquid\u001B[49m(\n\u001B[32m 2\u001B[39m vols=[MEDIUM_VOL]*\u001B[32m12\u001B[39m,\n\u001B[32m 3\u001B[39m sources=cells_all,\n\u001B[32m 4\u001B[39m waste_liquid=waste_liq,\n\u001B[32m 5\u001B[39m top=[-\u001B[32m0.2\u001B[39m],\n\u001B[32m 6\u001B[39m liquid_height=[\u001B[32m0.2\u001B[39m,\u001B[32m0\u001B[39m],\n\u001B[32m 7\u001B[39m flow_rates=[\u001B[32m0.2\u001B[39m,\u001B[32m3\u001B[39m],\n\u001B[32m 8\u001B[39m offsets=[Coordinate(-\u001B[32m2.5\u001B[39m, \u001B[32m0\u001B[39m, \u001B[32m0\u001B[39m),Coordinate(\u001B[32m0\u001B[39m, \u001B[32m0\u001B[39m, -\u001B[32m5\u001B[39m)]\n\u001B[32m 9\u001B[39m )\n", - "\u001B[31mAttributeError\u001B[39m: 'LiquidHandler' object has no attribute 'remove_liquid'" - ] - } - ], - "execution_count": 6 - }, - { - "cell_type": "code", - "execution_count": 15, - "id": "91d07db6", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Picking up tips:\n", - "pip# resource offset tip type max volume (µL) fitting depth (mm) tip length (mm) filter \n", - " p0: tiprack_1_E2 0,0,0 Tip 300.0 7.47 59.3 No \n", - "Tracker only has 0uL, please pay attention.\n", - "Container has too little liquid: 75.0uL > 0uL, please pay attention.\n", - "Air bubble detected, please pay attention.\n", - "Aspirating:\n", - "pip# vol(ul) resource offset flow rate blowout lld_z \n", - " p0: 75.0 working_plate_A1 -2.5,0,0 0.2 None 0.2 \n", - "[Well(name=waste_liq_A1, location=Coordinate(010.480, 007.140, 004.550), size_x=106.8, size_y=71.2, size_z=25, category=well)]\n", - "Tracker only has 0uL, please pay attention.\n", - "Container has too little liquid: 75.0uL > 0uL, please pay attention.\n", - "Air bubble detected, please pay attention.\n", - "Dispensing:\n", - "pip# vol(ul) resource offset flow rate blowout lld_z \n", - " p0: 75.0 waste_liq_A1 0,0,-5 3.0 None None \n", - "Dropping tips:\n", - "pip# resource offset tip type max volume (µL) fitting depth (mm) tip length (mm) filter \n", - " p0: trash 0,0.0,0 Tip 300.0 7.47 59.3 No \n", - "Picking up tips:\n", - "pip# resource offset tip type max volume (µL) fitting depth (mm) tip length (mm) filter \n", - " p0: tiprack_1_F2 0,0,0 Tip 300.0 7.47 59.3 No \n", - "Tracker only has 0uL, please pay attention.\n", - "Container has too little liquid: 75.0uL > 0uL, please pay attention.\n", - "Air bubble detected, please pay attention.\n", - "Aspirating:\n", - "pip# vol(ul) resource offset flow rate blowout lld_z \n", - " p0: 75.0 working_plate_A2 -2.5,0,0 0.2 None 0.2 \n", - "[Well(name=waste_liq_A1, location=Coordinate(010.480, 007.140, 004.550), size_x=106.8, size_y=71.2, size_z=25, category=well)]\n", - "Tracker only has 0uL, please pay attention.\n", - "Container has too little liquid: 75.0uL > 0uL, please pay attention.\n", - "Air bubble detected, please pay attention.\n", - "Dispensing:\n", - "pip# vol(ul) resource offset flow rate blowout lld_z \n", - " p0: 75.0 waste_liq_A1 0,0,-5 3.0 None None \n", - "Dropping tips:\n", - "pip# resource offset tip type max volume (µL) fitting depth (mm) tip length (mm) filter \n", - " p0: trash 0,0.0,0 Tip 300.0 7.47 59.3 No \n", - "Picking up tips:\n", - "pip# resource offset tip type max volume (µL) fitting depth (mm) tip length (mm) filter \n", - " p0: tiprack_1_G2 0,0,0 Tip 300.0 7.47 59.3 No \n", - "Tracker only has 0uL, please pay attention.\n", - "Container has too little liquid: 75.0uL > 0uL, please pay attention.\n", - "Air bubble detected, please pay attention.\n", - "Aspirating:\n", - "pip# vol(ul) resource offset flow rate blowout lld_z \n", - " p0: 75.0 working_plate_A3 -2.5,0,0 0.2 None 0.2 \n", - "[Well(name=waste_liq_A1, location=Coordinate(010.480, 007.140, 004.550), size_x=106.8, size_y=71.2, size_z=25, category=well)]\n", - "Tracker only has 0uL, please pay attention.\n", - "Container has too little liquid: 75.0uL > 0uL, please pay attention.\n", - "Air bubble detected, please pay attention.\n", - "Dispensing:\n", - "pip# vol(ul) resource offset flow rate blowout lld_z \n", - " p0: 75.0 waste_liq_A1 0,0,-5 3.0 None None \n", - "Dropping tips:\n", - "pip# resource offset tip type max volume (µL) fitting depth (mm) tip length (mm) filter \n", - " p0: trash 0,0.0,0 Tip 300.0 7.47 59.3 No \n", - "Picking up tips:\n", - "pip# resource offset tip type max volume (µL) fitting depth (mm) tip length (mm) filter \n", - " p0: tiprack_1_H2 0,0,0 Tip 300.0 7.47 59.3 No \n", - "Tracker only has 0uL, please pay attention.\n", - "Container has too little liquid: 75.0uL > 0uL, please pay attention.\n", - "Air bubble detected, please pay attention.\n", - "Aspirating:\n", - "pip# vol(ul) resource offset flow rate blowout lld_z \n", - " p0: 75.0 working_plate_A4 -2.5,0,0 0.2 None 0.2 \n", - "[Well(name=waste_liq_A1, location=Coordinate(010.480, 007.140, 004.550), size_x=106.8, size_y=71.2, size_z=25, category=well)]\n", - "Tracker only has 0uL, please pay attention.\n", - "Container has too little liquid: 75.0uL > 0uL, please pay attention.\n", - "Air bubble detected, please pay attention.\n", - "Dispensing:\n", - "pip# vol(ul) resource offset flow rate blowout lld_z \n", - " p0: 75.0 waste_liq_A1 0,0,-5 3.0 None None \n", - "Dropping tips:\n", - "pip# resource offset tip type max volume (µL) fitting depth (mm) tip length (mm) filter \n", - " p0: trash 0,0.0,0 Tip 300.0 7.47 59.3 No \n", - "Picking up tips:\n", - "pip# resource offset tip type max volume (µL) fitting depth (mm) tip length (mm) filter \n", - " p0: tiprack_1_A3 0,0,0 Tip 300.0 7.47 59.3 No \n", - "Tracker only has 0uL, please pay attention.\n", - "Container has too little liquid: 75.0uL > 0uL, please pay attention.\n", - "Air bubble detected, please pay attention.\n", - "Aspirating:\n", - "pip# vol(ul) resource offset flow rate blowout lld_z \n", - " p0: 75.0 working_plate_A5 -2.5,0,0 0.2 None 0.2 \n", - "[Well(name=waste_liq_A1, location=Coordinate(010.480, 007.140, 004.550), size_x=106.8, size_y=71.2, size_z=25, category=well)]\n", - "Tracker only has 0uL, please pay attention.\n", - "Container has too little liquid: 75.0uL > 0uL, please pay attention.\n", - "Air bubble detected, please pay attention.\n", - "Dispensing:\n", - "pip# vol(ul) resource offset flow rate blowout lld_z \n", - " p0: 75.0 waste_liq_A1 0,0,-5 3.0 None None \n", - "Dropping tips:\n", - "pip# resource offset tip type max volume (µL) fitting depth (mm) tip length (mm) filter \n", - " p0: trash 0,0.0,0 Tip 300.0 7.47 59.3 No \n", - "Picking up tips:\n", - "pip# resource offset tip type max volume (µL) fitting depth (mm) tip length (mm) filter \n", - " p0: tiprack_1_B3 0,0,0 Tip 300.0 7.47 59.3 No \n", - "Tracker only has 0uL, please pay attention.\n", - "Container has too little liquid: 75.0uL > 0uL, please pay attention.\n", - "Air bubble detected, please pay attention.\n", - "Aspirating:\n", - "pip# vol(ul) resource offset flow rate blowout lld_z \n", - " p0: 75.0 working_plate_A6 -2.5,0,0 0.2 None 0.2 \n", - "[Well(name=waste_liq_A1, location=Coordinate(010.480, 007.140, 004.550), size_x=106.8, size_y=71.2, size_z=25, category=well)]\n", - "Tracker only has 0uL, please pay attention.\n", - "Container has too little liquid: 75.0uL > 0uL, please pay attention.\n", - "Air bubble detected, please pay attention.\n", - "Dispensing:\n", - "pip# vol(ul) resource offset flow rate blowout lld_z \n", - " p0: 75.0 waste_liq_A1 0,0,-5 3.0 None None \n", - "Dropping tips:\n", - "pip# resource offset tip type max volume (µL) fitting depth (mm) tip length (mm) filter \n", - " p0: trash 0,0.0,0 Tip 300.0 7.47 59.3 No \n", - "Picking up tips:\n", - "pip# resource offset tip type max volume (µL) fitting depth (mm) tip length (mm) filter \n", - " p0: tiprack_1_C3 0,0,0 Tip 300.0 7.47 59.3 No \n", - "Tracker only has 0uL, please pay attention.\n", - "Container has too little liquid: 75.0uL > 0uL, please pay attention.\n", - "Air bubble detected, please pay attention.\n", - "Aspirating:\n", - "pip# vol(ul) resource offset flow rate blowout lld_z \n", - " p0: 75.0 working_plate_A7 -2.5,0,0 0.2 None 0.2 \n", - "[Well(name=waste_liq_A1, location=Coordinate(010.480, 007.140, 004.550), size_x=106.8, size_y=71.2, size_z=25, category=well)]\n", - "Tracker only has 0uL, please pay attention.\n", - "Container has too little liquid: 75.0uL > 0uL, please pay attention.\n", - "Air bubble detected, please pay attention.\n", - "Dispensing:\n", - "pip# vol(ul) resource offset flow rate blowout lld_z \n", - " p0: 75.0 waste_liq_A1 0,0,-5 3.0 None None \n", - "Dropping tips:\n", - "pip# resource offset tip type max volume (µL) fitting depth (mm) tip length (mm) filter \n", - " p0: trash 0,0.0,0 Tip 300.0 7.47 59.3 No \n", - "Picking up tips:\n", - "pip# resource offset tip type max volume (µL) fitting depth (mm) tip length (mm) filter \n", - " p0: tiprack_1_D3 0,0,0 Tip 300.0 7.47 59.3 No \n", - "Tracker only has 0uL, please pay attention.\n", - "Container has too little liquid: 75.0uL > 0uL, please pay attention.\n", - "Air bubble detected, please pay attention.\n", - "Aspirating:\n", - "pip# vol(ul) resource offset flow rate blowout lld_z \n", - " p0: 75.0 working_plate_A8 -2.5,0,0 0.2 None 0.2 \n", - "[Well(name=waste_liq_A1, location=Coordinate(010.480, 007.140, 004.550), size_x=106.8, size_y=71.2, size_z=25, category=well)]\n", - "Tracker only has 0uL, please pay attention.\n", - "Container has too little liquid: 75.0uL > 0uL, please pay attention.\n", - "Air bubble detected, please pay attention.\n", - "Dispensing:\n", - "pip# vol(ul) resource offset flow rate blowout lld_z \n", - " p0: 75.0 waste_liq_A1 0,0,-5 3.0 None None \n", - "Dropping tips:\n", - "pip# resource offset tip type max volume (µL) fitting depth (mm) tip length (mm) filter \n", - " p0: trash 0,0.0,0 Tip 300.0 7.47 59.3 No \n", - "Picking up tips:\n", - "pip# resource offset tip type max volume (µL) fitting depth (mm) tip length (mm) filter \n", - " p0: tiprack_1_E3 0,0,0 Tip 300.0 7.47 59.3 No \n", - "Tracker only has 0uL, please pay attention.\n", - "Container has too little liquid: 75.0uL > 0uL, please pay attention.\n", - "Air bubble detected, please pay attention.\n", - "Aspirating:\n", - "pip# vol(ul) resource offset flow rate blowout lld_z \n", - " p0: 75.0 working_plate_A9 -2.5,0,0 0.2 None 0.2 \n", - "[Well(name=waste_liq_A1, location=Coordinate(010.480, 007.140, 004.550), size_x=106.8, size_y=71.2, size_z=25, category=well)]\n", - "Tracker only has 0uL, please pay attention.\n", - "Container has too little liquid: 75.0uL > 0uL, please pay attention.\n", - "Air bubble detected, please pay attention.\n", - "Dispensing:\n", - "pip# vol(ul) resource offset flow rate blowout lld_z \n", - " p0: 75.0 waste_liq_A1 0,0,-5 3.0 None None \n", - "Dropping tips:\n", - "pip# resource offset tip type max volume (µL) fitting depth (mm) tip length (mm) filter \n", - " p0: trash 0,0.0,0 Tip 300.0 7.47 59.3 No \n", - "Picking up tips:\n", - "pip# resource offset tip type max volume (µL) fitting depth (mm) tip length (mm) filter \n", - " p0: tiprack_1_F3 0,0,0 Tip 300.0 7.47 59.3 No \n", - "Tracker only has 0uL, please pay attention.\n", - "Container has too little liquid: 75.0uL > 0uL, please pay attention.\n", - "Air bubble detected, please pay attention.\n", - "Aspirating:\n", - "pip# vol(ul) resource offset flow rate blowout lld_z \n", - " p0: 75.0 working_plate_A10 -2.5,0,0 0.2 None 0.2 \n", - "[Well(name=waste_liq_A1, location=Coordinate(010.480, 007.140, 004.550), size_x=106.8, size_y=71.2, size_z=25, category=well)]\n", - "Tracker only has 0uL, please pay attention.\n", - "Container has too little liquid: 75.0uL > 0uL, please pay attention.\n", - "Air bubble detected, please pay attention.\n", - "Dispensing:\n", - "pip# vol(ul) resource offset flow rate blowout lld_z \n", - " p0: 75.0 waste_liq_A1 0,0,-5 3.0 None None \n", - "Dropping tips:\n", - "pip# resource offset tip type max volume (µL) fitting depth (mm) tip length (mm) filter \n", - " p0: trash 0,0.0,0 Tip 300.0 7.47 59.3 No \n", - "Picking up tips:\n", - "pip# resource offset tip type max volume (µL) fitting depth (mm) tip length (mm) filter \n", - " p0: tiprack_1_G3 0,0,0 Tip 300.0 7.47 59.3 No \n", - "Tracker only has 0uL, please pay attention.\n", - "Container has too little liquid: 75.0uL > 0uL, please pay attention.\n", - "Air bubble detected, please pay attention.\n", - "Aspirating:\n", - "pip# vol(ul) resource offset flow rate blowout lld_z \n", - " p0: 75.0 working_plate_A11 -2.5,0,0 0.2 None 0.2 \n", - "[Well(name=waste_liq_A1, location=Coordinate(010.480, 007.140, 004.550), size_x=106.8, size_y=71.2, size_z=25, category=well)]\n", - "Tracker only has 0uL, please pay attention.\n", - "Container has too little liquid: 75.0uL > 0uL, please pay attention.\n", - "Air bubble detected, please pay attention.\n", - "Dispensing:\n", - "pip# vol(ul) resource offset flow rate blowout lld_z \n", - " p0: 75.0 waste_liq_A1 0,0,-5 3.0 None None \n", - "Dropping tips:\n", - "pip# resource offset tip type max volume (µL) fitting depth (mm) tip length (mm) filter \n", - " p0: trash 0,0.0,0 Tip 300.0 7.47 59.3 No \n", - "Picking up tips:\n", - "pip# resource offset tip type max volume (µL) fitting depth (mm) tip length (mm) filter \n", - " p0: tiprack_1_H3 0,0,0 Tip 300.0 7.47 59.3 No \n", - "Tracker only has 0uL, please pay attention.\n", - "Container has too little liquid: 75.0uL > 0uL, please pay attention.\n", - "Air bubble detected, please pay attention.\n", - "Aspirating:\n", - "pip# vol(ul) resource offset flow rate blowout lld_z \n", - " p0: 75.0 working_plate_A12 -2.5,0,0 0.2 None 0.2 \n", - "[Well(name=waste_liq_A1, location=Coordinate(010.480, 007.140, 004.550), size_x=106.8, size_y=71.2, size_z=25, category=well)]\n", - "Tracker only has 0uL, please pay attention.\n", - "Container has too little liquid: 75.0uL > 0uL, please pay attention.\n", - "Air bubble detected, please pay attention.\n", - "Dispensing:\n", - "pip# vol(ul) resource offset flow rate blowout lld_z \n", - " p0: 75.0 waste_liq_A1 0,0,-5 3.0 None None \n", - "Dropping tips:\n", - "pip# resource offset tip type max volume (µL) fitting depth (mm) tip length (mm) filter \n", - " p0: trash 0,0.0,0 Tip 300.0 7.47 59.3 No \n" - ] - } - ], - "source": [ - "await lh.remove_liquid(\n", - " vols=[PBS_VOL*1.5]*12,\n", - " top=[-0.2],\n", - " liquid_height=[0.2,None],\n", - " offsets=[Coordinate(-2.5,0,0),Coordinate(0,0,-5)],\n", - " flow_rates=[0.2,3],\n", - " sources=cells_all,\n", - " waste_liquid=waste_liq\n", - ")" - ] - }, - { - "cell_type": "code", - "execution_count": 16, - "id": "baa8f751", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Picking up tips:\n", - "pip# resource offset tip type max volume (µL) fitting depth (mm) tip length (mm) filter \n", - " p0: tiprack_1_A4 0,0,0 Tip 300.0 7.47 59.3 No \n", - "Aspirating:\n", - "pip# vol(ul) resource offset flow rate blowout lld_z \n", - " p0: 30.0 reagent_stock_A2 0,0,0 0.5 None 0.5 \n", - "[Well(name=working_plate_A1, location=Coordinate(011.954, 071.814, 003.550), size_x=4.851, size_y=4.851, size_z=10.67, category=well)]\n", - "Dispensing:\n", - "pip# vol(ul) resource offset flow rate blowout lld_z \n", - " p0: 30.0 working_plate_A1 0,0,0 0.3 None 5.0 \n", - "Aspirating:\n", - "pip# vol(ul) resource offset flow rate blowout lld_z \n", - " p0: 0.0 working_plate_A1 -2.4,0,0 None None None \n", - "Aspirating:\n", - "pip# vol(ul) resource offset flow rate blowout lld_z \n", - " p0: 0.0 working_plate_A1 2.4,0,0 None None None \n", - "Aspirating:\n", - "pip# vol(ul) resource offset flow rate blowout lld_z \n", - " p0: 30.0 reagent_stock_A2 0,0,0 0.5 None 0.5 \n", - "[Well(name=working_plate_A2, location=Coordinate(020.954, 071.814, 003.550), size_x=4.851, size_y=4.851, size_z=10.67, category=well)]\n", - "Dispensing:\n", - "pip# vol(ul) resource offset flow rate blowout lld_z \n", - " p0: 30.0 working_plate_A2 0,0,0 0.3 None 5.0 \n", - "Aspirating:\n", - "pip# vol(ul) resource offset flow rate blowout lld_z \n", - " p0: 0.0 working_plate_A2 -2.4,0,0 None None None \n", - "Aspirating:\n", - "pip# vol(ul) resource offset flow rate blowout lld_z \n", - " p0: 0.0 working_plate_A2 2.4,0,0 None None None \n", - "Aspirating:\n", - "pip# vol(ul) resource offset flow rate blowout lld_z \n", - " p0: 30.0 reagent_stock_A2 0,0,0 0.5 None 0.5 \n", - "[Well(name=working_plate_A3, location=Coordinate(029.954, 071.814, 003.550), size_x=4.851, size_y=4.851, size_z=10.67, category=well)]\n", - "Dispensing:\n", - "pip# vol(ul) resource offset flow rate blowout lld_z \n", - " p0: 30.0 working_plate_A3 0,0,0 0.3 None 5.0 \n", - "Aspirating:\n", - "pip# vol(ul) resource offset flow rate blowout lld_z \n", - " p0: 0.0 working_plate_A3 -2.4,0,0 None None None \n", - "Aspirating:\n", - "pip# vol(ul) resource offset flow rate blowout lld_z \n", - " p0: 0.0 working_plate_A3 2.4,0,0 None None None \n", - "Aspirating:\n", - "pip# vol(ul) resource offset flow rate blowout lld_z \n", - " p0: 30.0 reagent_stock_A2 0,0,0 0.5 None 0.5 \n", - "[Well(name=working_plate_A4, location=Coordinate(038.955, 071.814, 003.550), size_x=4.851, size_y=4.851, size_z=10.67, category=well)]\n", - "Dispensing:\n", - "pip# vol(ul) resource offset flow rate blowout lld_z \n", - " p0: 30.0 working_plate_A4 0,0,0 0.3 None 5.0 \n", - "Aspirating:\n", - "pip# vol(ul) resource offset flow rate blowout lld_z \n", - " p0: 0.0 working_plate_A4 -2.4,0,0 None None None \n", - "Aspirating:\n", - "pip# vol(ul) resource offset flow rate blowout lld_z \n", - " p0: 0.0 working_plate_A4 2.4,0,0 None None None \n", - "Aspirating:\n", - "pip# vol(ul) resource offset flow rate blowout lld_z \n", - " p0: 30.0 reagent_stock_A2 0,0,0 0.5 None 0.5 \n", - "[Well(name=working_plate_A5, location=Coordinate(047.955, 071.814, 003.550), size_x=4.851, size_y=4.851, size_z=10.67, category=well)]\n", - "Dispensing:\n", - "pip# vol(ul) resource offset flow rate blowout lld_z \n", - " p0: 30.0 working_plate_A5 0,0,0 0.3 None 5.0 \n", - "Aspirating:\n", - "pip# vol(ul) resource offset flow rate blowout lld_z \n", - " p0: 0.0 working_plate_A5 -2.4,0,0 None None None \n", - "Aspirating:\n", - "pip# vol(ul) resource offset flow rate blowout lld_z \n", - " p0: 0.0 working_plate_A5 2.4,0,0 None None None \n", - "Aspirating:\n", - "pip# vol(ul) resource offset flow rate blowout lld_z \n", - " p0: 30.0 reagent_stock_A2 0,0,0 0.5 None 0.5 \n", - "[Well(name=working_plate_A6, location=Coordinate(056.955, 071.814, 003.550), size_x=4.851, size_y=4.851, size_z=10.67, category=well)]\n", - "Dispensing:\n", - "pip# vol(ul) resource offset flow rate blowout lld_z \n", - " p0: 30.0 working_plate_A6 0,0,0 0.3 None 5.0 \n", - "Aspirating:\n", - "pip# vol(ul) resource offset flow rate blowout lld_z \n", - " p0: 0.0 working_plate_A6 -2.4,0,0 None None None \n", - "Aspirating:\n", - "pip# vol(ul) resource offset flow rate blowout lld_z \n", - " p0: 0.0 working_plate_A6 2.4,0,0 None None None \n", - "Aspirating:\n", - "pip# vol(ul) resource offset flow rate blowout lld_z \n", - " p0: 30.0 reagent_stock_A2 0,0,0 0.5 None 0.5 \n", - "[Well(name=working_plate_A7, location=Coordinate(065.954, 071.814, 003.550), size_x=4.851, size_y=4.851, size_z=10.67, category=well)]\n", - "Dispensing:\n", - "pip# vol(ul) resource offset flow rate blowout lld_z \n", - " p0: 30.0 working_plate_A7 0,0,0 0.3 None 5.0 \n", - "Aspirating:\n", - "pip# vol(ul) resource offset flow rate blowout lld_z \n", - " p0: 0.0 working_plate_A7 -2.4,0,0 None None None \n", - "Aspirating:\n", - "pip# vol(ul) resource offset flow rate blowout lld_z \n", - " p0: 0.0 working_plate_A7 2.4,0,0 None None None \n", - "Aspirating:\n", - "pip# vol(ul) resource offset flow rate blowout lld_z \n", - " p0: 30.0 reagent_stock_A2 0,0,0 0.5 None 0.5 \n", - "[Well(name=working_plate_A8, location=Coordinate(074.954, 071.814, 003.550), size_x=4.851, size_y=4.851, size_z=10.67, category=well)]\n", - "Dispensing:\n", - "pip# vol(ul) resource offset flow rate blowout lld_z \n", - " p0: 30.0 working_plate_A8 0,0,0 0.3 None 5.0 \n", - "Aspirating:\n", - "pip# vol(ul) resource offset flow rate blowout lld_z \n", - " p0: 0.0 working_plate_A8 -2.4,0,0 None None None \n", - "Aspirating:\n", - "pip# vol(ul) resource offset flow rate blowout lld_z \n", - " p0: 0.0 working_plate_A8 2.4,0,0 None None None \n", - "Aspirating:\n", - "pip# vol(ul) resource offset flow rate blowout lld_z \n", - " p0: 30.0 reagent_stock_A2 0,0,0 0.5 None 0.5 \n", - "[Well(name=working_plate_A9, location=Coordinate(083.954, 071.814, 003.550), size_x=4.851, size_y=4.851, size_z=10.67, category=well)]\n", - "Dispensing:\n", - "pip# vol(ul) resource offset flow rate blowout lld_z \n", - " p0: 30.0 working_plate_A9 0,0,0 0.3 None 5.0 \n", - "Aspirating:\n", - "pip# vol(ul) resource offset flow rate blowout lld_z \n", - " p0: 0.0 working_plate_A9 -2.4,0,0 None None None \n", - "Aspirating:\n", - "pip# vol(ul) resource offset flow rate blowout lld_z \n", - " p0: 0.0 working_plate_A9 2.4,0,0 None None None \n", - "Aspirating:\n", - "pip# vol(ul) resource offset flow rate blowout lld_z \n", - " p0: 30.0 reagent_stock_A2 0,0,0 0.5 None 0.5 \n", - "[Well(name=working_plate_A10, location=Coordinate(092.954, 071.814, 003.550), size_x=4.851, size_y=4.851, size_z=10.67, category=well)]\n", - "Dispensing:\n", - "pip# vol(ul) resource offset flow rate blowout lld_z \n", - " p0: 30.0 working_plate_A10 0,0,0 0.3 None 5.0 \n", - "Aspirating:\n", - "pip# vol(ul) resource offset flow rate blowout lld_z \n", - " p0: 0.0 working_plate_A10 -2.4,0,0 None None None \n", - "Aspirating:\n", - "pip# vol(ul) resource offset flow rate blowout lld_z \n", - " p0: 0.0 working_plate_A10 2.4,0,0 None None None \n", - "Aspirating:\n", - "pip# vol(ul) resource offset flow rate blowout lld_z \n", - " p0: 30.0 reagent_stock_A2 0,0,0 0.5 None 0.5 \n", - "[Well(name=working_plate_A11, location=Coordinate(101.954, 071.814, 003.550), size_x=4.851, size_y=4.851, size_z=10.67, category=well)]\n", - "Dispensing:\n", - "pip# vol(ul) resource offset flow rate blowout lld_z \n", - " p0: 30.0 working_plate_A11 0,0,0 0.3 None 5.0 \n", - "Aspirating:\n", - "pip# vol(ul) resource offset flow rate blowout lld_z \n", - " p0: 0.0 working_plate_A11 -2.4,0,0 None None None \n", - "Aspirating:\n", - "pip# vol(ul) resource offset flow rate blowout lld_z \n", - " p0: 0.0 working_plate_A11 2.4,0,0 None None None \n", - "Aspirating:\n", - "pip# vol(ul) resource offset flow rate blowout lld_z \n", - " p0: 30.0 reagent_stock_A2 0,0,0 0.5 None 0.5 \n", - "[Well(name=working_plate_A12, location=Coordinate(110.954, 071.814, 003.550), size_x=4.851, size_y=4.851, size_z=10.67, category=well)]\n", - "Dispensing:\n", - "pip# vol(ul) resource offset flow rate blowout lld_z \n", - " p0: 30.0 working_plate_A12 0,0,0 0.3 None 5.0 \n", - "Aspirating:\n", - "pip# vol(ul) resource offset flow rate blowout lld_z \n", - " p0: 0.0 working_plate_A12 -2.4,0,0 None None None \n", - "Aspirating:\n", - "pip# vol(ul) resource offset flow rate blowout lld_z \n", - " p0: 0.0 working_plate_A12 2.4,0,0 None None None \n", - "Dropping tips:\n", - "pip# resource offset tip type max volume (µL) fitting depth (mm) tip length (mm) filter \n", - " p0: trash 0,0.0,0 Tip 300.0 7.47 59.3 No \n" - ] - } - ], - "source": [ - "await lh.add_liquid(\n", - " asp_vols=[LYSIS_VOL]*12,\n", - " dis_vols=[LYSIS_VOL]*12,\n", - " reagent_sources=[lysis],\n", - " targets=cells_all,\n", - " flow_rates=[0.5,0.3],\n", - " liquid_height=[0.5,5],\n", - " delays=[2,2]\n", - ")" - ] - }, - { - "cell_type": "code", - "execution_count": 17, - "id": "d55b0875", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 17, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "lh.custom_delay(180)" - ] - }, - { - "cell_type": "code", - "execution_count": 18, - "id": "20a281d3", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Picking up tips:\n", - "pip# resource offset tip type max volume (µL) fitting depth (mm) tip length (mm) filter \n", - " p0: tiprack_1_B4 0,0,0 Tip 300.0 7.47 59.3 No \n", - "Aspirating:\n", - "pip# vol(ul) resource offset flow rate blowout lld_z \n", - " p0: 100.0 reagent_stock_A3 0,0,0 0.75 20.0 0.5 \n", - "[Well(name=working_plate_A1, location=Coordinate(011.954, 071.814, 003.550), size_x=4.851, size_y=4.851, size_z=10.67, category=well)]\n", - "Tracker only has 100.0uL, please pay attention.\n", - "Container has too little liquid: 120.0uL > 100.0uL, please pay attention.\n", - "Air bubble detected, please pay attention.\n", - "Dispensing:\n", - "pip# vol(ul) resource offset flow rate blowout lld_z \n", - " p0: 120.0 working_plate_A1 0,0,0 0.75 None None \n", - "Aspirating:\n", - "pip# vol(ul) resource offset flow rate blowout lld_z \n", - " p0: 75.0 working_plate_A1 0,0,0 3.0 None 0.5 \n", - "[Well(name=working_plate_A1, location=Coordinate(011.954, 071.814, 003.550), size_x=4.851, size_y=4.851, size_z=10.67, category=well)]\n", - "Dispensing:\n", - "pip# vol(ul) resource offset flow rate blowout lld_z \n", - " p0: 75.0 working_plate_A1 0,0,0 3.0 None 0.5 \n", - "Aspirating:\n", - "pip# vol(ul) resource offset flow rate blowout lld_z \n", - " p0: 75.0 working_plate_A1 0,0,0 3.0 None 0.5 \n", - "[Well(name=working_plate_A1, location=Coordinate(011.954, 071.814, 003.550), size_x=4.851, size_y=4.851, size_z=10.67, category=well)]\n", - "Dispensing:\n", - "pip# vol(ul) resource offset flow rate blowout lld_z \n", - " p0: 75.0 working_plate_A1 0,0,0 3.0 None 0.5 \n", - "Aspirating:\n", - "pip# vol(ul) resource offset flow rate blowout lld_z \n", - " p0: 75.0 working_plate_A1 0,0,0 3.0 None 0.5 \n", - "[Well(name=working_plate_A1, location=Coordinate(011.954, 071.814, 003.550), size_x=4.851, size_y=4.851, size_z=10.67, category=well)]\n", - "Dispensing:\n", - "pip# vol(ul) resource offset flow rate blowout lld_z \n", - " p0: 75.0 working_plate_A1 0,0,0 3.0 None 0.5 \n", - "Aspirating:\n", - "pip# vol(ul) resource offset flow rate blowout lld_z \n", - " p0: 0.0 working_plate_A1 -2.4,0,0 None None None \n", - "Aspirating:\n", - "pip# vol(ul) resource offset flow rate blowout lld_z \n", - " p0: 0.0 working_plate_A1 2.4,0,0 None None None \n", - "Aspirating:\n", - "pip# vol(ul) resource offset flow rate blowout lld_z \n", - " p0: 100.0 reagent_stock_A3 0,0,0 0.75 20.0 0.5 \n", - "[Well(name=working_plate_A2, location=Coordinate(020.954, 071.814, 003.550), size_x=4.851, size_y=4.851, size_z=10.67, category=well)]\n", - "Tracker only has 100.0uL, please pay attention.\n", - "Container has too little liquid: 120.0uL > 100.0uL, please pay attention.\n", - "Air bubble detected, please pay attention.\n", - "Dispensing:\n", - "pip# vol(ul) resource offset flow rate blowout lld_z \n", - " p0: 120.0 working_plate_A2 0,0,0 0.75 None None \n", - "Aspirating:\n", - "pip# vol(ul) resource offset flow rate blowout lld_z \n", - " p0: 75.0 working_plate_A2 0,0,0 3.0 None 0.5 \n", - "[Well(name=working_plate_A2, location=Coordinate(020.954, 071.814, 003.550), size_x=4.851, size_y=4.851, size_z=10.67, category=well)]\n", - "Dispensing:\n", - "pip# vol(ul) resource offset flow rate blowout lld_z \n", - " p0: 75.0 working_plate_A2 0,0,0 3.0 None 0.5 \n", - "Aspirating:\n", - "pip# vol(ul) resource offset flow rate blowout lld_z \n", - " p0: 75.0 working_plate_A2 0,0,0 3.0 None 0.5 \n", - "[Well(name=working_plate_A2, location=Coordinate(020.954, 071.814, 003.550), size_x=4.851, size_y=4.851, size_z=10.67, category=well)]\n", - "Dispensing:\n", - "pip# vol(ul) resource offset flow rate blowout lld_z \n", - " p0: 75.0 working_plate_A2 0,0,0 3.0 None 0.5 \n", - "Aspirating:\n", - "pip# vol(ul) resource offset flow rate blowout lld_z \n", - " p0: 75.0 working_plate_A2 0,0,0 3.0 None 0.5 \n", - "[Well(name=working_plate_A2, location=Coordinate(020.954, 071.814, 003.550), size_x=4.851, size_y=4.851, size_z=10.67, category=well)]\n", - "Dispensing:\n", - "pip# vol(ul) resource offset flow rate blowout lld_z \n", - " p0: 75.0 working_plate_A2 0,0,0 3.0 None 0.5 \n", - "Aspirating:\n", - "pip# vol(ul) resource offset flow rate blowout lld_z \n", - " p0: 0.0 working_plate_A2 -2.4,0,0 None None None \n", - "Aspirating:\n", - "pip# vol(ul) resource offset flow rate blowout lld_z \n", - " p0: 0.0 working_plate_A2 2.4,0,0 None None None \n", - "Aspirating:\n", - "pip# vol(ul) resource offset flow rate blowout lld_z \n", - " p0: 100.0 reagent_stock_A3 0,0,0 0.75 20.0 0.5 \n", - "[Well(name=working_plate_A3, location=Coordinate(029.954, 071.814, 003.550), size_x=4.851, size_y=4.851, size_z=10.67, category=well)]\n", - "Tracker only has 100.0uL, please pay attention.\n", - "Container has too little liquid: 120.0uL > 100.0uL, please pay attention.\n", - "Air bubble detected, please pay attention.\n", - "Dispensing:\n", - "pip# vol(ul) resource offset flow rate blowout lld_z \n", - " p0: 120.0 working_plate_A3 0,0,0 0.75 None None \n", - "Aspirating:\n", - "pip# vol(ul) resource offset flow rate blowout lld_z \n", - " p0: 75.0 working_plate_A3 0,0,0 3.0 None 0.5 \n", - "[Well(name=working_plate_A3, location=Coordinate(029.954, 071.814, 003.550), size_x=4.851, size_y=4.851, size_z=10.67, category=well)]\n", - "Dispensing:\n", - "pip# vol(ul) resource offset flow rate blowout lld_z \n", - " p0: 75.0 working_plate_A3 0,0,0 3.0 None 0.5 \n", - "Aspirating:\n", - "pip# vol(ul) resource offset flow rate blowout lld_z \n", - " p0: 75.0 working_plate_A3 0,0,0 3.0 None 0.5 \n", - "[Well(name=working_plate_A3, location=Coordinate(029.954, 071.814, 003.550), size_x=4.851, size_y=4.851, size_z=10.67, category=well)]\n", - "Dispensing:\n", - "pip# vol(ul) resource offset flow rate blowout lld_z \n", - " p0: 75.0 working_plate_A3 0,0,0 3.0 None 0.5 \n", - "Aspirating:\n", - "pip# vol(ul) resource offset flow rate blowout lld_z \n", - " p0: 75.0 working_plate_A3 0,0,0 3.0 None 0.5 \n", - "[Well(name=working_plate_A3, location=Coordinate(029.954, 071.814, 003.550), size_x=4.851, size_y=4.851, size_z=10.67, category=well)]\n", - "Dispensing:\n", - "pip# vol(ul) resource offset flow rate blowout lld_z \n", - " p0: 75.0 working_plate_A3 0,0,0 3.0 None 0.5 \n", - "Aspirating:\n", - "pip# vol(ul) resource offset flow rate blowout lld_z \n", - " p0: 0.0 working_plate_A3 -2.4,0,0 None None None \n", - "Aspirating:\n", - "pip# vol(ul) resource offset flow rate blowout lld_z \n", - " p0: 0.0 working_plate_A3 2.4,0,0 None None None \n", - "Aspirating:\n", - "pip# vol(ul) resource offset flow rate blowout lld_z \n", - " p0: 100.0 reagent_stock_A3 0,0,0 0.75 20.0 0.5 \n", - "[Well(name=working_plate_A4, location=Coordinate(038.955, 071.814, 003.550), size_x=4.851, size_y=4.851, size_z=10.67, category=well)]\n", - "Tracker only has 100.0uL, please pay attention.\n", - "Container has too little liquid: 120.0uL > 100.0uL, please pay attention.\n", - "Air bubble detected, please pay attention.\n", - "Dispensing:\n", - "pip# vol(ul) resource offset flow rate blowout lld_z \n", - " p0: 120.0 working_plate_A4 0,0,0 0.75 None None \n", - "Aspirating:\n", - "pip# vol(ul) resource offset flow rate blowout lld_z \n", - " p0: 75.0 working_plate_A4 0,0,0 3.0 None 0.5 \n", - "[Well(name=working_plate_A4, location=Coordinate(038.955, 071.814, 003.550), size_x=4.851, size_y=4.851, size_z=10.67, category=well)]\n", - "Dispensing:\n", - "pip# vol(ul) resource offset flow rate blowout lld_z \n", - " p0: 75.0 working_plate_A4 0,0,0 3.0 None 0.5 \n", - "Aspirating:\n", - "pip# vol(ul) resource offset flow rate blowout lld_z \n", - " p0: 75.0 working_plate_A4 0,0,0 3.0 None 0.5 \n", - "[Well(name=working_plate_A4, location=Coordinate(038.955, 071.814, 003.550), size_x=4.851, size_y=4.851, size_z=10.67, category=well)]\n", - "Dispensing:\n", - "pip# vol(ul) resource offset flow rate blowout lld_z \n", - " p0: 75.0 working_plate_A4 0,0,0 3.0 None 0.5 \n", - "Aspirating:\n", - "pip# vol(ul) resource offset flow rate blowout lld_z \n", - " p0: 75.0 working_plate_A4 0,0,0 3.0 None 0.5 \n", - "[Well(name=working_plate_A4, location=Coordinate(038.955, 071.814, 003.550), size_x=4.851, size_y=4.851, size_z=10.67, category=well)]\n", - "Dispensing:\n", - "pip# vol(ul) resource offset flow rate blowout lld_z \n", - " p0: 75.0 working_plate_A4 0,0,0 3.0 None 0.5 \n", - "Aspirating:\n", - "pip# vol(ul) resource offset flow rate blowout lld_z \n", - " p0: 0.0 working_plate_A4 -2.4,0,0 None None None \n", - "Aspirating:\n", - "pip# vol(ul) resource offset flow rate blowout lld_z \n", - " p0: 0.0 working_plate_A4 2.4,0,0 None None None \n", - "Aspirating:\n", - "pip# vol(ul) resource offset flow rate blowout lld_z \n", - " p0: 100.0 reagent_stock_A3 0,0,0 0.75 20.0 0.5 \n", - "[Well(name=working_plate_A5, location=Coordinate(047.955, 071.814, 003.550), size_x=4.851, size_y=4.851, size_z=10.67, category=well)]\n", - "Tracker only has 100.0uL, please pay attention.\n", - "Container has too little liquid: 120.0uL > 100.0uL, please pay attention.\n", - "Air bubble detected, please pay attention.\n", - "Dispensing:\n", - "pip# vol(ul) resource offset flow rate blowout lld_z \n", - " p0: 120.0 working_plate_A5 0,0,0 0.75 None None \n", - "Aspirating:\n", - "pip# vol(ul) resource offset flow rate blowout lld_z \n", - " p0: 75.0 working_plate_A5 0,0,0 3.0 None 0.5 \n", - "[Well(name=working_plate_A5, location=Coordinate(047.955, 071.814, 003.550), size_x=4.851, size_y=4.851, size_z=10.67, category=well)]\n", - "Dispensing:\n", - "pip# vol(ul) resource offset flow rate blowout lld_z \n", - " p0: 75.0 working_plate_A5 0,0,0 3.0 None 0.5 \n", - "Aspirating:\n", - "pip# vol(ul) resource offset flow rate blowout lld_z \n", - " p0: 75.0 working_plate_A5 0,0,0 3.0 None 0.5 \n", - "[Well(name=working_plate_A5, location=Coordinate(047.955, 071.814, 003.550), size_x=4.851, size_y=4.851, size_z=10.67, category=well)]\n", - "Dispensing:\n", - "pip# vol(ul) resource offset flow rate blowout lld_z \n", - " p0: 75.0 working_plate_A5 0,0,0 3.0 None 0.5 \n", - "Aspirating:\n", - "pip# vol(ul) resource offset flow rate blowout lld_z \n", - " p0: 75.0 working_plate_A5 0,0,0 3.0 None 0.5 \n", - "[Well(name=working_plate_A5, location=Coordinate(047.955, 071.814, 003.550), size_x=4.851, size_y=4.851, size_z=10.67, category=well)]\n", - "Dispensing:\n", - "pip# vol(ul) resource offset flow rate blowout lld_z \n", - " p0: 75.0 working_plate_A5 0,0,0 3.0 None 0.5 \n", - "Aspirating:\n", - "pip# vol(ul) resource offset flow rate blowout lld_z \n", - " p0: 0.0 working_plate_A5 -2.4,0,0 None None None \n", - "Aspirating:\n", - "pip# vol(ul) resource offset flow rate blowout lld_z \n", - " p0: 0.0 working_plate_A5 2.4,0,0 None None None \n", - "Aspirating:\n", - "pip# vol(ul) resource offset flow rate blowout lld_z \n", - " p0: 100.0 reagent_stock_A3 0,0,0 0.75 20.0 0.5 \n", - "[Well(name=working_plate_A6, location=Coordinate(056.955, 071.814, 003.550), size_x=4.851, size_y=4.851, size_z=10.67, category=well)]\n", - "Tracker only has 100.0uL, please pay attention.\n", - "Container has too little liquid: 120.0uL > 100.0uL, please pay attention.\n", - "Air bubble detected, please pay attention.\n", - "Dispensing:\n", - "pip# vol(ul) resource offset flow rate blowout lld_z \n", - " p0: 120.0 working_plate_A6 0,0,0 0.75 None None \n", - "Aspirating:\n", - "pip# vol(ul) resource offset flow rate blowout lld_z \n", - " p0: 75.0 working_plate_A6 0,0,0 3.0 None 0.5 \n", - "[Well(name=working_plate_A6, location=Coordinate(056.955, 071.814, 003.550), size_x=4.851, size_y=4.851, size_z=10.67, category=well)]\n", - "Dispensing:\n", - "pip# vol(ul) resource offset flow rate blowout lld_z \n", - " p0: 75.0 working_plate_A6 0,0,0 3.0 None 0.5 \n", - "Aspirating:\n", - "pip# vol(ul) resource offset flow rate blowout lld_z \n", - " p0: 75.0 working_plate_A6 0,0,0 3.0 None 0.5 \n", - "[Well(name=working_plate_A6, location=Coordinate(056.955, 071.814, 003.550), size_x=4.851, size_y=4.851, size_z=10.67, category=well)]\n", - "Dispensing:\n", - "pip# vol(ul) resource offset flow rate blowout lld_z \n", - " p0: 75.0 working_plate_A6 0,0,0 3.0 None 0.5 \n", - "Aspirating:\n", - "pip# vol(ul) resource offset flow rate blowout lld_z \n", - " p0: 75.0 working_plate_A6 0,0,0 3.0 None 0.5 \n", - "[Well(name=working_plate_A6, location=Coordinate(056.955, 071.814, 003.550), size_x=4.851, size_y=4.851, size_z=10.67, category=well)]\n", - "Dispensing:\n", - "pip# vol(ul) resource offset flow rate blowout lld_z \n", - " p0: 75.0 working_plate_A6 0,0,0 3.0 None 0.5 \n", - "Aspirating:\n", - "pip# vol(ul) resource offset flow rate blowout lld_z \n", - " p0: 0.0 working_plate_A6 -2.4,0,0 None None None \n", - "Aspirating:\n", - "pip# vol(ul) resource offset flow rate blowout lld_z \n", - " p0: 0.0 working_plate_A6 2.4,0,0 None None None \n", - "Aspirating:\n", - "pip# vol(ul) resource offset flow rate blowout lld_z \n", - " p0: 100.0 reagent_stock_A3 0,0,0 0.75 20.0 0.5 \n", - "[Well(name=working_plate_A7, location=Coordinate(065.954, 071.814, 003.550), size_x=4.851, size_y=4.851, size_z=10.67, category=well)]\n", - "Tracker only has 100.0uL, please pay attention.\n", - "Container has too little liquid: 120.0uL > 100.0uL, please pay attention.\n", - "Air bubble detected, please pay attention.\n", - "Dispensing:\n", - "pip# vol(ul) resource offset flow rate blowout lld_z \n", - " p0: 120.0 working_plate_A7 0,0,0 0.75 None None \n", - "Aspirating:\n", - "pip# vol(ul) resource offset flow rate blowout lld_z \n", - " p0: 75.0 working_plate_A7 0,0,0 3.0 None 0.5 \n", - "[Well(name=working_plate_A7, location=Coordinate(065.954, 071.814, 003.550), size_x=4.851, size_y=4.851, size_z=10.67, category=well)]\n", - "Dispensing:\n", - "pip# vol(ul) resource offset flow rate blowout lld_z \n", - " p0: 75.0 working_plate_A7 0,0,0 3.0 None 0.5 \n", - "Aspirating:\n", - "pip# vol(ul) resource offset flow rate blowout lld_z \n", - " p0: 75.0 working_plate_A7 0,0,0 3.0 None 0.5 \n", - "[Well(name=working_plate_A7, location=Coordinate(065.954, 071.814, 003.550), size_x=4.851, size_y=4.851, size_z=10.67, category=well)]\n", - "Dispensing:\n", - "pip# vol(ul) resource offset flow rate blowout lld_z \n", - " p0: 75.0 working_plate_A7 0,0,0 3.0 None 0.5 \n", - "Aspirating:\n", - "pip# vol(ul) resource offset flow rate blowout lld_z \n", - " p0: 75.0 working_plate_A7 0,0,0 3.0 None 0.5 \n", - "[Well(name=working_plate_A7, location=Coordinate(065.954, 071.814, 003.550), size_x=4.851, size_y=4.851, size_z=10.67, category=well)]\n", - "Dispensing:\n", - "pip# vol(ul) resource offset flow rate blowout lld_z \n", - " p0: 75.0 working_plate_A7 0,0,0 3.0 None 0.5 \n", - "Aspirating:\n", - "pip# vol(ul) resource offset flow rate blowout lld_z \n", - " p0: 0.0 working_plate_A7 -2.4,0,0 None None None \n", - "Aspirating:\n", - "pip# vol(ul) resource offset flow rate blowout lld_z \n", - " p0: 0.0 working_plate_A7 2.4,0,0 None None None \n", - "Aspirating:\n", - "pip# vol(ul) resource offset flow rate blowout lld_z \n", - " p0: 100.0 reagent_stock_A3 0,0,0 0.75 20.0 0.5 \n", - "[Well(name=working_plate_A8, location=Coordinate(074.954, 071.814, 003.550), size_x=4.851, size_y=4.851, size_z=10.67, category=well)]\n", - "Tracker only has 100.0uL, please pay attention.\n", - "Container has too little liquid: 120.0uL > 100.0uL, please pay attention.\n", - "Air bubble detected, please pay attention.\n", - "Dispensing:\n", - "pip# vol(ul) resource offset flow rate blowout lld_z \n", - " p0: 120.0 working_plate_A8 0,0,0 0.75 None None \n", - "Aspirating:\n", - "pip# vol(ul) resource offset flow rate blowout lld_z \n", - " p0: 75.0 working_plate_A8 0,0,0 3.0 None 0.5 \n", - "[Well(name=working_plate_A8, location=Coordinate(074.954, 071.814, 003.550), size_x=4.851, size_y=4.851, size_z=10.67, category=well)]\n", - "Dispensing:\n", - "pip# vol(ul) resource offset flow rate blowout lld_z \n", - " p0: 75.0 working_plate_A8 0,0,0 3.0 None 0.5 \n", - "Aspirating:\n", - "pip# vol(ul) resource offset flow rate blowout lld_z \n", - " p0: 75.0 working_plate_A8 0,0,0 3.0 None 0.5 \n", - "[Well(name=working_plate_A8, location=Coordinate(074.954, 071.814, 003.550), size_x=4.851, size_y=4.851, size_z=10.67, category=well)]\n", - "Dispensing:\n", - "pip# vol(ul) resource offset flow rate blowout lld_z \n", - " p0: 75.0 working_plate_A8 0,0,0 3.0 None 0.5 \n", - "Aspirating:\n", - "pip# vol(ul) resource offset flow rate blowout lld_z \n", - " p0: 75.0 working_plate_A8 0,0,0 3.0 None 0.5 \n", - "[Well(name=working_plate_A8, location=Coordinate(074.954, 071.814, 003.550), size_x=4.851, size_y=4.851, size_z=10.67, category=well)]\n", - "Dispensing:\n", - "pip# vol(ul) resource offset flow rate blowout lld_z \n", - " p0: 75.0 working_plate_A8 0,0,0 3.0 None 0.5 \n", - "Aspirating:\n", - "pip# vol(ul) resource offset flow rate blowout lld_z \n", - " p0: 0.0 working_plate_A8 -2.4,0,0 None None None \n", - "Aspirating:\n", - "pip# vol(ul) resource offset flow rate blowout lld_z \n", - " p0: 0.0 working_plate_A8 2.4,0,0 None None None \n", - "Aspirating:\n", - "pip# vol(ul) resource offset flow rate blowout lld_z \n", - " p0: 100.0 reagent_stock_A3 0,0,0 0.75 20.0 0.5 \n", - "[Well(name=working_plate_A9, location=Coordinate(083.954, 071.814, 003.550), size_x=4.851, size_y=4.851, size_z=10.67, category=well)]\n", - "Tracker only has 100.0uL, please pay attention.\n", - "Container has too little liquid: 120.0uL > 100.0uL, please pay attention.\n", - "Air bubble detected, please pay attention.\n", - "Dispensing:\n", - "pip# vol(ul) resource offset flow rate blowout lld_z \n", - " p0: 120.0 working_plate_A9 0,0,0 0.75 None None \n", - "Aspirating:\n", - "pip# vol(ul) resource offset flow rate blowout lld_z \n", - " p0: 75.0 working_plate_A9 0,0,0 3.0 None 0.5 \n", - "[Well(name=working_plate_A9, location=Coordinate(083.954, 071.814, 003.550), size_x=4.851, size_y=4.851, size_z=10.67, category=well)]\n", - "Dispensing:\n", - "pip# vol(ul) resource offset flow rate blowout lld_z \n", - " p0: 75.0 working_plate_A9 0,0,0 3.0 None 0.5 \n", - "Aspirating:\n", - "pip# vol(ul) resource offset flow rate blowout lld_z \n", - " p0: 75.0 working_plate_A9 0,0,0 3.0 None 0.5 \n", - "[Well(name=working_plate_A9, location=Coordinate(083.954, 071.814, 003.550), size_x=4.851, size_y=4.851, size_z=10.67, category=well)]\n", - "Dispensing:\n", - "pip# vol(ul) resource offset flow rate blowout lld_z \n", - " p0: 75.0 working_plate_A9 0,0,0 3.0 None 0.5 \n", - "Aspirating:\n", - "pip# vol(ul) resource offset flow rate blowout lld_z \n", - " p0: 75.0 working_plate_A9 0,0,0 3.0 None 0.5 \n", - "[Well(name=working_plate_A9, location=Coordinate(083.954, 071.814, 003.550), size_x=4.851, size_y=4.851, size_z=10.67, category=well)]\n", - "Dispensing:\n", - "pip# vol(ul) resource offset flow rate blowout lld_z \n", - " p0: 75.0 working_plate_A9 0,0,0 3.0 None 0.5 \n", - "Aspirating:\n", - "pip# vol(ul) resource offset flow rate blowout lld_z \n", - " p0: 0.0 working_plate_A9 -2.4,0,0 None None None \n", - "Aspirating:\n", - "pip# vol(ul) resource offset flow rate blowout lld_z \n", - " p0: 0.0 working_plate_A9 2.4,0,0 None None None \n", - "Aspirating:\n", - "pip# vol(ul) resource offset flow rate blowout lld_z \n", - " p0: 100.0 reagent_stock_A3 0,0,0 0.75 20.0 0.5 \n", - "[Well(name=working_plate_A10, location=Coordinate(092.954, 071.814, 003.550), size_x=4.851, size_y=4.851, size_z=10.67, category=well)]\n", - "Tracker only has 100.0uL, please pay attention.\n", - "Container has too little liquid: 120.0uL > 100.0uL, please pay attention.\n", - "Air bubble detected, please pay attention.\n", - "Dispensing:\n", - "pip# vol(ul) resource offset flow rate blowout lld_z \n", - " p0: 120.0 working_plate_A10 0,0,0 0.75 None None \n", - "Aspirating:\n", - "pip# vol(ul) resource offset flow rate blowout lld_z \n", - " p0: 75.0 working_plate_A10 0,0,0 3.0 None 0.5 \n", - "[Well(name=working_plate_A10, location=Coordinate(092.954, 071.814, 003.550), size_x=4.851, size_y=4.851, size_z=10.67, category=well)]\n", - "Dispensing:\n", - "pip# vol(ul) resource offset flow rate blowout lld_z \n", - " p0: 75.0 working_plate_A10 0,0,0 3.0 None 0.5 \n", - "Aspirating:\n", - "pip# vol(ul) resource offset flow rate blowout lld_z \n", - " p0: 75.0 working_plate_A10 0,0,0 3.0 None 0.5 \n", - "[Well(name=working_plate_A10, location=Coordinate(092.954, 071.814, 003.550), size_x=4.851, size_y=4.851, size_z=10.67, category=well)]\n", - "Dispensing:\n", - "pip# vol(ul) resource offset flow rate blowout lld_z \n", - " p0: 75.0 working_plate_A10 0,0,0 3.0 None 0.5 \n", - "Aspirating:\n", - "pip# vol(ul) resource offset flow rate blowout lld_z \n", - " p0: 75.0 working_plate_A10 0,0,0 3.0 None 0.5 \n", - "[Well(name=working_plate_A10, location=Coordinate(092.954, 071.814, 003.550), size_x=4.851, size_y=4.851, size_z=10.67, category=well)]\n", - "Dispensing:\n", - "pip# vol(ul) resource offset flow rate blowout lld_z \n", - " p0: 75.0 working_plate_A10 0,0,0 3.0 None 0.5 \n", - "Aspirating:\n", - "pip# vol(ul) resource offset flow rate blowout lld_z \n", - " p0: 0.0 working_plate_A10 -2.4,0,0 None None None \n", - "Aspirating:\n", - "pip# vol(ul) resource offset flow rate blowout lld_z \n", - " p0: 0.0 working_plate_A10 2.4,0,0 None None None \n", - "Aspirating:\n", - "pip# vol(ul) resource offset flow rate blowout lld_z \n", - " p0: 100.0 reagent_stock_A3 0,0,0 0.75 20.0 0.5 \n", - "[Well(name=working_plate_A11, location=Coordinate(101.954, 071.814, 003.550), size_x=4.851, size_y=4.851, size_z=10.67, category=well)]\n", - "Tracker only has 100.0uL, please pay attention.\n", - "Container has too little liquid: 120.0uL > 100.0uL, please pay attention.\n", - "Air bubble detected, please pay attention.\n", - "Dispensing:\n", - "pip# vol(ul) resource offset flow rate blowout lld_z \n", - " p0: 120.0 working_plate_A11 0,0,0 0.75 None None \n", - "Aspirating:\n", - "pip# vol(ul) resource offset flow rate blowout lld_z \n", - " p0: 75.0 working_plate_A11 0,0,0 3.0 None 0.5 \n", - "[Well(name=working_plate_A11, location=Coordinate(101.954, 071.814, 003.550), size_x=4.851, size_y=4.851, size_z=10.67, category=well)]\n", - "Dispensing:\n", - "pip# vol(ul) resource offset flow rate blowout lld_z \n", - " p0: 75.0 working_plate_A11 0,0,0 3.0 None 0.5 \n", - "Aspirating:\n", - "pip# vol(ul) resource offset flow rate blowout lld_z \n", - " p0: 75.0 working_plate_A11 0,0,0 3.0 None 0.5 \n", - "[Well(name=working_plate_A11, location=Coordinate(101.954, 071.814, 003.550), size_x=4.851, size_y=4.851, size_z=10.67, category=well)]\n", - "Dispensing:\n", - "pip# vol(ul) resource offset flow rate blowout lld_z \n", - " p0: 75.0 working_plate_A11 0,0,0 3.0 None 0.5 \n", - "Aspirating:\n", - "pip# vol(ul) resource offset flow rate blowout lld_z \n", - " p0: 75.0 working_plate_A11 0,0,0 3.0 None 0.5 \n", - "[Well(name=working_plate_A11, location=Coordinate(101.954, 071.814, 003.550), size_x=4.851, size_y=4.851, size_z=10.67, category=well)]\n", - "Dispensing:\n", - "pip# vol(ul) resource offset flow rate blowout lld_z \n", - " p0: 75.0 working_plate_A11 0,0,0 3.0 None 0.5 \n", - "Aspirating:\n", - "pip# vol(ul) resource offset flow rate blowout lld_z \n", - " p0: 0.0 working_plate_A11 -2.4,0,0 None None None \n", - "Aspirating:\n", - "pip# vol(ul) resource offset flow rate blowout lld_z \n", - " p0: 0.0 working_plate_A11 2.4,0,0 None None None \n", - "Aspirating:\n", - "pip# vol(ul) resource offset flow rate blowout lld_z \n", - " p0: 100.0 reagent_stock_A3 0,0,0 0.75 20.0 0.5 \n", - "[Well(name=working_plate_A12, location=Coordinate(110.954, 071.814, 003.550), size_x=4.851, size_y=4.851, size_z=10.67, category=well)]\n", - "Tracker only has 100.0uL, please pay attention.\n", - "Container has too little liquid: 120.0uL > 100.0uL, please pay attention.\n", - "Air bubble detected, please pay attention.\n", - "Dispensing:\n", - "pip# vol(ul) resource offset flow rate blowout lld_z \n", - " p0: 120.0 working_plate_A12 0,0,0 0.75 None None \n", - "Aspirating:\n", - "pip# vol(ul) resource offset flow rate blowout lld_z \n", - " p0: 75.0 working_plate_A12 0,0,0 3.0 None 0.5 \n", - "[Well(name=working_plate_A12, location=Coordinate(110.954, 071.814, 003.550), size_x=4.851, size_y=4.851, size_z=10.67, category=well)]\n", - "Dispensing:\n", - "pip# vol(ul) resource offset flow rate blowout lld_z \n", - " p0: 75.0 working_plate_A12 0,0,0 3.0 None 0.5 \n", - "Aspirating:\n", - "pip# vol(ul) resource offset flow rate blowout lld_z \n", - " p0: 75.0 working_plate_A12 0,0,0 3.0 None 0.5 \n", - "[Well(name=working_plate_A12, location=Coordinate(110.954, 071.814, 003.550), size_x=4.851, size_y=4.851, size_z=10.67, category=well)]\n", - "Dispensing:\n", - "pip# vol(ul) resource offset flow rate blowout lld_z \n", - " p0: 75.0 working_plate_A12 0,0,0 3.0 None 0.5 \n", - "Aspirating:\n", - "pip# vol(ul) resource offset flow rate blowout lld_z \n", - " p0: 75.0 working_plate_A12 0,0,0 3.0 None 0.5 \n", - "[Well(name=working_plate_A12, location=Coordinate(110.954, 071.814, 003.550), size_x=4.851, size_y=4.851, size_z=10.67, category=well)]\n", - "Dispensing:\n", - "pip# vol(ul) resource offset flow rate blowout lld_z \n", - " p0: 75.0 working_plate_A12 0,0,0 3.0 None 0.5 \n", - "Aspirating:\n", - "pip# vol(ul) resource offset flow rate blowout lld_z \n", - " p0: 0.0 working_plate_A12 -2.4,0,0 None None None \n", - "Aspirating:\n", - "pip# vol(ul) resource offset flow rate blowout lld_z \n", - " p0: 0.0 working_plate_A12 2.4,0,0 None None None \n", - "Dropping tips:\n", - "pip# resource offset tip type max volume (µL) fitting depth (mm) tip length (mm) filter \n", - " p0: trash 0,0.0,0 Tip 300.0 7.47 59.3 No \n" - ] - } - ], - "source": [ - "await lh.add_liquid(\n", - " asp_vols=[LUC_VOL]*12,\n", - " dis_vols=[LUC_VOL+20]*12,\n", - " reagent_sources=[luciferase],\n", - " targets=cells_all,\n", - " liquid_height=[0.5, None],\n", - " mix_time=3,\n", - " mix_vol=75,\n", - " mix_rate=3,\n", - " mix_liquid_height=0.5,\n", - " delays = [2, None],\n", - " blow_out_air_volume=[20,None],\n", - " flow_rates=[0.75,0.75]\n", - ")" - ] - } - ], - "metadata": { - "kernelspec": { - "display_name": "pylabrobot", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.10.17" - } - }, - "nbformat": 4, - "nbformat_minor": 5 -} diff --git a/unilabos/devices/liquid_handling/laiyu/__init__.py b/unilabos/devices/liquid_handling/laiyu/__init__.py deleted file mode 100644 index e69de29b..00000000 diff --git a/unilabos/devices/liquid_handling/laiyu/backend/__init__.py b/unilabos/devices/liquid_handling/laiyu/backend/__init__.py deleted file mode 100644 index 4bf29392..00000000 --- a/unilabos/devices/liquid_handling/laiyu/backend/__init__.py +++ /dev/null @@ -1,9 +0,0 @@ -""" -LaiYu液体处理设备后端模块 - -提供设备后端接口和实现 -""" - -from .laiyu_backend import LaiYuLiquidBackend, create_laiyu_backend - -__all__ = ['LaiYuLiquidBackend', 'create_laiyu_backend'] \ No newline at end of file diff --git a/unilabos/devices/liquid_handling/laiyu/backend/laiyu_backend.py b/unilabos/devices/liquid_handling/laiyu/backend/laiyu_backend.py deleted file mode 100644 index 5e8041c0..00000000 --- a/unilabos/devices/liquid_handling/laiyu/backend/laiyu_backend.py +++ /dev/null @@ -1,334 +0,0 @@ -""" -LaiYu液体处理设备后端实现 - -提供设备的后端接口和控制逻辑 -""" - -import logging -from typing import Dict, Any, Optional, List -from abc import ABC, abstractmethod - -# 尝试导入PyLabRobot后端 -try: - from pylabrobot.liquid_handling.backends import LiquidHandlerBackend - PYLABROBOT_AVAILABLE = True -except ImportError: - PYLABROBOT_AVAILABLE = False - # 创建模拟后端基类 - class LiquidHandlerBackend: - def __init__(self, name: str): - self.name = name - self.is_connected = False - - def connect(self): - """连接设备""" - pass - - def disconnect(self): - """断开连接""" - pass - - -class LaiYuLiquidBackend(LiquidHandlerBackend): - """LaiYu液体处理设备后端""" - - def __init__(self, name: str = "LaiYu_Liquid_Backend"): - """ - 初始化LaiYu液体处理设备后端 - - Args: - name: 后端名称 - """ - if PYLABROBOT_AVAILABLE: - # PyLabRobot 的 LiquidHandlerBackend 不接受参数 - super().__init__() - else: - # 模拟版本接受 name 参数 - super().__init__(name) - - self.name = name - self.logger = logging.getLogger(__name__) - self.is_connected = False - self.device_info = { - "name": "LaiYu液体处理设备", - "version": "1.0.0", - "manufacturer": "LaiYu", - "model": "LaiYu_Liquid_Handler" - } - - def connect(self) -> bool: - """ - 连接到LaiYu液体处理设备 - - Returns: - bool: 连接是否成功 - """ - try: - self.logger.info("正在连接到LaiYu液体处理设备...") - # 这里应该实现实际的设备连接逻辑 - # 目前返回模拟连接成功 - self.is_connected = True - self.logger.info("成功连接到LaiYu液体处理设备") - return True - except Exception as e: - self.logger.error(f"连接LaiYu液体处理设备失败: {e}") - self.is_connected = False - return False - - def disconnect(self) -> bool: - """ - 断开与LaiYu液体处理设备的连接 - - Returns: - bool: 断开连接是否成功 - """ - try: - self.logger.info("正在断开与LaiYu液体处理设备的连接...") - # 这里应该实现实际的设备断开连接逻辑 - self.is_connected = False - self.logger.info("成功断开与LaiYu液体处理设备的连接") - return True - except Exception as e: - self.logger.error(f"断开LaiYu液体处理设备连接失败: {e}") - return False - - def is_device_connected(self) -> bool: - """ - 检查设备是否已连接 - - Returns: - bool: 设备是否已连接 - """ - return self.is_connected - - def get_device_info(self) -> Dict[str, Any]: - """ - 获取设备信息 - - Returns: - Dict[str, Any]: 设备信息字典 - """ - return self.device_info.copy() - - def home_device(self) -> bool: - """ - 设备归零操作 - - Returns: - bool: 归零是否成功 - """ - if not self.is_connected: - self.logger.error("设备未连接,无法执行归零操作") - return False - - try: - self.logger.info("正在执行设备归零操作...") - # 这里应该实现实际的设备归零逻辑 - self.logger.info("设备归零操作完成") - return True - except Exception as e: - self.logger.error(f"设备归零操作失败: {e}") - return False - - def aspirate(self, volume: float, location: Dict[str, Any]) -> bool: - """ - 吸液操作 - - Args: - volume: 吸液体积 (微升) - location: 吸液位置信息 - - Returns: - bool: 吸液是否成功 - """ - if not self.is_connected: - self.logger.error("设备未连接,无法执行吸液操作") - return False - - try: - self.logger.info(f"正在执行吸液操作: 体积={volume}μL, 位置={location}") - # 这里应该实现实际的吸液逻辑 - self.logger.info("吸液操作完成") - return True - except Exception as e: - self.logger.error(f"吸液操作失败: {e}") - return False - - def dispense(self, volume: float, location: Dict[str, Any]) -> bool: - """ - 排液操作 - - Args: - volume: 排液体积 (微升) - location: 排液位置信息 - - Returns: - bool: 排液是否成功 - """ - if not self.is_connected: - self.logger.error("设备未连接,无法执行排液操作") - return False - - try: - self.logger.info(f"正在执行排液操作: 体积={volume}μL, 位置={location}") - # 这里应该实现实际的排液逻辑 - self.logger.info("排液操作完成") - return True - except Exception as e: - self.logger.error(f"排液操作失败: {e}") - return False - - def pick_up_tip(self, location: Dict[str, Any]) -> bool: - """ - 取枪头操作 - - Args: - location: 枪头位置信息 - - Returns: - bool: 取枪头是否成功 - """ - if not self.is_connected: - self.logger.error("设备未连接,无法执行取枪头操作") - return False - - try: - self.logger.info(f"正在执行取枪头操作: 位置={location}") - # 这里应该实现实际的取枪头逻辑 - self.logger.info("取枪头操作完成") - return True - except Exception as e: - self.logger.error(f"取枪头操作失败: {e}") - return False - - def drop_tip(self, location: Dict[str, Any]) -> bool: - """ - 丢弃枪头操作 - - Args: - location: 丢弃位置信息 - - Returns: - bool: 丢弃枪头是否成功 - """ - if not self.is_connected: - self.logger.error("设备未连接,无法执行丢弃枪头操作") - return False - - try: - self.logger.info(f"正在执行丢弃枪头操作: 位置={location}") - # 这里应该实现实际的丢弃枪头逻辑 - self.logger.info("丢弃枪头操作完成") - return True - except Exception as e: - self.logger.error(f"丢弃枪头操作失败: {e}") - return False - - def move_to(self, location: Dict[str, Any]) -> bool: - """ - 移动到指定位置 - - Args: - location: 目标位置信息 - - Returns: - bool: 移动是否成功 - """ - if not self.is_connected: - self.logger.error("设备未连接,无法执行移动操作") - return False - - try: - self.logger.info(f"正在移动到位置: {location}") - # 这里应该实现实际的移动逻辑 - self.logger.info("移动操作完成") - return True - except Exception as e: - self.logger.error(f"移动操作失败: {e}") - return False - - def get_status(self) -> Dict[str, Any]: - """ - 获取设备状态 - - Returns: - Dict[str, Any]: 设备状态信息 - """ - return { - "connected": self.is_connected, - "device_info": self.device_info, - "status": "ready" if self.is_connected else "disconnected" - } - - # PyLabRobot 抽象方法实现 - def stop(self): - """停止所有操作""" - self.logger.info("停止所有操作") - pass - - @property - def num_channels(self) -> int: - """返回通道数量""" - return 1 # 单通道移液器 - - def can_pick_up_tip(self, tip_rack, tip_position) -> bool: - """检查是否可以拾取吸头""" - return True # 简化实现,总是返回True - - def pick_up_tips(self, tip_rack, tip_positions): - """拾取多个吸头""" - self.logger.info(f"拾取吸头: {tip_positions}") - pass - - def drop_tips(self, tip_rack, tip_positions): - """丢弃多个吸头""" - self.logger.info(f"丢弃吸头: {tip_positions}") - pass - - def pick_up_tips96(self, tip_rack): - """拾取96个吸头""" - self.logger.info("拾取96个吸头") - pass - - def drop_tips96(self, tip_rack): - """丢弃96个吸头""" - self.logger.info("丢弃96个吸头") - pass - - def aspirate96(self, volume, plate, well_positions): - """96通道吸液""" - self.logger.info(f"96通道吸液: 体积={volume}") - pass - - def dispense96(self, volume, plate, well_positions): - """96通道排液""" - self.logger.info(f"96通道排液: 体积={volume}") - pass - - def pick_up_resource(self, resource, location): - """拾取资源""" - self.logger.info(f"拾取资源: {resource}") - pass - - def drop_resource(self, resource, location): - """放置资源""" - self.logger.info(f"放置资源: {resource}") - pass - - def move_picked_up_resource(self, resource, location): - """移动已拾取的资源""" - self.logger.info(f"移动资源: {resource} 到 {location}") - pass - - -def create_laiyu_backend(name: str = "LaiYu_Liquid_Backend") -> LaiYuLiquidBackend: - """ - 创建LaiYu液体处理设备后端实例 - - Args: - name: 后端名称 - - Returns: - LaiYuLiquidBackend: 后端实例 - """ - return LaiYuLiquidBackend(name) \ No newline at end of file diff --git a/unilabos/devices/liquid_handling/laiyu/backend/laiyu_v_backend.py b/unilabos/devices/liquid_handling/laiyu/backend/laiyu_v_backend.py deleted file mode 100644 index 9e824e1b..00000000 --- a/unilabos/devices/liquid_handling/laiyu/backend/laiyu_v_backend.py +++ /dev/null @@ -1,385 +0,0 @@ - -import json -from typing import List, Optional, Union - -from pylabrobot.liquid_handling.backends.backend import ( - LiquidHandlerBackend, -) -from pylabrobot.liquid_handling.standard import ( - Drop, - DropTipRack, - MultiHeadAspirationContainer, - MultiHeadAspirationPlate, - MultiHeadDispenseContainer, - MultiHeadDispensePlate, - Pickup, - PickupTipRack, - ResourceDrop, - ResourceMove, - ResourcePickup, - SingleChannelAspiration, - SingleChannelDispense, -) -from pylabrobot.resources import Resource, Tip - -import rclpy -from rclpy.node import Node -from sensor_msgs.msg import JointState -import time -from rclpy.action import ActionClient -from unilabos_msgs.action import SendCmd -import re - -from unilabos.devices.ros_dev.liquid_handler_joint_publisher import JointStatePublisher -from unilabos.devices.liquid_handling.laiyu.controllers.pipette_controller import PipetteController, TipStatus - - -class UniLiquidHandlerLaiyuBackend(LiquidHandlerBackend): - """Chatter box backend for device-free testing. Prints out all operations.""" - - _pip_length = 5 - _vol_length = 8 - _resource_length = 20 - _offset_length = 16 - _flow_rate_length = 10 - _blowout_length = 10 - _lld_z_length = 10 - _kwargs_length = 15 - _tip_type_length = 12 - _max_volume_length = 16 - _fitting_depth_length = 20 - _tip_length_length = 16 - # _pickup_method_length = 20 - _filter_length = 10 - - def __init__(self, num_channels: int = 8 , tip_length: float = 0 , total_height: float = 310, port: str = "/dev/ttyUSB0"): - """Initialize a chatter box backend.""" - super().__init__() - self._num_channels = num_channels - self.tip_length = tip_length - self.total_height = total_height -# rclpy.init() - if not rclpy.ok(): - rclpy.init() - self.joint_state_publisher = None - self.hardware_interface = PipetteController(port=port) - - async def setup(self): - # self.joint_state_publisher = JointStatePublisher() - # self.hardware_interface.xyz_controller.connect_device() - # self.hardware_interface.xyz_controller.home_all_axes() - await super().setup() - self.hardware_interface.connect() - self.hardware_interface.initialize() - - print("Setting up the liquid handler.") - - async def stop(self): - print("Stopping the liquid handler.") - - def serialize(self) -> dict: - return {**super().serialize(), "num_channels": self.num_channels} - - def pipette_aspirate(self, volume: float, flow_rate: float): - - self.hardware_interface.pipette.set_max_speed(flow_rate) - res = self.hardware_interface.pipette.aspirate(volume=volume) - - if not res: - self.hardware_interface.logger.error("吸取失败,当前体积: {self.hardware_interface.current_volume}") - return - - self.hardware_interface.current_volume += volume - - def pipette_dispense(self, volume: float, flow_rate: float): - - self.hardware_interface.pipette.set_max_speed(flow_rate) - res = self.hardware_interface.pipette.dispense(volume=volume) - if not res: - self.hardware_interface.logger.error("排液失败,当前体积: {self.hardware_interface.current_volume}") - return - self.hardware_interface.current_volume -= volume - - @property - def num_channels(self) -> int: - return self._num_channels - - async def assigned_resource_callback(self, resource: Resource): - print(f"Resource {resource.name} was assigned to the liquid handler.") - - async def unassigned_resource_callback(self, name: str): - print(f"Resource {name} was unassigned from the liquid handler.") - - async def pick_up_tips(self, ops: List[Pickup], use_channels: List[int], **backend_kwargs): - print("Picking up tips:") - # print(ops.tip) - header = ( - f"{'pip#':<{UniLiquidHandlerLaiyuBackend._pip_length}} " - f"{'resource':<{UniLiquidHandlerLaiyuBackend._resource_length}} " - f"{'offset':<{UniLiquidHandlerLaiyuBackend._offset_length}} " - f"{'tip type':<{UniLiquidHandlerLaiyuBackend._tip_type_length}} " - f"{'max volume (µL)':<{UniLiquidHandlerLaiyuBackend._max_volume_length}} " - f"{'fitting depth (mm)':<{UniLiquidHandlerLaiyuBackend._fitting_depth_length}} " - f"{'tip length (mm)':<{UniLiquidHandlerLaiyuBackend._tip_length_length}} " - # f"{'pickup method':<{ChatterboxBackend._pickup_method_length}} " - f"{'filter':<{UniLiquidHandlerLaiyuBackend._filter_length}}" - ) - # print(header) - - for op, channel in zip(ops, use_channels): - offset = f"{round(op.offset.x, 1)},{round(op.offset.y, 1)},{round(op.offset.z, 1)}" - row = ( - f" p{channel}: " - f"{op.resource.name[-30:]:<{UniLiquidHandlerLaiyuBackend._resource_length}} " - f"{offset:<{UniLiquidHandlerLaiyuBackend._offset_length}} " - f"{op.tip.__class__.__name__:<{UniLiquidHandlerLaiyuBackend._tip_type_length}} " - f"{op.tip.maximal_volume:<{UniLiquidHandlerLaiyuBackend._max_volume_length}} " - f"{op.tip.fitting_depth:<{UniLiquidHandlerLaiyuBackend._fitting_depth_length}} " - f"{op.tip.total_tip_length:<{UniLiquidHandlerLaiyuBackend._tip_length_length}} " - # f"{str(op.tip.pickup_method)[-20:]:<{ChatterboxBackend._pickup_method_length}} " - f"{'Yes' if op.tip.has_filter else 'No':<{UniLiquidHandlerLaiyuBackend._filter_length}}" - ) - # print(row) - # print(op.resource.get_absolute_location()) - - self.tip_length = ops[0].tip.total_tip_length - coordinate = ops[0].resource.get_absolute_location(x="c",y="c") - offset_xyz = ops[0].offset - x = coordinate.x + offset_xyz.x - y = coordinate.y + offset_xyz.y - z = self.total_height - (coordinate.z + self.tip_length) + offset_xyz.z - # print("moving") - self.hardware_interface._update_tip_status() - if self.hardware_interface.tip_status == TipStatus.TIP_ATTACHED: - print("已有枪头,无需重复拾取") - return - self.hardware_interface.xyz_controller.move_to_work_coord_safe(x=x, y=-y, z=z,speed=200) - self.hardware_interface.xyz_controller.move_to_work_coord_safe(z=self.hardware_interface.xyz_controller.machine_config.safe_z_height,speed=100) - # self.joint_state_publisher.send_resource_action(ops[0].resource.name, x, y, z, "pick",channels=use_channels) - # goback() - - - - - async def drop_tips(self, ops: List[Drop], use_channels: List[int], **backend_kwargs): - print("Dropping tips:") - header = ( - f"{'pip#':<{UniLiquidHandlerLaiyuBackend._pip_length}} " - f"{'resource':<{UniLiquidHandlerLaiyuBackend._resource_length}} " - f"{'offset':<{UniLiquidHandlerLaiyuBackend._offset_length}} " - f"{'tip type':<{UniLiquidHandlerLaiyuBackend._tip_type_length}} " - f"{'max volume (µL)':<{UniLiquidHandlerLaiyuBackend._max_volume_length}} " - f"{'fitting depth (mm)':<{UniLiquidHandlerLaiyuBackend._fitting_depth_length}} " - f"{'tip length (mm)':<{UniLiquidHandlerLaiyuBackend._tip_length_length}} " - # f"{'pickup method':<{ChatterboxBackend._pickup_method_length}} " - f"{'filter':<{UniLiquidHandlerLaiyuBackend._filter_length}}" - ) - # print(header) - - for op, channel in zip(ops, use_channels): - offset = f"{round(op.offset.x, 1)},{round(op.offset.y, 1)},{round(op.offset.z, 1)}" - row = ( - f" p{channel}: " - f"{op.resource.name[-30:]:<{UniLiquidHandlerLaiyuBackend._resource_length}} " - f"{offset:<{UniLiquidHandlerLaiyuBackend._offset_length}} " - f"{op.tip.__class__.__name__:<{UniLiquidHandlerLaiyuBackend._tip_type_length}} " - f"{op.tip.maximal_volume:<{UniLiquidHandlerLaiyuBackend._max_volume_length}} " - f"{op.tip.fitting_depth:<{UniLiquidHandlerLaiyuBackend._fitting_depth_length}} " - f"{op.tip.total_tip_length:<{UniLiquidHandlerLaiyuBackend._tip_length_length}} " - # f"{str(op.tip.pickup_method)[-20:]:<{ChatterboxBackend._pickup_method_length}} " - f"{'Yes' if op.tip.has_filter else 'No':<{UniLiquidHandlerLaiyuBackend._filter_length}}" - ) - # print(row) - - coordinate = ops[0].resource.get_absolute_location(x="c",y="c") - offset_xyz = ops[0].offset - x = coordinate.x + offset_xyz.x - y = coordinate.y + offset_xyz.y - z = self.total_height - (coordinate.z + self.tip_length) + offset_xyz.z -20 - # print(x, y, z) - # print("moving") - self.hardware_interface._update_tip_status() - if self.hardware_interface.tip_status == TipStatus.NO_TIP: - print("无枪头,无需丢弃") - return - self.hardware_interface.xyz_controller.move_to_work_coord_safe(x=x, y=-y, z=z,speed=200) - self.hardware_interface.eject_tip - self.hardware_interface.xyz_controller.move_to_work_coord_safe(z=self.hardware_interface.xyz_controller.machine_config.safe_z_height) - - async def aspirate( - self, - ops: List[SingleChannelAspiration], - use_channels: List[int], - **backend_kwargs, - ): - print("Aspirating:") - header = ( - f"{'pip#':<{UniLiquidHandlerLaiyuBackend._pip_length}} " - f"{'vol(ul)':<{UniLiquidHandlerLaiyuBackend._vol_length}} " - f"{'resource':<{UniLiquidHandlerLaiyuBackend._resource_length}} " - f"{'offset':<{UniLiquidHandlerLaiyuBackend._offset_length}} " - f"{'flow rate':<{UniLiquidHandlerLaiyuBackend._flow_rate_length}} " - f"{'blowout':<{UniLiquidHandlerLaiyuBackend._blowout_length}} " - f"{'lld_z':<{UniLiquidHandlerLaiyuBackend._lld_z_length}} " - # f"{'liquids':<20}" # TODO: add liquids - ) - for key in backend_kwargs: - header += f"{key:<{UniLiquidHandlerLaiyuBackend._kwargs_length}} "[-16:] - # print(header) - - for o, p in zip(ops, use_channels): - offset = f"{round(o.offset.x, 1)},{round(o.offset.y, 1)},{round(o.offset.z, 1)}" - row = ( - f" p{p}: " - f"{o.volume:<{UniLiquidHandlerLaiyuBackend._vol_length}} " - f"{o.resource.name[-20:]:<{UniLiquidHandlerLaiyuBackend._resource_length}} " - f"{offset:<{UniLiquidHandlerLaiyuBackend._offset_length}} " - f"{str(o.flow_rate):<{UniLiquidHandlerLaiyuBackend._flow_rate_length}} " - f"{str(o.blow_out_air_volume):<{UniLiquidHandlerLaiyuBackend._blowout_length}} " - f"{str(o.liquid_height):<{UniLiquidHandlerLaiyuBackend._lld_z_length}} " - # f"{o.liquids if o.liquids is not None else 'none'}" - ) - for key, value in backend_kwargs.items(): - if isinstance(value, list) and all(isinstance(v, bool) for v in value): - value = "".join("T" if v else "F" for v in value) - if isinstance(value, list): - value = "".join(map(str, value)) - row += f" {value:<15}" - # print(row) - coordinate = ops[0].resource.get_absolute_location(x="c",y="c") - offset_xyz = ops[0].offset - x = coordinate.x + offset_xyz.x - y = coordinate.y + offset_xyz.y - z = self.total_height - (coordinate.z + self.tip_length) + offset_xyz.z - # print(x, y, z) - # print("moving") - - # 判断枪头是否存在 - self.hardware_interface._update_tip_status() - if not self.hardware_interface.tip_status == TipStatus.TIP_ATTACHED: - print("无枪头,无法吸液") - return - # 判断吸液量是否超过枪头容量 - flow_rate = backend_kwargs["flow_rate"] if "flow_rate" in backend_kwargs else 500 - blow_out_air_volume = backend_kwargs["blow_out_air_volume"] if "blow_out_air_volume" in backend_kwargs else 0 - if self.hardware_interface.current_volume + ops[0].volume + blow_out_air_volume > self.hardware_interface.max_volume: - self.hardware_interface.logger.error(f"吸液量超过枪头容量: {self.hardware_interface.current_volume + ops[0].volume} > {self.hardware_interface.max_volume}") - return - - # 移动到吸液位置 - self.hardware_interface.xyz_controller.move_to_work_coord_safe(x=x, y=-y, z=z,speed=200) - self.pipette_aspirate(volume=ops[0].volume, flow_rate=flow_rate) - - - self.hardware_interface.xyz_controller.move_to_work_coord_safe(z=self.hardware_interface.xyz_controller.machine_config.safe_z_height) - if blow_out_air_volume >0: - self.pipette_aspirate(volume=blow_out_air_volume, flow_rate=flow_rate) - - - - - async def dispense( - self, - ops: List[SingleChannelDispense], - use_channels: List[int], - **backend_kwargs, - ): - # print("Dispensing:") - header = ( - f"{'pip#':<{UniLiquidHandlerLaiyuBackend._pip_length}} " - f"{'vol(ul)':<{UniLiquidHandlerLaiyuBackend._vol_length}} " - f"{'resource':<{UniLiquidHandlerLaiyuBackend._resource_length}} " - f"{'offset':<{UniLiquidHandlerLaiyuBackend._offset_length}} " - f"{'flow rate':<{UniLiquidHandlerLaiyuBackend._flow_rate_length}} " - f"{'blowout':<{UniLiquidHandlerLaiyuBackend._blowout_length}} " - f"{'lld_z':<{UniLiquidHandlerLaiyuBackend._lld_z_length}} " - # f"{'liquids':<20}" # TODO: add liquids - ) - for key in backend_kwargs: - header += f"{key:<{UniLiquidHandlerLaiyuBackend._kwargs_length}} "[-16:] - # print(header) - - for o, p in zip(ops, use_channels): - offset = f"{round(o.offset.x, 1)},{round(o.offset.y, 1)},{round(o.offset.z, 1)}" - row = ( - f" p{p}: " - f"{o.volume:<{UniLiquidHandlerLaiyuBackend._vol_length}} " - f"{o.resource.name[-20:]:<{UniLiquidHandlerLaiyuBackend._resource_length}} " - f"{offset:<{UniLiquidHandlerLaiyuBackend._offset_length}} " - f"{str(o.flow_rate):<{UniLiquidHandlerLaiyuBackend._flow_rate_length}} " - f"{str(o.blow_out_air_volume):<{UniLiquidHandlerLaiyuBackend._blowout_length}} " - f"{str(o.liquid_height):<{UniLiquidHandlerLaiyuBackend._lld_z_length}} " - # f"{o.liquids if o.liquids is not None else 'none'}" - ) - for key, value in backend_kwargs.items(): - if isinstance(value, list) and all(isinstance(v, bool) for v in value): - value = "".join("T" if v else "F" for v in value) - if isinstance(value, list): - value = "".join(map(str, value)) - row += f" {value:<{UniLiquidHandlerLaiyuBackend._kwargs_length}}" - # print(row) - coordinate = ops[0].resource.get_absolute_location(x="c",y="c") - offset_xyz = ops[0].offset - x = coordinate.x + offset_xyz.x - y = coordinate.y + offset_xyz.y - z = self.total_height - (coordinate.z + self.tip_length) + offset_xyz.z - # print(x, y, z) - # print("moving") - - # 判断枪头是否存在 - self.hardware_interface._update_tip_status() - if not self.hardware_interface.tip_status == TipStatus.TIP_ATTACHED: - print("无枪头,无法排液") - return - # 判断排液量是否超过枪头容量 - flow_rate = backend_kwargs["flow_rate"] if "flow_rate" in backend_kwargs else 500 - blow_out_air_volume = backend_kwargs["blow_out_air_volume"] if "blow_out_air_volume" in backend_kwargs else 0 - if self.hardware_interface.current_volume - ops[0].volume - blow_out_air_volume < 0: - self.hardware_interface.logger.error(f"排液量超过枪头容量: {self.hardware_interface.current_volume - ops[0].volume - blow_out_air_volume} < 0") - return - - - # 移动到排液位置 - self.hardware_interface.xyz_controller.move_to_work_coord_safe(x=x, y=-y, z=z,speed=200) - self.pipette_dispense(volume=ops[0].volume, flow_rate=flow_rate) - - - self.hardware_interface.xyz_controller.move_to_work_coord_safe(z=self.hardware_interface.xyz_controller.machine_config.safe_z_height) - if blow_out_air_volume > 0: - self.pipette_dispense(volume=blow_out_air_volume, flow_rate=flow_rate) - # self.joint_state_publisher.send_resource_action(ops[0].resource.name, x, y, z, "",channels=use_channels) - - async def pick_up_tips96(self, pickup: PickupTipRack, **backend_kwargs): - print(f"Picking up tips from {pickup.resource.name}.") - - async def drop_tips96(self, drop: DropTipRack, **backend_kwargs): - print(f"Dropping tips to {drop.resource.name}.") - - async def aspirate96( - self, aspiration: Union[MultiHeadAspirationPlate, MultiHeadAspirationContainer] - ): - if isinstance(aspiration, MultiHeadAspirationPlate): - resource = aspiration.wells[0].parent - else: - resource = aspiration.container - print(f"Aspirating {aspiration.volume} from {resource}.") - - async def dispense96(self, dispense: Union[MultiHeadDispensePlate, MultiHeadDispenseContainer]): - if isinstance(dispense, MultiHeadDispensePlate): - resource = dispense.wells[0].parent - else: - resource = dispense.container - print(f"Dispensing {dispense.volume} to {resource}.") - - async def pick_up_resource(self, pickup: ResourcePickup): - print(f"Picking up resource: {pickup}") - - async def move_picked_up_resource(self, move: ResourceMove): - print(f"Moving picked up resource: {move}") - - async def drop_resource(self, drop: ResourceDrop): - print(f"Dropping resource: {drop}") - - def can_pick_up_tip(self, channel_idx: int, tip: Tip) -> bool: - return True - diff --git a/unilabos/devices/liquid_handling/laiyu/config/deckconfig.json b/unilabos/devices/liquid_handling/laiyu/config/deckconfig.json deleted file mode 100644 index ddda7e0f..00000000 --- a/unilabos/devices/liquid_handling/laiyu/config/deckconfig.json +++ /dev/null @@ -1,2620 +0,0 @@ -{ - "name": "LaiYu_Liquid_Deck", - "size_x": 340.0, - "size_y": 250.0, - "size_z": 160.0, - "coordinate_system": { - "origin": "top_left", - "x_axis": "right", - "y_axis": "down", - "z_axis": "up", - "units": "mm" - }, - "children": [ - { - "id": "module_1_8tubes", - "name": "8管位置模块", - "type": "tube_rack", - "position": { - "x": 0.0, - "y": 0.0, - "z": 0.0 - }, - "size": { - "x": 151.0, - "y": 75.0, - "z": 75.0 - }, - "wells": [ - { - "id": "A1", - "position": { - "x": 23.0, - "y": 20.0, - "z": 0.0 - }, - "diameter": 29.0, - "depth": 117.0, - "volume": 77000.0, - "shape": "circular" - }, - { - "id": "A2", - "position": { - "x": 58.0, - "y": 20.0, - "z": 0.0 - }, - "diameter": 29.0, - "depth": 117.0, - "volume": 77000.0, - "shape": "circular" - }, - { - "id": "A3", - "position": { - "x": 93.0, - "y": 20.0, - "z": 0.0 - }, - "diameter": 29.0, - "depth": 117.0, - "volume": 77000.0, - "shape": "circular" - }, - { - "id": "A4", - "position": { - "x": 128.0, - "y": 20.0, - "z": 0.0 - }, - "diameter": 29.0, - "depth": 117.0, - "volume": 77000.0, - "shape": "circular" - }, - { - "id": "B1", - "position": { - "x": 23.0, - "y": 55.0, - "z": 0.0 - }, - "diameter": 29.0, - "depth": 117.0, - "volume": 77000.0, - "shape": "circular" - }, - { - "id": "B2", - "position": { - "x": 58.0, - "y": 55.0, - "z": 0.0 - }, - "diameter": 29.0, - "depth": 117.0, - "volume": 77000.0, - "shape": "circular" - }, - { - "id": "B3", - "position": { - "x": 93.0, - "y": 55.0, - "z": 0.0 - }, - "diameter": 29.0, - "depth": 117.0, - "volume": 77000.0, - "shape": "circular" - }, - { - "id": "B4", - "position": { - "x": 128.0, - "y": 55.0, - "z": 0.0 - }, - "diameter": 29.0, - "depth": 117.0, - "volume": 77000.0, - "shape": "circular" - } - ], - "well_spacing": { - "x": 35.0, - "y": 35.0 - }, - "grid": { - "rows": 2, - "columns": 4, - "row_labels": ["A", "B"], - "column_labels": ["1", "2", "3", "4"] - }, - "metadata": { - "description": "8个试管位置,2x4排列", - "max_volume_ul": 77000, - "well_count": 8, - "tube_type": "50ml_falcon" - } - }, - { - "id": "module_2_96well_deep", - "name": "96深孔板", - "type": "96_well_plate", - "position": { - "x": 175.0, - "y": 11.0, - "z": 48.5 - }, - "size": { - "x": 127.1, - "y": 85.6, - "z": 45.5 - }, - "wells": [ - { - "id": "A01", - "position": { - "x": 175.0, - "y": 11.0, - "z": 48.5 - }, - "diameter": 8.2, - "depth": 39.4, - "volume": 2080.0, - "shape": "circular" - }, - { - "id": "A02", - "position": { - "x": 184.0, - "y": 11.0, - "z": 48.5 - }, - "diameter": 8.2, - "depth": 39.4, - "volume": 2080.0, - "shape": "circular" - }, - { - "id": "A03", - "position": { - "x": 193.0, - "y": 11.0, - "z": 48.5 - }, - "diameter": 8.2, - "depth": 39.4, - "volume": 2080.0, - "shape": "circular" - }, - { - "id": "A04", - "position": { - "x": 202.0, - "y": 11.0, - "z": 48.5 - }, - "diameter": 8.2, - "depth": 39.4, - "volume": 2080.0, - "shape": "circular" - }, - { - "id": "A05", - "position": { - "x": 211.0, - "y": 11.0, - "z": 48.5 - }, - "diameter": 8.2, - "depth": 39.4, - "volume": 2080.0, - "shape": "circular" - }, - { - "id": "A06", - "position": { - "x": 220.0, - "y": 11.0, - "z": 48.5 - }, - "diameter": 8.2, - "depth": 39.4, - "volume": 2080.0, - "shape": "circular" - }, - { - "id": "A07", - "position": { - "x": 229.0, - "y": 11.0, - "z": 48.5 - }, - "diameter": 8.2, - "depth": 39.4, - "volume": 2080.0, - "shape": "circular" - }, - { - "id": "A08", - "position": { - "x": 238.0, - "y": 11.0, - "z": 48.5 - }, - "diameter": 8.2, - "depth": 39.4, - "volume": 2080.0, - "shape": "circular" - }, - { - "id": "A09", - "position": { - "x": 247.0, - "y": 11.0, - "z": 48.5 - }, - "diameter": 8.2, - "depth": 39.4, - "volume": 2080.0, - "shape": "circular" - }, - { - "id": "A10", - "position": { - "x": 256.0, - "y": 11.0, - "z": 48.5 - }, - "diameter": 8.2, - "depth": 39.4, - "volume": 2080.0, - "shape": "circular" - }, - { - "id": "A11", - "position": { - "x": 265.0, - "y": 11.0, - "z": 48.5 - }, - "diameter": 8.2, - "depth": 39.4, - "volume": 2080.0, - "shape": "circular" - }, - { - "id": "A12", - "position": { - "x": 274.0, - "y": 11.0, - "z": 48.5 - }, - "diameter": 8.2, - "depth": 39.4, - "volume": 2080.0, - "shape": "circular" - }, - { - "id": "B01", - "position": { - "x": 175.0, - "y": 20.0, - "z": 48.5 - }, - "diameter": 8.2, - "depth": 39.4, - "volume": 2080.0, - "shape": "circular" - }, - { - "id": "B02", - "position": { - "x": 184.0, - "y": 20.0, - "z": 48.5 - }, - "diameter": 8.2, - "depth": 39.4, - "volume": 2080.0, - "shape": "circular" - }, - { - "id": "B03", - "position": { - "x": 193.0, - "y": 20.0, - "z": 48.5 - }, - "diameter": 8.2, - "depth": 39.4, - "volume": 2080.0, - "shape": "circular" - }, - { - "id": "B04", - "position": { - "x": 202.0, - "y": 20.0, - "z": 48.5 - }, - "diameter": 8.2, - "depth": 39.4, - "volume": 2080.0, - "shape": "circular" - }, - { - "id": "B05", - "position": { - "x": 211.0, - "y": 20.0, - "z": 48.5 - }, - "diameter": 8.2, - "depth": 39.4, - "volume": 2080.0, - "shape": "circular" - }, - { - "id": "B06", - "position": { - "x": 220.0, - "y": 20.0, - "z": 48.5 - }, - "diameter": 8.2, - "depth": 39.4, - "volume": 2080.0, - "shape": "circular" - }, - { - "id": "B07", - "position": { - "x": 229.0, - "y": 20.0, - "z": 48.5 - }, - "diameter": 8.2, - "depth": 39.4, - "volume": 2080.0, - "shape": "circular" - }, - { - "id": "B08", - "position": { - "x": 238.0, - "y": 20.0, - "z": 48.5 - }, - "diameter": 8.2, - "depth": 39.4, - "volume": 2080.0, - "shape": "circular" - }, - { - "id": "B09", - "position": { - "x": 247.0, - "y": 20.0, - "z": 48.5 - }, - "diameter": 8.2, - "depth": 39.4, - "volume": 2080.0, - "shape": "circular" - }, - { - "id": "B10", - "position": { - "x": 256.0, - "y": 20.0, - "z": 48.5 - }, - "diameter": 8.2, - "depth": 39.4, - "volume": 2080.0, - "shape": "circular" - }, - { - "id": "B11", - "position": { - "x": 265.0, - "y": 20.0, - "z": 48.5 - }, - "diameter": 8.2, - "depth": 39.4, - "volume": 2080.0, - "shape": "circular" - }, - { - "id": "B12", - "position": { - "x": 274.0, - "y": 20.0, - "z": 48.5 - }, - "diameter": 8.2, - "depth": 39.4, - "volume": 2080.0, - "shape": "circular" - }, - { - "id": "C01", - "position": { - "x": 175.0, - "y": 29.0, - "z": 48.5 - }, - "diameter": 8.2, - "depth": 39.4, - "volume": 2080.0, - "shape": "circular" - }, - { - "id": "C02", - "position": { - "x": 184.0, - "y": 29.0, - "z": 48.5 - }, - "diameter": 8.2, - "depth": 39.4, - "volume": 2080.0, - "shape": "circular" - }, - { - "id": "C03", - "position": { - "x": 193.0, - "y": 29.0, - "z": 48.5 - }, - "diameter": 8.2, - "depth": 39.4, - "volume": 2080.0, - "shape": "circular" - }, - { - "id": "C04", - "position": { - "x": 202.0, - "y": 29.0, - "z": 48.5 - }, - "diameter": 8.2, - "depth": 39.4, - "volume": 2080.0, - "shape": "circular" - }, - { - "id": "C05", - "position": { - "x": 211.0, - "y": 29.0, - "z": 48.5 - }, - "diameter": 8.2, - "depth": 39.4, - "volume": 2080.0, - "shape": "circular" - }, - { - "id": "C06", - "position": { - "x": 220.0, - "y": 29.0, - "z": 48.5 - }, - "diameter": 8.2, - "depth": 39.4, - "volume": 2080.0, - "shape": "circular" - }, - { - "id": "C07", - "position": { - "x": 229.0, - "y": 29.0, - "z": 48.5 - }, - "diameter": 8.2, - "depth": 39.4, - "volume": 2080.0, - "shape": "circular" - }, - { - "id": "C08", - "position": { - "x": 238.0, - "y": 29.0, - "z": 48.5 - }, - "diameter": 8.2, - "depth": 39.4, - "volume": 2080.0, - "shape": "circular" - }, - { - "id": "C09", - "position": { - "x": 247.0, - "y": 29.0, - "z": 48.5 - }, - "diameter": 8.2, - "depth": 39.4, - "volume": 2080.0, - "shape": "circular" - }, - { - "id": "C10", - "position": { - "x": 256.0, - "y": 29.0, - "z": 48.5 - }, - "diameter": 8.2, - "depth": 39.4, - "volume": 2080.0, - "shape": "circular" - }, - { - "id": "C11", - "position": { - "x": 265.0, - "y": 29.0, - "z": 48.5 - }, - "diameter": 8.2, - "depth": 39.4, - "volume": 2080.0, - "shape": "circular" - }, - { - "id": "C12", - "position": { - "x": 274.0, - "y": 29.0, - "z": 48.5 - }, - "diameter": 8.2, - "depth": 39.4, - "volume": 2080.0, - "shape": "circular" - }, - { - "id": "D01", - "position": { - "x": 175.0, - "y": 38.0, - "z": 48.5 - }, - "diameter": 8.2, - "depth": 39.4, - "volume": 2080.0, - "shape": "circular" - }, - { - "id": "D02", - "position": { - "x": 184.0, - "y": 38.0, - "z": 48.5 - }, - "diameter": 8.2, - "depth": 39.4, - "volume": 2080.0, - "shape": "circular" - }, - { - "id": "D03", - "position": { - "x": 193.0, - "y": 38.0, - "z": 48.5 - }, - "diameter": 8.2, - "depth": 39.4, - "volume": 2080.0, - "shape": "circular" - }, - { - "id": "D04", - "position": { - "x": 202.0, - "y": 38.0, - "z": 48.5 - }, - "diameter": 8.2, - "depth": 39.4, - "volume": 2080.0, - "shape": "circular" - }, - { - "id": "D05", - "position": { - "x": 211.0, - "y": 38.0, - "z": 48.5 - }, - "diameter": 8.2, - "depth": 39.4, - "volume": 2080.0, - "shape": "circular" - }, - { - "id": "D06", - "position": { - "x": 220.0, - "y": 38.0, - "z": 48.5 - }, - "diameter": 8.2, - "depth": 39.4, - "volume": 2080.0, - "shape": "circular" - }, - { - "id": "D07", - "position": { - "x": 229.0, - "y": 38.0, - "z": 48.5 - }, - "diameter": 8.2, - "depth": 39.4, - "volume": 2080.0, - "shape": "circular" - }, - { - "id": "D08", - "position": { - "x": 238.0, - "y": 38.0, - "z": 48.5 - }, - "diameter": 8.2, - "depth": 39.4, - "volume": 2080.0, - "shape": "circular" - }, - { - "id": "D09", - "position": { - "x": 247.0, - "y": 38.0, - "z": 48.5 - }, - "diameter": 8.2, - "depth": 39.4, - "volume": 2080.0, - "shape": "circular" - }, - { - "id": "D10", - "position": { - "x": 256.0, - "y": 38.0, - "z": 48.5 - }, - "diameter": 8.2, - "depth": 39.4, - "volume": 2080.0, - "shape": "circular" - }, - { - "id": "D11", - "position": { - "x": 265.0, - "y": 38.0, - "z": 48.5 - }, - "diameter": 8.2, - "depth": 39.4, - "volume": 2080.0, - "shape": "circular" - }, - { - "id": "D12", - "position": { - "x": 274.0, - "y": 38.0, - "z": 48.5 - }, - "diameter": 8.2, - "depth": 39.4, - "volume": 2080.0, - "shape": "circular" - }, - { - "id": "E01", - "position": { - "x": 175.0, - "y": 47.0, - "z": 48.5 - }, - "diameter": 8.2, - "depth": 39.4, - "volume": 2080.0, - "shape": "circular" - }, - { - "id": "E02", - "position": { - "x": 184.0, - "y": 47.0, - "z": 48.5 - }, - "diameter": 8.2, - "depth": 39.4, - "volume": 2080.0, - "shape": "circular" - }, - { - "id": "E03", - "position": { - "x": 193.0, - "y": 47.0, - "z": 48.5 - }, - "diameter": 8.2, - "depth": 39.4, - "volume": 2080.0, - "shape": "circular" - }, - { - "id": "E04", - "position": { - "x": 202.0, - "y": 47.0, - "z": 48.5 - }, - "diameter": 8.2, - "depth": 39.4, - "volume": 2080.0, - "shape": "circular" - }, - { - "id": "E05", - "position": { - "x": 211.0, - "y": 47.0, - "z": 48.5 - }, - "diameter": 8.2, - "depth": 39.4, - "volume": 2080.0, - "shape": "circular" - }, - { - "id": "E06", - "position": { - "x": 220.0, - "y": 47.0, - "z": 48.5 - }, - "diameter": 8.2, - "depth": 39.4, - "volume": 2080.0, - "shape": "circular" - }, - { - "id": "E07", - "position": { - "x": 229.0, - "y": 47.0, - "z": 48.5 - }, - "diameter": 8.2, - "depth": 39.4, - "volume": 2080.0, - "shape": "circular" - }, - { - "id": "E08", - "position": { - "x": 238.0, - "y": 47.0, - "z": 48.5 - }, - "diameter": 8.2, - "depth": 39.4, - "volume": 2080.0, - "shape": "circular" - }, - { - "id": "E09", - "position": { - "x": 247.0, - "y": 47.0, - "z": 48.5 - }, - "diameter": 8.2, - "depth": 39.4, - "volume": 2080.0, - "shape": "circular" - }, - { - "id": "E10", - "position": { - "x": 256.0, - "y": 47.0, - "z": 48.5 - }, - "diameter": 8.2, - "depth": 39.4, - "volume": 2080.0, - "shape": "circular" - }, - { - "id": "E11", - "position": { - "x": 265.0, - "y": 47.0, - "z": 48.5 - }, - "diameter": 8.2, - "depth": 39.4, - "volume": 2080.0, - "shape": "circular" - }, - { - "id": "E12", - "position": { - "x": 274.0, - "y": 47.0, - "z": 48.5 - }, - "diameter": 8.2, - "depth": 39.4, - "volume": 2080.0, - "shape": "circular" - }, - { - "id": "F01", - "position": { - "x": 175.0, - "y": 56.0, - "z": 48.5 - }, - "diameter": 8.2, - "depth": 39.4, - "volume": 2080.0, - "shape": "circular" - }, - { - "id": "F02", - "position": { - "x": 184.0, - "y": 56.0, - "z": 48.5 - }, - "diameter": 8.2, - "depth": 39.4, - "volume": 2080.0, - "shape": "circular" - }, - { - "id": "F03", - "position": { - "x": 193.0, - "y": 56.0, - "z": 48.5 - }, - "diameter": 8.2, - "depth": 39.4, - "volume": 2080.0, - "shape": "circular" - }, - { - "id": "F04", - "position": { - "x": 202.0, - "y": 56.0, - "z": 48.5 - }, - "diameter": 8.2, - "depth": 39.4, - "volume": 2080.0, - "shape": "circular" - }, - { - "id": "F05", - "position": { - "x": 211.0, - "y": 56.0, - "z": 48.5 - }, - "diameter": 8.2, - "depth": 39.4, - "volume": 2080.0, - "shape": "circular" - }, - { - "id": "F06", - "position": { - "x": 220.0, - "y": 56.0, - "z": 48.5 - }, - "diameter": 8.2, - "depth": 39.4, - "volume": 2080.0, - "shape": "circular" - }, - { - "id": "F07", - "position": { - "x": 229.0, - "y": 56.0, - "z": 48.5 - }, - "diameter": 8.2, - "depth": 39.4, - "volume": 2080.0, - "shape": "circular" - }, - { - "id": "F08", - "position": { - "x": 238.0, - "y": 56.0, - "z": 48.5 - }, - "diameter": 8.2, - "depth": 39.4, - "volume": 2080.0, - "shape": "circular" - }, - { - "id": "F09", - "position": { - "x": 247.0, - "y": 56.0, - "z": 48.5 - }, - "diameter": 8.2, - "depth": 39.4, - "volume": 2080.0, - "shape": "circular" - }, - { - "id": "F10", - "position": { - "x": 256.0, - "y": 56.0, - "z": 48.5 - }, - "diameter": 8.2, - "depth": 39.4, - "volume": 2080.0, - "shape": "circular" - }, - { - "id": "F11", - "position": { - "x": 265.0, - "y": 56.0, - "z": 48.5 - }, - "diameter": 8.2, - "depth": 39.4, - "volume": 2080.0, - "shape": "circular" - }, - { - "id": "F12", - "position": { - "x": 274.0, - "y": 56.0, - "z": 48.5 - }, - "diameter": 8.2, - "depth": 39.4, - "volume": 2080.0, - "shape": "circular" - }, - { - "id": "G01", - "position": { - "x": 175.0, - "y": 65.0, - "z": 48.5 - }, - "diameter": 8.2, - "depth": 39.4, - "volume": 2080.0, - "shape": "circular" - }, - { - "id": "G02", - "position": { - "x": 184.0, - "y": 65.0, - "z": 48.5 - }, - "diameter": 8.2, - "depth": 39.4, - "volume": 2080.0, - "shape": "circular" - }, - { - "id": "G03", - "position": { - "x": 193.0, - "y": 65.0, - "z": 48.5 - }, - "diameter": 8.2, - "depth": 39.4, - "volume": 2080.0, - "shape": "circular" - }, - { - "id": "G04", - "position": { - "x": 202.0, - "y": 65.0, - "z": 48.5 - }, - "diameter": 8.2, - "depth": 39.4, - "volume": 2080.0, - "shape": "circular" - }, - { - "id": "G05", - "position": { - "x": 211.0, - "y": 65.0, - "z": 48.5 - }, - "diameter": 8.2, - "depth": 39.4, - "volume": 2080.0, - "shape": "circular" - }, - { - "id": "G06", - "position": { - "x": 220.0, - "y": 65.0, - "z": 48.5 - }, - "diameter": 8.2, - "depth": 39.4, - "volume": 2080.0, - "shape": "circular" - }, - { - "id": "G07", - "position": { - "x": 229.0, - "y": 65.0, - "z": 48.5 - }, - "diameter": 8.2, - "depth": 39.4, - "volume": 2080.0, - "shape": "circular" - }, - { - "id": "G08", - "position": { - "x": 238.0, - "y": 65.0, - "z": 48.5 - }, - "diameter": 8.2, - "depth": 39.4, - "volume": 2080.0, - "shape": "circular" - }, - { - "id": "G09", - "position": { - "x": 247.0, - "y": 65.0, - "z": 48.5 - }, - "diameter": 8.2, - "depth": 39.4, - "volume": 2080.0, - "shape": "circular" - }, - { - "id": "G10", - "position": { - "x": 256.0, - "y": 65.0, - "z": 48.5 - }, - "diameter": 8.2, - "depth": 39.4, - "volume": 2080.0, - "shape": "circular" - }, - { - "id": "G11", - "position": { - "x": 265.0, - "y": 65.0, - "z": 48.5 - }, - "diameter": 8.2, - "depth": 39.4, - "volume": 2080.0, - "shape": "circular" - }, - { - "id": "G12", - "position": { - "x": 274.0, - "y": 65.0, - "z": 48.5 - }, - "diameter": 8.2, - "depth": 39.4, - "volume": 2080.0, - "shape": "circular" - }, - { - "id": "H01", - "position": { - "x": 175.0, - "y": 74.0, - "z": 48.5 - }, - "diameter": 8.2, - "depth": 39.4, - "volume": 2080.0, - "shape": "circular" - }, - { - "id": "H02", - "position": { - "x": 184.0, - "y": 74.0, - "z": 48.5 - }, - "diameter": 8.2, - "depth": 39.4, - "volume": 2080.0, - "shape": "circular" - }, - { - "id": "H03", - "position": { - "x": 193.0, - "y": 74.0, - "z": 48.5 - }, - "diameter": 8.2, - "depth": 39.4, - "volume": 2080.0, - "shape": "circular" - }, - { - "id": "H04", - "position": { - "x": 202.0, - "y": 74.0, - "z": 48.5 - }, - "diameter": 8.2, - "depth": 39.4, - "volume": 2080.0, - "shape": "circular" - }, - { - "id": "H05", - "position": { - "x": 211.0, - "y": 74.0, - "z": 48.5 - }, - "diameter": 8.2, - "depth": 39.4, - "volume": 2080.0, - "shape": "circular" - }, - { - "id": "H06", - "position": { - "x": 220.0, - "y": 74.0, - "z": 48.5 - }, - "diameter": 8.2, - "depth": 39.4, - "volume": 2080.0, - "shape": "circular" - }, - { - "id": "H07", - "position": { - "x": 229.0, - "y": 74.0, - "z": 48.5 - }, - "diameter": 8.2, - "depth": 39.4, - "volume": 2080.0, - "shape": "circular" - }, - { - "id": "H08", - "position": { - "x": 238.0, - "y": 74.0, - "z": 48.5 - }, - "diameter": 8.2, - "depth": 39.4, - "volume": 2080.0, - "shape": "circular" - }, - { - "id": "H09", - "position": { - "x": 247.0, - "y": 74.0, - "z": 48.5 - }, - "diameter": 8.2, - "depth": 39.4, - "volume": 2080.0, - "shape": "circular" - }, - { - "id": "H10", - "position": { - "x": 256.0, - "y": 74.0, - "z": 48.5 - }, - "diameter": 8.2, - "depth": 39.4, - "volume": 2080.0, - "shape": "circular" - }, - { - "id": "H11", - "position": { - "x": 265.0, - "y": 74.0, - "z": 48.5 - }, - "diameter": 8.2, - "depth": 39.4, - "volume": 2080.0, - "shape": "circular" - }, - { - "id": "H12", - "position": { - "x": 274.0, - "y": 74.0, - "z": 48.5 - }, - "diameter": 8.2, - "depth": 39.4, - "volume": 2080.0, - "shape": "circular" - } - ], - "well_spacing": { - "x": 9.0, - "y": 9.0 - }, - "grid": { - "rows": 8, - "columns": 12, - "row_labels": ["A", "B", "C", "D", "E", "F", "G", "H"], - "column_labels": ["01", "02", "03", "04", "05", "06", "07", "08", "09", "10", "11", "12"] - }, - "metadata": { - "description": "深孔96孔板", - "max_volume_ul": 2080, - "well_count": 96, - "plate_type": "deep_well_plate" - } - }, - { - "id": "module_3_beaker", - "name": "敞口玻璃瓶", - "type": "beaker_holder", - "position": { - "x": 65.0, - "y": 143.5, - "z": 0.0 - }, - "size": { - "x": 130.0, - "y": 117.0, - "z": 110.0 - }, - "wells": [ - { - "id": "A1", - "position": { - "x": 65.0, - "y": 143.5, - "z": 0.0 - }, - "diameter": 80.0, - "depth": 145.0, - "volume": 500000.0, - "shape": "circular", - "container_type": "beaker" - } - ], - "supported_containers": [ - { - "type": "beaker_250ml", - "diameter": 70.0, - "height": 95.0, - "volume": 250000.0 - }, - { - "type": "beaker_500ml", - "diameter": 85.0, - "height": 115.0, - "volume": 500000.0 - }, - { - "type": "beaker_1000ml", - "diameter": 105.0, - "height": 145.0, - "volume": 1000000.0 - } - ], - "metadata": { - "description": "敞口玻璃瓶固定座,支持250ml-1000ml烧杯", - "max_beaker_diameter": 80.0, - "max_beaker_height": 145.0, - "well_count": 1, - "access_from_top": true - } - }, - { - "id": "module_4_96well_tips", - "name": "96枪头盒", - "type": "96_tip_rack", - "position": { - "x": 165.62, - "y": 115.5, - "z": 103.0 - }, - "size": { - "x": 134.0, - "y": 96.0, - "z": 7.0 - }, - "wells": [ - { - "id": "A01", - "position": { - "x": 165.62, - "y": 115.5, - "z": 103.0 - }, - "diameter": 9.0, - "depth": 95.0, - "volume": 6000.0, - "shape": "circular" - }, - { - "id": "A02", - "position": { - "x": 174.62, - "y": 115.5, - "z": 103.0 - }, - "diameter": 9.0, - "depth": 95.0, - "volume": 6000.0, - "shape": "circular" - }, - { - "id": "A03", - "position": { - "x": 183.62, - "y": 115.5, - "z": 103.0 - }, - "diameter": 9.0, - "depth": 95.0, - "volume": 6000.0, - "shape": "circular" - }, - { - "id": "A04", - "position": { - "x": 192.62, - "y": 115.5, - "z": 103.0 - }, - "diameter": 9.0, - "depth": 95.0, - "volume": 6000.0, - "shape": "circular" - }, - { - "id": "A05", - "position": { - "x": 201.62, - "y": 115.5, - "z": 103.0 - }, - "diameter": 9.0, - "depth": 95.0, - "volume": 6000.0, - "shape": "circular" - }, - { - "id": "A06", - "position": { - "x": 210.62, - "y": 115.5, - "z": 103.0 - }, - "diameter": 9.0, - "depth": 95.0, - "volume": 6000.0, - "shape": "circular" - }, - { - "id": "A07", - "position": { - "x": 219.62, - "y": 115.5, - "z": 103.0 - }, - "diameter": 9.0, - "depth": 95.0, - "volume": 6000.0, - "shape": "circular" - }, - { - "id": "A08", - "position": { - "x": 228.62, - "y": 115.5, - "z": 103.0 - }, - "diameter": 9.0, - "depth": 95.0, - "volume": 6000.0, - "shape": "circular" - }, - { - "id": "A09", - "position": { - "x": 237.62, - "y": 115.5, - "z": 103.0 - }, - "diameter": 9.0, - "depth": 95.0, - "volume": 6000.0, - "shape": "circular" - }, - { - "id": "A10", - "position": { - "x": 246.62, - "y": 115.5, - "z": 103.0 - }, - "diameter": 9.0, - "depth": 95.0, - "volume": 6000.0, - "shape": "circular" - }, - { - "id": "A11", - "position": { - "x": 255.62, - "y": 115.5, - "z": 103.0 - }, - "diameter": 9.0, - "depth": 95.0, - "volume": 6000.0, - "shape": "circular" - }, - { - "id": "A12", - "position": { - "x": 264.62, - "y": 115.5, - "z": 103.0 - }, - "diameter": 9.0, - "depth": 95.0, - "volume": 6000.0, - "shape": "circular" - }, - { - "id": "B01", - "position": { - "x": 165.62, - "y": 124.5, - "z": 103.0 - }, - "diameter": 9.0, - "depth": 95.0, - "volume": 6000.0, - "shape": "circular" - }, - { - "id": "B02", - "position": { - "x": 174.62, - "y": 124.5, - "z": 103.0 - }, - "diameter": 9.0, - "depth": 95.0, - "volume": 6000.0, - "shape": "circular" - }, - { - "id": "B03", - "position": { - "x": 183.62, - "y": 124.5, - "z": 103.0 - }, - "diameter": 9.0, - "depth": 95.0, - "volume": 6000.0, - "shape": "circular" - }, - { - "id": "B04", - "position": { - "x": 192.62, - "y": 124.5, - "z": 103.0 - }, - "diameter": 9.0, - "depth": 95.0, - "volume": 6000.0, - "shape": "circular" - }, - { - "id": "B05", - "position": { - "x": 201.62, - "y": 124.5, - "z": 103.0 - }, - "diameter": 9.0, - "depth": 95.0, - "volume": 6000.0, - "shape": "circular" - }, - { - "id": "B06", - "position": { - "x": 210.62, - "y": 124.5, - "z": 103.0 - }, - "diameter": 9.0, - "depth": 95.0, - "volume": 6000.0, - "shape": "circular" - }, - { - "id": "B07", - "position": { - "x": 219.62, - "y": 124.5, - "z": 103.0 - }, - "diameter": 9.0, - "depth": 95.0, - "volume": 6000.0, - "shape": "circular" - }, - { - "id": "B08", - "position": { - "x": 228.62, - "y": 124.5, - "z": 103.0 - }, - "diameter": 9.0, - "depth": 95.0, - "volume": 6000.0, - "shape": "circular" - }, - { - "id": "B09", - "position": { - "x": 237.62, - "y": 124.5, - "z": 103.0 - }, - "diameter": 9.0, - "depth": 95.0, - "volume": 6000.0, - "shape": "circular" - }, - { - "id": "B10", - "position": { - "x": 246.62, - "y": 124.5, - "z": 103.0 - }, - "diameter": 9.0, - "depth": 95.0, - "volume": 6000.0, - "shape": "circular" - }, - { - "id": "B11", - "position": { - "x": 255.62, - "y": 124.5, - "z": 103.0 - }, - "diameter": 9.0, - "depth": 95.0, - "volume": 6000.0, - "shape": "circular" - }, - { - "id": "B12", - "position": { - "x": 264.62, - "y": 124.5, - "z": 103.0 - }, - "diameter": 9.0, - "depth": 95.0, - "volume": 6000.0, - "shape": "circular" - }, - { - "id": "C01", - "position": { - "x": 165.62, - "y": 133.5, - "z": 103.0 - }, - "diameter": 9.0, - "depth": 95.0, - "volume": 6000.0, - "shape": "circular" - }, - { - "id": "C02", - "position": { - "x": 174.62, - "y": 133.5, - "z": 103.0 - }, - "diameter": 9.0, - "depth": 95.0, - "volume": 6000.0, - "shape": "circular" - }, - { - "id": "C03", - "position": { - "x": 183.62, - "y": 133.5, - "z": 103.0 - }, - "diameter": 9.0, - "depth": 95.0, - "volume": 6000.0, - "shape": "circular" - }, - { - "id": "C04", - "position": { - "x": 192.62, - "y": 133.5, - "z": 103.0 - }, - "diameter": 9.0, - "depth": 95.0, - "volume": 6000.0, - "shape": "circular" - }, - { - "id": "C05", - "position": { - "x": 201.62, - "y": 133.5, - "z": 103.0 - }, - "diameter": 9.0, - "depth": 95.0, - "volume": 6000.0, - "shape": "circular" - }, - { - "id": "C06", - "position": { - "x": 210.62, - "y": 133.5, - "z": 103.0 - }, - "diameter": 9.0, - "depth": 95.0, - "volume": 6000.0, - "shape": "circular" - }, - { - "id": "C07", - "position": { - "x": 219.62, - "y": 133.5, - "z": 103.0 - }, - "diameter": 9.0, - "depth": 95.0, - "volume": 6000.0, - "shape": "circular" - }, - { - "id": "C08", - "position": { - "x": 228.62, - "y": 133.5, - "z": 103.0 - }, - "diameter": 9.0, - "depth": 95.0, - "volume": 6000.0, - "shape": "circular" - }, - { - "id": "C09", - "position": { - "x": 237.62, - "y": 133.5, - "z": 103.0 - }, - "diameter": 9.0, - "depth": 95.0, - "volume": 6000.0, - "shape": "circular" - }, - { - "id": "C10", - "position": { - "x": 246.62, - "y": 133.5, - "z": 103.0 - }, - "diameter": 9.0, - "depth": 95.0, - "volume": 6000.0, - "shape": "circular" - }, - { - "id": "C11", - "position": { - "x": 255.62, - "y": 133.5, - "z": 103.0 - }, - "diameter": 9.0, - "depth": 95.0, - "volume": 6000.0, - "shape": "circular" - }, - { - "id": "C12", - "position": { - "x": 264.62, - "y": 133.5, - "z": 103.0 - }, - "diameter": 9.0, - "depth": 95.0, - "volume": 6000.0, - "shape": "circular" - }, - { - "id": "D01", - "position": { - "x": 165.62, - "y": 142.5, - "z": 103.0 - }, - "diameter": 9.0, - "depth": 95.0, - "volume": 6000.0, - "shape": "circular" - }, - { - "id": "D02", - "position": { - "x": 174.62, - "y": 142.5, - "z": 103.0 - }, - "diameter": 9.0, - "depth": 95.0, - "volume": 6000.0, - "shape": "circular" - }, - { - "id": "D03", - "position": { - "x": 183.62, - "y": 142.5, - "z": 103.0 - }, - "diameter": 9.0, - "depth": 95.0, - "volume": 6000.0, - "shape": "circular" - }, - { - "id": "D04", - "position": { - "x": 192.62, - "y": 142.5, - "z": 103.0 - }, - "diameter": 9.0, - "depth": 95.0, - "volume": 6000.0, - "shape": "circular" - }, - { - "id": "D05", - "position": { - "x": 201.62, - "y": 142.5, - "z": 103.0 - }, - "diameter": 9.0, - "depth": 95.0, - "volume": 6000.0, - "shape": "circular" - }, - { - "id": "D06", - "position": { - "x": 210.62, - "y": 142.5, - "z": 103.0 - }, - "diameter": 9.0, - "depth": 95.0, - "volume": 6000.0, - "shape": "circular" - }, - { - "id": "D07", - "position": { - "x": 219.62, - "y": 142.5, - "z": 103.0 - }, - "diameter": 9.0, - "depth": 95.0, - "volume": 6000.0, - "shape": "circular" - }, - { - "id": "D08", - "position": { - "x": 228.62, - "y": 142.5, - "z": 103.0 - }, - "diameter": 9.0, - "depth": 95.0, - "volume": 6000.0, - "shape": "circular" - }, - { - "id": "D09", - "position": { - "x": 237.62, - "y": 142.5, - "z": 103.0 - }, - "diameter": 9.0, - "depth": 95.0, - "volume": 6000.0, - "shape": "circular" - }, - { - "id": "D10", - "position": { - "x": 246.62, - "y": 142.5, - "z": 103.0 - }, - "diameter": 9.0, - "depth": 95.0, - "volume": 6000.0, - "shape": "circular" - }, - { - "id": "D11", - "position": { - "x": 255.62, - "y": 142.5, - "z": 103.0 - }, - "diameter": 9.0, - "depth": 95.0, - "volume": 6000.0, - "shape": "circular" - }, - { - "id": "D12", - "position": { - "x": 264.62, - "y": 142.5, - "z": 103.0 - }, - "diameter": 9.0, - "depth": 95.0, - "volume": 6000.0, - "shape": "circular" - }, - { - "id": "E01", - "position": { - "x": 165.62, - "y": 151.5, - "z": 103.0 - }, - "diameter": 9.0, - "depth": 95.0, - "volume": 6000.0, - "shape": "circular" - }, - { - "id": "E02", - "position": { - "x": 174.62, - "y": 151.5, - "z": 103.0 - }, - "diameter": 9.0, - "depth": 95.0, - "volume": 6000.0, - "shape": "circular" - }, - { - "id": "E03", - "position": { - "x": 183.62, - "y": 151.5, - "z": 103.0 - }, - "diameter": 9.0, - "depth": 95.0, - "volume": 6000.0, - "shape": "circular" - }, - { - "id": "E04", - "position": { - "x": 192.62, - "y": 151.5, - "z": 103.0 - }, - "diameter": 9.0, - "depth": 95.0, - "volume": 6000.0, - "shape": "circular" - }, - { - "id": "E05", - "position": { - "x": 201.62, - "y": 151.5, - "z": 103.0 - }, - "diameter": 9.0, - "depth": 95.0, - "volume": 6000.0, - "shape": "circular" - }, - { - "id": "E06", - "position": { - "x": 210.62, - "y": 151.5, - "z": 103.0 - }, - "diameter": 9.0, - "depth": 95.0, - "volume": 6000.0, - "shape": "circular" - }, - { - "id": "E07", - "position": { - "x": 219.62, - "y": 151.5, - "z": 103.0 - }, - "diameter": 9.0, - "depth": 95.0, - "volume": 6000.0, - "shape": "circular" - }, - { - "id": "E08", - "position": { - "x": 228.62, - "y": 151.5, - "z": 103.0 - }, - "diameter": 9.0, - "depth": 95.0, - "volume": 6000.0, - "shape": "circular" - }, - { - "id": "E09", - "position": { - "x": 237.62, - "y": 151.5, - "z": 103.0 - }, - "diameter": 9.0, - "depth": 95.0, - "volume": 6000.0, - "shape": "circular" - }, - { - "id": "E10", - "position": { - "x": 246.62, - "y": 151.5, - "z": 103.0 - }, - "diameter": 9.0, - "depth": 95.0, - "volume": 6000.0, - "shape": "circular" - }, - { - "id": "E11", - "position": { - "x": 255.62, - "y": 151.5, - "z": 103.0 - }, - "diameter": 9.0, - "depth": 95.0, - "volume": 6000.0, - "shape": "circular" - }, - { - "id": "E12", - "position": { - "x": 264.62, - "y": 151.5, - "z": 103.0 - }, - "diameter": 9.0, - "depth": 95.0, - "volume": 6000.0, - "shape": "circular" - }, - { - "id": "F01", - "position": { - "x": 165.62, - "y": 160.5, - "z": 103.0 - }, - "diameter": 9.0, - "depth": 95.0, - "volume": 6000.0, - "shape": "circular" - }, - { - "id": "F02", - "position": { - "x": 174.62, - "y": 160.5, - "z": 103.0 - }, - "diameter": 9.0, - "depth": 95.0, - "volume": 6000.0, - "shape": "circular" - }, - { - "id": "F03", - "position": { - "x": 183.62, - "y": 160.5, - "z": 103.0 - }, - "diameter": 9.0, - "depth": 95.0, - "volume": 6000.0, - "shape": "circular" - }, - { - "id": "F04", - "position": { - "x": 192.62, - "y": 160.5, - "z": 103.0 - }, - "diameter": 9.0, - "depth": 95.0, - "volume": 6000.0, - "shape": "circular" - }, - { - "id": "F05", - "position": { - "x": 201.62, - "y": 160.5, - "z": 103.0 - }, - "diameter": 9.0, - "depth": 95.0, - "volume": 6000.0, - "shape": "circular" - }, - { - "id": "F06", - "position": { - "x": 210.62, - "y": 160.5, - "z": 103.0 - }, - "diameter": 9.0, - "depth": 95.0, - "volume": 6000.0, - "shape": "circular" - }, - { - "id": "F07", - "position": { - "x": 219.62, - "y": 160.5, - "z": 103.0 - }, - "diameter": 9.0, - "depth": 95.0, - "volume": 6000.0, - "shape": "circular" - }, - { - "id": "F08", - "position": { - "x": 228.62, - "y": 160.5, - "z": 103.0 - }, - "diameter": 9.0, - "depth": 95.0, - "volume": 6000.0, - "shape": "circular" - }, - { - "id": "F09", - "position": { - "x": 237.62, - "y": 160.5, - "z": 103.0 - }, - "diameter": 9.0, - "depth": 95.0, - "volume": 6000.0, - "shape": "circular" - }, - { - "id": "F10", - "position": { - "x": 246.62, - "y": 160.5, - "z": 103.0 - }, - "diameter": 9.0, - "depth": 95.0, - "volume": 6000.0, - "shape": "circular" - }, - { - "id": "F11", - "position": { - "x": 255.62, - "y": 160.5, - "z": 103.0 - }, - "diameter": 9.0, - "depth": 95.0, - "volume": 6000.0, - "shape": "circular" - }, - { - "id": "F12", - "position": { - "x": 264.62, - "y": 160.5, - "z": 103.0 - }, - "diameter": 9.0, - "depth": 95.0, - "volume": 6000.0, - "shape": "circular" - }, - { - "id": "G01", - "position": { - "x": 165.62, - "y": 169.5, - "z": 103.0 - }, - "diameter": 9.0, - "depth": 95.0, - "volume": 6000.0, - "shape": "circular" - }, - { - "id": "G02", - "position": { - "x": 174.62, - "y": 169.5, - "z": 103.0 - }, - "diameter": 9.0, - "depth": 95.0, - "volume": 6000.0, - "shape": "circular" - }, - { - "id": "G03", - "position": { - "x": 183.62, - "y": 169.5, - "z": 103.0 - }, - "diameter": 9.0, - "depth": 95.0, - "volume": 6000.0, - "shape": "circular" - }, - { - "id": "G04", - "position": { - "x": 192.62, - "y": 169.5, - "z": 103.0 - }, - "diameter": 9.0, - "depth": 95.0, - "volume": 6000.0, - "shape": "circular" - }, - { - "id": "G05", - "position": { - "x": 201.62, - "y": 169.5, - "z": 103.0 - }, - "diameter": 9.0, - "depth": 95.0, - "volume": 6000.0, - "shape": "circular" - }, - { - "id": "G06", - "position": { - "x": 210.62, - "y": 169.5, - "z": 103.0 - }, - "diameter": 9.0, - "depth": 95.0, - "volume": 6000.0, - "shape": "circular" - }, - { - "id": "G07", - "position": { - "x": 219.62, - "y": 169.5, - "z": 103.0 - }, - "diameter": 9.0, - "depth": 95.0, - "volume": 6000.0, - "shape": "circular" - }, - { - "id": "G08", - "position": { - "x": 228.62, - "y": 169.5, - "z": 103.0 - }, - "diameter": 9.0, - "depth": 95.0, - "volume": 6000.0, - "shape": "circular" - }, - { - "id": "G09", - "position": { - "x": 237.62, - "y": 169.5, - "z": 103.0 - }, - "diameter": 9.0, - "depth": 95.0, - "volume": 6000.0, - "shape": "circular" - }, - { - "id": "G10", - "position": { - "x": 246.62, - "y": 169.5, - "z": 103.0 - }, - "diameter": 9.0, - "depth": 95.0, - "volume": 6000.0, - "shape": "circular" - }, - { - "id": "G11", - "position": { - "x": 255.62, - "y": 169.5, - "z": 103.0 - }, - "diameter": 9.0, - "depth": 95.0, - "volume": 6000.0, - "shape": "circular" - }, - { - "id": "G12", - "position": { - "x": 264.62, - "y": 169.5, - "z": 103.0 - }, - "diameter": 9.0, - "depth": 95.0, - "volume": 6000.0, - "shape": "circular" - }, - { - "id": "H01", - "position": { - "x": 165.62, - "y": 178.5, - "z": 103.0 - }, - "diameter": 9.0, - "depth": 95.0, - "volume": 6000.0, - "shape": "circular" - }, - { - "id": "H02", - "position": { - "x": 174.62, - "y": 178.5, - "z": 103.0 - }, - "diameter": 9.0, - "depth": 95.0, - "volume": 6000.0, - "shape": "circular" - }, - { - "id": "H03", - "position": { - "x": 183.62, - "y": 178.5, - "z": 103.0 - }, - "diameter": 9.0, - "depth": 95.0, - "volume": 6000.0, - "shape": "circular" - }, - { - "id": "H04", - "position": { - "x": 192.62, - "y": 178.5, - "z": 103.0 - }, - "diameter": 9.0, - "depth": 95.0, - "volume": 6000.0, - "shape": "circular" - }, - { - "id": "H05", - "position": { - "x": 201.62, - "y": 178.5, - "z": 103.0 - }, - "diameter": 9.0, - "depth": 95.0, - "volume": 6000.0, - "shape": "circular" - }, - { - "id": "H06", - "position": { - "x": 210.62, - "y": 178.5, - "z": 103.0 - }, - "diameter": 9.0, - "depth": 95.0, - "volume": 6000.0, - "shape": "circular" - }, - { - "id": "H07", - "position": { - "x": 219.62, - "y": 178.5, - "z": 103.0 - }, - "diameter": 9.0, - "depth": 95.0, - "volume": 6000.0, - "shape": "circular" - }, - { - "id": "H08", - "position": { - "x": 228.62, - "y": 178.5, - "z": 103.0 - }, - "diameter": 9.0, - "depth": 95.0, - "volume": 6000.0, - "shape": "circular" - }, - { - "id": "H09", - "position": { - "x": 237.62, - "y": 178.5, - "z": 103.0 - }, - "diameter": 9.0, - "depth": 95.0, - "volume": 6000.0, - "shape": "circular" - }, - { - "id": "H10", - "position": { - "x": 246.62, - "y": 178.5, - "z": 103.0 - }, - "diameter": 9.0, - "depth": 95.0, - "volume": 6000.0, - "shape": "circular" - }, - { - "id": "H11", - "position": { - "x": 255.62, - "y": 178.5, - "z": 103.0 - }, - "diameter": 9.0, - "depth": 95.0, - "volume": 6000.0, - "shape": "circular" - }, - { - "id": "H12", - "position": { - "x": 264.62, - "y": 178.5, - "z": 103.0 - }, - "diameter": 9.0, - "depth": 95.0, - "volume": 6000.0, - "shape": "circular" - } - ], - "well_spacing": { - "x": 9.0, - "y": 9.0 - }, - "grid": { - "rows": 8, - "columns": 12, - "row_labels": ["A", "B", "C", "D", "E", "F", "G", "H"], - "column_labels": ["01", "02", "03", "04", "05", "06", "07", "08", "09", "10", "11", "12"] - }, - "metadata": { - "description": "标准96孔枪头盒", - "max_volume_ul": 6000, - "well_count": 96, - "plate_type": "tip_rack" - } - } - ], - "deck_metadata": { - "total_modules": 4, - "total_wells": 201, - "deck_area": { - "used_x": 299.62, - "used_y": 260.5, - "used_z": 103.0, - "efficiency_x": 88.1, - "efficiency_y": 104.2, - "efficiency_z": 64.4 - }, - "safety_margins": { - "x_min": 10.0, - "x_max": 10.0, - "y_min": 10.0, - "y_max": 10.0, - "z_clearance": 20.0 - }, - "calibration_points": [ - { - "id": "origin", - "position": {"x": 0.0, "y": 0.0, "z": 0.0}, - "description": "工作台左上角原点" - }, - { - "id": "module_1_ref", - "position": {"x": 23.0, "y": 20.0, "z": 0.0}, - "description": "模块1试管架基准孔A1" - }, - { - "id": "module_2_ref", - "position": {"x": 175.0, "y": 11.0, "z": 48.5}, - "description": "模块2深孔板基准孔A01" - }, - { - "id": "module_3_ref", - "position": {"x": 65.0, "y": 143.5, "z": 0.0}, - "description": "模块3敞口玻璃瓶中心" - }, - { - "id": "module_4_ref", - "position": {"x": 165.62, "y": 115.5, "z": 103.0}, - "description": "模块4枪头盒基准孔A01" - } - ], - "version": "2.0", - "created_by": "Doraemon Team", - "last_updated": "2025-09-29" - } -} \ No newline at end of file diff --git a/unilabos/devices/liquid_handling/laiyu/controllers/__init__.py b/unilabos/devices/liquid_handling/laiyu/controllers/__init__.py deleted file mode 100644 index d50b1eca..00000000 --- a/unilabos/devices/liquid_handling/laiyu/controllers/__init__.py +++ /dev/null @@ -1,25 +0,0 @@ -""" -LaiYu_Liquid 控制器模块 - -该模块包含了LaiYu_Liquid液体处理工作站的高级控制器: -- 移液器控制器:提供液体处理的高级接口 -- XYZ运动控制器:提供三轴运动的高级接口 -""" - -# 移液器控制器导入 -from .pipette_controller import PipetteController - -# XYZ运动控制器导入 -from .xyz_controller import XYZController - -__all__ = [ - # 移液器控制器 - "PipetteController", - - # XYZ运动控制器 - "XYZController", -] - -__version__ = "1.0.0" -__author__ = "LaiYu_Liquid Controller Team" -__description__ = "LaiYu_Liquid 高级控制器集合" \ No newline at end of file diff --git a/unilabos/devices/liquid_handling/laiyu/controllers/coordinate_origin.json b/unilabos/devices/liquid_handling/laiyu/controllers/coordinate_origin.json deleted file mode 100644 index b21901ec..00000000 --- a/unilabos/devices/liquid_handling/laiyu/controllers/coordinate_origin.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "machine_origin_steps": { - "x": -198.43, - "y": -94.25, - "z": -0.73 - }, - "work_origin_steps": { - "x": 59.39, - "y": 216.99, - "z": 2.0 - }, - "is_homed": true, - "timestamp": "2025-10-29T20:34:11.749055" -} \ No newline at end of file diff --git a/unilabos/devices/liquid_handling/laiyu/controllers/pipette_controller.py b/unilabos/devices/liquid_handling/laiyu/controllers/pipette_controller.py deleted file mode 100644 index 17a47df1..00000000 --- a/unilabos/devices/liquid_handling/laiyu/controllers/pipette_controller.py +++ /dev/null @@ -1,1103 +0,0 @@ -#!/usr/bin/env python3 -# -*- coding: utf-8 -*- -""" -移液控制器模块 -封装SOPA移液器的高级控制功能 -""" - -# 添加项目根目录到Python路径以解决模块导入问题 -import sys -import os -from tkinter import N - -from unilabos.devices.liquid_handling.laiyu.drivers.xyz_stepper_driver import ModbusException - -# 无论如何都添加项目根目录到路径 -current_file = os.path.abspath(__file__) -# 从 .../Uni-Lab-OS/unilabos/devices/LaiYu_Liquid/controllers/pipette_controller.py -# 向上5级到 .../Uni-Lab-OS -project_root = os.path.dirname(os.path.dirname(os.path.dirname(os.path.dirname(os.path.dirname(current_file))))) -# 强制添加项目根目录到sys.path的开头 -sys.path.insert(0, project_root) - -import time -import logging -from typing import Optional, List, Dict, Tuple -from dataclasses import dataclass -from enum import Enum - -from unilabos.devices.liquid_handling.laiyu.drivers.sopa_pipette_driver import ( - SOPAPipette, - SOPAConfig, - SOPAStatusCode, - DetectionMode, - create_sopa_pipette, -) -# from unilabos.devices.liquid_handling.laiyu.drivers.xyz_stepper_driver import ( -# XYZStepperController, -# MotorAxis, -# MotorStatus, -# ModbusException -# ) - -from unilabos.devices.liquid_handling.laiyu.controllers.xyz_controller import ( - XYZController, - MotorAxis, - MotorStatus -) - -logger = logging.getLogger(__name__) - - -class TipStatus(Enum): - """枪头状态""" - NO_TIP = "no_tip" - TIP_ATTACHED = "tip_attached" - TIP_USED = "tip_used" - - -class LiquidClass(Enum): - """液体类型""" - WATER = "water" - SERUM = "serum" - VISCOUS = "viscous" - VOLATILE = "volatile" - CUSTOM = "custom" - - -@dataclass -class LiquidParameters: - """液体处理参数""" - aspirate_speed: int = 500 # 吸液速度 - dispense_speed: int = 800 # 排液速度 - air_gap: float = 10.0 # 空气间隙 - blow_out: float = 5.0 # 吹出量 - pre_wet: bool = False # 预润湿 - mix_cycles: int = 0 # 混合次数 - mix_volume: float = 50.0 # 混合体积 - touch_tip: bool = False # 接触壁 - delay_after_aspirate: float = 0.5 # 吸液后延时 - delay_after_dispense: float = 0.5 # 排液后延时 - - -class PipetteController: - """移液控制器""" - - # 预定义液体参数 - LIQUID_PARAMS = { - LiquidClass.WATER: LiquidParameters( - aspirate_speed=500, - dispense_speed=800, - air_gap=10.0 - ), - LiquidClass.SERUM: LiquidParameters( - aspirate_speed=200, - dispense_speed=400, - air_gap=15.0, - pre_wet=True, - delay_after_aspirate=1.0 - ), - LiquidClass.VISCOUS: LiquidParameters( - aspirate_speed=100, - dispense_speed=200, - air_gap=20.0, - delay_after_aspirate=2.0, - delay_after_dispense=2.0 - ), - LiquidClass.VOLATILE: LiquidParameters( - aspirate_speed=800, - dispense_speed=1000, - air_gap=5.0, - delay_after_aspirate=0.2, - delay_after_dispense=0.2 - ) - } - - def __init__(self, port: str, address: int = 4, xyz_port: Optional[str] = None): - """ - 初始化移液控制器 - - Args: - port: 移液器串口端口 - address: 移液器RS485地址 - xyz_port: XYZ步进电机串口端口(可选,用于枪头装载等运动控制) - """ - self.config = SOPAConfig( - port=port, - address=address, - baudrate=115200 - ) - self.pipette = SOPAPipette(self.config) - self.pipette_port = port - self.tip_status = TipStatus.NO_TIP - self.current_volume = 0.0 - self.max_volume = 1000.0 # 默认1000ul - self.liquid_class = LiquidClass.WATER - self.liquid_params = self.LIQUID_PARAMS[LiquidClass.WATER] - - # XYZ步进电机控制器(用于运动控制) - self.xyz_controller: Optional[XYZController] = None - self.xyz_port = xyz_port if xyz_port else port - self.xyz_connected = True - - # 统计信息 - # self.tip_count = 0 - self.aspirate_count = 0 - self.dispense_count = 0 - - def connect(self) -> bool: - """连接移液器和XYZ步进电机控制器""" - try: - # 连接移液器 - if not self.pipette.connect(): - logger.error("移液器连接失败") - return False - logger.info("移液器连接成功") - - # 连接XYZ步进电机控制器(如果提供了端口) - if self.xyz_port != self.pipette_port: - try: - self.xyz_controller = XYZController(self.xyz_port) - if self.xyz_controller.connect(): - self.xyz_connected = True - logger.info(f"XYZ步进电机控制器连接成功: {self.xyz_port}") - else: - logger.warning(f"XYZ步进电机控制器连接失败: {self.xyz_port}") - self.xyz_controller = None - except Exception as e: - logger.warning(f"XYZ步进电机控制器连接异常: {e}") - self.xyz_controller = None - self.xyz_connected = False - else: - try: - self.xyz_controller = XYZController(self.xyz_port, auto_connect=False) - self.xyz_controller.serial_conn = self.pipette.serial_port - self.xyz_controller.is_connected = True - except Exception as e: - logger.info("未配置XYZ步进电机端口,跳过运动控制器连接") - - return True - except Exception as e: - logger.error(f"设备连接失败: {e}") - return False - - def initialize(self) -> bool: - """初始化移液器""" - try: - if self.pipette.initialize(): - logger.info("移液器初始化成功") - # 检查枪头状态 - self._update_tip_status() - self.xyz_controller.home_all_axes() - self.xyz_controller.move_to_work_coord_safe(x=0, y=-150, z=0) - return True - return False - except Exception as e: - logger.error(f"移液器初始化失败: {e}") - return False - - def disconnect(self): - """断开连接""" - # 断开移液器连接 - self.pipette.disconnect() - logger.info("移液器已断开") - - # 断开 XYZ 步进电机连接 - if self.xyz_controller and self.xyz_connected: - try: - self.xyz_controller.disconnect() - self.xyz_connected = False - logger.info("XYZ 步进电机已断开") - except Exception as e: - logger.error(f"断开 XYZ 步进电机失败: {e}") - - def _check_xyz_safety(self, axis: MotorAxis, target_position: int) -> bool: - """ - 检查 XYZ 轴移动的安全性 - - Args: - axis: 电机轴 - target_position: 目标位置(步数) - - Returns: - 是否安全 - """ - try: - # 获取当前电机状态 - motor_position = self.xyz_controller.get_motor_status(axis) - - # 检查电机状态是否正常 (不是碰撞停止或限位停止) - if motor_position.status in [MotorStatus.COLLISION_STOP, - MotorStatus.FORWARD_LIMIT_STOP, - MotorStatus.REVERSE_LIMIT_STOP]: - logger.error(f"{axis.name} 轴电机处于错误状态: {motor_position.status.name}") - return False - - # 检查位置限制 (扩大安全范围以适应实际硬件) - # 步进电机的位置范围通常很大,这里设置更合理的范围 - if target_position < -500000 or target_position > 500000: - logger.error(f"{axis.name} 轴目标位置超出安全范围: {target_position}") - return False - - # 检查移动距离是否过大 (单次移动不超过 20000 步,约12mm) - current_position = motor_position.steps - move_distance = abs(target_position - current_position) - if move_distance > 20000: - logger.error(f"{axis.name} 轴单次移动距离过大: {move_distance}步") - return False - - return True - - except Exception as e: - logger.error(f"安全检查失败: {e}") - return False - - def move_z_relative(self, distance_mm: float, speed: int = 2000, acceleration: int = 500) -> bool: - """ - Z轴相对移动 - - Args: - distance_mm: 移动距离(mm),正值向下,负值向上 - speed: 移动速度(rpm) - acceleration: 加速度(rpm/s) - - Returns: - 移动是否成功 - """ - if not self.xyz_controller or not self.xyz_connected: - logger.error("XYZ 步进电机未连接,无法执行移动") - return False - - try: - # 参数验证 - if abs(distance_mm) > 15.0: - logger.error(f"移动距离过大: {distance_mm}mm,最大允许15mm") - return False - - if speed < 100 or speed > 5000: - logger.error(f"速度参数无效: {speed}rpm,范围应为100-5000") - return False - - # 获取当前 Z 轴位置 - current_status = self.xyz_controller.get_motor_status(MotorAxis.Z) - current_z_position = current_status.steps - - # 计算移动距离对应的步数 (1mm = 1638.4步) - mm_to_steps = 1638.4 - move_distance_steps = int(distance_mm * mm_to_steps) - - # 计算目标位置 - target_z_position = current_z_position + move_distance_steps - - # 安全检查 - if not self._check_xyz_safety(MotorAxis.Z, target_z_position): - logger.error("Z轴移动安全检查失败") - return False - - logger.info(f"Z轴相对移动: {distance_mm}mm ({move_distance_steps}步)") - logger.info(f"当前位置: {current_z_position}步 -> 目标位置: {target_z_position}步") - - # 执行移动 - success = self.xyz_controller.move_to_position( - axis=MotorAxis.Z, - position=target_z_position, - speed=speed, - acceleration=acceleration, - precision=50 - ) - - if not success: - logger.error("Z轴移动命令发送失败") - return False - - # 等待移动完成 - if not self.xyz_controller.wait_for_completion(MotorAxis.Z, timeout=10.0): - logger.error("Z轴移动超时") - return False - - # 验证移动结果 - final_status = self.xyz_controller.get_motor_status(MotorAxis.Z) - final_position = final_status.steps - position_error = abs(final_position - target_z_position) - - logger.info(f"Z轴移动完成,最终位置: {final_position}步,误差: {position_error}步") - - if position_error > 100: - logger.warning(f"Z轴位置误差较大: {position_error}步") - - return True - - except ModbusException as e: - logger.error(f"Modbus通信错误: {e}") - return False - except Exception as e: - logger.error(f"Z轴移动失败: {e}") - return False - - def emergency_stop(self) -> bool: - """ - 紧急停止所有运动 - - Returns: - 停止是否成功 - """ - success = True - - # 停止移液器操作 - try: - if self.pipette and self.connected: - # 这里可以添加移液器的紧急停止逻辑 - logger.info("移液器紧急停止") - except Exception as e: - logger.error(f"移液器紧急停止失败: {e}") - success = False - - # 停止 XYZ 轴运动 - try: - if self.xyz_controller and self.xyz_connected: - self.xyz_controller.emergency_stop() - logger.info("XYZ 轴紧急停止") - except Exception as e: - logger.error(f"XYZ 轴紧急停止失败: {e}") - success = False - - return success - - def pickup_tip(self) -> bool: - """ - 装载枪头 - Z轴向下移动10mm进行枪头装载 - - Returns: - 是否成功 - """ - self._update_tip_status() - if self.tip_status == TipStatus.TIP_ATTACHED: - logger.warning("已有枪头,无需重复装载") - return True - - logger.info("开始装载枪头 - Z轴向下移动10mm") - - # 使用相对移动方法,向下移动10mm - if self.move_z_relative(distance_mm=10.0, speed=2000, acceleration=500): - # 更新枪头状态 - self._update_tip_status() - # self.tip_status = TipStatus.TIP_ATTACHED - # self.tip_count += 1 - self.current_volume = 0.0 - if self.tip_status == TipStatus.TIP_ATTACHED: - logger.info("枪头装载成功") - return True - else : - logger.info("枪头装载失败") - return False - else: - logger.error("枪头装载失败 - Z轴移动失败") - return False - - def eject_tip(self) -> bool: - """ - 弹出枪头 - - Returns: - 是否成功 - """ - - self._update_tip_status() - - if self.tip_status == TipStatus.NO_TIP: - logger.warning("无枪头可弹出") - return True - - try: - if self.pipette.eject_tip(): - self._update_tip_status() - if self.tip_status == TipStatus.NO_TIP: - self.current_volume = 0.0 - logger.info("枪头已弹出") - return True - return False - except Exception as e: - logger.error(f"弹出枪头失败: {e}") - return False - - def aspirate(self, volume: float, liquid_class: Optional[LiquidClass] = None, - detection: bool = True) -> bool: - """ - 吸液 - - Args: - volume: 吸液体积(ul) - liquid_class: 液体类型 - detection: 是否开启液位检测 - - Returns: - 是否成功 - """ - self._update_tip_status() - if self.tip_status != TipStatus.TIP_ATTACHED: - logger.error("无枪头,无法吸液") - return False - - if self.current_volume + volume > self.max_volume: - logger.error(f"吸液量超过枪头容量: {self.current_volume + volume} > {self.max_volume}") - return False - - # 设置液体参数 - if liquid_class: - self.set_liquid_class(liquid_class) - - try: - # 设置吸液速度 - self.pipette.set_max_speed(self.liquid_params.aspirate_speed) - - # 执行液位检测 - if detection: - if not self.pipette.liquid_level_detection(): - logger.warning("液位检测失败,继续吸液") - - # 预润湿 - if self.liquid_params.pre_wet and self.current_volume == 0: - logger.info("执行预润湿") - self._pre_wet(volume * 0.2) - - # 吸液 - if self.pipette.aspirate(volume, detection=False): - self.current_volume += volume - self.aspirate_count += 1 - - # 吸液后延时 - time.sleep(self.liquid_params.delay_after_aspirate) - - # 吸取空气间隙 - if self.liquid_params.air_gap > 0: - self.pipette.aspirate(self.liquid_params.air_gap, detection=False) - self.current_volume += self.liquid_params.air_gap - - logger.info(f"吸液完成: {volume}ul, 当前体积: {self.current_volume}ul") - return True - else: - logger.error("吸液失败") - return False - - except Exception as e: - logger.error(f"吸液异常: {e}") - return False - - def dispense(self, volume: float, blow_out: bool = False) -> bool: - """ - 排液 - - Args: - volume: 排液体积(ul) - blow_out: 是否吹出 - - Returns: - 是否成功 - """ - self._update_tip_status() - if self.tip_status != TipStatus.TIP_ATTACHED: - logger.error("无枪头,无法排液") - return False - - if volume > self.current_volume: - logger.error(f"排液量超过当前体积: {volume} > {self.current_volume}") - return False - - try: - # 设置排液速度 - self.pipette.set_max_speed(self.liquid_params.dispense_speed) - - # 排液 - if self.pipette.dispense(volume): - self.current_volume -= volume - self.dispense_count += 1 - - # 排液后延时 - time.sleep(self.liquid_params.delay_after_dispense) - - # 吹出 - if blow_out and self.liquid_params.blow_out > 0: - self.pipette.dispense(self.liquid_params.blow_out) - logger.debug(f"执行吹出: {self.liquid_params.blow_out}ul") - - # 接触壁 - if self.liquid_params.touch_tip: - self._touch_tip() - - logger.info(f"排液完成: {volume}ul, 剩余体积: {self.current_volume}ul") - return True - else: - logger.error("排液失败") - return False - - except Exception as e: - logger.error(f"排液异常: {e}") - return False - - def transfer(self, volume: float, - source_well: Optional[str] = None, - dest_well: Optional[str] = None, - liquid_class: Optional[LiquidClass] = None, - new_tip: bool = True, - mix_before: Optional[Tuple[int, float]] = None, - mix_after: Optional[Tuple[int, float]] = None) -> bool: - """ - 液体转移 - - Args: - volume: 转移体积 - source_well: 源孔位 - dest_well: 目标孔位 - liquid_class: 液体类型 - new_tip: 是否使用新枪头 - mix_before: 吸液前混合(次数, 体积) - mix_after: 排液后混合(次数, 体积) - - Returns: - 是否成功 - """ - try: - # 装载新枪头 - if new_tip: - self.eject_tip() - if not self.pickup_tip(): - return False - - # 设置液体类型 - if liquid_class: - self.set_liquid_class(liquid_class) - - # 吸液前混合 - if mix_before: - cycles, mix_vol = mix_before - self.mix(cycles, mix_vol) - - # 吸液 - if not self.aspirate(volume): - return False - - # 排液 - if not self.dispense(volume, blow_out=True): - return False - - # 排液后混合 - if mix_after: - cycles, mix_vol = mix_after - self.mix(cycles, mix_vol) - - logger.info(f"液体转移完成: {volume}ul") - return True - - except Exception as e: - logger.error(f"液体转移失败: {e}") - return False - - def mix(self, cycles: int = 3, volume: Optional[float] = None) -> bool: - """ - 混合 - - Args: - cycles: 混合次数 - volume: 混合体积 - - Returns: - 是否成功 - """ - volume = volume or self.liquid_params.mix_volume - - logger.info(f"开始混合: {cycles}次, {volume}ul") - - for i in range(cycles): - if not self.aspirate(volume, detection=False): - return False - if not self.dispense(volume): - return False - - logger.info("混合完成") - return True - - def _pre_wet(self, volume: float): - """预润湿""" - self.pipette.aspirate(volume, detection=False) - time.sleep(0.2) - self.pipette.dispense(volume) - time.sleep(0.2) - - def _touch_tip(self): - """接触壁(需要与运动控制配合)""" - # TODO: 实现接触壁动作 - logger.debug("执行接触壁") - time.sleep(0.5) - - def _update_tip_status(self): - """更新枪头状态""" - if self.pipette.get_tip_status(): - self.tip_status = TipStatus.TIP_ATTACHED - else: - self.tip_status = TipStatus.NO_TIP - - def set_liquid_class(self, liquid_class: LiquidClass): - """设置液体类型""" - self.liquid_class = liquid_class - if liquid_class in self.LIQUID_PARAMS: - self.liquid_params = self.LIQUID_PARAMS[liquid_class] - logger.info(f"液体类型设置为: {liquid_class.value}") - - def set_custom_parameters(self, params: LiquidParameters): - """设置自定义液体参数""" - self.liquid_params = params - self.liquid_class = LiquidClass.CUSTOM - - def calibrate_volume(self, expected: float, actual: float): - """ - 体积校准 - - Args: - expected: 期望体积 - actual: 实际体积 - """ - factor = actual / expected - self.pipette.set_calibration_factor(factor) - logger.info(f"体积校准系数: {factor}") - - def get_status(self) -> Dict: - """获取状态信息""" - self._update_tip_status() - return { - 'tip_status': self.tip_status.value, - 'current_volume': self.current_volume, - 'max_volume': self.max_volume, - 'liquid_class': self.liquid_class.value, - 'statistics': { - # 'tip_count': self.tip_count, - 'aspirate_count': self.aspirate_count, - 'dispense_count': self.dispense_count - } - } - - def reset_statistics(self): - """重置统计信息""" - # self.tip_count = 0 - self.aspirate_count = 0 - self.dispense_count = 0 - -# ============================================================================ -# 实例化代码块 - 移液控制器使用示例 -# ============================================================================ - -if __name__ == "__main__": - # 配置日志 - import logging - - # 设置日志级别 - logging.basicConfig( - level=logging.INFO, - format='%(asctime)s - %(name)s - %(levelname)s - %(message)s' - ) - - def interactive_test(): - """交互式测试模式 - 适用于已连接的设备""" - print("\n" + "=" * 60) - print("🧪 移液器交互式测试模式") - print("=" * 60) - - # 获取用户输入的连接参数 - print("\n📡 设备连接配置:") - port = input("请输入移液器串口端口 (默认: /dev/ttyUSB_CH340): ").strip() or "/dev/ttyUSB_CH340" - address_input = input("请输入移液器设备地址 (默认: 4): ").strip() - address = int(address_input) if address_input else 4 - - # 询问是否连接 XYZ 步进电机控制器 - xyz_enable = input("是否连接 XYZ 步进电机控制器? (y/N): ").strip().lower() - xyz_port = None - if xyz_enable not in ['n', 'no']: - xyz_port = input("请输入 XYZ 控制器串口端口 (默认: /dev/ttyUSB_CH340): ").strip() or "/dev/ttyUSB_CH340" - - try: - # 创建移液控制器实例 - if xyz_port: - print(f"\n🔧 创建移液控制器实例 (移液器端口: {port}, 地址: {address}, XYZ端口: {xyz_port})...") - pipette = PipetteController(port=port, address=address, xyz_port=xyz_port) - else: - print(f"\n🔧 创建移液控制器实例 (端口: {port}, 地址: {address})...") - pipette = PipetteController(port=port, address=address) - - # 连接设备 - print("\n📞 连接移液器设备...") - if not pipette.connect(): - print("❌ 设备连接失败,请检查连接") - return - print("✅ 设备连接成功") - - # 初始化设备 - print("\n🚀 初始化设备...") - if not pipette.initialize(): - print("❌ 设备初始化失败") - return - print("✅ 设备初始化成功") - - # 交互式菜单 - while True: - print("\n" + "=" * 50) - print("🎮 交互式操作菜单:") - print("1. 📋 查看设备状态") - print("2. 🔧 装载枪头") - print("3. 🗑️ 弹出枪头") - print("4. 💧 吸液操作") - print("5. 💦 排液操作") - print("6. 🌀 混合操作") - print("7. 🔄 液体转移") - print("8. ⚙️ 设置液体类型") - print("9. 🎯 自定义参数") - print("10. 📊 校准体积") - print("11. 🧹 重置统计") - print("12. 🔍 液体类型测试") - print("99. 🚨 紧急停止") - print("0. 🚪 退出程序") - print("=" * 50) - - choice = input("\n请选择操作 (0-12, 99): ").strip() - - if choice == "0": - print("\n👋 退出程序...") - break - elif choice == "1": - # 查看设备状态 - status = pipette.get_status() - print("\n📊 设备状态信息:") - print(f" 🎯 枪头状态: {status['tip_status']}") - print(f" 💧 当前体积: {status['current_volume']}ul") - print(f" 📏 最大体积: {status['max_volume']}ul") - print(f" 🧪 液体类型: {status['liquid_class']}") - print(f" 📈 统计信息:") - # print(f" 🔧 枪头使用次数: {status['statistics']['tip_count']}") - print(f" ⬆️ 吸液次数: {status['statistics']['aspirate_count']}") - print(f" ⬇️ 排液次数: {status['statistics']['dispense_count']}") - - elif choice == "2": - # 装载枪头 - print("\n🔧 装载枪头...") - if pipette.xyz_connected: - print("📍 使用 XYZ 控制器进行 Z 轴定位 (下移 10mm)") - else: - print("⚠️ 未连接 XYZ 控制器,仅执行移液器枪头装载") - - if pipette.pickup_tip(): - print("✅ 枪头装载成功") - if pipette.xyz_connected: - print("📍 Z 轴已移动到装载位置") - else: - print("❌ 枪头装载失败") - - elif choice == "3": - # 弹出枪头 - print("\n🗑️ 弹出枪头...") - if pipette.eject_tip(): - print("✅ 枪头弹出成功") - else: - print("❌ 枪头弹出失败") - - elif choice == "4": - # 吸液操作 - try: - volume = float(input("请输入吸液体积 (ul): ")) - detection = input("是否启用液面检测? (y/n, 默认y): ").strip().lower() != 'n' - print(f"\n💧 执行吸液操作 ({volume}ul)...") - if pipette.aspirate(volume, detection=detection): - print(f"✅ 吸液成功: {volume}ul") - print(f"📊 当前体积: {pipette.current_volume}ul") - else: - print("❌ 吸液失败") - except ValueError: - print("❌ 请输入有效的数字") - - elif choice == "5": - # 排液操作 - try: - volume = float(input("请输入排液体积 (ul): ")) - blow_out = input("是否执行吹出操作? (y/n, 默认n): ").strip().lower() == 'y' - print(f"\n💦 执行排液操作 ({volume}ul)...") - if pipette.dispense(volume, blow_out=blow_out): - print(f"✅ 排液成功: {volume}ul") - print(f"📊 剩余体积: {pipette.current_volume}ul") - else: - print("❌ 排液失败") - except ValueError: - print("❌ 请输入有效的数字") - - elif choice == "6": - # 混合操作 - try: - cycles = int(input("请输入混合次数 (默认3): ") or "3") - volume_input = input("请输入混合体积 (ul, 默认使用当前体积的50%): ").strip() - volume = float(volume_input) if volume_input else None - print(f"\n🌀 执行混合操作 ({cycles}次)...") - if pipette.mix(cycles=cycles, volume=volume): - print("✅ 混合完成") - else: - print("❌ 混合失败") - except ValueError: - print("❌ 请输入有效的数字") - - elif choice == "7": - # 液体转移 - try: - volume = float(input("请输入转移体积 (ul): ")) - source = input("源孔位 (可选, 如A1): ").strip() or None - dest = input("目标孔位 (可选, 如B1): ").strip() or None - new_tip = input("是否使用新枪头? (y/n, 默认y): ").strip().lower() != 'n' - - print(f"\n🔄 执行液体转移 ({volume}ul)...") - if pipette.transfer(volume=volume, source_well=source, dest_well=dest, new_tip=new_tip): - print("✅ 液体转移完成") - else: - print("❌ 液体转移失败") - except ValueError: - print("❌ 请输入有效的数字") - - elif choice == "8": - # 设置液体类型 - print("\n🧪 可用液体类型:") - liquid_options = { - "1": (LiquidClass.WATER, "水溶液"), - "2": (LiquidClass.SERUM, "血清"), - "3": (LiquidClass.VISCOUS, "粘稠液体"), - "4": (LiquidClass.VOLATILE, "挥发性液体") - } - - for key, (liquid_class, description) in liquid_options.items(): - print(f" {key}. {description}") - - liquid_choice = input("请选择液体类型 (1-4): ").strip() - if liquid_choice in liquid_options: - liquid_class, description = liquid_options[liquid_choice] - pipette.set_liquid_class(liquid_class) - print(f"✅ 液体类型设置为: {description}") - - # 显示参数 - params = pipette.liquid_params - print(f"📋 参数设置:") - print(f" ⬆️ 吸液速度: {params.aspirate_speed}") - print(f" ⬇️ 排液速度: {params.dispense_speed}") - print(f" 💨 空气间隙: {params.air_gap}ul") - print(f" 💧 预润湿: {'是' if params.pre_wet else '否'}") - else: - print("❌ 无效选择") - - elif choice == "9": - # 自定义参数 - try: - print("\n⚙️ 设置自定义参数 (直接回车使用默认值):") - aspirate_speed = input("吸液速度 (默认500): ").strip() - dispense_speed = input("排液速度 (默认800): ").strip() - air_gap = input("空气间隙 (ul, 默认10.0): ").strip() - pre_wet = input("预润湿 (y/n, 默认n): ").strip().lower() == 'y' - - custom_params = LiquidParameters( - aspirate_speed=int(aspirate_speed) if aspirate_speed else 500, - dispense_speed=int(dispense_speed) if dispense_speed else 800, - air_gap=float(air_gap) if air_gap else 10.0, - pre_wet=pre_wet - ) - - pipette.set_custom_parameters(custom_params) - print("✅ 自定义参数设置完成") - except ValueError: - print("❌ 请输入有效的数字") - - elif choice == "10": - # 校准体积 - try: - expected = float(input("期望体积 (ul): ")) - actual = float(input("实际测量体积 (ul): ")) - pipette.calibrate_volume(expected, actual) - print(f"✅ 校准完成,校准系数: {actual/expected:.3f}") - except ValueError: - print("❌ 请输入有效的数字") - - elif choice == "11": - # 重置统计 - pipette.reset_statistics() - print("✅ 统计信息已重置") - - elif choice == "12": - # 液体类型测试 - print("\n🧪 液体类型参数对比:") - liquid_tests = [ - (LiquidClass.WATER, "水溶液"), - (LiquidClass.SERUM, "血清"), - (LiquidClass.VISCOUS, "粘稠液体"), - (LiquidClass.VOLATILE, "挥发性液体") - ] - - for liquid_class, description in liquid_tests: - params = pipette.LIQUID_PARAMS[liquid_class] - print(f"\n📋 {description} ({liquid_class.value}):") - print(f" ⬆️ 吸液速度: {params.aspirate_speed}") - print(f" ⬇️ 排液速度: {params.dispense_speed}") - print(f" 💨 空气间隙: {params.air_gap}ul") - print(f" 💧 预润湿: {'是' if params.pre_wet else '否'}") - print(f" ⏱️ 吸液后延时: {params.delay_after_aspirate}s") - - elif choice == "99": - # 紧急停止 - print("\n🚨 执行紧急停止...") - success = pipette.emergency_stop() - if success: - print("✅ 紧急停止执行成功") - print("⚠️ 所有运动已停止,请检查设备状态") - else: - print("❌ 紧急停止执行失败") - print("⚠️ 请手动检查设备状态并采取必要措施") - - # 紧急停止后询问是否继续 - continue_choice = input("\n是否继续操作?(y/n): ").strip().lower() - if continue_choice != 'y': - print("🚪 退出程序") - break - - else: - print("❌ 无效选择,请重新输入") - - # 等待用户确认继续 - input("\n按回车键继续...") - - except KeyboardInterrupt: - print("\n\n⚠️ 用户中断操作") - except Exception as e: - print(f"\n❌ 发生异常: {e}") - finally: - # 断开连接 - print("\n📞 断开设备连接...") - try: - pipette.disconnect() - print("✅ 连接已断开") - except: - print("⚠️ 断开连接时出现问题") - - def demo_test(): - """演示测试模式 - 完整功能演示""" - print("\n" + "=" * 60) - print("🎬 移液控制器演示测试") - print("=" * 60) - - try: - # 创建移液控制器实例 - print("1. 🔧 创建移液控制器实例...") - pipette = PipetteController(port="/dev/ttyUSB0", address=4) - print("✅ 移液控制器实例创建成功") - - # 连接设备 - print("\n2. 📞 连接移液器设备...") - if pipette.connect(): - print("✅ 设备连接成功") - else: - print("❌ 设备连接失败") - return False - - # 初始化设备 - print("\n3. 🚀 初始化设备...") - if pipette.initialize(): - print("✅ 设备初始化成功") - else: - print("❌ 设备初始化失败") - return False - - # 装载枪头 - print("\n4. 🔧 装载枪头...") - if pipette.pickup_tip(): - print("✅ 枪头装载成功") - else: - print("❌ 枪头装载失败") - - # 设置液体类型 - print("\n5. 🧪 设置液体类型为血清...") - pipette.set_liquid_class(LiquidClass.SERUM) - print("✅ 液体类型设置完成") - - # 吸液操作 - print("\n6. 💧 执行吸液操作...") - volume_to_aspirate = 100.0 - if pipette.aspirate(volume_to_aspirate, detection=True): - print(f"✅ 吸液成功: {volume_to_aspirate}ul") - print(f"📊 当前体积: {pipette.current_volume}ul") - else: - print("❌ 吸液失败") - - # 排液操作 - print("\n7. 💦 执行排液操作...") - volume_to_dispense = 50.0 - if pipette.dispense(volume_to_dispense, blow_out=True): - print(f"✅ 排液成功: {volume_to_dispense}ul") - print(f"📊 剩余体积: {pipette.current_volume}ul") - else: - print("❌ 排液失败") - - # 混合操作 - print("\n8. 🌀 执行混合操作...") - if pipette.mix(cycles=3, volume=30.0): - print("✅ 混合完成") - else: - print("❌ 混合失败") - - # 获取状态信息 - print("\n9. 📊 获取设备状态...") - status = pipette.get_status() - print("设备状态信息:") - print(f" 🎯 枪头状态: {status['tip_status']}") - print(f" 💧 当前体积: {status['current_volume']}ul") - print(f" 📏 最大体积: {status['max_volume']}ul") - print(f" 🧪 液体类型: {status['liquid_class']}") - print(f" 📈 统计信息:") - # print(f" 🔧 枪头使用次数: {status['statistics']['tip_count']}") - print(f" ⬆️ 吸液次数: {status['statistics']['aspirate_count']}") - print(f" ⬇️ 排液次数: {status['statistics']['dispense_count']}") - - # 弹出枪头 - print("\n10. 🗑️ 弹出枪头...") - if pipette.eject_tip(): - print("✅ 枪头弹出成功") - else: - print("❌ 枪头弹出失败") - - print("\n" + "=" * 60) - print("✅ 移液控制器演示测试完成") - print("=" * 60) - - return True - - except Exception as e: - print(f"\n❌ 测试过程中发生异常: {e}") - return False - - finally: - # 断开连接 - print("\n📞 断开连接...") - pipette.disconnect() - print("✅ 连接已断开") - - # 主程序入口 - print("🧪 移液器控制器测试程序") - print("=" * 40) - print("1. 🎮 交互式测试 (推荐)") - print("2. 🎬 演示测试") - print("0. 🚪 退出") - print("=" * 40) - - mode = input("请选择测试模式 (0-2): ").strip() - - if mode == "1": - interactive_test() - elif mode == "2": - demo_test() - elif mode == "0": - print("👋 再见!") - else: - print("❌ 无效选择") - - print("\n🎉 程序结束!") - print("\n💡 使用说明:") - print("1. 确保移液器硬件已正确连接") - print("2. 根据实际情况修改串口端口号") - print("3. 交互模式支持实时操作和参数调整") - print("4. 在实际使用中需要配合运动控制器进行位置移动") diff --git a/unilabos/devices/liquid_handling/laiyu/controllers/xyz_controller.py b/unilabos/devices/liquid_handling/laiyu/controllers/xyz_controller.py deleted file mode 100644 index e06624ad..00000000 --- a/unilabos/devices/liquid_handling/laiyu/controllers/xyz_controller.py +++ /dev/null @@ -1,1253 +0,0 @@ -#!/usr/bin/env python3 -# -*- coding: utf-8 -*- -""" -XYZ三轴步进电机控制器 -支持坐标系管理、限位开关回零、工作原点设定等功能 - -主要功能: -- 坐标系转换层(步数↔毫米) -- 限位开关回零功能 -- 工作原点示教和保存 -- 安全限位检查 -- 运动控制接口 - -""" - -import json -import os -from re import X -import time -from typing import Optional, Dict, Tuple, Union -from dataclasses import dataclass, field, asdict -from pathlib import Path -import logging - -# 添加项目根目录到Python路径以解决模块导入问题 -import sys -import os - -# 无论如何都添加项目根目录到路径 -current_file = os.path.abspath(__file__) -# 从 .../Uni-Lab-OS/unilabos/devices/LaiYu_Liquid/controllers/xyz_controller.py -# 向上5级到 .../Uni-Lab-OS -project_root = os.path.dirname(os.path.dirname(os.path.dirname(os.path.dirname(os.path.dirname(current_file))))) -# 强制添加项目根目录到sys.path的开头 -sys.path.insert(0, project_root) - -# 导入原有的驱动 -from unilabos.devices.liquid_handling.laiyu.drivers.xyz_stepper_driver import XYZStepperController, MotorAxis, MotorStatus - -logger = logging.getLogger(__name__) - - -@dataclass -class MachineConfig: - """机械配置参数""" - # 步距配置 (基于16384步/圈的步进电机) - steps_per_mm_x: float = 204.8 # X轴步距 (16384步/圈 ÷ 80mm导程) - steps_per_mm_y: float = 204.8 # Y轴步距 (16384步/圈 ÷ 80mm导程) - steps_per_mm_z: float = 3276.8 # Z轴步距 (16384步/圈 ÷ 5mm导程) - - # 行程限制 - max_travel_x: float = 340.0 # X轴最大行程 - max_travel_y: float = 250.0 # Y轴最大行程 - max_travel_z: float = 200.0 # Z轴最大行程 - reference_distance: Dict[str, float] = field(default_factory=lambda: { - "x": 29, - "y": -13, - "z": -75.5 - }) - # 安全移动参数 - safe_z_height: float = 0.0 # Z轴安全移动高度 (mm) - 液体处理工作站安全高度 - z_approach_height: float = 5.0 # Z轴接近高度 (mm) - 在目标位置上方的预备高度 - - # 回零参数 - homing_speed: int = 50 # 回零速度 (mm/s) - homing_timeout: float = 30.0 # 回零超时时间 - safe_clearance: float = 10.0 # 安全间隙 (mm) - position_stable_time: float = 1.0 # 位置稳定检测时间(秒) - position_check_interval: float = 0.2 # 位置检查间隔(秒) - - # 运动参数 - default_speed: int = 50 # 默认运动速度 (mm/s) - default_acceleration: int = 1000 # 默认加速度 - - -@dataclass -class CoordinateOrigin: - """坐标原点信息""" - machine_origin_steps: Dict[str, int] = None # 机械原点步数位置 - work_origin_steps: Dict[str, int] = None # 工作原点步数位置 - is_homed: bool = False # 是否已回零 - timestamp: str = "" # 设定时间戳 - - def __post_init__(self): - if self.machine_origin_steps is None: - self.machine_origin_steps = {"x": 0, "y": 0, "z": 0} - if self.work_origin_steps is None: - self.work_origin_steps = {"x": 0, "y": 0, "z": 0} - - -class CoordinateSystemError(Exception): - """坐标系统异常""" - pass - - -class XYZController(XYZStepperController): - """XYZ三轴控制器""" - - def __init__(self, port: str, baudrate: int = 115200, - machine_config: Optional[MachineConfig] = None, - config_file: str = "machine_config.json", - auto_connect: bool = True): - """ - 初始化XYZ控制器 - - Args: - port: 串口端口 - baudrate: 波特率 - machine_config: 机械配置参数 - config_file: 配置文件路径 - auto_connect: 是否自动连接设备 - """ - super().__init__(port, baudrate) - - # 机械配置 - self.machine_config = machine_config or MachineConfig() - self.config_file = config_file - - # 坐标系统 - self.coordinate_origin = CoordinateOrigin() - import os - self.origin_file = os.path.join(os.path.dirname(os.path.abspath(__file__)), "coordinate_origin.json") - - # 连接状态 - self.is_connected = False - - # 加载配置 - self._load_config() - self._load_coordinate_origin() - - # 自动连接设备 - if auto_connect: - self.connect_device() - - def connect_device(self) -> bool: - """ - 连接设备并初始化 - - Returns: - bool: 连接是否成功 - """ - try: - logger.info(f"正在连接设备: {self.port}") - - # 连接硬件 - if not self.connect(): - logger.error("硬件连接失败") - return False - - self.is_connected = True - logger.info("设备连接成功") - - # 使能所有轴 - enable_results = self.enable_all_axes(True) - success_count = sum(1 for result in enable_results.values() if result) - logger.info(f"轴使能结果: {success_count}/{len(enable_results)} 成功") - - # 获取系统状态 - try: - status = self.get_system_status() - logger.info(f"系统状态获取成功: {len(status)} 项信息") - except Exception as e: - logger.warning(f"获取系统状态失败: {e}") - - return True - - except Exception as e: - logger.error(f"设备连接失败: {e}") - self.is_connected = False - return False - - def disconnect_device(self): - """断开设备连接""" - try: - if self.is_connected: - self.disconnect() # 使用父类的disconnect方法 - self.is_connected = False - logger.info("设备连接已断开") - except Exception as e: - logger.error(f"断开连接失败: {e}") - - def _load_config(self): - """加载机械配置""" - try: - if os.path.exists(self.config_file): - with open(self.config_file, 'r', encoding='utf-8') as f: - config_data = json.load(f) - # 更新配置参数 - for key, value in config_data.items(): - if hasattr(self.machine_config, key): - setattr(self.machine_config, key, value) - logger.info("机械配置加载完成") - except Exception as e: - logger.warning(f"加载机械配置失败: {e},使用默认配置") - - def _save_config(self): - """保存机械配置""" - try: - with open(self.config_file, 'w', encoding='utf-8') as f: - json.dump(asdict(self.machine_config), f, indent=2, ensure_ascii=False) - logger.info("机械配置保存完成") - except Exception as e: - logger.error(f"保存机械配置失败: {e}") - - def _load_coordinate_origin(self): - """加载坐标原点信息""" - try: - if os.path.exists(self.origin_file): - with open(self.origin_file, 'r', encoding='utf-8') as f: - origin_data = json.load(f) - - for key, value in origin_data["machine_origin_steps"].items(): - origin_data["machine_origin_steps"][key] = round(self.mm_to_steps(MotorAxis[key.upper()], value), 2) - - for key, value in origin_data["work_origin_steps"].items(): - origin_data["work_origin_steps"][key] = round(self.mm_to_steps(MotorAxis[key.upper()], value), 2) - - self.coordinate_origin = CoordinateOrigin(**origin_data) - logger.info("坐标原点信息加载完成") - except Exception as e: - logger.warning(f"加载坐标原点失败: {e},使用默认设置") - - def _save_coordinate_origin(self): - """保存坐标原点信息""" - try: - # 更新时间戳 - from datetime import datetime - self.coordinate_origin.timestamp = datetime.now().isoformat() - - with open(self.origin_file, 'w', encoding='utf-8') as f: - json_data = asdict(self.coordinate_origin) - for key, value in json_data["machine_origin_steps"].items(): - json_data["machine_origin_steps"][key] = round(self.steps_to_mm(MotorAxis[key.upper()], value), 2) - - for key, value in json_data["work_origin_steps"].items(): - json_data["work_origin_steps"][key] = round(self.steps_to_mm(MotorAxis[key.upper()], value), 2) - - json.dump(json_data, f, indent=2, ensure_ascii=False) - logger.info("坐标原点信息保存完成") - except Exception as e: - logger.error(f"保存坐标原点失败: {e}") - - # ==================== 坐标转换方法 ==================== - - def mm_to_steps(self, axis: MotorAxis, mm: float) -> int: - """毫米转步数""" - if axis == MotorAxis.X: - return int(mm * self.machine_config.steps_per_mm_x) - elif axis == MotorAxis.Y: - return int(mm * self.machine_config.steps_per_mm_y) - elif axis == MotorAxis.Z: - return int(mm * self.machine_config.steps_per_mm_z) - else: - raise ValueError(f"未知轴: {axis}") - - def steps_to_mm(self, axis: MotorAxis, steps: int) -> float: - """步数转毫米""" - if axis == MotorAxis.X: - return steps / self.machine_config.steps_per_mm_x - elif axis == MotorAxis.Y: - return steps / self.machine_config.steps_per_mm_y - elif axis == MotorAxis.Z: - return steps / self.machine_config.steps_per_mm_z - else: - raise ValueError(f"未知轴: {axis}") - - def work_to_machine_steps(self, x: float = None, y: float = None, z: float = None) -> Dict[str, int]: - """工作坐标转机械坐标步数""" - machine_steps = {} - - if x is not None: - work_steps = self.mm_to_steps(MotorAxis.X, x) - machine_steps['x'] = self.coordinate_origin.work_origin_steps['x'] + work_steps + self.coordinate_origin.machine_origin_steps['x'] - - if y is not None: - work_steps = self.mm_to_steps(MotorAxis.Y, y) - machine_steps['y'] = self.coordinate_origin.work_origin_steps['y'] + work_steps + self.coordinate_origin.machine_origin_steps['y'] - - if z is not None: - work_steps = self.mm_to_steps(MotorAxis.Z, z) - machine_steps['z'] = self.coordinate_origin.work_origin_steps['z'] + work_steps + self.coordinate_origin.machine_origin_steps['z'] - - return machine_steps - - def machine_to_work_coords(self, machine_steps: Dict[str, int]) -> Dict[str, float]: - """机械坐标步数转工作坐标""" - work_coords = {} - - for axis_name, steps in machine_steps.items(): - axis = MotorAxis[axis_name.upper()] - work_origin_steps = self.coordinate_origin.work_origin_steps[axis_name] - relative_steps = steps - work_origin_steps - self.coordinate_origin.machine_origin_steps[axis_name] - work_coords[axis_name] = self.steps_to_mm(axis, relative_steps) - - return work_coords - - def check_travel_limits(self, x: float = None, y: float = None, z: float = None) -> bool: - """检查行程限制""" - min_x = min(0, -50) - min_y = min(0, -50) - min_z = min(0, -50) - - if x is not None and (x < min_x or x > self.machine_config.max_travel_x): - raise CoordinateSystemError(f"X轴超出行程范围: {x}mm ({min_x} ~ {self.machine_config.max_travel_x}mm)") - - if y is not None and (y < min_y or y > self.machine_config.max_travel_y): - raise CoordinateSystemError(f"Y轴超出行程范围: {y}mm ({min_y} ~ {self.machine_config.max_travel_y}mm)") - - if z is not None and (z < min_z or z > self.machine_config.max_travel_z): - raise CoordinateSystemError(f"Z轴超出行程范围: {z}mm ({min_z} ~ {self.machine_config.max_travel_z}mm)") - - return True - - # ==================== 回零和原点设定方法 ==================== - - def home_axis(self, axis: MotorAxis, direction: int = -1, speed: float = None) -> bool: - """ - 单轴回零到限位开关 - 使用步数变化检测 - - Args: - axis: 要回零的轴 - direction: 回零方向 (-1负方向, 1正方向) - - Returns: - bool: 回零是否成功 - """ - if not self.is_connected: - logger.error("设备未连接,无法执行回零操作") - return False - - try: - logger.info(f"开始{axis.name}轴回零") - - # 使能电机 - if not self.enable_motor(axis, True): - raise CoordinateSystemError(f"{axis.name}轴使能失败") - - # 设置回零速度模式,根据方向设置正负 - if speed is None: - speed_ = self.machine_config.homing_speed - else: - speed_ = speed - - speed_ = min(max(speed_, 0), 500) - if not self.set_speed_mode(axis, self.ms_to_rpm(axis, speed_) * direction): - raise CoordinateSystemError(f"{axis.name}轴设置回零速度失败") - - - - # 智能回零检测 - 基于步数变化 - start_time = time.time() - limit_detected = False - final_position = None - - # 步数变化检测参数(从配置获取) - position_stable_time = self.machine_config.position_stable_time - check_interval = self.machine_config.position_check_interval - last_position = None - stable_start_time = None - - logger.info(f"{axis.name}轴开始移动,监测步数变化...") - - while time.time() - start_time < self.machine_config.homing_timeout: - status = self.get_motor_status(axis) - current_position = status.steps - - # 检查是否明确触碰限位开关 - if (direction < 0 and status.status == MotorStatus.REVERSE_LIMIT_STOP) or \ - (direction > 0 and status.status == MotorStatus.FORWARD_LIMIT_STOP): - # 停止运动 - self.emergency_stop(axis) - time.sleep(0.5) - - # 记录机械原点位置 - final_position = current_position - limit_detected = True - logger.info(f"{axis.name}轴检测到限位开关信号,位置: {final_position}步") - break - - # 检查是否发生碰撞 - if status.status == MotorStatus.COLLISION_STOP: - raise CoordinateSystemError(f"{axis.name}轴回零时发生碰撞") - - # 步数变化检测逻辑 - if last_position is not None: - # 检查位置是否发生变化 - if abs(current_position - last_position) <= 1: # 允许1步的误差 - # 位置基本没有变化 - if stable_start_time is None: - stable_start_time = time.time() - logger.debug(f"{axis.name}轴位置开始稳定在 {current_position}步") - elif time.time() - stable_start_time >= position_stable_time: - # 位置稳定超过指定时间,认为已到达限位 - self.emergency_stop(axis) - time.sleep(0.5) - - final_position = current_position - limit_detected = True - logger.info(f"{axis.name}轴位置稳定{position_stable_time}秒,假设已到达限位开关,位置: {final_position}步") - break - else: - # 位置发生变化,重置稳定计时 - stable_start_time = None - logger.debug(f"{axis.name}轴位置变化: {last_position} -> {current_position}") - - last_position = current_position - time.sleep(check_interval) - - # 超时处理 - if not limit_detected: - logger.warning(f"{axis.name}轴回零超时({self.machine_config.homing_timeout}秒),强制停止") - self.emergency_stop(axis) - time.sleep(0.5) - - # 获取当前位置作为机械原点 - try: - status = self.get_motor_status(axis) - final_position = status.steps - logger.info(f"{axis.name}轴超时后位置: {final_position}步") - except Exception as e: - logger.error(f"获取{axis.name}轴位置失败: {e}") - return False - - # 记录机械原点位置 - self.coordinate_origin.machine_origin_steps[axis.name.lower()] = final_position - - # 从限位开关退出安全距离 - try: - clearance_steps = self.mm_to_steps(axis, self.machine_config.safe_clearance) - safe_position = final_position + (clearance_steps * -direction) # 反方向退出 - - if not self.move_to_position(axis, safe_position, - self.ms_to_rpm(axis, speed_)): - logger.warning(f"{axis.name}轴无法退出到安全位置") - else: - self.wait_for_completion(axis, 10.0) - logger.info(f"{axis.name}轴已退出到安全位置: {safe_position}步") - except Exception as e: - logger.warning(f"{axis.name}轴退出安全位置时出错: {e}") - - status_msg = "限位检测成功" if limit_detected else "超时假设成功" - logger.info(f"{axis.name}轴回零完成 ({status_msg}),机械原点: {final_position}步") - return True - - except Exception as e: - logger.error(f"{axis.name}轴回零失败: {e}") - self.emergency_stop(axis) - return False - - def home_all_axes(self, sequence: list = None) -> bool: - """ - 全轴回零 (液体处理工作站安全回零) - - 液体处理工作站回零策略: - 1. Z轴必须首先回零,避免与容器、试管架等碰撞 - 2. 然后XY轴回零,确保移动路径安全 - 3. 严格按照Z->X->Y顺序执行,不允许更改 - - Args: - sequence: 回零顺序,液体处理工作站固定为Z->X->Y,不建议修改 - - Returns: - bool: 全轴回零是否成功 - """ - if not self.is_connected: - logger.error("设备未连接,无法执行回零操作") - return False - - # 液体处理工作站安全回零序列:Z轴绝对优先 - safe_sequence = [MotorAxis.Z, MotorAxis.X, MotorAxis.Y] - - if sequence is not None and sequence != safe_sequence: - logger.warning(f"液体处理工作站不建议修改回零序列,使用安全序列: {[axis.name for axis in safe_sequence]}") - - sequence = safe_sequence # 强制使用安全序列 - - logger.info("开始全轴回零") - - try: - for axis in sequence: - if not self.home_axis(axis): - logger.error(f"全轴回零失败,停止在{axis.name}轴") - return False - # 轴间等待时间 - time.sleep(0.5) - - # 标记为已回零 - self.coordinate_origin.is_homed = True - self._save_coordinate_origin() - - logger.info("全轴回零完成") - return True - - except Exception as e: - logger.error(f"全轴回零异常: {e}") - return False - - def set_work_origin_here(self) -> bool: - """将当前位置设置为工作原点""" - if not self.is_connected: - logger.error("设备未连接,无法设置工作原点") - return False - - try: - if not self.coordinate_origin.is_homed: - logger.warning("建议先执行回零操作再设置工作原点") - - # 获取当前各轴位置 - positions = self.get_all_positions() - - machine_steps = { - 'x': self.mm_to_steps(MotorAxis.X, self.machine_config.reference_distance['x']), - 'y': self.mm_to_steps(MotorAxis.Y, self.machine_config.reference_distance['y']), - 'z': self.mm_to_steps(MotorAxis.Z, self.machine_config.reference_distance['z']) - } - - for axis in MotorAxis: - axis_name = axis.name.lower() - current_steps = positions[axis].steps - self.coordinate_origin.work_origin_steps[axis_name] = current_steps + machine_steps[axis_name] - self.coordinate_origin.machine_origin_steps[axis_name] - - logger.info(f"{axis.name}轴工作原点设置为: {current_steps + machine_steps[axis_name] - self.coordinate_origin.machine_origin_steps[axis_name]}步 " - f"({self.steps_to_mm(axis, current_steps + machine_steps[axis_name] - self.coordinate_origin.machine_origin_steps[axis_name]):.2f}mm)") - - self._save_coordinate_origin() - logger.info("工作原点设置完成") - return True - - except Exception as e: - logger.error(f"设置工作原点失败: {e}") - return False - - def ms_to_rpm(self, axis: MotorAxis, velocity_mms: float) -> int: - """ - 将速度从米/秒(m/s)转换为转速(rpm) - - Args: - axis: 电机轴 - velocity_ms: 速度(米/秒) - - Returns: - 转速(rpm) - """ - # 获取每转的行程(mm) - if axis == MotorAxis.X: - lead_mm = 80.0 - elif axis == MotorAxis.Y: - lead_mm = 80.0 - elif axis == MotorAxis.Z: - lead_mm = 5.0 - else: - raise ValueError(f"未知轴: {axis}") - - # mm/s -> rps - rps = velocity_mms / lead_mm - # rps -> rpm - rpm = int(rps * 60.0) - return min(max(rpm, 0), 150) - - - # ==================== 高级运动控制方法 ==================== - - def move_to_work_coord_safe(self, x: float = None, y: float = None, z: float = None, - speed: float = None, acceleration: int = None) -> bool: - """ - 安全移动到工作坐标系指定位置 (液体处理工作站专用) - 移动策略:Z轴先上升到安全高度 -> XY轴移动到目标位置 -> Z轴下降到目标位置 - - Args: - x, y, z: 工作坐标系下的目标位置 (mm) - speed: 运动速度 (m/s) - acceleration: 加速度 (rpm/s) - - Returns: - bool: 移动是否成功 - """ - if not self.is_connected: - logger.error("设备未连接,无法执行移动操作") - return False - - try: - # 检查坐标系是否已设置 - if not self.coordinate_origin.work_origin_steps: - raise CoordinateSystemError("工作原点未设置,请先调用set_work_origin_here()") - - # 检查行程限制 - # self.check_travel_limits(x, y, z) - - # 设置运动参数 - speed = speed or self.machine_config.default_speed - acceleration = acceleration or self.machine_config.default_acceleration - - xy_success = True - # 步骤1: Z轴先上升到安全高度 - - machine_steps = self.work_to_machine_steps(x, y, z) - - if z is not None and (x is not None or y is not None): - safe_z_steps = self.work_to_machine_steps(None, None, self.machine_config.safe_z_height) - if not self.move_to_position(MotorAxis.Z, safe_z_steps['z'], self.ms_to_rpm(MotorAxis.Z, speed), acceleration): - logger.error("Z轴上升到安全高度失败") - return False - logger.info(f"Z轴上升到安全高度: {self.machine_config.safe_z_height} mm") - - # 等待Z轴移动完成 - self.wait_for_completion(MotorAxis.Z, 10.0) - - # 步骤2: XY轴移动到目标位置 - if x is not None: - if not self.move_to_position(MotorAxis.X, machine_steps['x'], self.ms_to_rpm(MotorAxis.X, speed), acceleration): - xy_success = False - if y is not None: - if not self.move_to_position(MotorAxis.Y, machine_steps['y'], self.ms_to_rpm(MotorAxis.Y, speed), acceleration): - xy_success = False - - if not xy_success: - logger.error("XY轴移动失败") - return False - - - if x is not None or y is not None: - logger.info(f"XY轴移动到目标位置: X:{x} Y:{y} mm") - # 等待XY轴移动完成 - if x is not None: - self.wait_for_completion(MotorAxis.X, 10.0) - if y is not None: - self.wait_for_completion(MotorAxis.Y, 10.0) - - # 步骤3: Z轴下降到目标位置 - if z is not None: - if not self.move_to_position(MotorAxis.Z, machine_steps['z'], self.ms_to_rpm(MotorAxis.Z, speed), acceleration): - logger.error("Z轴下降到目标位置失败") - return False - logger.info(f"Z轴下降到目标位置: {z} mm") - self.wait_for_completion(MotorAxis.Z, 10.0) - - logger.info(f"安全移动到工作坐标 X:{x} Y:{y} Z:{z} (mm) 完成") - return True - - except Exception as e: - logger.error(f"安全移动失败: {e}") - return False - - def move_to_work_coord(self, x: float = None, y: float = None, z: float = None, - speed: int = None, acceleration: int = None) -> bool: - """ - 移动到工作坐标 (已禁用) - - 此方法已被禁用,请使用 move_to_work_coord_safe() 方法。 - - Raises: - RuntimeError: 方法已禁用 - """ - error_msg = "Method disabled, use move_to_work_coord_safe instead" - logger.error(error_msg) - raise RuntimeError(error_msg) - - def move_relative_work_coord(self, dx: float = 0, dy: float = 0, dz: float = 0, - speed: float = None, acceleration: int = None) -> bool: - """ - 相对当前位置移动 - - Args: - dx, dy, dz: 相对移动距离 (mm) - speed: 运动速度 (m/s) - acceleration: 加速度 (rpm/s) - - Returns: - bool: 移动是否成功 - """ - if not self.is_connected: - logger.error("设备未连接,无法执行移动操作") - return False - - try: - # 获取当前工作坐标 - current_work = self.get_current_work_coords() - - # 计算目标坐标 - target_x = current_work['x'] + dx if dx != 0 else None - target_y = current_work['y'] + dy if dy != 0 else None - target_z = current_work['z'] + dz if dz != 0 else None - - return self.move_to_work_coord_safe(x=target_x, y=target_y, z=target_z, speed=speed, acceleration=acceleration) - - except Exception as e: - logger.error(f"相对移动失败: {e}") - return False - - def get_current_work_coords(self) -> Dict[str, float]: - """获取当前工作坐标""" - if not self.is_connected: - logger.error("设备未连接,无法获取当前坐标") - return {'x': 0.0, 'y': 0.0, 'z': 0.0} - - try: - # 获取当前机械坐标 - positions = self.get_all_positions() - machine_steps = {axis.name.lower(): pos.steps for axis, pos in positions.items()} - - # 转换为工作坐标 - return self.machine_to_work_coords(machine_steps) - - except Exception as e: - logger.error(f"获取工作坐标失败: {e}") - return {'x': 0.0, 'y': 0.0, 'z': 0.0} - - def get_current_position_mm(self) -> Dict[str, float]: - """获取当前位置坐标(毫米单位)""" - return self.get_current_work_coords() - - def wait_for_move_completion(self, timeout: float = 30.0) -> bool: - """等待所有轴运动完成""" - if not self.is_connected: - return False - - for axis in MotorAxis: - if not self.wait_for_completion(axis, timeout): - return False - return True - - # ==================== 系统状态和配置方法 ==================== - - def get_system_status(self) -> Dict: - """获取系统状态信息""" - status = { - "connection": { - "is_connected": self.is_connected, - "port": self.port, - "baudrate": self.baudrate - }, - "coordinate_system": { - "is_homed": self.coordinate_origin.is_homed, - "machine_origin": self.coordinate_origin.machine_origin_steps, - "work_origin": self.coordinate_origin.work_origin_steps, - "timestamp": self.coordinate_origin.timestamp - }, - "machine_config": asdict(self.machine_config), - "current_position": {} - } - - if self.is_connected: - try: - # 获取当前位置 - positions = self.get_all_positions() - for axis, pos in positions.items(): - axis_name = axis.name.lower() - status["current_position"][axis_name] = { - "steps": pos.steps, - "mm": self.steps_to_mm(axis, pos.steps), - "status": pos.status.name if hasattr(pos.status, 'name') else str(pos.status) - } - - # 获取工作坐标 - work_coords = self.get_current_work_coords() - status["current_work_coords"] = work_coords - - except Exception as e: - status["position_error"] = str(e) - - return status - - def update_machine_config(self, **kwargs): - """更新机械配置参数""" - for key, value in kwargs.items(): - if hasattr(self.machine_config, key): - setattr(self.machine_config, key, value) - logger.info(f"更新配置参数 {key}: {value}") - else: - logger.warning(f"未知配置参数: {key}") - - # 保存配置 - self._save_config() - - def reset_coordinate_system(self): - """重置坐标系统""" - self.coordinate_origin = CoordinateOrigin() - self._save_coordinate_origin() - logger.info("坐标系统已重置") - - def __enter__(self): - """上下文管理器入口""" - return self - - def __exit__(self, exc_type, exc_val, exc_tb): - """上下文管理器出口""" - self.disconnect_device() - - -def interactive_control(controller: XYZController): - """ - 交互式控制模式 - - Args: - controller: 已连接的控制器实例 - """ - print("\n" + "="*60) - print("进入交互式控制模式") - print("="*60) - - # 显示当前状态 - def show_status(): - try: - current_pos = controller.get_current_position_mm() - print(f"\n当前位置: X={current_pos['x']:.2f}mm, Y={current_pos['y']:.2f}mm, Z={current_pos['z']:.2f}mm") - except Exception as e: - print(f"获取位置失败: {e}") - - # 显示帮助信息 - def show_help(): - print("\n可用命令:") - print(" move <轴> <距离> - 相对移动,例: move x 10.5") - print(" goto - 绝对移动到指定坐标,例: goto 10 20 5") - print(" home [轴] - 回零操作,例: home 或 home x") - print(" origin - 设置当前位置为工作原点") - print(" status - 显示当前状态") - print(" speed <速度> - 设置运动速度(mm/s),例: speed 2000") - print(" limits - 显示行程限制") - print(" config - 显示机械配置") - print(" help - 显示此帮助信息") - print(" quit/exit - 退出交互模式") - print("\n提示:") - print(" - 轴名称: x, y, z") - print(" - 距离单位: 毫米(mm)") - print(" - 正数向正方向移动,负数向负方向移动") - - - - # 安全回零操作 - def safe_homing(): - print("\n系统安全初始化...") - print("为确保操作安全,系统将执行回零操作") - print("提示: 已安装限位开关,超时后将假设回零成功") - - # 询问用户是否继续 - while True: - user_choice = input("是否继续执行回零操作? (y/n/skip): ").strip().lower() - if user_choice in ['y', 'yes', '是']: - print("\n开始执行全轴回零...") - print("回零过程可能需要一些时间,请耐心等待...") - - # 执行回零操作 - homing_success = controller.home_all_axes() - - if homing_success: - print("回零操作完成,系统已就绪") - # 设置当前位置为工作原点 - - # if controller.set_work_origin_here(): - # print("工作原点已设置为回零位置") - # else: - # print("工作原点设置失败,但可以继续操作") - return True - else: - print("回零操作失败") - print("这可能是由于通信问题,但限位开关应该已经起作用") - - # 询问是否继续 - retry_choice = input("是否仍要继续操作? (y/n): ").strip().lower() - if retry_choice in ['y', 'yes', '是']: - print("继续操作,请手动确认设备位置安全") - return True - else: - return False - - elif user_choice in ['n', 'no', '否']: - print("用户取消回零操作,退出交互模式") - return False - elif user_choice in ['skip', 's', '跳过']: - print("跳过回零操作,请注意安全!") - print("建议在开始操作前手动执行 'home' 命令") - return True - else: - print("请输入 y(继续)/n(取消)/skip(跳过)") - - # 安全回原点操作 - def safe_return_home(): - print("\n系统安全关闭...") - print("正在将所有轴移动到安全位置...") - - try: - # 移动到工作原点 (0,0,0) - 使用安全移动方法 - if controller.move_to_work_coord_safe(0, 0, 0, speed=50): - print("已安全返回工作原点") - show_status() - else: - print("返回原点失败,请手动检查设备位置") - except Exception as e: - print(f"返回原点时出错: {e}") - - # 当前运动速度 - current_speed = controller.machine_config.default_speed - - try: - # 1. 首先执行安全回零 - if not safe_homing(): - return - - # 2. 显示初始状态和帮助 - show_status() - show_help() - - while True: - try: - # 获取用户输入 - user_input = input("\n请输入命令 (输入 help 查看帮助): ").strip().lower() - - if not user_input: - continue - - # 解析命令 - parts = user_input.split() - command = parts[0] - - if command in ['quit', 'exit', 'q']: - print("准备退出交互模式...") - # 执行安全回原点操作 - safe_return_home() - print("退出交互模式") - break - - elif command == 'help' or command == 'h': - show_help() - - elif command == 'status' or command == 's': - show_status() - print(f"当前速度: {current_speed} m/s") - print(f"是否已回零: {controller.coordinate_origin.is_homed}") - - elif command == 'move' or command == 'm': - if len(parts) != 3: - print("格式错误,正确格式: move <轴> <距离>") - print(" 例如: move x 10.5") - continue - - axis = parts[1].lower() - try: - distance = float(parts[2]) - except ValueError: - print("距离必须是数字") - continue - - if axis not in ['x', 'y', 'z']: - print("轴名称必须是 x, y 或 z") - continue - - print(f"{axis.upper()}轴移动 {distance:+.2f}mm...") - - # 执行移动 - kwargs = {f'd{axis}': distance, 'speed': current_speed} - if controller.move_relative_work_coord(**kwargs): - print(f"{axis.upper()}轴移动完成") - show_status() - else: - print(f"{axis.upper()}轴移动失败") - - elif command == 'goto' or command == 'g': - if len(parts) != 4: - print("格式错误,正确格式: goto ") - print(" 例如: goto 10 20 5") - continue - - try: - x = float(parts[1]) - y = float(parts[2]) - z = float(parts[3]) - except ValueError: - print("坐标必须是数字") - continue - - print(f"移动到坐标 ({x}, {y}, {z})...") - print("使用安全移动策略: Z轴先上升 → XY移动 → Z轴下降") - - if controller.move_to_work_coord_safe(x, y, z, speed=current_speed): - print("安全移动到目标位置完成") - show_status() - else: - print("移动失败") - - elif command == 'home': - if len(parts) == 1: - # 全轴回零 - print("开始全轴回零...") - if controller.home_all_axes(): - print("全轴回零完成") - show_status() - else: - print("回零失败") - elif len(parts) == 2: - # 单轴回零 - axis_name = parts[1].lower() - if axis_name not in ['x', 'y', 'z']: - print("轴名称必须是 x, y 或 z") - continue - - axis = MotorAxis[axis_name.upper()] - print(f"{axis_name.upper()}轴回零...") - - if controller.home_axis(axis): - print(f"{axis_name.upper()}轴回零完成") - show_status() - else: - print(f"{axis_name.upper()}轴回零失败") - else: - print("格式错误,正确格式: home 或 home <轴>") - - elif command == 'origin' or command == 'o': - print("设置当前位置为工作原点...") - if controller.set_work_origin_here(): - print("工作原点设置完成") - show_status() - else: - print("工作原点设置失败") - - elif command == 'speed': - if len(parts) != 2: - print("格式错误,正确格式: speed <速度>") - print(" 例如: speed 200") - continue - - try: - new_speed = int(parts[1]) - if new_speed <= 0: - print("速度必须大于0") - continue - if new_speed > 500: - print("速度不能超过500 mm/s") - continue - - current_speed = new_speed - print(f"运动速度设置为: {current_speed} mm/s") - - except ValueError: - print("速度必须是整数") - - elif command == 'limits' or command == 'l': - config = controller.machine_config - print("\n行程限制:") - print(f" X轴: 0 ~ {config.max_travel_x} mm") - print(f" Y轴: 0 ~ {config.max_travel_y} mm") - print(f" Z轴: 0 ~ {config.max_travel_z} mm") - - elif command == 'config' or command == 'c': - config = controller.machine_config - print("\n机械配置:") - print(f" X轴步距: {config.steps_per_mm_x:.1f} 步/mm") - print(f" Y轴步距: {config.steps_per_mm_y:.1f} 步/mm") - print(f" Z轴步距: {config.steps_per_mm_z:.1f} 步/mm") - print(f" 回零速度: {config.homing_speed} mm/s") - print(f" 默认速度: {config.default_speed} mm/s") - print(f" 安全间隙: {config.safe_clearance} mm") - - else: - print(f"未知命令: {command}") - print("输入 help 查看可用命令") - - except KeyboardInterrupt: - print("\n\n用户中断,退出交互模式") - break - except Exception as e: - print(f"命令执行错误: {e}") - print("输入 help 查看正确的命令格式") - - finally: - # 确保正确断开连接 - try: - controller.disconnect_device() - print("设备连接已断开") - except Exception as e: - print(f"断开连接时出错: {e}") - - -def run_tests(): - """运行测试函数""" - print("=== XYZ控制器测试 ===") - - # 1. 测试机械配置 - print("\n1. 测试机械配置") - config = MachineConfig( - steps_per_mm_x=204.8, # 16384步/圈 ÷ 80mm导程 - steps_per_mm_y=204.8, # 16384步/圈 ÷ 80mm导程 - steps_per_mm_z=3276.8, # 16384步/圈 ÷ 5mm导程 - max_travel_x=340.0, - max_travel_y=250.0, - max_travel_z=160.0, - homing_speed=50, - default_speed=50 - ) - print(f"X轴步距: {config.steps_per_mm_x} 步/mm") - print(f"Y轴步距: {config.steps_per_mm_y} 步/mm") - print(f"Z轴步距: {config.steps_per_mm_z} 步/mm") - print(f"行程限制: X={config.max_travel_x}mm, Y={config.max_travel_y}mm, Z={config.max_travel_z}mm") - - # 2. 测试坐标原点数据结构 - print("\n2. 测试坐标原点数据结构") - origin = CoordinateOrigin() - print(f"初始状态: 已回零={origin.is_homed}") - print(f"机械原点: {origin.machine_origin_steps}") - print(f"工作原点: {origin.work_origin_steps}") - - # 设置示例数据 - origin.machine_origin_steps = {'x': 0, 'y': 0, 'z': 0} - origin.work_origin_steps = {'x': 16384, 'y': 16384, 'z': 13107} # 5mm, 5mm, 2mm (基于16384步/圈) - origin.is_homed = True - origin.timestamp = "2024-09-26 12:00:00" - print(f"设置后: 已回零={origin.is_homed}") - print(f"机械原点: {origin.machine_origin_steps}") - print(f"工作原点: {origin.work_origin_steps}") - - # 3. 测试离线功能 - print("\n3. 测试离线功能") - - # 创建离线控制器(不自动连接) - offline_controller = XYZController( - port='/dev/ttyUSB_CH340', - machine_config=config, - auto_connect=False - ) - - # 测试单位转换 - print("\n单位转换测试:") - test_distances = [1.0, 5.0, 10.0, 25.5] - for distance in test_distances: - x_steps = offline_controller.mm_to_steps(MotorAxis.X, distance) - y_steps = offline_controller.mm_to_steps(MotorAxis.Y, distance) - z_steps = offline_controller.mm_to_steps(MotorAxis.Z, distance) - print(f"{distance}mm -> X:{x_steps}步, Y:{y_steps}步, Z:{z_steps}步") - - # 反向转换验证 - x_mm = offline_controller.steps_to_mm(MotorAxis.X, x_steps) - y_mm = offline_controller.steps_to_mm(MotorAxis.Y, y_steps) - z_mm = offline_controller.steps_to_mm(MotorAxis.Z, z_steps) - print(f"反向转换: X:{x_mm:.2f}mm, Y:{y_mm:.2f}mm, Z:{z_mm:.2f}mm") - - # 测试坐标系转换 - print("\n坐标系转换测试:") - offline_controller.coordinate_origin = origin # 使用示例原点 - work_coords = [(0, 0, 0), (10, 15, 5), (50, 30, 20)] - - for x, y, z in work_coords: - try: - machine_steps = offline_controller.work_to_machine_steps(x, y, z) - print(f"工作坐标 ({x}, {y}, {z}) -> 机械步数 {machine_steps}") - - # 反向转换验证 - work_coords_back = offline_controller.machine_to_work_coords(machine_steps) - print(f"反向转换: ({work_coords_back['x']:.2f}, {work_coords_back['y']:.2f}, {work_coords_back['z']:.2f})") - except Exception as e: - print(f"转换失败: {e}") - - # 测试行程限制检查 - print("\n行程限制检查测试:") - test_positions = [ - (50, 50, 25, "正常位置"), - (250, 50, 25, "X轴超限"), - (50, 350, 25, "Y轴超限"), - (50, 50, 150, "Z轴超限"), - (-10, 50, 25, "X轴负超限"), - (50, -10, 25, "Y轴负超限"), - (50, 50, -5, "Z轴负超限") - ] - - # for x, y, z, desc in test_positions: - # try: - # offline_controller.check_travel_limits(x, y, z) - # print(f"{desc} ({x}, {y}, {z}): 有效") - # except CoordinateSystemError as e: - # print(f"{desc} ({x}, {y}, {z}): 超限 - {e}") - - print("\n=== 离线功能测试完成 ===") - - # 4. 硬件连接测试 - print("\n4. 硬件连接测试") - print("尝试连接真实设备...") - - # 可能的串口列表 - possible_ports = [ - '/dev/ttyUSB_CH340' - ] - - connected_controller = None - - for port in possible_ports: - try: - print(f"尝试连接端口: {port}") - controller = XYZController( - port=port, - machine_config=config, - auto_connect=True - ) - - if controller.is_connected: - print(f"成功连接到 {port}") - connected_controller = controller - - # 获取系统状态 - status = controller.get_system_status() - print("\n系统状态:") - print(f" 连接状态: {status['connection']['is_connected']}") - print(f" 是否已回零: {status['coordinate_system']['is_homed']}") - - if 'current_position' in status: - print(" 当前位置:") - for axis, pos_info in status['current_position'].items(): - print(f" {axis.upper()}轴: {pos_info['steps']}步 ({pos_info['mm']:.2f}mm)") - - # 测试基本移动功能 - print("\n测试基本移动功能:") - try: - # 获取当前位置 - current_pos = controller.get_current_position_mm() - print(f"当前工作坐标: {current_pos}") - - # 小幅移动测试 - print("执行小幅移动测试 (X+1mm)...") - if controller.move_relative_work_coord(dx=1.0, speed=500): - print("移动成功") - time.sleep(1) - new_pos = controller.get_current_position_mm() - print(f"移动后坐标: {new_pos}") - else: - print("移动失败") - - except Exception as e: - print(f"移动测试失败: {e}") - - break - - except Exception as e: - print(f"连接 {port} 失败: {e}") - continue - - if not connected_controller: - print("未找到可用的设备端口") - print("请检查:") - print(" 1. 设备是否正确连接") - print(" 2. 串口端口是否正确") - print(" 3. 设备驱动是否安装") - else: - # 进入交互式控制模式 - interactive_control(connected_controller) - - print("\n=== XYZ控制器测试完成 ===") - - -# ==================== 测试和示例代码 ==================== -if __name__ == "__main__": - run_tests() - # xyz_controller = XYZController(port='/dev/ttyUSB_CH340', auto_connect=True) - # # xyz_controller.stop_all_axes() - # xyz_controller.connect_device() - # time.sleep(1) - # xyz_controller.home_all_axes() diff --git a/unilabos/devices/liquid_handling/laiyu/core/LaiYu_Liquid.py b/unilabos/devices/liquid_handling/laiyu/core/LaiYu_Liquid.py deleted file mode 100644 index 96092556..00000000 --- a/unilabos/devices/liquid_handling/laiyu/core/LaiYu_Liquid.py +++ /dev/null @@ -1,881 +0,0 @@ -""" -LaiYu_Liquid 液体处理工作站主要集成文件 - -该模块实现了 LaiYu_Liquid 与 UniLabOS 系统的集成,提供标准化的液体处理接口。 -主要包含: -- LaiYuLiquidBackend: 硬件通信后端 -- LaiYuLiquid: 主要接口类 -- 相关的异常类和容器类 -""" - -import asyncio -import logging -import time -from typing import List, Optional, Dict, Any, Union, Tuple -from dataclasses import dataclass -from abc import ABC, abstractmethod - -# 基础导入 -try: - from pylabrobot.resources import Deck, Plate, TipRack, Tip, Resource, Well - PYLABROBOT_AVAILABLE = True -except ImportError: - # 如果 pylabrobot 不可用,创建基础的模拟类 - PYLABROBOT_AVAILABLE = False - - class Resource: - def __init__(self, name: str): - self.name = name - - class Deck(Resource): - pass - - class Plate(Resource): - pass - - class TipRack(Resource): - pass - - class Tip(Resource): - pass - - class Well(Resource): - pass - -# LaiYu_Liquid 控制器导入 -try: - from .controllers.pipette_controller import ( - PipetteController, TipStatus, LiquidClass, LiquidParameters - ) - from .controllers.xyz_controller import ( - XYZController, MachineConfig, CoordinateOrigin, MotorAxis - ) - CONTROLLERS_AVAILABLE = True -except ImportError: - CONTROLLERS_AVAILABLE = False - # 创建模拟的控制器类 - class PipetteController: - def __init__(self, *args, **kwargs): - pass - - def connect(self): - return True - - def initialize(self): - return True - - class XYZController: - def __init__(self, *args, **kwargs): - pass - - def connect_device(self): - return True - -logger = logging.getLogger(__name__) - - -class LaiYuLiquidError(RuntimeError): - """LaiYu_Liquid 设备异常""" - pass - - -@dataclass -class LaiYuLiquidConfig: - """LaiYu_Liquid 设备配置""" - port: str = "/dev/cu.usbserial-3130" # RS485转USB端口 - address: int = 1 # 设备地址 - baudrate: int = 9600 # 波特率 - timeout: float = 5.0 # 通信超时时间 - - # 工作台尺寸 - deck_width: float = 340.0 # 工作台宽度 (mm) - deck_height: float = 250.0 # 工作台高度 (mm) - deck_depth: float = 160.0 # 工作台深度 (mm) - - # 移液参数 - max_volume: float = 1000.0 # 最大体积 (μL) - min_volume: float = 0.1 # 最小体积 (μL) - - # 运动参数 - max_speed: float = 100.0 # 最大速度 (mm/s) - acceleration: float = 50.0 # 加速度 (mm/s²) - - # 安全参数 - safe_height: float = 50.0 # 安全高度 (mm) - tip_pickup_depth: float = 10.0 # 吸头拾取深度 (mm) - liquid_detection: bool = True # 液面检测 - - # 取枪头相关参数 - tip_pickup_speed: int = 30 # 取枪头时的移动速度 (rpm) - tip_pickup_acceleration: int = 500 # 取枪头时的加速度 (rpm/s) - tip_approach_height: float = 5.0 # 接近枪头时的高度 (mm) - tip_pickup_force_depth: float = 2.0 # 强制插入深度 (mm) - tip_pickup_retract_height: float = 20.0 # 取枪头后的回退高度 (mm) - - # 丢弃枪头相关参数 - tip_drop_height: float = 10.0 # 丢弃枪头时的高度 (mm) - tip_drop_speed: int = 50 # 丢弃枪头时的移动速度 (rpm) - trash_position: Tuple[float, float, float] = (300.0, 200.0, 0.0) # 垃圾桶位置 (mm) - - # 安全范围配置 - deck_width: float = 300.0 # 工作台宽度 (mm) - deck_height: float = 200.0 # 工作台高度 (mm) - deck_depth: float = 100.0 # 工作台深度 (mm) - safe_height: float = 50.0 # 安全高度 (mm) - position_validation: bool = True # 启用位置验证 - emergency_stop_enabled: bool = True # 启用紧急停止 - - -class LaiYuLiquidDeck: - """LaiYu_Liquid 工作台管理""" - - def __init__(self, config: LaiYuLiquidConfig): - self.config = config - self.resources: Dict[str, Resource] = {} - self.positions: Dict[str, Tuple[float, float, float]] = {} - - def add_resource(self, name: str, resource: Resource, position: Tuple[float, float, float]): - """添加资源到工作台""" - self.resources[name] = resource - self.positions[name] = position - - def get_resource(self, name: str) -> Optional[Resource]: - """获取资源""" - return self.resources.get(name) - - def get_position(self, name: str) -> Optional[Tuple[float, float, float]]: - """获取资源位置""" - return self.positions.get(name) - - def list_resources(self) -> List[str]: - """列出所有资源""" - return list(self.resources.keys()) - - -class LaiYuLiquidContainer: - """LaiYu_Liquid 容器类""" - - def __init__(self, name: str, size_x: float = 0, size_y: float = 0, size_z: float = 0, container_type: str = "", volume: float = 0.0, max_volume: float = 1000.0, lid_height: float = 0.0): - self.name = name - self.size_x = size_x - self.size_y = size_y - self.size_z = size_z - self.lid_height = lid_height - self.container_type = container_type - self.volume = volume - self.max_volume = max_volume - self.last_updated = time.time() - self.child_resources = {} # 存储子资源 - - @property - def is_empty(self) -> bool: - return self.volume <= 0.0 - - @property - def is_full(self) -> bool: - return self.volume >= self.max_volume - - @property - def available_volume(self) -> float: - return max(0.0, self.max_volume - self.volume) - - def add_volume(self, volume: float) -> bool: - """添加体积""" - if self.volume + volume <= self.max_volume: - self.volume += volume - self.last_updated = time.time() - return True - return False - - def remove_volume(self, volume: float) -> bool: - """移除体积""" - if self.volume >= volume: - self.volume -= volume - self.last_updated = time.time() - return True - return False - - def assign_child_resource(self, resource, location=None): - """分配子资源 - 与 PyLabRobot 资源管理系统兼容""" - if hasattr(resource, 'name'): - self.child_resources[resource.name] = { - 'resource': resource, - 'location': location - } - - -class LaiYuLiquidTipRack: - """LaiYu_Liquid 吸头架类""" - - def __init__(self, name: str, size_x: float = 0, size_y: float = 0, size_z: float = 0, tip_count: int = 96, tip_volume: float = 1000.0): - self.name = name - self.size_x = size_x - self.size_y = size_y - self.size_z = size_z - self.tip_count = tip_count - self.tip_volume = tip_volume - self.tips_available = [True] * tip_count - self.child_resources = {} # 存储子资源 - - @property - def available_tips(self) -> int: - return sum(self.tips_available) - - @property - def is_empty(self) -> bool: - return self.available_tips == 0 - - def pick_tip(self, position: int) -> bool: - """拾取吸头""" - if 0 <= position < self.tip_count and self.tips_available[position]: - self.tips_available[position] = False - return True - return False - - def has_tip(self, position: int) -> bool: - """检查位置是否有吸头""" - if 0 <= position < self.tip_count: - return self.tips_available[position] - return False - - def assign_child_resource(self, resource, location=None): - """分配子资源到指定位置""" - self.child_resources[resource.name] = { - 'resource': resource, - 'location': location - } - - -def get_module_info(): - """获取模块信息""" - return { - "name": "LaiYu_Liquid", - "version": "1.0.0", - "description": "LaiYu液体处理工作站模块,提供移液器控制、XYZ轴控制和资源管理功能", - "author": "UniLabOS Team", - "capabilities": [ - "移液器控制", - "XYZ轴运动控制", - "吸头架管理", - "板和容器管理", - "资源位置管理" - ], - "dependencies": { - "required": ["serial"], - "optional": ["pylabrobot"] - } - } - - -class LaiYuLiquidBackend: - """LaiYu_Liquid 硬件通信后端""" - - def __init__(self, config: LaiYuLiquidConfig, deck: Optional['LaiYuLiquidDeck'] = None): - self.config = config - self.deck = deck # 工作台引用,用于获取资源位置信息 - self.pipette_controller = None - self.xyz_controller = None - self.is_connected = False - self.is_initialized = False - - # 状态跟踪 - self.current_position = (0.0, 0.0, 0.0) - self.tip_attached = False - self.current_volume = 0.0 - - def _validate_position(self, x: float, y: float, z: float) -> bool: - """验证位置是否在安全范围内""" - try: - # 检查X轴范围 - if not (0 <= x <= self.config.deck_width): - logger.error(f"X轴位置 {x:.2f}mm 超出范围 [0, {self.config.deck_width}]") - return False - - # 检查Y轴范围 - if not (0 <= y <= self.config.deck_height): - logger.error(f"Y轴位置 {y:.2f}mm 超出范围 [0, {self.config.deck_height}]") - return False - - # 检查Z轴范围(负值表示向下,0为工作台表面) - if not (-self.config.deck_depth <= z <= self.config.safe_height): - logger.error(f"Z轴位置 {z:.2f}mm 超出安全范围 [{-self.config.deck_depth}, {self.config.safe_height}]") - return False - - return True - except Exception as e: - logger.error(f"位置验证失败: {e}") - return False - - def _check_hardware_ready(self) -> bool: - """检查硬件是否准备就绪""" - if not self.is_connected: - logger.error("设备未连接") - return False - - if CONTROLLERS_AVAILABLE: - if self.xyz_controller is None: - logger.error("XYZ控制器未初始化") - return False - - return True - - async def emergency_stop(self) -> bool: - """紧急停止所有运动""" - try: - logger.warning("执行紧急停止") - - if CONTROLLERS_AVAILABLE and self.xyz_controller: - # 停止XYZ控制器 - await self.xyz_controller.stop_all_motion() - logger.info("XYZ控制器已停止") - - if self.pipette_controller: - # 停止移液器控制器 - await self.pipette_controller.stop() - logger.info("移液器控制器已停止") - - return True - except Exception as e: - logger.error(f"紧急停止失败: {e}") - return False - - async def move_to_safe_position(self) -> bool: - """移动到安全位置""" - try: - if not self._check_hardware_ready(): - return False - - safe_position = ( - self.config.deck_width / 2, # 工作台中心X - self.config.deck_height / 2, # 工作台中心Y - self.config.safe_height # 安全高度Z - ) - - if not self._validate_position(*safe_position): - logger.error("安全位置无效") - return False - - if CONTROLLERS_AVAILABLE and self.xyz_controller: - await self.xyz_controller.move_to_work_coord(*safe_position) - self.current_position = safe_position - logger.info(f"已移动到安全位置: {safe_position}") - return True - else: - # 模拟模式 - self.current_position = safe_position - logger.info("模拟移动到安全位置") - return True - - except Exception as e: - logger.error(f"移动到安全位置失败: {e}") - return False - - async def setup(self) -> bool: - """设置硬件连接""" - try: - if CONTROLLERS_AVAILABLE: - # 初始化移液器控制器 - self.pipette_controller = PipetteController( - port=self.config.port, - address=self.config.address - ) - - # 初始化XYZ控制器 - machine_config = MachineConfig() - self.xyz_controller = XYZController( - port=self.config.port, - baudrate=self.config.baudrate, - machine_config=machine_config - ) - - # 连接设备 - pipette_connected = await asyncio.to_thread(self.pipette_controller.connect) - xyz_connected = await asyncio.to_thread(self.xyz_controller.connect_device) - - if pipette_connected and xyz_connected: - self.is_connected = True - logger.info("LaiYu_Liquid 硬件连接成功") - return True - else: - logger.error("LaiYu_Liquid 硬件连接失败") - return False - else: - # 模拟模式 - logger.info("LaiYu_Liquid 运行在模拟模式") - self.is_connected = True - return True - - except Exception as e: - logger.error(f"LaiYu_Liquid 设置失败: {e}") - return False - - async def stop(self): - """停止设备""" - try: - if self.pipette_controller and hasattr(self.pipette_controller, 'disconnect'): - await asyncio.to_thread(self.pipette_controller.disconnect) - - if self.xyz_controller and hasattr(self.xyz_controller, 'disconnect'): - await asyncio.to_thread(self.xyz_controller.disconnect) - - self.is_connected = False - self.is_initialized = False - logger.info("LaiYu_Liquid 已停止") - - except Exception as e: - logger.error(f"LaiYu_Liquid 停止失败: {e}") - - async def move_to(self, x: float, y: float, z: float) -> bool: - """移动到指定位置""" - try: - if not self.is_connected: - raise LaiYuLiquidError("设备未连接") - - # 模拟移动 - await asyncio.sleep(0.1) # 模拟移动时间 - self.current_position = (x, y, z) - logger.debug(f"移动到位置: ({x}, {y}, {z})") - return True - - except Exception as e: - logger.error(f"移动失败: {e}") - return False - - async def pick_up_tip(self, tip_rack: str, position: int) -> bool: - """拾取吸头 - 包含真正的Z轴下降控制""" - try: - # 硬件准备检查 - if not self._check_hardware_ready(): - return False - - if self.tip_attached: - logger.warning("已有吸头附着,无法拾取新吸头") - return False - - logger.info(f"开始从 {tip_rack} 位置 {position} 拾取吸头") - - # 获取枪头架位置信息 - if self.deck is None: - logger.error("工作台未初始化") - return False - - tip_position = self.deck.get_position(tip_rack) - if tip_position is None: - logger.error(f"未找到枪头架 {tip_rack} 的位置信息") - return False - - # 计算具体枪头位置(这里简化处理,实际应根据position计算偏移) - tip_x, tip_y, tip_z = tip_position - - # 验证所有关键位置的安全性 - safe_z = tip_z + self.config.tip_approach_height - pickup_z = tip_z - self.config.tip_pickup_force_depth - retract_z = tip_z + self.config.tip_pickup_retract_height - - if not (self._validate_position(tip_x, tip_y, safe_z) and - self._validate_position(tip_x, tip_y, pickup_z) and - self._validate_position(tip_x, tip_y, retract_z)): - logger.error("枪头拾取位置超出安全范围") - return False - - if CONTROLLERS_AVAILABLE and self.xyz_controller: - # 真实硬件控制流程 - logger.info("使用真实XYZ控制器进行枪头拾取") - - try: - # 1. 移动到枪头上方的安全位置 - safe_z = tip_z + self.config.tip_approach_height - logger.info(f"移动到枪头上方安全位置: ({tip_x:.2f}, {tip_y:.2f}, {safe_z:.2f})") - move_success = await asyncio.to_thread( - self.xyz_controller.move_to_work_coord, - tip_x, tip_y, safe_z - ) - if not move_success: - logger.error("移动到枪头上方失败") - return False - - # 2. Z轴下降到枪头位置 - pickup_z = tip_z - self.config.tip_pickup_force_depth - logger.info(f"Z轴下降到枪头拾取位置: {pickup_z:.2f}mm") - z_down_success = await asyncio.to_thread( - self.xyz_controller.move_to_work_coord, - tip_x, tip_y, pickup_z - ) - if not z_down_success: - logger.error("Z轴下降到枪头位置失败") - return False - - # 3. 等待一小段时间确保枪头牢固附着 - await asyncio.sleep(0.2) - - # 4. Z轴上升到回退高度 - retract_z = tip_z + self.config.tip_pickup_retract_height - logger.info(f"Z轴上升到回退高度: {retract_z:.2f}mm") - z_up_success = await asyncio.to_thread( - self.xyz_controller.move_to_work_coord, - tip_x, tip_y, retract_z - ) - if not z_up_success: - logger.error("Z轴上升失败") - return False - - # 5. 更新当前位置 - self.current_position = (tip_x, tip_y, retract_z) - - except Exception as move_error: - logger.error(f"枪头拾取过程中发生错误: {move_error}") - # 尝试移动到安全位置 - if self.config.emergency_stop_enabled: - await self.emergency_stop() - await self.move_to_safe_position() - return False - - else: - # 模拟模式 - logger.info("模拟模式:执行枪头拾取动作") - await asyncio.sleep(1.0) # 模拟整个拾取过程的时间 - self.current_position = (tip_x, tip_y, tip_z + self.config.tip_pickup_retract_height) - - # 6. 标记枪头已附着 - self.tip_attached = True - logger.info("吸头拾取成功") - return True - - except Exception as e: - logger.error(f"拾取吸头失败: {e}") - return False - - async def drop_tip(self, location: str = "trash") -> bool: - """丢弃吸头 - 包含真正的Z轴控制""" - try: - # 硬件准备检查 - if not self._check_hardware_ready(): - return False - - if not self.tip_attached: - logger.warning("没有吸头附着,无需丢弃") - return True - - logger.info(f"开始丢弃吸头到 {location}") - - # 确定丢弃位置 - if location == "trash": - # 使用配置中的垃圾桶位置 - drop_x, drop_y, drop_z = self.config.trash_position - else: - # 尝试从deck获取指定位置 - if self.deck is None: - logger.error("工作台未初始化") - return False - - drop_position = self.deck.get_position(location) - if drop_position is None: - logger.error(f"未找到丢弃位置 {location} 的信息") - return False - drop_x, drop_y, drop_z = drop_position - - # 验证丢弃位置的安全性 - safe_z = drop_z + self.config.safe_height - drop_height_z = drop_z + self.config.tip_drop_height - - if not (self._validate_position(drop_x, drop_y, safe_z) and - self._validate_position(drop_x, drop_y, drop_height_z)): - logger.error("枪头丢弃位置超出安全范围") - return False - - if CONTROLLERS_AVAILABLE and self.xyz_controller: - # 真实硬件控制流程 - logger.info("使用真实XYZ控制器进行枪头丢弃") - - try: - # 1. 移动到丢弃位置上方的安全高度 - safe_z = drop_z + self.config.tip_drop_height - logger.info(f"移动到丢弃位置上方: ({drop_x:.2f}, {drop_y:.2f}, {safe_z:.2f})") - move_success = await asyncio.to_thread( - self.xyz_controller.move_to_work_coord, - drop_x, drop_y, safe_z - ) - if not move_success: - logger.error("移动到丢弃位置上方失败") - return False - - # 2. Z轴下降到丢弃高度 - logger.info(f"Z轴下降到丢弃高度: {drop_z:.2f}mm") - z_down_success = await asyncio.to_thread( - self.xyz_controller.move_to_work_coord, - drop_x, drop_y, drop_z - ) - if not z_down_success: - logger.error("Z轴下降到丢弃位置失败") - return False - - # 3. 执行枪头弹出动作(如果有移液器控制器) - if self.pipette_controller: - try: - # 发送弹出枪头命令 - await asyncio.to_thread(self.pipette_controller.eject_tip) - logger.info("执行枪头弹出命令") - except Exception as e: - logger.warning(f"枪头弹出命令失败: {e}") - - # 4. 等待一小段时间确保枪头完全脱离 - await asyncio.sleep(0.3) - - # 5. Z轴上升到安全高度 - logger.info(f"Z轴上升到安全高度: {safe_z:.2f}mm") - z_up_success = await asyncio.to_thread( - self.xyz_controller.move_to_work_coord, - drop_x, drop_y, safe_z - ) - if not z_up_success: - logger.error("Z轴上升失败") - return False - - # 6. 更新当前位置 - self.current_position = (drop_x, drop_y, safe_z) - - except Exception as drop_error: - logger.error(f"枪头丢弃过程中发生错误: {drop_error}") - # 尝试移动到安全位置 - if self.config.emergency_stop_enabled: - await self.emergency_stop() - await self.move_to_safe_position() - return False - - else: - # 模拟模式 - logger.info("模拟模式:执行枪头丢弃动作") - await asyncio.sleep(0.8) # 模拟整个丢弃过程的时间 - self.current_position = (drop_x, drop_y, drop_z + self.config.tip_drop_height) - - # 7. 标记枪头已脱离,清空体积 - self.tip_attached = False - self.current_volume = 0.0 - logger.info("吸头丢弃成功") - return True - - except Exception as e: - logger.error(f"丢弃吸头失败: {e}") - return False - - async def aspirate(self, volume: float, location: str) -> bool: - """吸取液体""" - try: - if not self.is_connected: - raise LaiYuLiquidError("设备未连接") - - if not self.tip_attached: - raise LaiYuLiquidError("没有吸头附着") - - if volume <= 0 or volume > self.config.max_volume: - raise LaiYuLiquidError(f"体积超出范围: {volume}") - - # 模拟吸取 - await asyncio.sleep(0.3) - self.current_volume += volume - logger.debug(f"从 {location} 吸取 {volume} μL") - return True - - except Exception as e: - logger.error(f"吸取失败: {e}") - return False - - async def dispense(self, volume: float, location: str) -> bool: - """分配液体""" - try: - if not self.is_connected: - raise LaiYuLiquidError("设备未连接") - - if not self.tip_attached: - raise LaiYuLiquidError("没有吸头附着") - - if volume <= 0 or volume > self.current_volume: - raise LaiYuLiquidError(f"分配体积无效: {volume}") - - # 模拟分配 - await asyncio.sleep(0.3) - self.current_volume -= volume - logger.debug(f"向 {location} 分配 {volume} μL") - return True - - except Exception as e: - logger.error(f"分配失败: {e}") - return False - - -class LaiYuLiquid: - """LaiYu_Liquid 主要接口类""" - - def __init__(self, config: Optional[LaiYuLiquidConfig] = None, **kwargs): - # 如果传入了关键字参数,创建配置对象 - if kwargs and config is None: - # 从kwargs中提取配置参数 - config_params = {} - for key, value in kwargs.items(): - if hasattr(LaiYuLiquidConfig, key): - config_params[key] = value - self.config = LaiYuLiquidConfig(**config_params) - else: - self.config = config or LaiYuLiquidConfig() - - # 先创建deck,然后传递给backend - self.deck = LaiYuLiquidDeck(self.config) - self.backend = LaiYuLiquidBackend(self.config, self.deck) - self.is_setup = False - - @property - def current_position(self) -> Tuple[float, float, float]: - """获取当前位置""" - return self.backend.current_position - - @property - def current_volume(self) -> float: - """获取当前体积""" - return self.backend.current_volume - - @property - def is_connected(self) -> bool: - """获取连接状态""" - return self.backend.is_connected - - @property - def is_initialized(self) -> bool: - """获取初始化状态""" - return self.backend.is_initialized - - @property - def tip_attached(self) -> bool: - """获取吸头附着状态""" - return self.backend.tip_attached - - async def setup(self) -> bool: - """设置液体处理器""" - try: - success = await self.backend.setup() - if success: - self.is_setup = True - logger.info("LaiYu_Liquid 设置完成") - return success - except Exception as e: - logger.error(f"LaiYu_Liquid 设置失败: {e}") - return False - - async def stop(self): - """停止液体处理器""" - await self.backend.stop() - self.is_setup = False - - async def transfer(self, source: str, target: str, volume: float, - tip_rack: str = "tip_rack_1", tip_position: int = 0) -> bool: - """液体转移""" - try: - if not self.is_setup: - raise LaiYuLiquidError("设备未设置") - - # 获取源和目标位置 - source_pos = self.deck.get_position(source) - target_pos = self.deck.get_position(target) - tip_pos = self.deck.get_position(tip_rack) - - if not all([source_pos, target_pos, tip_pos]): - raise LaiYuLiquidError("位置信息不完整") - - # 执行转移步骤 - steps = [ - ("移动到吸头架", self.backend.move_to(*tip_pos)), - ("拾取吸头", self.backend.pick_up_tip(tip_rack, tip_position)), - ("移动到源位置", self.backend.move_to(*source_pos)), - ("吸取液体", self.backend.aspirate(volume, source)), - ("移动到目标位置", self.backend.move_to(*target_pos)), - ("分配液体", self.backend.dispense(volume, target)), - ("丢弃吸头", self.backend.drop_tip()) - ] - - for step_name, step_coro in steps: - logger.debug(f"执行步骤: {step_name}") - success = await step_coro - if not success: - raise LaiYuLiquidError(f"步骤失败: {step_name}") - - logger.info(f"液体转移完成: {source} -> {target}, {volume} μL") - return True - - except Exception as e: - logger.error(f"液体转移失败: {e}") - return False - - def add_resource(self, name: str, resource_type: str, position: Tuple[float, float, float]): - """添加资源到工作台""" - if resource_type == "plate": - resource = Plate(name) - elif resource_type == "tip_rack": - resource = TipRack(name) - else: - resource = Resource(name) - - self.deck.add_resource(name, resource, position) - - def get_status(self) -> Dict[str, Any]: - """获取设备状态""" - return { - "connected": self.backend.is_connected, - "setup": self.is_setup, - "current_position": self.backend.current_position, - "tip_attached": self.backend.tip_attached, - "current_volume": self.backend.current_volume, - "resources": self.deck.list_resources() - } - - -def create_quick_setup() -> LaiYuLiquidDeck: - """ - 创建快速设置的LaiYu液体处理工作站 - - Returns: - LaiYuLiquidDeck: 配置好的工作台实例 - """ - # 创建默认配置 - config = LaiYuLiquidConfig() - - # 创建工作台 - deck = LaiYuLiquidDeck(config) - - # 导入资源创建函数 - try: - from .laiyu_liquid_res import ( - create_tip_rack_1000ul, - create_tip_rack_200ul, - create_96_well_plate, - create_waste_container - ) - - # 添加基本资源 - tip_rack_1000 = create_tip_rack_1000ul("tip_rack_1000") - tip_rack_200 = create_tip_rack_200ul("tip_rack_200") - plate_96 = create_96_well_plate("plate_96") - waste = create_waste_container("waste") - - # 添加到工作台 - deck.add_resource("tip_rack_1000", tip_rack_1000, (50, 50, 0)) - deck.add_resource("tip_rack_200", tip_rack_200, (150, 50, 0)) - deck.add_resource("plate_96", plate_96, (250, 50, 0)) - deck.add_resource("waste", waste, (50, 150, 0)) - - except ImportError: - # 如果资源模块不可用,创建空的工作台 - logger.warning("资源模块不可用,创建空的工作台") - - return deck - - -__all__ = [ - "LaiYuLiquid", - "LaiYuLiquidBackend", - "LaiYuLiquidConfig", - "LaiYuLiquidDeck", - "LaiYuLiquidContainer", - "LaiYuLiquidTipRack", - "LaiYuLiquidError", - "create_quick_setup", - "get_module_info" -] \ No newline at end of file diff --git a/unilabos/devices/liquid_handling/laiyu/core/__init__.py b/unilabos/devices/liquid_handling/laiyu/core/__init__.py deleted file mode 100644 index e4d2baa9..00000000 --- a/unilabos/devices/liquid_handling/laiyu/core/__init__.py +++ /dev/null @@ -1,42 +0,0 @@ -#!/usr/bin/env python3 -# -*- coding: utf-8 -*- -""" -LaiYu液体处理设备核心模块 - -该模块包含LaiYu液体处理设备的核心功能组件: -- LaiYu_Liquid.py: 主设备类和配置管理 -- abstract_protocol.py: 抽象协议定义 -- laiyu_liquid_res.py: 设备资源管理 - -作者: UniLab团队 -版本: 2.0.0 -""" - -from .LaiYu_Liquid import ( - LaiYuLiquid, - LaiYuLiquidConfig, - LaiYuLiquidDeck, - LaiYuLiquidContainer, - LaiYuLiquidTipRack, - create_quick_setup -) - -from .laiyu_liquid_res import ( - LaiYuLiquidDeck, - LaiYuLiquidContainer, - LaiYuLiquidTipRack -) - -__all__ = [ - # 主设备类 - 'LaiYuLiquid', - 'LaiYuLiquidConfig', - - # 设备资源 - 'LaiYuLiquidDeck', - 'LaiYuLiquidContainer', - 'LaiYuLiquidTipRack', - - # 工具函数 - 'create_quick_setup' -] \ No newline at end of file diff --git a/unilabos/devices/liquid_handling/laiyu/core/abstract_protocol.py b/unilabos/devices/liquid_handling/laiyu/core/abstract_protocol.py deleted file mode 100644 index 9959c364..00000000 --- a/unilabos/devices/liquid_handling/laiyu/core/abstract_protocol.py +++ /dev/null @@ -1,529 +0,0 @@ -""" -LaiYu_Liquid 抽象协议实现 - -该模块提供了液体资源管理和转移的抽象协议,包括: -- MaterialResource: 液体资源管理类 -- transfer_liquid: 液体转移函数 -- 相关的辅助类和函数 - -主要功能: -- 管理多孔位的液体资源 -- 计算和跟踪液体体积 -- 处理液体转移操作 -- 提供资源状态查询 -""" - -import logging -from typing import Dict, List, Optional, Union, Any, Tuple -from dataclasses import dataclass, field -from enum import Enum -import uuid -import time - -# pylabrobot 导入 -from pylabrobot.resources import Resource, Well, Plate - -logger = logging.getLogger(__name__) - - -class LiquidType(Enum): - """液体类型枚举""" - WATER = "water" - ETHANOL = "ethanol" - DMSO = "dmso" - BUFFER = "buffer" - SAMPLE = "sample" - REAGENT = "reagent" - WASTE = "waste" - UNKNOWN = "unknown" - - -@dataclass -class LiquidInfo: - """液体信息类""" - liquid_type: LiquidType = LiquidType.UNKNOWN - volume: float = 0.0 # 体积 (μL) - concentration: Optional[float] = None # 浓度 (mg/ml, M等) - ph: Optional[float] = None # pH值 - temperature: Optional[float] = None # 温度 (°C) - viscosity: Optional[float] = None # 粘度 (cP) - density: Optional[float] = None # 密度 (g/ml) - description: str = "" # 描述信息 - - def __str__(self) -> str: - return f"{self.liquid_type.value}({self.description})" - - -@dataclass -class WellContent: - """孔位内容类""" - volume: float = 0.0 # 当前体积 (ul) - max_volume: float = 1000.0 # 最大容量 (ul) - liquid_info: LiquidInfo = field(default_factory=LiquidInfo) - last_updated: float = field(default_factory=time.time) - - @property - def is_empty(self) -> bool: - """检查是否为空""" - return self.volume <= 0.0 - - @property - def is_full(self) -> bool: - """检查是否已满""" - return self.volume >= self.max_volume - - @property - def available_volume(self) -> float: - """可用体积""" - return max(0.0, self.max_volume - self.volume) - - @property - def fill_percentage(self) -> float: - """填充百分比""" - return (self.volume / self.max_volume) * 100.0 if self.max_volume > 0 else 0.0 - - def can_add_volume(self, volume: float) -> bool: - """检查是否可以添加指定体积""" - return (self.volume + volume) <= self.max_volume - - def can_remove_volume(self, volume: float) -> bool: - """检查是否可以移除指定体积""" - return self.volume >= volume - - def add_volume(self, volume: float, liquid_info: Optional[LiquidInfo] = None) -> bool: - """ - 添加液体体积 - - Args: - volume: 要添加的体积 (ul) - liquid_info: 液体信息 - - Returns: - bool: 是否成功添加 - """ - if not self.can_add_volume(volume): - return False - - self.volume += volume - if liquid_info: - self.liquid_info = liquid_info - self.last_updated = time.time() - return True - - def remove_volume(self, volume: float) -> bool: - """ - 移除液体体积 - - Args: - volume: 要移除的体积 (ul) - - Returns: - bool: 是否成功移除 - """ - if not self.can_remove_volume(volume): - return False - - self.volume -= volume - self.last_updated = time.time() - - # 如果完全清空,重置液体信息 - if self.volume <= 0.0: - self.volume = 0.0 - self.liquid_info = LiquidInfo() - - return True - - -class MaterialResource: - """ - 液体资源管理类 - - 该类用于管理液体处理过程中的资源状态,包括: - - 跟踪多个孔位的液体体积和类型 - - 计算总体积和可用体积 - - 处理液体的添加和移除 - - 提供资源状态查询 - """ - - def __init__( - self, - resource: Resource, - wells: Optional[List[Well]] = None, - default_max_volume: float = 1000.0 - ): - """ - 初始化材料资源 - - Args: - resource: pylabrobot 资源对象 - wells: 孔位列表,如果为None则自动获取 - default_max_volume: 默认最大体积 (ul) - """ - self.resource = resource - self.resource_id = str(uuid.uuid4()) - self.default_max_volume = default_max_volume - - # 获取孔位列表 - if wells is None: - if hasattr(resource, 'get_wells'): - self.wells = resource.get_wells() - elif hasattr(resource, 'wells'): - self.wells = resource.wells - else: - # 如果没有孔位,创建一个虚拟孔位 - self.wells = [resource] - else: - self.wells = wells - - # 初始化孔位内容 - self.well_contents: Dict[str, WellContent] = {} - for well in self.wells: - well_id = self._get_well_id(well) - self.well_contents[well_id] = WellContent( - max_volume=default_max_volume - ) - - logger.info(f"初始化材料资源: {resource.name}, 孔位数: {len(self.wells)}") - - def _get_well_id(self, well: Union[Well, Resource]) -> str: - """获取孔位ID""" - if hasattr(well, 'name'): - return well.name - else: - return str(id(well)) - - @property - def name(self) -> str: - """资源名称""" - return self.resource.name - - @property - def total_volume(self) -> float: - """总液体体积""" - return sum(content.volume for content in self.well_contents.values()) - - @property - def total_max_volume(self) -> float: - """总最大容量""" - return sum(content.max_volume for content in self.well_contents.values()) - - @property - def available_volume(self) -> float: - """总可用体积""" - return sum(content.available_volume for content in self.well_contents.values()) - - @property - def well_count(self) -> int: - """孔位数量""" - return len(self.wells) - - @property - def empty_wells(self) -> List[str]: - """空孔位列表""" - return [well_id for well_id, content in self.well_contents.items() - if content.is_empty] - - @property - def full_wells(self) -> List[str]: - """满孔位列表""" - return [well_id for well_id, content in self.well_contents.items() - if content.is_full] - - @property - def occupied_wells(self) -> List[str]: - """有液体的孔位列表""" - return [well_id for well_id, content in self.well_contents.items() - if not content.is_empty] - - def get_well_content(self, well_id: str) -> Optional[WellContent]: - """获取指定孔位的内容""" - return self.well_contents.get(well_id) - - def get_well_volume(self, well_id: str) -> float: - """获取指定孔位的体积""" - content = self.get_well_content(well_id) - return content.volume if content else 0.0 - - def set_well_volume( - self, - well_id: str, - volume: float, - liquid_info: Optional[LiquidInfo] = None - ) -> bool: - """ - 设置指定孔位的体积 - - Args: - well_id: 孔位ID - volume: 体积 (ul) - liquid_info: 液体信息 - - Returns: - bool: 是否成功设置 - """ - if well_id not in self.well_contents: - logger.error(f"孔位 {well_id} 不存在") - return False - - content = self.well_contents[well_id] - if volume > content.max_volume: - logger.error(f"体积 {volume} 超过最大容量 {content.max_volume}") - return False - - content.volume = max(0.0, volume) - if liquid_info: - content.liquid_info = liquid_info - content.last_updated = time.time() - - logger.info(f"设置孔位 {well_id} 体积: {volume}ul") - return True - - def add_liquid( - self, - well_id: str, - volume: float, - liquid_info: Optional[LiquidInfo] = None - ) -> bool: - """ - 向指定孔位添加液体 - - Args: - well_id: 孔位ID - volume: 添加的体积 (ul) - liquid_info: 液体信息 - - Returns: - bool: 是否成功添加 - """ - if well_id not in self.well_contents: - logger.error(f"孔位 {well_id} 不存在") - return False - - content = self.well_contents[well_id] - success = content.add_volume(volume, liquid_info) - - if success: - logger.info(f"向孔位 {well_id} 添加 {volume}ul 液体") - else: - logger.error(f"无法向孔位 {well_id} 添加 {volume}ul 液体") - - return success - - def remove_liquid(self, well_id: str, volume: float) -> bool: - """ - 从指定孔位移除液体 - - Args: - well_id: 孔位ID - volume: 移除的体积 (ul) - - Returns: - bool: 是否成功移除 - """ - if well_id not in self.well_contents: - logger.error(f"孔位 {well_id} 不存在") - return False - - content = self.well_contents[well_id] - success = content.remove_volume(volume) - - if success: - logger.info(f"从孔位 {well_id} 移除 {volume}ul 液体") - else: - logger.error(f"无法从孔位 {well_id} 移除 {volume}ul 液体") - - return success - - def find_wells_with_volume(self, min_volume: float) -> List[str]: - """ - 查找具有指定最小体积的孔位 - - Args: - min_volume: 最小体积 (ul) - - Returns: - List[str]: 符合条件的孔位ID列表 - """ - return [well_id for well_id, content in self.well_contents.items() - if content.volume >= min_volume] - - def find_wells_with_space(self, min_space: float) -> List[str]: - """ - 查找具有指定最小空间的孔位 - - Args: - min_space: 最小空间 (ul) - - Returns: - List[str]: 符合条件的孔位ID列表 - """ - return [well_id for well_id, content in self.well_contents.items() - if content.available_volume >= min_space] - - def get_status_summary(self) -> Dict[str, Any]: - """获取资源状态摘要""" - return { - "resource_name": self.name, - "resource_id": self.resource_id, - "well_count": self.well_count, - "total_volume": self.total_volume, - "total_max_volume": self.total_max_volume, - "available_volume": self.available_volume, - "fill_percentage": (self.total_volume / self.total_max_volume) * 100.0, - "empty_wells": len(self.empty_wells), - "full_wells": len(self.full_wells), - "occupied_wells": len(self.occupied_wells) - } - - def get_detailed_status(self) -> Dict[str, Any]: - """获取详细状态信息""" - well_details = {} - for well_id, content in self.well_contents.items(): - well_details[well_id] = { - "volume": content.volume, - "max_volume": content.max_volume, - "available_volume": content.available_volume, - "fill_percentage": content.fill_percentage, - "liquid_type": content.liquid_info.liquid_type.value, - "description": content.liquid_info.description, - "last_updated": content.last_updated - } - - return { - "summary": self.get_status_summary(), - "wells": well_details - } - - -def transfer_liquid( - source: MaterialResource, - target: MaterialResource, - volume: float, - source_well_id: Optional[str] = None, - target_well_id: Optional[str] = None, - liquid_info: Optional[LiquidInfo] = None -) -> bool: - """ - 在两个材料资源之间转移液体 - - Args: - source: 源资源 - target: 目标资源 - volume: 转移体积 (ul) - source_well_id: 源孔位ID,如果为None则自动选择 - target_well_id: 目标孔位ID,如果为None则自动选择 - liquid_info: 液体信息 - - Returns: - bool: 转移是否成功 - """ - try: - # 自动选择源孔位 - if source_well_id is None: - available_wells = source.find_wells_with_volume(volume) - if not available_wells: - logger.error(f"源资源 {source.name} 没有足够体积的孔位") - return False - source_well_id = available_wells[0] - - # 自动选择目标孔位 - if target_well_id is None: - available_wells = target.find_wells_with_space(volume) - if not available_wells: - logger.error(f"目标资源 {target.name} 没有足够空间的孔位") - return False - target_well_id = available_wells[0] - - # 检查源孔位是否有足够液体 - if not source.get_well_content(source_well_id).can_remove_volume(volume): - logger.error(f"源孔位 {source_well_id} 液体不足") - return False - - # 检查目标孔位是否有足够空间 - if not target.get_well_content(target_well_id).can_add_volume(volume): - logger.error(f"目标孔位 {target_well_id} 空间不足") - return False - - # 获取源液体信息 - source_content = source.get_well_content(source_well_id) - transfer_liquid_info = liquid_info or source_content.liquid_info - - # 执行转移 - if source.remove_liquid(source_well_id, volume): - if target.add_liquid(target_well_id, volume, transfer_liquid_info): - logger.info(f"成功转移 {volume}ul 液体: {source.name}[{source_well_id}] -> {target.name}[{target_well_id}]") - return True - else: - # 如果目标添加失败,回滚源操作 - source.add_liquid(source_well_id, volume, source_content.liquid_info) - logger.error("目标添加失败,已回滚源操作") - return False - else: - logger.error("源移除失败") - return False - - except Exception as e: - logger.error(f"液体转移失败: {e}") - return False - - -def create_material_resource( - name: str, - resource: Resource, - initial_volumes: Optional[Dict[str, float]] = None, - liquid_info: Optional[LiquidInfo] = None, - max_volume: float = 1000.0 -) -> MaterialResource: - """ - 创建材料资源的便捷函数 - - Args: - name: 资源名称 - resource: pylabrobot 资源对象 - initial_volumes: 初始体积字典 {well_id: volume} - liquid_info: 液体信息 - max_volume: 最大体积 - - Returns: - MaterialResource: 创建的材料资源 - """ - material_resource = MaterialResource( - resource=resource, - default_max_volume=max_volume - ) - - # 设置初始体积 - if initial_volumes: - for well_id, volume in initial_volumes.items(): - material_resource.set_well_volume(well_id, volume, liquid_info) - - return material_resource - - -def batch_transfer_liquid( - transfers: List[Tuple[MaterialResource, MaterialResource, float]], - liquid_info: Optional[LiquidInfo] = None -) -> List[bool]: - """ - 批量液体转移 - - Args: - transfers: 转移列表 [(source, target, volume), ...] - liquid_info: 液体信息 - - Returns: - List[bool]: 每个转移操作的结果 - """ - results = [] - - for source, target, volume in transfers: - result = transfer_liquid(source, target, volume, liquid_info=liquid_info) - results.append(result) - - if not result: - logger.warning(f"批量转移中的操作失败: {source.name} -> {target.name}") - - success_count = sum(results) - logger.info(f"批量转移完成: {success_count}/{len(transfers)} 成功") - - return results \ No newline at end of file diff --git a/unilabos/devices/liquid_handling/laiyu/core/laiyu_liquid_res.py b/unilabos/devices/liquid_handling/laiyu/core/laiyu_liquid_res.py deleted file mode 100644 index 0c127539..00000000 --- a/unilabos/devices/liquid_handling/laiyu/core/laiyu_liquid_res.py +++ /dev/null @@ -1,954 +0,0 @@ -""" -LaiYu_Liquid 资源定义模块 - -该模块提供了 LaiYu_Liquid 工作站专用的资源定义函数,包括: -- 各种规格的枪头架 -- 不同类型的板和容器 -- 特殊功能位置 -- 资源创建的便捷函数 - -所有资源都基于 deck.json 中的配置参数创建。 -""" - -import json -import os -from typing import Dict, List, Optional, Tuple, Any -from pathlib import Path - -# PyLabRobot 资源导入 -try: - from pylabrobot.resources import ( - Resource, Deck, Plate, TipRack, Container, Tip, - Coordinate - ) - from pylabrobot.resources.tip_rack import TipSpot - from pylabrobot.resources.well import Well as PlateWell - PYLABROBOT_AVAILABLE = True -except ImportError: - # 如果 PyLabRobot 不可用,创建模拟类 - PYLABROBOT_AVAILABLE = False - - class Resource: - def __init__(self, name: str): - self.name = name - - class Deck(Resource): - pass - - class Plate(Resource): - pass - - class TipRack(Resource): - pass - - class Container(Resource): - pass - - class Tip(Resource): - pass - - class TipSpot(Resource): - def __init__(self, name: str, **kwargs): - super().__init__(name) - # 忽略其他参数 - - class PlateWell(Resource): - pass - - class Coordinate: - def __init__(self, x: float, y: float, z: float): - self.x = x - self.y = y - self.z = z - -# 本地导入 -from .LaiYu_Liquid import LaiYuLiquidDeck, LaiYuLiquidContainer, LaiYuLiquidTipRack - - -def load_deck_config() -> Dict[str, Any]: - """ - 加载工作台配置文件 - - Returns: - Dict[str, Any]: 配置字典 - """ - # 优先使用最新的deckconfig.json文件 - config_path = Path(__file__).parent / "controllers" / "deckconfig.json" - - # 如果最新配置文件不存在,回退到旧配置文件 - if not config_path.exists(): - config_path = Path(__file__).parent / "config" / "deck.json" - - try: - with open(config_path, 'r', encoding='utf-8') as f: - return json.load(f) - except FileNotFoundError: - # 如果找不到配置文件,返回默认配置 - return { - "name": "LaiYu_Liquid_Deck", - "size_x": 340.0, - "size_y": 250.0, - "size_z": 160.0 - } - - -# 加载配置 -DECK_CONFIG = load_deck_config() - - -class LaiYuTipRack1000(LaiYuLiquidTipRack): - """1000μL 枪头架""" - - def __init__(self, name: str): - """ - 初始化1000μL枪头架 - - Args: - name: 枪头架名称 - """ - super().__init__( - name=name, - size_x=127.76, - size_y=85.48, - size_z=30.0, - tip_count=96, - tip_volume=1000.0 - ) - - # 创建枪头位置 - self._create_tip_spots( - tip_count=96, - tip_spacing=9.0, - tip_type="1000ul" - ) - - def _create_tip_spots(self, tip_count: int, tip_spacing: float, tip_type: str): - """ - 创建枪头位置 - 从配置文件中读取绝对坐标 - - Args: - tip_count: 枪头数量 - tip_spacing: 枪头间距 - tip_type: 枪头类型 - """ - # 从配置文件中获取枪头架的孔位信息 - config = DECK_CONFIG - tip_module = None - - # 查找枪头架模块 - for module in config.get("children", []): - if module.get("type") == "tip_rack": - tip_module = module - break - - if not tip_module: - # 如果配置文件中没有找到,使用默认的相对坐标计算 - rows = 8 - cols = 12 - - for row in range(rows): - for col in range(cols): - spot_name = f"{chr(65 + row)}{col + 1:02d}" - x = col * tip_spacing + tip_spacing / 2 - y = row * tip_spacing + tip_spacing / 2 - - # 创建枪头 - 根据PyLabRobot或模拟类使用不同参数 - if PYLABROBOT_AVAILABLE: - # PyLabRobot的Tip需要特定参数 - tip = Tip( - has_filter=False, - total_tip_length=95.0, # 1000ul枪头长度 - maximal_volume=1000.0, # 最大体积 - fitting_depth=8.0 # 安装深度 - ) - else: - # 模拟类只需要name - tip = Tip(name=f"tip_{spot_name}") - - # 创建枪头位置 - if PYLABROBOT_AVAILABLE: - # PyLabRobot的TipSpot需要特定参数 - tip_spot = TipSpot( - name=spot_name, - size_x=9.0, # 枪头位置宽度 - size_y=9.0, # 枪头位置深度 - size_z=95.0, # 枪头位置高度 - make_tip=lambda: tip # 创建枪头的函数 - ) - else: - # 模拟类只需要name - tip_spot = TipSpot(name=spot_name) - - # 将吸头位置分配到吸头架 - self.assign_child_resource( - tip_spot, - location=Coordinate(x, y, 0) - ) - return - - # 使用配置文件中的绝对坐标 - module_position = tip_module.get("position", {"x": 0, "y": 0, "z": 0}) - - for well_config in tip_module.get("wells", []): - spot_name = well_config["id"] - well_pos = well_config["position"] - - # 计算相对于模块的坐标(绝对坐标减去模块位置) - relative_x = well_pos["x"] - module_position["x"] - relative_y = well_pos["y"] - module_position["y"] - relative_z = well_pos["z"] - module_position["z"] - - # 创建枪头 - 根据PyLabRobot或模拟类使用不同参数 - if PYLABROBOT_AVAILABLE: - # PyLabRobot的Tip需要特定参数 - tip = Tip( - has_filter=False, - total_tip_length=95.0, # 1000ul枪头长度 - maximal_volume=1000.0, # 最大体积 - fitting_depth=8.0 # 安装深度 - ) - else: - # 模拟类只需要name - tip = Tip(name=f"tip_{spot_name}") - - # 创建枪头位置 - if PYLABROBOT_AVAILABLE: - # PyLabRobot的TipSpot需要特定参数 - tip_spot = TipSpot( - name=spot_name, - size_x=well_config.get("diameter", 9.0), # 使用配置中的直径 - size_y=well_config.get("diameter", 9.0), - size_z=well_config.get("depth", 95.0), # 使用配置中的深度 - make_tip=lambda: tip # 创建枪头的函数 - ) - else: - # 模拟类只需要name - tip_spot = TipSpot(name=spot_name) - - # 将吸头位置分配到吸头架 - self.assign_child_resource( - tip_spot, - location=Coordinate(relative_x, relative_y, relative_z) - ) - - # 注意:在PyLabRobot中,Tip不是Resource,不需要分配给TipSpot - # TipSpot的make_tip函数会在需要时创建Tip - - -class LaiYuTipRack200(LaiYuLiquidTipRack): - """200μL 枪头架""" - - def __init__(self, name: str): - """ - 初始化200μL枪头架 - - Args: - name: 枪头架名称 - """ - super().__init__( - name=name, - size_x=127.76, - size_y=85.48, - size_z=30.0, - tip_count=96, - tip_volume=200.0 - ) - - # 创建枪头位置 - self._create_tip_spots( - tip_count=96, - tip_spacing=9.0, - tip_type="200ul" - ) - - def _create_tip_spots(self, tip_count: int, tip_spacing: float, tip_type: str): - """ - 创建枪头位置 - - Args: - tip_count: 枪头数量 - tip_spacing: 枪头间距 - tip_type: 枪头类型 - """ - rows = 8 - cols = 12 - - for row in range(rows): - for col in range(cols): - spot_name = f"{chr(65 + row)}{col + 1:02d}" - x = col * tip_spacing + tip_spacing / 2 - y = row * tip_spacing + tip_spacing / 2 - - # 创建枪头 - 根据PyLabRobot或模拟类使用不同参数 - if PYLABROBOT_AVAILABLE: - # PyLabRobot的Tip需要特定参数 - tip = Tip( - has_filter=False, - total_tip_length=72.0, # 200ul枪头长度 - maximal_volume=200.0, # 最大体积 - fitting_depth=8.0 # 安装深度 - ) - else: - # 模拟类只需要name - tip = Tip(name=f"tip_{spot_name}") - - # 创建枪头位置 - if PYLABROBOT_AVAILABLE: - # PyLabRobot的TipSpot需要特定参数 - tip_spot = TipSpot( - name=spot_name, - size_x=9.0, # 枪头位置宽度 - size_y=9.0, # 枪头位置深度 - size_z=72.0, # 枪头位置高度 - make_tip=lambda: tip # 创建枪头的函数 - ) - else: - # 模拟类只需要name - tip_spot = TipSpot(name=spot_name) - - # 将吸头位置分配到吸头架 - self.assign_child_resource( - tip_spot, - location=Coordinate(x, y, 0) - ) - - # 注意:在PyLabRobot中,Tip不是Resource,不需要分配给TipSpot - # TipSpot的make_tip函数会在需要时创建Tip - - -class LaiYu96WellPlate(LaiYuLiquidContainer): - """96孔板""" - - def __init__(self, name: str, lid_height: float = 0.0): - """ - 初始化96孔板 - - Args: - name: 板名称 - lid_height: 盖子高度 - """ - super().__init__( - name=name, - size_x=127.76, - size_y=85.48, - size_z=14.22, - container_type="96_well_plate", - volume=0.0, - max_volume=200.0, - lid_height=lid_height - ) - - # 创建孔位 - self._create_wells( - well_count=96, - well_volume=200.0, - well_spacing=9.0 - ) - - def get_size_z(self) -> float: - """获取孔位深度""" - return 10.0 # 96孔板孔位深度 - - def _create_wells(self, well_count: int, well_volume: float, well_spacing: float): - """ - 创建孔位 - 从配置文件中读取绝对坐标 - - Args: - well_count: 孔位数量 - well_volume: 孔位体积 - well_spacing: 孔位间距 - """ - # 从配置文件中获取96孔板的孔位信息 - config = DECK_CONFIG - plate_module = None - - # 查找96孔板模块 - for module in config.get("children", []): - if module.get("type") == "96_well_plate": - plate_module = module - break - - if not plate_module: - # 如果配置文件中没有找到,使用默认的相对坐标计算 - rows = 8 - cols = 12 - - for row in range(rows): - for col in range(cols): - well_name = f"{chr(65 + row)}{col + 1:02d}" - x = col * well_spacing + well_spacing / 2 - y = row * well_spacing + well_spacing / 2 - - # 创建孔位 - well = PlateWell( - name=well_name, - size_x=well_spacing * 0.8, - size_y=well_spacing * 0.8, - size_z=self.get_size_z(), - max_volume=well_volume - ) - - # 添加到板 - self.assign_child_resource( - well, - location=Coordinate(x, y, 0) - ) - return - - # 使用配置文件中的绝对坐标 - module_position = plate_module.get("position", {"x": 0, "y": 0, "z": 0}) - - for well_config in plate_module.get("wells", []): - well_name = well_config["id"] - well_pos = well_config["position"] - - # 计算相对于模块的坐标(绝对坐标减去模块位置) - relative_x = well_pos["x"] - module_position["x"] - relative_y = well_pos["y"] - module_position["y"] - relative_z = well_pos["z"] - module_position["z"] - - # 创建孔位 - well = PlateWell( - name=well_name, - size_x=well_config.get("diameter", 8.2) * 0.8, # 使用配置中的直径 - size_y=well_config.get("diameter", 8.2) * 0.8, - size_z=well_config.get("depth", self.get_size_z()), - max_volume=well_config.get("volume", well_volume) - ) - - # 添加到板 - self.assign_child_resource( - well, - location=Coordinate(relative_x, relative_y, relative_z) - ) - - -class LaiYuDeepWellPlate(LaiYuLiquidContainer): - """深孔板""" - - def __init__(self, name: str, lid_height: float = 0.0): - """ - 初始化深孔板 - - Args: - name: 板名称 - lid_height: 盖子高度 - """ - super().__init__( - name=name, - size_x=127.76, - size_y=85.48, - size_z=41.3, - container_type="deep_well_plate", - volume=0.0, - max_volume=2000.0, - lid_height=lid_height - ) - - # 创建孔位 - self._create_wells( - well_count=96, - well_volume=2000.0, - well_spacing=9.0 - ) - - def get_size_z(self) -> float: - """获取孔位深度""" - return 35.0 # 深孔板孔位深度 - - def _create_wells(self, well_count: int, well_volume: float, well_spacing: float): - """ - 创建孔位 - 从配置文件中读取绝对坐标 - - Args: - well_count: 孔位数量 - well_volume: 孔位体积 - well_spacing: 孔位间距 - """ - # 从配置文件中获取深孔板的孔位信息 - config = DECK_CONFIG - plate_module = None - - # 查找深孔板模块(通常是第二个96孔板模块) - plate_modules = [] - for module in config.get("children", []): - if module.get("type") == "96_well_plate": - plate_modules.append(module) - - # 如果有多个96孔板模块,选择第二个作为深孔板 - if len(plate_modules) > 1: - plate_module = plate_modules[1] - elif len(plate_modules) == 1: - plate_module = plate_modules[0] - - if not plate_module: - # 如果配置文件中没有找到,使用默认的相对坐标计算 - rows = 8 - cols = 12 - - for row in range(rows): - for col in range(cols): - well_name = f"{chr(65 + row)}{col + 1:02d}" - x = col * well_spacing + well_spacing / 2 - y = row * well_spacing + well_spacing / 2 - - # 创建孔位 - well = PlateWell( - name=well_name, - size_x=well_spacing * 0.8, - size_y=well_spacing * 0.8, - size_z=self.get_size_z(), - max_volume=well_volume - ) - - # 添加到板 - self.assign_child_resource( - well, - location=Coordinate(x, y, 0) - ) - return - - # 使用配置文件中的绝对坐标 - module_position = plate_module.get("position", {"x": 0, "y": 0, "z": 0}) - - for well_config in plate_module.get("wells", []): - well_name = well_config["id"] - well_pos = well_config["position"] - - # 计算相对于模块的坐标(绝对坐标减去模块位置) - relative_x = well_pos["x"] - module_position["x"] - relative_y = well_pos["y"] - module_position["y"] - relative_z = well_pos["z"] - module_position["z"] - - # 创建孔位 - well = PlateWell( - name=well_name, - size_x=well_config.get("diameter", 8.2) * 0.8, # 使用配置中的直径 - size_y=well_config.get("diameter", 8.2) * 0.8, - size_z=well_config.get("depth", self.get_size_z()), - max_volume=well_config.get("volume", well_volume) - ) - - # 添加到板 - self.assign_child_resource( - well, - location=Coordinate(relative_x, relative_y, relative_z) - ) - - -class LaiYuWasteContainer(Container): - """废液容器""" - - def __init__(self, name: str): - """ - 初始化废液容器 - - Args: - name: 容器名称 - """ - super().__init__( - name=name, - size_x=100.0, - size_y=100.0, - size_z=50.0, - max_volume=5000.0 - ) - - -class LaiYuWashContainer(Container): - """清洗容器""" - - def __init__(self, name: str): - """ - 初始化清洗容器 - - Args: - name: 容器名称 - """ - super().__init__( - name=name, - size_x=100.0, - size_y=100.0, - size_z=50.0, - max_volume=5000.0 - ) - - -class LaiYuReagentContainer(Container): - """试剂容器""" - - def __init__(self, name: str): - """ - 初始化试剂容器 - - Args: - name: 容器名称 - """ - super().__init__( - name=name, - size_x=50.0, - size_y=50.0, - size_z=100.0, - max_volume=2000.0 - ) - - -class LaiYu8TubeRack(LaiYuLiquidContainer): - """8管试管架""" - - def __init__(self, name: str): - """ - 初始化8管试管架 - - Args: - name: 试管架名称 - """ - super().__init__( - name=name, - size_x=151.0, - size_y=75.0, - size_z=75.0, - container_type="tube_rack", - volume=0.0, - max_volume=77000.0 - ) - - # 创建孔位 - self._create_wells( - well_count=8, - well_volume=77000.0, - well_spacing=35.0 - ) - - def get_size_z(self) -> float: - """获取孔位深度""" - return 117.0 # 试管深度 - - def _create_wells(self, well_count: int, well_volume: float, well_spacing: float): - """ - 创建孔位 - 从配置文件中读取绝对坐标 - - Args: - well_count: 孔位数量 - well_volume: 孔位体积 - well_spacing: 孔位间距 - """ - # 从配置文件中获取8管试管架的孔位信息 - config = DECK_CONFIG - tube_module = None - - # 查找8管试管架模块 - for module in config.get("children", []): - if module.get("type") == "tube_rack": - tube_module = module - break - - if not tube_module: - # 如果配置文件中没有找到,使用默认的相对坐标计算 - rows = 2 - cols = 4 - - for row in range(rows): - for col in range(cols): - well_name = f"{chr(65 + row)}{col + 1}" - x = col * well_spacing + well_spacing / 2 - y = row * well_spacing + well_spacing / 2 - - # 创建孔位 - well = PlateWell( - name=well_name, - size_x=29.0, - size_y=29.0, - size_z=self.get_size_z(), - max_volume=well_volume - ) - - # 添加到试管架 - self.assign_child_resource( - well, - location=Coordinate(x, y, 0) - ) - return - - # 使用配置文件中的绝对坐标 - module_position = tube_module.get("position", {"x": 0, "y": 0, "z": 0}) - - for well_config in tube_module.get("wells", []): - well_name = well_config["id"] - well_pos = well_config["position"] - - # 计算相对于模块的坐标(绝对坐标减去模块位置) - relative_x = well_pos["x"] - module_position["x"] - relative_y = well_pos["y"] - module_position["y"] - relative_z = well_pos["z"] - module_position["z"] - - # 创建孔位 - well = PlateWell( - name=well_name, - size_x=well_config.get("diameter", 29.0), - size_y=well_config.get("diameter", 29.0), - size_z=well_config.get("depth", self.get_size_z()), - max_volume=well_config.get("volume", well_volume) - ) - - # 添加到试管架 - self.assign_child_resource( - well, - location=Coordinate(relative_x, relative_y, relative_z) - ) - - -class LaiYuTipDisposal(Resource): - """枪头废料位置""" - - def __init__(self, name: str): - """ - 初始化枪头废料位置 - - Args: - name: 位置名称 - """ - super().__init__( - name=name, - size_x=100.0, - size_y=100.0, - size_z=50.0 - ) - - -class LaiYuMaintenancePosition(Resource): - """维护位置""" - - def __init__(self, name: str): - """ - 初始化维护位置 - - Args: - name: 位置名称 - """ - super().__init__( - name=name, - size_x=50.0, - size_y=50.0, - size_z=100.0 - ) - - -# 资源创建函数 -def create_tip_rack_1000ul(name: str = "tip_rack_1000ul") -> LaiYuTipRack1000: - """ - 创建1000μL枪头架 - - Args: - name: 枪头架名称 - - Returns: - LaiYuTipRack1000: 1000μL枪头架实例 - """ - return LaiYuTipRack1000(name) - - -def create_tip_rack_200ul(name: str = "tip_rack_200ul") -> LaiYuTipRack200: - """ - 创建200μL枪头架 - - Args: - name: 枪头架名称 - - Returns: - LaiYuTipRack200: 200μL枪头架实例 - """ - return LaiYuTipRack200(name) - - -def create_96_well_plate(name: str = "96_well_plate", lid_height: float = 0.0) -> LaiYu96WellPlate: - """ - 创建96孔板 - - Args: - name: 板名称 - lid_height: 盖子高度 - - Returns: - LaiYu96WellPlate: 96孔板实例 - """ - return LaiYu96WellPlate(name, lid_height) - - -def create_deep_well_plate(name: str = "deep_well_plate", lid_height: float = 0.0) -> LaiYuDeepWellPlate: - """ - 创建深孔板 - - Args: - name: 板名称 - lid_height: 盖子高度 - - Returns: - LaiYuDeepWellPlate: 深孔板实例 - """ - return LaiYuDeepWellPlate(name, lid_height) - - -def create_8_tube_rack(name: str = "8_tube_rack") -> LaiYu8TubeRack: - """ - 创建8管试管架 - - Args: - name: 试管架名称 - - Returns: - LaiYu8TubeRack: 8管试管架实例 - """ - return LaiYu8TubeRack(name) - - -def create_waste_container(name: str = "waste_container") -> LaiYuWasteContainer: - """ - 创建废液容器 - - Args: - name: 容器名称 - - Returns: - LaiYuWasteContainer: 废液容器实例 - """ - return LaiYuWasteContainer(name) - - -def create_wash_container(name: str = "wash_container") -> LaiYuWashContainer: - """ - 创建清洗容器 - - Args: - name: 容器名称 - - Returns: - LaiYuWashContainer: 清洗容器实例 - """ - return LaiYuWashContainer(name) - - -def create_reagent_container(name: str = "reagent_container") -> LaiYuReagentContainer: - """ - 创建试剂容器 - - Args: - name: 容器名称 - - Returns: - LaiYuReagentContainer: 试剂容器实例 - """ - return LaiYuReagentContainer(name) - - -def create_tip_disposal(name: str = "tip_disposal") -> LaiYuTipDisposal: - """ - 创建枪头废料位置 - - Args: - name: 位置名称 - - Returns: - LaiYuTipDisposal: 枪头废料位置实例 - """ - return LaiYuTipDisposal(name) - - -def create_maintenance_position(name: str = "maintenance_position") -> LaiYuMaintenancePosition: - """ - 创建维护位置 - - Args: - name: 位置名称 - - Returns: - LaiYuMaintenancePosition: 维护位置实例 - """ - return LaiYuMaintenancePosition(name) - - -def create_standard_deck() -> LaiYuLiquidDeck: - """ - 创建标准工作台配置 - - Returns: - LaiYuLiquidDeck: 配置好的工作台实例 - """ - # 从配置文件创建工作台 - deck = LaiYuLiquidDeck(config=DECK_CONFIG) - - return deck - - -def get_resource_by_name(deck: LaiYuLiquidDeck, name: str) -> Optional[Resource]: - """ - 根据名称获取资源 - - Args: - deck: 工作台实例 - name: 资源名称 - - Returns: - Optional[Resource]: 找到的资源,如果不存在则返回None - """ - for child in deck.children: - if child.name == name: - return child - return None - - -def get_resources_by_type(deck: LaiYuLiquidDeck, resource_type: type) -> List[Resource]: - """ - 根据类型获取资源列表 - - Args: - deck: 工作台实例 - resource_type: 资源类型 - - Returns: - List[Resource]: 匹配类型的资源列表 - """ - return [child for child in deck.children if isinstance(child, resource_type)] - - -def list_all_resources(deck: LaiYuLiquidDeck) -> Dict[str, List[str]]: - """ - 列出所有资源 - - Args: - deck: 工作台实例 - - Returns: - Dict[str, List[str]]: 按类型分组的资源名称字典 - """ - resources = { - "tip_racks": [], - "plates": [], - "containers": [], - "positions": [] - } - - for child in deck.children: - if isinstance(child, (LaiYuTipRack1000, LaiYuTipRack200)): - resources["tip_racks"].append(child.name) - elif isinstance(child, (LaiYu96WellPlate, LaiYuDeepWellPlate)): - resources["plates"].append(child.name) - elif isinstance(child, (LaiYuWasteContainer, LaiYuWashContainer, LaiYuReagentContainer)): - resources["containers"].append(child.name) - elif isinstance(child, (LaiYuTipDisposal, LaiYuMaintenancePosition)): - resources["positions"].append(child.name) - - return resources - - -# 导出的类别名(向后兼容) -TipRack1000ul = LaiYuTipRack1000 -TipRack200ul = LaiYuTipRack200 -Plate96Well = LaiYu96WellPlate -Plate96DeepWell = LaiYuDeepWellPlate -TubeRack8 = LaiYu8TubeRack -WasteContainer = LaiYuWasteContainer -WashContainer = LaiYuWashContainer -ReagentContainer = LaiYuReagentContainer -TipDisposal = LaiYuTipDisposal -MaintenancePosition = LaiYuMaintenancePosition \ No newline at end of file diff --git a/unilabos/devices/liquid_handling/laiyu/docs/CHANGELOG.md b/unilabos/devices/liquid_handling/laiyu/docs/CHANGELOG.md deleted file mode 100644 index a0f2b632..00000000 --- a/unilabos/devices/liquid_handling/laiyu/docs/CHANGELOG.md +++ /dev/null @@ -1,69 +0,0 @@ -# 更新日志 - -本文档记录了 LaiYu_Liquid 模块的所有重要变更。 - -## [1.0.0] - 2024-01-XX - -### 新增功能 -- ✅ 完整的液体处理工作站集成 -- ✅ RS485 通信协议支持 -- ✅ SOPA 气动式移液器驱动 -- ✅ XYZ 三轴步进电机控制 -- ✅ PyLabRobot 兼容后端 -- ✅ 标准化资源管理系统 -- ✅ 96孔板、离心管架、枪头架支持 -- ✅ RViz 可视化后端 -- ✅ 完整的配置管理系统 -- ✅ 抽象协议实现 -- ✅ 生产级错误处理和日志记录 - -### 技术特性 -- **硬件支持**: SOPA移液器 + XYZ三轴运动平台 -- **通信协议**: RS485总线,波特率115200 -- **坐标系统**: 机械坐标与工作坐标自动转换 -- **安全机制**: 限位保护、紧急停止、错误恢复 -- **兼容性**: 完全兼容 PyLabRobot 框架 - -### 文件结构 -``` -LaiYu_Liquid/ -├── core/ -│ └── LaiYu_Liquid.py # 主模块文件 -├── __init__.py # 模块初始化 -├── abstract_protocol.py # 抽象协议 -├── laiyu_liquid_res.py # 资源管理 -├── rviz_backend.py # RViz后端 -├── backend/ # 后端驱动 -├── config/ # 配置文件 -├── controllers/ # 控制器 -├── docs/ # 技术文档 -└── drivers/ # 底层驱动 -``` - -### 已知问题 -- 无 - -### 依赖要求 -- Python 3.8+ -- PyLabRobot -- pyserial -- asyncio - ---- - -## 版本说明 - -### 版本号格式 -采用语义化版本控制 (Semantic Versioning): `MAJOR.MINOR.PATCH` - -- **MAJOR**: 不兼容的API变更 -- **MINOR**: 向后兼容的功能新增 -- **PATCH**: 向后兼容的问题修复 - -### 变更类型 -- **新增功能**: 新的功能特性 -- **变更**: 现有功能的变更 -- **弃用**: 即将移除的功能 -- **移除**: 已移除的功能 -- **修复**: 问题修复 -- **安全**: 安全相关的修复 \ No newline at end of file diff --git "a/unilabos/devices/liquid_handling/laiyu/docs/hardware/SOPA\346\260\224\345\212\250\345\274\217\347\247\273\346\266\262\345\231\250RS485\346\216\247\345\210\266\346\214\207\344\273\244.md" "b/unilabos/devices/liquid_handling/laiyu/docs/hardware/SOPA\346\260\224\345\212\250\345\274\217\347\247\273\346\266\262\345\231\250RS485\346\216\247\345\210\266\346\214\207\344\273\244.md" deleted file mode 100644 index 6db19eb1..00000000 --- "a/unilabos/devices/liquid_handling/laiyu/docs/hardware/SOPA\346\260\224\345\212\250\345\274\217\347\247\273\346\266\262\345\231\250RS485\346\216\247\345\210\266\346\214\207\344\273\244.md" +++ /dev/null @@ -1,267 +0,0 @@ -# SOPA气动式移液器RS485控制指令合集 - -## 1. RS485通信基本配置 - -### 1.1 支持的设备型号 -- **仅SC-STxxx-00-13支持RS485通信** -- 其他型号主要使用CAN通信 - -### 1.2 通信参数 -- **波特率**: 9600, 115200(默认值) -- **地址范围**: 1~254个设备,255为广播地址 -- **通信接口**: RS485差分信号 - -### 1.3 引脚分配(10位LIF连接器) -- **引脚7**: RS485+ (RS485通信正极) -- **引脚8**: RS485- (RS485通信负极) - -## 2. RS485通信协议格式 - -### 2.1 发送数据格式 -``` -头码 | 地址 | 命令/数据 | 尾码 | 校验和 -``` - -### 2.2 从机回应格式 -``` -头码 | 地址 | 数据(固定9字节) | 尾码 | 校验和 -``` - -### 2.3 格式详细说明 -- **头码**: - - 终端调试: '/' (0x2F) - - OEM通信: '[' (0x5B) -- **地址**: 设备节点地址,1~254,多字节ASCII(注意:地址不可为47,69,91) -- **命令/数据**: ASCII格式的命令字符串 -- **尾码**: 'E' (0x45) -- **校验和**: 以上数据的累加值,1字节 - -## 3. 初始化和基本控制指令 - -### 3.1 初始化指令 -```bash -# 初始化活塞驱动机构 -HE - -# 示例(OEM通信): -# 主机发送: 5B 32 48 45 1A -# 从机回应开始: 2F 02 06 0A 30 00 00 00 00 00 00 45 B6 -# 从机回应完成: 2F 02 06 00 30 00 00 00 00 00 00 45 AC -``` - -### 3.2 枪头操作指令 -```bash -# 顶出枪头 -RE - -# 枪头检测状态报告 -Q28 # 返回枪头存在状态(0=不存在,1=存在) -``` - -## 4. 移液控制指令 - -### 4.1 位置控制指令 -```bash -# 绝对位置移动(微升) -A[n]E -# 示例:移动到位置0 -A0E - -# 相对抽吸(向上移动) -P[n]E -# 示例:抽吸200微升 -P200E - -# 相对分配(向下移动) -D[n]E -# 示例:分配200微升 -D200E -``` - -### 4.2 速度设置指令 -```bash -# 设置最高速度(0.1ul/秒为单位) -s[n]E -# 示例:设置最高速度为2000(200ul/秒) -s2000E - -# 设置启动速度 -b[n]E -# 示例:设置启动速度为100(10ul/秒) -b100E - -# 设置断流速度 -c[n]E -# 示例:设置断流速度为100(10ul/秒) -c100E - -# 设置加速度 -a[n]E -# 示例:设置加速度为30000 -a30000E -``` - -## 5. 液体检测和安全控制指令 - -### 5.1 吸排液检测控制 -```bash -# 开启吸排液检测 -f1E # 开启 -f0E # 关闭 - -# 设置空吸门限 -$[n]E -# 示例:设置空吸门限为4 -$4E - -# 设置泡沫门限 -![n]E -# 示例:设置泡沫门限为20 -!20E - -# 设置堵塞门限 -%[n]E -# 示例:设置堵塞门限为350 -%350E -``` - -### 5.2 液位检测指令 -```bash -# 压力式液位检测 -m0E # 设置为压力探测模式 -L[n]E # 执行液位检测,[n]为灵敏度(3~40) -k[n]E # 设置检测速度(100~2000) - -# 电容式液位检测 -m1E # 设置为电容探测模式 -``` - -## 6. 状态查询和报告指令 - -### 6.1 基本状态查询 -```bash -# 查询固件版本 -V - -# 查询设备状态 -Q[n] -# 常用查询参数: -Q01 # 报告加速度 -Q02 # 报告启动速度 -Q03 # 报告断流速度 -Q06 # 报告最大速度 -Q08 # 报告节点地址 -Q11 # 报告波特率 -Q18 # 报告当前位置 -Q28 # 报告枪头存在状态 -Q29 # 报告校准系数 -Q30 # 报告空吸门限 -Q31 # 报告堵针门限 -Q32 # 报告泡沫门限 -``` - -## 7. 配置和校准指令 - -### 7.1 校准参数设置 -```bash -# 设置校准系数 -j[n]E -# 示例:设置校准系数为1.04 -j1.04E - -# 设置补偿偏差 -e[n]E -# 示例:设置补偿偏差为2.03 -e2.03E - -# 设置吸头容量 -C[n]E -# 示例:设置1000ul吸头 -C1000E -``` - -### 7.2 高级控制参数 -```bash -# 设置回吸粘度 -][n]E -# 示例:设置回吸粘度为30 -]30E - -# 延时控制 -M[n]E -# 示例:延时1000毫秒 -M1000E -``` - -## 8. 复合操作指令示例 - -### 8.1 标准移液操作 -```bash -# 完整的200ul移液操作 -a30000b200c200s2000P200E -# 解析:设置加速度30000 + 启动速度200 + 断流速度200 + 最高速度2000 + 抽吸200ul + 执行 -``` - -### 8.2 带检测的移液操作 -```bash -# 带空吸检测的200ul抽吸 -a30000b200c200s2000f1P200f0E -# 解析:设置参数 + 开启检测 + 抽吸200ul + 关闭检测 + 执行 -``` - -### 8.3 液面检测操作 -```bash -# 压力式液面检测 -m0k200L5E -# 解析:压力模式 + 检测速度200 + 灵敏度5 + 执行检测 - -# 电容式液面检测 -m1L3E -# 解析:电容模式 + 灵敏度3 + 执行检测 -``` - -## 9. 错误处理 - -### 9.1 状态字节说明 -- **00h**: 无错误 -- **01h**: 上次动作未完成 -- **02h**: 设备未初始化 -- **03h**: 设备过载 -- **04h**: 无效指令 -- **05h**: 液位探测故障 -- **0Dh**: 空吸 -- **0Eh**: 堵针 -- **10h**: 泡沫 -- **11h**: 吸液超过吸头容量 - -### 9.2 错误查询 -```bash -# 查询当前错误状态 -Q # 返回状态字节和错误代码 -``` - -## 10. 通信示例 - -### 10.1 基本通信流程 -1. **执行命令**: 主机发送命令 → 从机确认 → 从机执行 → 从机回应完成 -2. **读取数据**: 主机发送查询 → 从机确认 → 从机返回数据 - -### 10.2 快速指令表 -| 操作 | 指令 | 说明 | -|------|------|------| -| 初始化 | `HE` | 初始化设备 | -| 退枪头 | `RE` | 顶出枪头 | -| 吸液200ul | `a30000b200c200s2000P200E` | 基本吸液 | -| 带检测吸液 | `a30000b200c200s2000f1P200f0E` | 开启空吸检测 | -| 吐液200ul | `a300000b500c500s6000D200E` | 基本分配 | -| 压力液面检测 | `m0k200L5E` | pLLD检测 | -| 电容液面检测 | `m1L3E` | cLLD检测 | - -## 11. 注意事项 - -1. **地址限制**: RS485地址不可设为47、69、91 -2. **校验和**: 终端调试时不关心校验和,OEM通信需要校验 -3. **ASCII格式**: 所有命令和参数都使用ASCII字符 -4. **执行指令**: 大部分命令需要以'E'结尾才能执行 -5. **设备支持**: 只有SC-STxxx-00-13型号支持RS485通信 -6. **波特率设置**: 默认115200,可设置为9600 \ No newline at end of file diff --git "a/unilabos/devices/liquid_handling/laiyu/docs/hardware/\346\255\245\350\277\233\347\224\265\346\234\272\346\216\247\345\210\266\346\214\207\344\273\244.md" "b/unilabos/devices/liquid_handling/laiyu/docs/hardware/\346\255\245\350\277\233\347\224\265\346\234\272\346\216\247\345\210\266\346\214\207\344\273\244.md" deleted file mode 100644 index e7013484..00000000 --- "a/unilabos/devices/liquid_handling/laiyu/docs/hardware/\346\255\245\350\277\233\347\224\265\346\234\272\346\216\247\345\210\266\346\214\207\344\273\244.md" +++ /dev/null @@ -1,162 +0,0 @@ -# 步进电机B系列控制指令详解 - -## 基本通信参数 -- **通信方式**: RS485 -- **协议**: Modbus -- **波特率**: 115200 (默认) -- **数据位**: 8位 -- **停止位**: 1位 -- **校验位**: 无 -- **默认站号**: 1 (可设置1-254) - -## 支持的功能码 -- **03H**: 读取寄存器 -- **06H**: 写入单个寄存器 -- **10H**: 写入多个寄存器 - -## 寄存器地址表 - -### 状态监控寄存器 (只读) -| 地址 | 功能码 | 内容 | 说明 | -|------|--------|------|------| -| 00H | 03H | 电机状态 | 0000H-待机/到位, 0001H-运行中, 0002H-碰撞停, 0003H-正光电停, 0004H-反光电停 | -| 01H | 03H | 实际步数高位 | 当前电机位置的高16位 | -| 02H | 03H | 实际步数低位 | 当前电机位置的低16位 | -| 03H | 03H | 实际速度 | 当前转速 (rpm) | -| 05H | 03H | 电流 | 当前工作电流 (mA) | - -### 控制寄存器 (读写) -| 地址 | 功能码 | 内容 | 说明 | -|------|--------|------|------| -| 04H | 03H/06H/10H | 急停指令 | 紧急停止控制 | -| 06H | 03H/06H/10H | 失能控制 | 1-使能, 0-失能 | -| 07H | 03H/06H/10H | PWM输出 | 0-1000对应0%-100%占空比 | -| 0EH | 03H/06H/10H | 单圈绝对值归零 | 归零指令 | -| 0FH | 03H/06H/10H | 归零指令 | 定点模式归零速度设置 | - -### 位置模式寄存器 -| 地址 | 功能码 | 内容 | 说明 | -|------|--------|------|------| -| 10H | 03H/06H/10H | 目标步数高位 | 目标位置高16位 | -| 11H | 03H/06H/10H | 目标步数低位 | 目标位置低16位 | -| 12H | 03H/06H/10H | 保留 | - | -| 13H | 03H/06H/10H | 速度 | 运行速度 (rpm) | -| 14H | 03H/06H/10H | 加速度 | 0-60000 rpm/s | -| 15H | 03H/06H/10H | 精度 | 到位精度设置 | - -### 速度模式寄存器 -| 地址 | 功能码 | 内容 | 说明 | -|------|--------|------|------| -| 60H | 03H/06H/10H | 保留 | - | -| 61H | 03H/06H/10H | 速度 | 正值正转,负值反转 | -| 62H | 03H/06H/10H | 加速度 | 0-60000 rpm/s | - -### 设备参数寄存器 -| 地址 | 功能码 | 内容 | 默认值 | 说明 | -|------|--------|------|--------|------| -| E0H | 03H/06H/10H | 设备地址 | 0001H | Modbus从站地址 | -| E1H | 03H/06H/10H | 堵转电流 | 0BB8H | 堵转检测电流阈值 | -| E2H | 03H/06H/10H | 保留 | 0258H | - | -| E3H | 03H/06H/10H | 每圈步数 | 0640H | 细分设置 | -| E4H | 03H/06H/10H | 限位开关使能 | F000H | 1-使能, 0-禁用 | -| E5H | 03H/06H/10H | 堵转逻辑 | 0000H | 00-断电, 01-对抗 | -| E6H | 03H/06H/10H | 堵转时间 | 0000H | 堵转检测时间(ms) | -| E7H | 03H/06H/10H | 默认速度 | 1388H | 上电默认速度 | -| E8H | 03H/06H/10H | 默认加速度 | EA60H | 上电默认加速度 | -| E9H | 03H/06H/10H | 默认精度 | 0064H | 上电默认精度 | -| EAH | 03H/06H/10H | 波特率高位 | 0001H | 通信波特率设置 | -| EBH | 03H/06H/10H | 波特率低位 | C200H | 115200对应01C200H | - -### 版本信息寄存器 (只读) -| 地址 | 功能码 | 内容 | 说明 | -|------|--------|------|------| -| F0H | 03H | 版本号 | 固件版本信息 | -| F1H-F4H | 03H | 型号 | 产品型号信息 | - -## 常用控制指令示例 - -### 读取电机状态 -``` -发送: 01 03 00 00 00 01 84 0A -接收: 01 03 02 00 01 79 84 -说明: 电机状态为0001H (正在运行) -``` - -### 读取当前位置 -``` -发送: 01 03 00 01 00 02 95 CB -接收: 01 03 04 00 19 00 00 2B F4 -说明: 当前位置为1638400步 (100圈) -``` - -### 停止电机 -``` -发送: 01 10 00 04 00 01 02 00 00 A7 D4 -接收: 01 10 00 04 00 01 40 08 -说明: 急停指令 -``` - -### 位置模式运动 -``` -发送: 01 10 00 10 00 06 0C 00 19 00 00 00 00 13 88 00 00 00 00 9F FB -接收: 01 10 00 10 00 06 41 CE -说明: 以5000rpm速度运动到1638400步位置 -``` - -### 速度模式 - 正转 -``` -发送: 01 10 00 60 00 04 08 00 00 13 88 00 FA 00 00 F4 77 -接收: 01 10 00 60 00 04 C1 D4 -说明: 以5000rpm速度正转 -``` - -### 速度模式 - 反转 -``` -发送: 01 10 00 60 00 04 08 00 00 EC 78 00 FA 00 00 A0 6D -接收: 01 10 00 60 00 04 C1 D4 -说明: 以5000rpm速度反转 (EC78H = -5000) -``` - -### 设置设备地址 -``` -发送: 00 06 00 E0 00 02 C9 F1 -接收: 00 06 00 E0 00 02 C9 F1 -说明: 将设备地址设置为2 -``` - -## 错误码 -| 状态码 | 含义 | -|--------|------| -| 0001H | 功能码错误 | -| 0002H | 地址错误 | -| 0003H | 长度错误 | - -## CRC校验算法 -```c -public static byte[] ModBusCRC(byte[] data, int offset, int cnt) { - int wCrc = 0x0000FFFF; - byte[] CRC = new byte[2]; - for (int i = 0; i < cnt; i++) { - wCrc ^= ((data[i + offset]) & 0xFF); - for (int j = 0; j < 8; j++) { - if ((wCrc & 0x00000001) == 1) { - wCrc >>= 1; - wCrc ^= 0x0000A001; - } else { - wCrc >>= 1; - } - } - } - CRC[1] = (byte) ((wCrc & 0x0000FF00) >> 8); - CRC[0] = (byte) (wCrc & 0x000000FF); - return CRC; -} -``` - -## 注意事项 -1. 所有16位数据采用大端序传输 -2. 步数计算: 实际步数 = 高位<<16 | 低位 -3. 负数使用补码表示 -4. PWM输出K脚: 0%开漏, 100%接地, 其他输出1KHz PWM -5. 光电开关需使用NPN开漏型 -6. 限位开关: LF正向, LB反向 \ No newline at end of file diff --git "a/unilabos/devices/liquid_handling/laiyu/docs/hardware/\347\241\254\344\273\266\350\277\236\346\216\245\351\205\215\347\275\256\346\214\207\345\215\227.md" "b/unilabos/devices/liquid_handling/laiyu/docs/hardware/\347\241\254\344\273\266\350\277\236\346\216\245\351\205\215\347\275\256\346\214\207\345\215\227.md" deleted file mode 100644 index 64529097..00000000 --- "a/unilabos/devices/liquid_handling/laiyu/docs/hardware/\347\241\254\344\273\266\350\277\236\346\216\245\351\205\215\347\275\256\346\214\207\345\215\227.md" +++ /dev/null @@ -1,1281 +0,0 @@ -# LaiYu液体处理设备硬件连接配置指南 - -## 📋 文档概述 - -本指南提供LaiYu液体处理设备的完整硬件连接配置方案,包括快速入门、详细配置、连接验证和故障排除。适用于设备初次安装、配置变更和问题诊断。 - ---- - -## 🚀 快速入门指南 - -### 基本配置步骤 - -1. **确认硬件连接** - - 将RS485转USB设备连接到计算机 - - 确保XYZ控制器和移液器通过RS485总线连接 - - 检查设备供电状态 - -2. **获取串口信息** - ```bash - # macOS/Linux - ls /dev/cu.* | grep usbserial - - # 常见输出: /dev/cu.usbserial-3130 - ``` - -3. **基本配置参数** - ```python - # 推荐的默认配置 - config = LaiYuLiquidConfig( - port="/dev/cu.usbserial-3130", # 🔧 替换为实际串口号 - address=4, # 移液器地址(固定) - baudrate=115200, # 推荐波特率 - timeout=5.0 # 通信超时 - ) - ``` - -4. **快速连接测试** - ```python - device = LaiYuLiquid(config) - success = await device.setup() - print(f"连接状态: {'成功' if success else '失败'}") - ``` - ---- - -## 🏗️ 硬件架构详解 - -### 系统组成 - -LaiYu液体处理设备采用RS485总线架构,包含以下核心组件: - -| 组件 | 通信协议 | 设备地址 | 默认波特率 | 功能描述 | -|------|----------|----------|------------|----------| -| **XYZ三轴控制器** | RS485 (Modbus) | X轴=1, Y轴=2, Z轴=3 | 115200 | 三维运动控制 | -| **SOPA移液器** | RS485 | 4 (推荐) | 115200 | 液体吸取分配 | -| **RS485转USB** | USB/串口 | - | 115200 | 通信接口转换 | - -### 地址分配策略 - -``` -RS485总线地址分配: -├── 地址 1: X轴步进电机 (自动分配) -├── 地址 2: Y轴步进电机 (自动分配) -├── 地址 3: Z轴步进电机 (自动分配) -├── 地址 4: SOPA移液器 (推荐配置) -└── 禁用地址: 47('/'), 69('E'), 91('[') -``` - -### 通信参数规范 - -| 参数 | XYZ控制器 | SOPA移液器 | 说明 | -|------|-----------|------------|------| -| **数据位** | 8 | 8 | 固定值 | -| **停止位** | 1 | 1 | 固定值 | -| **校验位** | 无 | 无 | 固定值 | -| **流控制** | 无 | 无 | 固定值 | - ---- - -## ⚙️ 配置参数详解 - -### 1. 核心配置类 - -#### LaiYuLiquidConfig 参数说明 - -```python -@dataclass -class LaiYuLiquidConfig: - # === 通信参数 === - port: str = "/dev/cu.usbserial-3130" # 串口设备路径 - address: int = 4 # 移液器地址(推荐值) - baudrate: int = 115200 # 通信波特率(推荐值) - timeout: float = 5.0 # 通信超时时间(秒) - - # === 工作台物理尺寸 === - deck_width: float = 340.0 # 工作台宽度 (mm) - deck_height: float = 250.0 # 工作台高度 (mm) - deck_depth: float = 160.0 # 工作台深度 (mm) - - # === 运动控制参数 === - max_speed: float = 100.0 # 最大移动速度 (mm/s) - acceleration: float = 50.0 # 加速度 (mm/s²) - safe_height: float = 50.0 # 安全移动高度 (mm) - - # === 移液参数 === - max_volume: float = 1000.0 # 最大移液体积 (μL) - min_volume: float = 0.1 # 最小移液体积 (μL) - liquid_detection: bool = True # 启用液面检测 - - # === 枪头操作参数 === - tip_pickup_speed: int = 30 # 取枪头速度 (rpm) - tip_pickup_acceleration: int = 500 # 取枪头加速度 (rpm/s) - tip_pickup_depth: float = 10.0 # 枪头插入深度 (mm) - tip_drop_height: float = 10.0 # 丢弃枪头高度 (mm) -``` - -### 2. 配置文件位置 - -#### A. 代码配置(推荐) -```python -# 在Python代码中直接配置 -from unilabos.devices.laiyu_liquid import LaiYuLiquidConfig - -config = LaiYuLiquidConfig( - port="/dev/cu.usbserial-3130", # 🔧 修改为实际串口 - address=4, # 🔧 移液器地址 - baudrate=115200, # 🔧 通信波特率 - timeout=5.0 # 🔧 超时时间 -) -``` - -#### B. JSON配置文件 -```json -{ - "laiyu_liquid_config": { - "port": "/dev/cu.usbserial-3130", - "address": 4, - "baudrate": 115200, - "timeout": 5.0, - "deck_width": 340.0, - "deck_height": 250.0, - "deck_depth": 160.0, - "max_speed": 100.0, - "acceleration": 50.0, - "safe_height": 50.0 - } -} -``` - -#### C. 实验协议配置 -```json -// test/experiments/laiyu_liquid.json -{ - "device_config": { - "type": "laiyu_liquid", - "config": { - "port": "/dev/cu.usbserial-3130", - "address": 4, - "baudrate": 115200 - } - } -} -``` - -### 2. 串口设备识别 - -#### 自动识别方法(推荐) - -```python -import serial.tools.list_ports - -def find_laiyu_device(): - """自动查找LaiYu设备串口""" - ports = serial.tools.list_ports.comports() - - for port in ports: - # 根据设备描述或VID/PID识别 - if 'usbserial' in port.device.lower(): - print(f"找到可能的设备: {port.device}") - print(f"描述: {port.description}") - print(f"硬件ID: {port.hwid}") - return port.device - - return None - -# 使用示例 -device_port = find_laiyu_device() -if device_port: - print(f"检测到设备端口: {device_port}") -else: - print("未检测到设备") -``` - -#### 手动识别方法 - -| 操作系统 | 命令 | 设备路径格式 | -|---------|------|-------------| -| **macOS** | `ls /dev/cu.*` | `/dev/cu.usbserial-XXXX` | -| **Linux** | `ls /dev/ttyUSB*` | `/dev/ttyUSB0` | -| **Windows** | 设备管理器 | `COM3`, `COM4` 等 | - -#### macOS 详细识别 -```bash -# 1. 列出所有USB串口设备 -ls /dev/cu.usbserial-* - -# 2. 查看USB设备详细信息 -system_profiler SPUSBDataType | grep -A 10 "Serial" - -# 3. 实时监控设备插拔 -ls /dev/cu.* && echo "--- 请插入设备 ---" && sleep 3 && ls /dev/cu.* -``` - -#### Linux 详细识别 -```bash -# 1. 列出串口设备 -ls /dev/ttyUSB* /dev/ttyACM* - -# 2. 查看设备信息 -dmesg | grep -i "usb.*serial" -lsusb | grep -i "serial\|converter" - -# 3. 查看设备属性 -udevadm info --name=/dev/ttyUSB0 --attribute-walk -``` - -#### Windows 详细识别 -```powershell -# PowerShell命令 -Get-WmiObject -Class Win32_SerialPort | Select-Object Name, DeviceID, Description - -# 或在设备管理器中查看"端口(COM和LPT)" -``` - -### 3. 控制器特定配置 - -#### XYZ步进电机控制器 -- **地址范围**: 1-3 (X轴=1, Y轴=2, Z轴=3) -- **通信协议**: Modbus RTU -- **波特率**: 9600 或 115200 -- **数据位**: 8 -- **停止位**: 1 -- **校验位**: None - -#### XYZ控制器配置 (`controllers/xyz_controller.py`) - -XYZ控制器负责三轴运动控制,提供精确的位置控制和运动规划功能。 - -**主要功能:** -- 三轴独立控制(X、Y、Z轴) -- 位置精度控制 -- 运动速度调节 -- 安全限位检测 - -**配置参数:** -```python -xyz_config = { - "port": "/dev/ttyUSB0", # 串口设备 - "baudrate": 115200, # 波特率 - "timeout": 1.0, # 通信超时 - "max_speed": { # 最大速度限制 - "x": 1000, # X轴最大速度 - "y": 1000, # Y轴最大速度 - "z": 500 # Z轴最大速度 - }, - "acceleration": 500, # 加速度 - "home_position": [0, 0, 0] # 原点位置 -} -``` - -```python -def __init__(self, port: str, baudrate: int = 115200, - machine_config: Optional[MachineConfig] = None, - config_file: str = "machine_config.json", - auto_connect: bool = True): - """ - Args: - port: 串口端口 (如: "/dev/cu.usbserial-3130") - baudrate: 波特率 (默认: 115200) - machine_config: 机械配置参数 - config_file: 配置文件路径 - auto_connect: 是否自动连接 - """ -``` - -#### SOPA移液器 -- **地址**: 通常为 4 或更高 -- **通信协议**: 自定义协议 -- **波特率**: 115200 (推荐) -- **响应时间**: < 100ms - -#### 移液器控制器配置 (`controllers/pipette_controller.py`) - -移液器控制器负责精确的液体吸取和分配操作,支持多种移液模式和参数配置。 - -**主要功能:** -- 精确体积控制 -- 液面检测 -- 枪头管理 -- 速度调节 - -**配置参数:** -```python -@dataclass -class SOPAConfig: - # 通信参数 - port: str = "/dev/ttyUSB0" # 🔧 修改串口号 - baudrate: int = 115200 # 🔧 修改波特率 - address: int = 1 # 🔧 修改设备地址 (1-254) - timeout: float = 5.0 # 🔧 修改超时时间 - comm_type: CommunicationType = CommunicationType.TERMINAL_DEBUG -``` - -## 🔍 连接验证与测试 - -### 1. 编程方式验证连接 - -#### 创建测试脚本 -```python -#!/usr/bin/env python3 -""" -LaiYu液体处理设备连接测试脚本 -""" - -import sys -import os -sys.path.append('/Users/dp/Documents/DPT/HuaiRou/Uni-Lab-OS') - -from unilabos.devices.laiyu_liquid.core.LaiYu_Liquid import ( - LaiYuLiquid, LaiYuLiquidConfig -) - -def test_connection(): - """测试设备连接""" - - # 🔧 修改这里的配置参数 - config = LaiYuLiquidConfig( - port="/dev/cu.usbserial-3130", # 修改为你的串口号 - address=1, # 修改为你的设备地址 - baudrate=9600, # 修改为你的波特率 - timeout=5.0 - ) - - print("🔌 正在测试LaiYu液体处理设备连接...") - print(f"串口: {config.port}") - print(f"波特率: {config.baudrate}") - print(f"设备地址: {config.address}") - print("-" * 50) - - try: - # 创建设备实例 - device = LaiYuLiquid(config) - - # 尝试连接和初始化 - print("📡 正在连接设备...") - success = await device.setup() - - if success: - print("✅ 设备连接成功!") - print(f"连接状态: {device.is_connected}") - print(f"初始化状态: {device.is_initialized}") - print(f"当前位置: {device.current_position}") - - # 获取设备状态 - status = device.get_status() - print("\n📊 设备状态:") - for key, value in status.items(): - print(f" {key}: {value}") - - else: - print("❌ 设备连接失败!") - print("请检查:") - print(" 1. 串口号是否正确") - print(" 2. 设备是否已连接并通电") - print(" 3. 波特率和设备地址是否匹配") - print(" 4. 串口是否被其他程序占用") - - except Exception as e: - print(f"❌ 连接测试出错: {e}") - print("\n🔧 故障排除建议:") - print(" 1. 检查串口设备是否存在:") - print(" macOS: ls /dev/cu.*") - print(" Linux: ls /dev/ttyUSB* /dev/ttyACM*") - print(" 2. 检查设备权限:") - print(" sudo chmod 666 /dev/cu.usbserial-*") - print(" 3. 检查设备是否被占用:") - print(" lsof | grep /dev/cu.usbserial") - - finally: - # 清理连接 - if 'device' in locals(): - await device.stop() - -if __name__ == "__main__": - import asyncio - asyncio.run(test_connection()) -``` - -### 2. 命令行验证工具 - -#### 串口通信测试 -```bash -# 安装串口调试工具 -pip install pyserial - -# 使用Python测试串口 -python -c " -import serial -try: - ser = serial.Serial('/dev/cu.usbserial-3130', 9600, timeout=1) - print('串口连接成功:', ser.is_open) - ser.close() -except Exception as e: - print('串口连接失败:', e) -" -``` - -#### 设备权限检查 -```bash -# macOS/Linux 检查串口权限 -ls -la /dev/cu.usbserial-* - -# 如果权限不足,修改权限 -sudo chmod 666 /dev/cu.usbserial-* - -# 检查串口是否被占用 -lsof | grep /dev/cu.usbserial -``` - -### 3. 连接状态指示器 - -设备提供多种方式检查连接状态: - -#### A. 属性检查 -```python -device = LaiYuLiquid(config) - -# 检查连接状态 -print(f"设备已连接: {device.is_connected}") -print(f"设备已初始化: {device.is_initialized}") -print(f"枪头已安装: {device.tip_attached}") -print(f"当前位置: {device.current_position}") -print(f"当前体积: {device.current_volume}") -``` - -#### B. 状态字典 -```python -status = device.get_status() -print("完整设备状态:", status) - -# 输出示例: -# { -# 'connected': True, -# 'initialized': True, -# 'position': (0.0, 0.0, 50.0), -# 'tip_attached': False, -# 'current_volume': 0.0, -# 'last_error': None -# } -``` - -## 🛠️ 故障排除指南 - -### 1. 连接问题诊断 - -#### 🔍 问题诊断流程 -```python -def diagnose_connection_issues(): - """连接问题诊断工具""" - import serial.tools.list_ports - import serial - - print("🔍 开始连接问题诊断...") - - # 1. 检查串口设备 - ports = list(serial.tools.list_ports.comports()) - if not ports: - print("❌ 未检测到任何串口设备") - print("💡 解决方案:") - print(" - 检查USB连接线") - print(" - 确认设备电源") - print(" - 安装设备驱动") - return - - print(f"✅ 检测到 {len(ports)} 个串口设备") - for port in ports: - print(f" 📍 {port.device}: {port.description}") - - # 2. 测试串口访问权限 - for port in ports: - try: - with serial.Serial(port.device, 9600, timeout=1): - print(f"✅ {port.device}: 访问权限正常") - except PermissionError: - print(f"❌ {port.device}: 权限不足") - print("💡 解决方案: sudo chmod 666 " + port.device) - except Exception as e: - print(f"⚠️ {port.device}: {e}") - -# 运行诊断 -diagnose_connection_issues() -``` - -#### 🚫 常见连接错误 - -| 错误类型 | 症状 | 解决方案 | -|---------|------|----------| -| **设备未找到** | `FileNotFoundError: No such file or directory` | 1. 检查USB连接
2. 确认设备驱动
3. 重新插拔设备 | -| **权限不足** | `PermissionError: Permission denied` | 1. `sudo chmod 666 /dev/ttyUSB0`
2. 添加用户到dialout组
3. 使用sudo运行 | -| **设备占用** | `SerialException: Device or resource busy` | 1. 关闭其他程序
2. `lsof /dev/ttyUSB0`查找占用
3. 重启系统 | -| **驱动问题** | 设备管理器显示未知设备 | 1. 安装CH340/CP210x驱动
2. 更新系统驱动
3. 使用原装USB线 | - -### 2. 通信问题解决 - -#### 📡 通信参数调试 -```python -def test_communication_parameters(): - """测试不同通信参数""" - import serial - - port = "/dev/cu.usbserial-3130" # 修改为实际端口 - baudrates = [9600, 19200, 38400, 57600, 115200] - - for baudrate in baudrates: - print(f"🔄 测试波特率: {baudrate}") - try: - with serial.Serial(port, baudrate, timeout=2) as ser: - # 发送测试命令 - test_cmd = b'\x01\x03\x00\x00\x00\x01\x84\x0A' - ser.write(test_cmd) - - response = ser.read(100) - if response: - print(f" ✅ 成功: 收到 {len(response)} 字节") - print(f" 📦 数据: {response.hex()}") - return baudrate - else: - print(f" ❌ 无响应") - except Exception as e: - print(f" ❌ 错误: {e}") - - return None -``` - -#### ⚡ 通信故障排除 - -| 问题类型 | 症状 | 诊断方法 | 解决方案 | -|---------|------|----------|----------| -| **通信超时** | `TimeoutError` | 检查波特率和设备地址 | 1. 调整超时时间
2. 验证波特率
3. 检查设备地址 | -| **数据校验错误** | `CRCError` | 检查数据完整性 | 1. 更换USB线
2. 降低波特率
3. 检查电磁干扰 | -| **协议错误** | 响应格式异常 | 验证命令格式 | 1. 检查协议版本
2. 确认设备类型
3. 更新固件 | -| **间歇性故障** | 时好时坏 | 监控连接稳定性 | 1. 检查连接线
2. 稳定电源
3. 减少干扰源 | - -### 3. 设备功能问题 - -#### 🎯 设备状态检查 -```python -def check_device_health(): - """设备健康状态检查""" - from unilabos.devices.laiyu_liquid import LaiYuLiquidConfig, LaiYuLiquidBackend - - config = LaiYuLiquidConfig( - port="/dev/cu.usbserial-3130", - address=4, - baudrate=115200, - timeout=5.0 - ) - - try: - backend = LaiYuLiquidBackend(config) - backend.connect() - - # 检查项目 - checks = { - "设备连接": lambda: backend.is_connected(), - "XYZ轴状态": lambda: backend.xyz_controller.get_all_positions(), - "移液器状态": lambda: backend.pipette_controller.get_status(), - "设备温度": lambda: backend.get_temperature(), - "错误状态": lambda: backend.get_error_status(), - } - - print("🏥 设备健康检查报告") - print("=" * 40) - - for check_name, check_func in checks.items(): - try: - result = check_func() - print(f"✅ {check_name}: 正常") - if result: - print(f" 📊 数据: {result}") - except Exception as e: - print(f"❌ {check_name}: 异常 - {e}") - - backend.disconnect() - - except Exception as e: - print(f"❌ 无法连接设备: {e}") -``` - -### 4. 高级故障排除 - -#### 🔧 日志分析工具 -```python -import logging - -def setup_debug_logging(): - """设置调试日志""" - logging.basicConfig( - level=logging.DEBUG, - format='%(asctime)s - %(name)s - %(levelname)s - %(message)s', - handlers=[ - logging.FileHandler('laiyu_debug.log'), - logging.StreamHandler() - ] - ) - - # 启用串口通信日志 - serial_logger = logging.getLogger('serial') - serial_logger.setLevel(logging.DEBUG) - - print("🔍 调试日志已启用,日志文件: laiyu_debug.log") -``` - -#### 📊 性能监控 -```python -def monitor_performance(): - """性能监控工具""" - import time - import psutil - - print("📊 开始性能监控...") - - start_time = time.time() - start_cpu = psutil.cpu_percent() - start_memory = psutil.virtual_memory().percent - - # 执行设备操作 - # ... 你的设备操作代码 ... - - end_time = time.time() - end_cpu = psutil.cpu_percent() - end_memory = psutil.virtual_memory().percent - - print(f"⏱️ 执行时间: {end_time - start_time:.2f} 秒") - print(f"💻 CPU使用: {end_cpu - start_cpu:.1f}%") - print(f"🧠 内存使用: {end_memory - start_memory:.1f}%") -``` - -## 📝 配置文件模板 - -### 1. 基础配置模板 - -#### 标准配置(推荐) -```python -from unilabos.devices.laiyu_liquid import LaiYuLiquidConfig, LaiYuLiquidBackend, LaiYuLiquid - -# 创建标准配置 -config = LaiYuLiquidConfig( - # === 通信参数 === - port="/dev/cu.usbserial-3130", # 🔧 修改为实际串口 - address=4, # 移液器地址(推荐) - baudrate=115200, # 通信波特率(推荐) - timeout=5.0, # 通信超时时间 - - # === 工作台尺寸 === - deck_width=340.0, # 工作台宽度 (mm) - deck_height=250.0, # 工作台高度 (mm) - deck_depth=160.0, # 工作台深度 (mm) - - # === 运动控制参数 === - max_speed=100.0, # 最大移动速度 (mm/s) - acceleration=50.0, # 加速度 (mm/s²) - safe_height=50.0, # 安全移动高度 (mm) - - # === 移液参数 === - max_volume=1000.0, # 最大移液体积 (μL) - min_volume=0.1, # 最小移液体积 (μL) - liquid_detection=True, # 启用液面检测 - - # === 枪头操作参数 === - tip_pickup_speed=30, # 取枪头速度 (rpm) - tip_pickup_acceleration=500, # 取枪头加速度 (rpm/s) - tip_pickup_depth=10.0, # 枪头插入深度 (mm) - tip_drop_height=10.0, # 丢弃枪头高度 (mm) -) - -# 创建设备实例 -backend = LaiYuLiquidBackend(config) -device = LaiYuLiquid(backend) -``` - -### 2. 高级配置模板 - -#### 多设备配置 -```python -# 配置多个LaiYu设备 -configs = { - "device_1": LaiYuLiquidConfig( - port="/dev/cu.usbserial-3130", - address=4, - baudrate=115200, - deck_width=340.0, - deck_height=250.0, - deck_depth=160.0 - ), - "device_2": LaiYuLiquidConfig( - port="/dev/cu.usbserial-3131", - address=4, - baudrate=115200, - deck_width=340.0, - deck_height=250.0, - deck_depth=160.0 - ) -} - -# 创建设备实例 -devices = {} -for name, config in configs.items(): - backend = LaiYuLiquidBackend(config) - devices[name] = LaiYuLiquid(backend) -``` - -#### 自定义参数配置 -```python -# 高精度移液配置 -precision_config = LaiYuLiquidConfig( - port="/dev/cu.usbserial-3130", - address=4, - baudrate=115200, - timeout=10.0, # 增加超时时间 - - # 精密运动控制 - max_speed=50.0, # 降低速度提高精度 - acceleration=25.0, # 降低加速度 - safe_height=30.0, # 降低安全高度 - - # 精密移液参数 - max_volume=200.0, # 小体积移液 - min_volume=0.5, # 提高最小体积 - liquid_detection=True, - - # 精密枪头操作 - tip_pickup_speed=15, # 降低取枪头速度 - tip_pickup_acceleration=250, # 降低加速度 - tip_pickup_depth=8.0, # 减少插入深度 - tip_drop_height=5.0, # 降低丢弃高度 -) -``` - -### 3. 实验协议配置 - -#### JSON配置文件模板 -```json -{ - "experiment_name": "LaiYu液体处理实验", - "version": "1.0", - "devices": { - "laiyu_liquid": { - "type": "LaiYu_Liquid", - "config": { - "port": "/dev/cu.usbserial-3130", - "address": 4, - "baudrate": 115200, - "timeout": 5.0, - "deck_width": 340.0, - "deck_height": 250.0, - "deck_depth": 160.0, - "max_speed": 100.0, - "acceleration": 50.0, - "safe_height": 50.0, - "max_volume": 1000.0, - "min_volume": 0.1, - "liquid_detection": true - } - } - }, - "deck_layout": { - "tip_rack": { - "type": "tip_rack_96", - "position": [10, 10, 0], - "tips": "1000μL" - }, - "source_plate": { - "type": "plate_96", - "position": [100, 10, 0], - "contents": "样品" - }, - "dest_plate": { - "type": "plate_96", - "position": [200, 10, 0], - "contents": "目标" - } - } -} -``` - -### 4. 完整配置示例 -```json -{ - "laiyu_liquid_config": { - "communication": { - "xyz_controller": { - "port": "/dev/cu.usbserial-3130", - "baudrate": 115200, - "timeout": 5.0 - }, - "pipette_controller": { - "port": "/dev/cu.usbserial-3131", - "baudrate": 115200, - "address": 4, - "timeout": 5.0 - } - }, - "mechanical": { - "deck_width": 340.0, - "deck_height": 250.0, - "deck_depth": 160.0, - "safe_height": 50.0 - }, - "motion": { - "max_speed": 100.0, - "acceleration": 50.0, - "tip_pickup_speed": 30, - "tip_pickup_acceleration": 500 - }, - "safety": { - "position_validation": true, - "emergency_stop_enabled": true, - "deck_width": 300.0, - "deck_height": 200.0, - "deck_depth": 100.0, - "safe_height": 50.0 - } - } -} -``` - -### 5. 完整使用示例 - -#### 基础移液操作 -```python -async def basic_pipetting_example(): - """基础移液操作示例""" - - # 1. 设备初始化 - config = LaiYuLiquidConfig( - port="/dev/cu.usbserial-3130", - address=4, - baudrate=115200 - ) - - backend = LaiYuLiquidBackend(config) - device = LaiYuLiquid(backend) - - try: - # 2. 设备设置 - await device.setup() - print("✅ 设备初始化完成") - - # 3. 回到原点 - await device.home_all_axes() - print("✅ 轴归零完成") - - # 4. 取枪头 - tip_position = (50, 50, 10) # 枪头架位置 - await device.pick_up_tip(tip_position) - print("✅ 取枪头完成") - - # 5. 移液操作 - source_pos = (100, 100, 15) # 源位置 - dest_pos = (200, 200, 15) # 目标位置 - volume = 100.0 # 移液体积 (μL) - - await device.aspirate(volume, source_pos) - print(f"✅ 吸取 {volume}μL 完成") - - await device.dispense(volume, dest_pos) - print(f"✅ 分配 {volume}μL 完成") - - # 6. 丢弃枪头 - trash_position = (300, 300, 20) - await device.drop_tip(trash_position) - print("✅ 丢弃枪头完成") - - except Exception as e: - print(f"❌ 操作失败: {e}") - - finally: - # 7. 清理资源 - await device.cleanup() - print("✅ 设备清理完成") - -# 运行示例 -import asyncio -asyncio.run(basic_pipetting_example()) -``` - -#### 批量处理示例 -```python -async def batch_processing_example(): - """批量处理示例""" - - config = LaiYuLiquidConfig( - port="/dev/cu.usbserial-3130", - address=4, - baudrate=115200 - ) - - backend = LaiYuLiquidBackend(config) - device = LaiYuLiquid(backend) - - try: - await device.setup() - await device.home_all_axes() - - # 定义位置 - tip_rack = [(50 + i*9, 50, 10) for i in range(12)] # 12个枪头位置 - source_wells = [(100 + i*9, 100, 15) for i in range(12)] # 12个源孔 - dest_wells = [(200 + i*9, 200, 15) for i in range(12)] # 12个目标孔 - - # 批量移液 - for i in range(12): - print(f"🔄 处理第 {i+1} 个样品...") - - # 取枪头 - await device.pick_up_tip(tip_rack[i]) - - # 移液 - await device.aspirate(50.0, source_wells[i]) - await device.dispense(50.0, dest_wells[i]) - - # 丢弃枪头 - await device.drop_tip((300, 300, 20)) - - print(f"✅ 第 {i+1} 个样品处理完成") - - print("🎉 批量处理完成!") - - except Exception as e: - print(f"❌ 批量处理失败: {e}") - - finally: - await device.cleanup() - -# 运行批量处理 -asyncio.run(batch_processing_example()) -``` - -## 🔧 调试与日志管理 - -### 1. 调试模式配置 - -#### 启用全局调试 -```python -import logging -from unilabos.devices.laiyu_liquid import LaiYuLiquidConfig, LaiYuLiquidBackend - -# 配置全局日志 -logging.basicConfig( - level=logging.DEBUG, - format='%(asctime)s - %(name)s - %(levelname)s - %(message)s', - handlers=[ - logging.FileHandler('laiyu_debug.log'), - logging.StreamHandler() - ] -) - -# 创建调试配置 -debug_config = LaiYuLiquidConfig( - port="/dev/cu.usbserial-3130", - address=4, - baudrate=115200, - timeout=10.0, # 增加超时时间便于调试 - debug_mode=True # 启用调试模式 -) -``` - -#### 分级日志配置 -```python -def setup_logging(log_level="INFO"): - """设置分级日志""" - - # 日志级别映射 - levels = { - "DEBUG": logging.DEBUG, - "INFO": logging.INFO, - "WARNING": logging.WARNING, - "ERROR": logging.ERROR - } - - # 创建日志记录器 - logger = logging.getLogger('LaiYu_Liquid') - logger.setLevel(levels.get(log_level, logging.INFO)) - - # 文件处理器 - file_handler = logging.FileHandler('laiyu_operations.log') - file_formatter = logging.Formatter( - '%(asctime)s - %(name)s - %(levelname)s - %(funcName)s:%(lineno)d - %(message)s' - ) - file_handler.setFormatter(file_formatter) - - # 控制台处理器 - console_handler = logging.StreamHandler() - console_formatter = logging.Formatter('%(levelname)s - %(message)s') - console_handler.setFormatter(console_formatter) - - logger.addHandler(file_handler) - logger.addHandler(console_handler) - - return logger - -# 使用示例 -logger = setup_logging("DEBUG") -logger.info("开始LaiYu设备操作") -``` - -### 2. 通信监控 - -#### 串口通信日志 -```python -def enable_serial_logging(): - """启用串口通信日志""" - import serial - - # 创建串口日志记录器 - serial_logger = logging.getLogger('serial.communication') - serial_logger.setLevel(logging.DEBUG) - - # 创建专用的串口日志文件 - serial_handler = logging.FileHandler('laiyu_serial.log') - serial_formatter = logging.Formatter( - '%(asctime)s - SERIAL - %(message)s' - ) - serial_handler.setFormatter(serial_formatter) - serial_logger.addHandler(serial_handler) - - print("📡 串口通信日志已启用: laiyu_serial.log") - return serial_logger -``` - -#### 实时通信监控 -```python -class CommunicationMonitor: - """通信监控器""" - - def __init__(self): - self.sent_count = 0 - self.received_count = 0 - self.error_count = 0 - self.start_time = time.time() - - def log_sent(self, data): - """记录发送数据""" - self.sent_count += 1 - logging.debug(f"📤 发送 #{self.sent_count}: {data.hex()}") - - def log_received(self, data): - """记录接收数据""" - self.received_count += 1 - logging.debug(f"📥 接收 #{self.received_count}: {data.hex()}") - - def log_error(self, error): - """记录错误""" - self.error_count += 1 - logging.error(f"❌ 通信错误 #{self.error_count}: {error}") - - def get_statistics(self): - """获取统计信息""" - duration = time.time() - self.start_time - return { - "运行时间": f"{duration:.2f}秒", - "发送次数": self.sent_count, - "接收次数": self.received_count, - "错误次数": self.error_count, - "成功率": f"{((self.sent_count - self.error_count) / max(self.sent_count, 1) * 100):.1f}%" - } -``` - -### 3. 性能监控 - -#### 操作性能分析 -```python -import time -import functools - -def performance_monitor(operation_name): - """性能监控装饰器""" - def decorator(func): - @functools.wraps(func) - async def wrapper(*args, **kwargs): - start_time = time.time() - start_memory = psutil.Process().memory_info().rss / 1024 / 1024 # MB - - try: - result = await func(*args, **kwargs) - - end_time = time.time() - end_memory = psutil.Process().memory_info().rss / 1024 / 1024 # MB - - duration = end_time - start_time - memory_delta = end_memory - start_memory - - logging.info(f"⏱️ {operation_name}: {duration:.3f}s, 内存变化: {memory_delta:+.1f}MB") - - return result - - except Exception as e: - end_time = time.time() - duration = end_time - start_time - logging.error(f"❌ {operation_name} 失败 ({duration:.3f}s): {e}") - raise - - return wrapper - return decorator - -# 使用示例 -@performance_monitor("移液操作") -async def monitored_pipetting(): - await device.aspirate(100.0, (100, 100, 15)) - await device.dispense(100.0, (200, 200, 15)) -``` - -#### 系统资源监控 -```python -import psutil -import threading -import time - -class SystemMonitor: - """系统资源监控器""" - - def __init__(self, interval=1.0): - self.interval = interval - self.monitoring = False - self.data = [] - - def start_monitoring(self): - """开始监控""" - self.monitoring = True - self.monitor_thread = threading.Thread(target=self._monitor_loop) - self.monitor_thread.daemon = True - self.monitor_thread.start() - print("📊 系统监控已启动") - - def stop_monitoring(self): - """停止监控""" - self.monitoring = False - if hasattr(self, 'monitor_thread'): - self.monitor_thread.join() - print("📊 系统监控已停止") - - def _monitor_loop(self): - """监控循环""" - while self.monitoring: - cpu_percent = psutil.cpu_percent() - memory = psutil.virtual_memory() - - self.data.append({ - 'timestamp': time.time(), - 'cpu_percent': cpu_percent, - 'memory_percent': memory.percent, - 'memory_used_mb': memory.used / 1024 / 1024 - }) - - time.sleep(self.interval) - - def get_report(self): - """生成监控报告""" - if not self.data: - return "无监控数据" - - avg_cpu = sum(d['cpu_percent'] for d in self.data) / len(self.data) - avg_memory = sum(d['memory_percent'] for d in self.data) / len(self.data) - max_memory = max(d['memory_used_mb'] for d in self.data) - - return f""" -📊 系统资源监控报告 -================== -监控时长: {len(self.data) * self.interval:.1f}秒 -平均CPU使用率: {avg_cpu:.1f}% -平均内存使用率: {avg_memory:.1f}% -峰值内存使用: {max_memory:.1f}MB - """ - -# 使用示例 -monitor = SystemMonitor() -monitor.start_monitoring() - -# 执行设备操作 -# ... 你的代码 ... - -monitor.stop_monitoring() -print(monitor.get_report()) -``` - -### 4. 错误追踪 - -#### 异常处理和记录 -```python -import traceback - -class ErrorTracker: - """错误追踪器""" - - def __init__(self): - self.errors = [] - - def log_error(self, operation, error, context=None): - """记录错误""" - error_info = { - 'timestamp': time.time(), - 'operation': operation, - 'error_type': type(error).__name__, - 'error_message': str(error), - 'traceback': traceback.format_exc(), - 'context': context or {} - } - - self.errors.append(error_info) - - # 记录到日志 - logging.error(f"❌ {operation} 失败: {error}") - logging.debug(f"错误详情: {error_info}") - - def get_error_summary(self): - """获取错误摘要""" - if not self.errors: - return "✅ 无错误记录" - - error_types = {} - for error in self.errors: - error_type = error['error_type'] - error_types[error_type] = error_types.get(error_type, 0) + 1 - - summary = f"❌ 共记录 {len(self.errors)} 个错误:\n" - for error_type, count in error_types.items(): - summary += f" - {error_type}: {count} 次\n" - - return summary - -# 全局错误追踪器 -error_tracker = ErrorTracker() - -# 使用示例 -try: - await device.move_to(x=1000, y=1000, z=100) # 可能超出范围 -except Exception as e: - error_tracker.log_error("移动操作", e, {"target": (1000, 1000, 100)}) -``` - ---- - -## 📚 总结 - -本文档提供了LaiYu液体处理设备的完整硬件连接配置指南,涵盖了从基础设置到高级故障排除的所有方面。 - -### 🎯 关键要点 - -1. **标准配置**: 使用 `port="/dev/cu.usbserial-3130"`, `address=4`, `baudrate=115200` -2. **设备架构**: XYZ轴控制器(地址1-3) + SOPA移液器(地址4) -3. **连接验证**: 使用提供的测试脚本验证硬件连接 -4. **故障排除**: 参考故障排除指南解决常见问题 -5. **性能监控**: 启用日志和监控确保稳定运行 - -### 🔗 相关文档 - -- [LaiYu控制架构详解](./UniLab_LaiYu_控制架构详解.md) -- [XYZ集成功能说明](./XYZ_集成功能说明.md) -- [设备API文档](./readme.md) - -### 📞 技术支持 - -如遇到问题,请: -1. 检查硬件连接和配置 -2. 查看调试日志 -3. 参考故障排除指南 -4. 联系技术支持团队 - ---- - -*最后更新: 2024年1月* \ No newline at end of file diff --git a/unilabos/devices/liquid_handling/laiyu/docs/readme.md b/unilabos/devices/liquid_handling/laiyu/docs/readme.md deleted file mode 100644 index b81ba93a..00000000 --- a/unilabos/devices/liquid_handling/laiyu/docs/readme.md +++ /dev/null @@ -1,285 +0,0 @@ -# LaiYu_Liquid 液体处理工作站 - 生产就绪版本 - -## 概述 - -LaiYu_Liquid 是一个完全集成到 UniLabOS 系统的自动化液体处理工作站,基于 RS485 通信协议,专为精确的液体分配和转移操作而设计。本模块已完成生产环境部署准备,提供完整的硬件控制、资源管理和标准化接口。 - -## 系统组成 - -### 硬件组件 -- **XYZ三轴运动平台**: 3个RS485步进电机驱动(地址:X轴=0x01, Y轴=0x02, Z轴=0x03) -- **SOPA气动式移液器**: RS485总线控制,支持精密液体处理操作 -- **通信接口**: RS485转USB模块,默认波特率115200 -- **机械结构**: 稳固工作台面,支持离心管架、96孔板等标准实验耗材 - -### 软件架构 -- **驱动层**: 底层硬件通信驱动,支持RS485协议 -- **控制层**: 高级控制逻辑和坐标系管理 -- **抽象层**: 完全符合UniLabOS标准的液体处理接口 -- **资源层**: 标准化的实验器具和耗材管理 - -## 🎯 生产就绪组件 - -### ✅ 核心驱动程序 (`drivers/`) -- **`sopa_pipette_driver.py`** - SOPA移液器完整驱动 - - 支持液体吸取、分配、检测 - - 完整的错误处理和状态管理 - - 生产级别的通信协议实现 - -- **`xyz_stepper_driver.py`** - XYZ三轴步进电机驱动 - - 精确的位置控制和运动规划 - - 安全限位和错误检测 - - 高性能运动控制算法 - -### ✅ 高级控制器 (`controllers/`) -- **`pipette_controller.py`** - 移液控制器 - - 封装高级液体处理功能 - - 支持多种液体类型和处理参数 - - 智能错误恢复机制 - -- **`xyz_controller.py`** - XYZ运动控制器 - - 坐标系管理和转换 - - 运动路径优化 - - 安全运动控制 - -### ✅ UniLabOS集成 (`core/LaiYu_Liquid.py`) -- **完整的液体处理抽象接口** -- **标准化的资源管理系统** -- **与PyLabRobot兼容的后端实现** -- **生产级别的错误处理和日志记录** - -### ✅ 资源管理系统 -- **`laiyu_liquid_res.py`** - 标准化资源定义 - - 96孔板、离心管架、枪头架等标准器具 - - 自动化的资源创建和配置函数 - - 与工作台布局的完美集成 - -### ✅ 配置管理 (`config/`) -- **`config/deck.json`** - 工作台布局配置 - - 精确的空间定义和槽位管理 - - 支持多种实验器具的标准化放置 - - 可扩展的配置架构 - -- **`__init__.py`** - 模块集成和导出 - - 完整的API导出和版本管理 - - 依赖检查和安装验证 - - 专业的模块信息展示 - -### ✅ 可视化支持 -- **`rviz_backend.py`** - RViz可视化后端 - - 实时运动状态可视化 - - 液体处理过程监控 - - 与ROS系统的无缝集成 - -## 🚀 核心功能特性 - -### 液体处理能力 -- **精密体积控制**: 支持1-1000μL精确分配 -- **多种液体类型**: 水性、有机溶剂、粘稠液体等 -- **智能检测**: 液位检测、气泡检测、堵塞检测 -- **自动化流程**: 完整的吸取-转移-分配工作流 - -### 运动控制系统 -- **三轴精密定位**: 微米级精度控制 -- **路径优化**: 智能运动规划和碰撞避免 -- **安全机制**: 限位保护、紧急停止、错误恢复 -- **坐标系管理**: 工作坐标与机械坐标的自动转换 - -### 资源管理 -- **标准化器具**: 支持96孔板、离心管架、枪头架等 -- **状态跟踪**: 实时监控液体体积、枪头状态等 -- **自动配置**: 基于JSON的灵活配置系统 -- **扩展性**: 易于添加新的器具类型 - -## 📁 目录结构 - -``` -LaiYu_Liquid/ -├── __init__.py # 模块初始化和API导出 -├── readme.md # 本文档 -├── rviz_backend.py # RViz可视化后端 -├── backend/ # 后端驱动模块 -│ ├── __init__.py -│ └── laiyu_backend.py # PyLabRobot兼容后端 -├── core/ # 核心模块 -│ ├── core/ -│ │ └── LaiYu_Liquid.py # 主设备类 -│ ├── abstract_protocol.py # 抽象协议 -│ └── laiyu_liquid_res.py # 设备资源定义 -├── config/ # 配置文件目录 -│ └── deck.json # 工作台布局配置 -├── controllers/ # 高级控制器 -│ ├── __init__.py -│ ├── pipette_controller.py # 移液控制器 -│ └── xyz_controller.py # XYZ运动控制器 -├── docs/ # 技术文档 -│ ├── SOPA气动式移液器RS485控制指令.md -│ ├── 步进电机控制指令.md -│ └── hardware/ # 硬件相关文档 -├── drivers/ # 底层驱动程序 -│ ├── __init__.py -│ ├── sopa_pipette_driver.py # SOPA移液器驱动 -│ └── xyz_stepper_driver.py # XYZ步进电机驱动 -└── tests/ # 测试文件 -``` - -## 🔧 快速开始 - -### 1. 安装和验证 - -```python -# 验证模块安装 -from unilabos.devices.laiyu_liquid import ( - LaiYuLiquid, - LaiYuLiquidConfig, - create_quick_setup, - print_module_info -) - -# 查看模块信息 -print_module_info() - -# 快速创建默认资源 -resources = create_quick_setup() -print(f"已创建 {len(resources)} 个资源") -``` - -### 2. 基本使用示例 - -```python -from unilabos.devices.LaiYu_Liquid import ( - create_quick_setup, - create_96_well_plate, - create_laiyu_backend -) - -# 快速创建默认资源 -resources = create_quick_setup() -print(f"创建了以下资源: {list(resources.keys())}") - -# 创建96孔板 -plate_96 = create_96_well_plate("test_plate") -print(f"96孔板包含 {len(plate_96.children)} 个孔位") - -# 创建后端实例(用于PyLabRobot集成) -backend = create_laiyu_backend("LaiYu_Device") -print(f"后端设备: {backend.name}") -``` - -### 3. 后端驱动使用 - -```python -from unilabos.devices.laiyu_liquid.backend import create_laiyu_backend - -# 创建后端实例 -backend = create_laiyu_backend("LaiYu_Liquid_Station") - -# 连接设备 -await backend.connect() - -# 设备归位 -await backend.home_device() - -# 获取设备状态 -status = await backend.get_status() -print(f"设备状态: {status}") - -# 断开连接 -await backend.disconnect() -``` - -### 4. 资源管理示例 - -```python -from unilabos.devices.LaiYu_Liquid import ( - create_centrifuge_tube_rack, - create_tip_rack, - load_deck_config -) - -# 加载工作台配置 -deck_config = load_deck_config() -print(f"工作台尺寸: {deck_config['size_x']}x{deck_config['size_y']}mm") - -# 创建不同类型的资源 -tube_rack = create_centrifuge_tube_rack("sample_rack") -tip_rack = create_tip_rack("tip_rack_200ul") - -print(f"离心管架: {tube_rack.name}, 容量: {len(tube_rack.children)} 个位置") -print(f"枪头架: {tip_rack.name}, 容量: {len(tip_rack.children)} 个枪头") -``` - -## 🔍 技术架构 - -### 坐标系统 -- **机械坐标**: 基于步进电机的原始坐标系统 -- **工作坐标**: 用户友好的实验室坐标系统 -- **自动转换**: 透明的坐标系转换和校准 - -### 通信协议 -- **RS485总线**: 高可靠性工业通信标准 -- **Modbus协议**: 标准化的设备通信协议 -- **错误检测**: 完整的通信错误检测和恢复 - -### 安全机制 -- **限位保护**: 硬件和软件双重限位保护 -- **紧急停止**: 即时停止所有运动和操作 -- **状态监控**: 实时设备状态监控和报警 - -## 🧪 验证和测试 - -### 功能验证 -```python -# 验证模块安装 -from unilabos.devices.laiyu_liquid import validate_installation -validate_installation() - -# 查看模块信息 -from unilabos.devices.laiyu_liquid import print_module_info -print_module_info() -``` - -### 硬件连接测试 -```python -# 测试SOPA移液器连接 -from unilabos.devices.laiyu_liquid.drivers import SOPAPipette, SOPAConfig - -config = SOPAConfig(port="/dev/cu.usbserial-3130", address=4) -pipette = SOPAPipette(config) -success = pipette.connect() -print(f"SOPA连接状态: {'成功' if success else '失败'}") -``` - -## 📚 维护和支持 - -### 日志记录 -- **结构化日志**: 使用Python logging模块的专业日志记录 -- **错误追踪**: 详细的错误信息和堆栈跟踪 -- **性能监控**: 操作时间和性能指标记录 - -### 配置管理 -- **JSON配置**: 灵活的JSON格式配置文件 -- **参数验证**: 自动配置参数验证和错误提示 -- **热重载**: 支持配置文件的动态重载 - -### 扩展性 -- **模块化设计**: 易于扩展和定制的模块化架构 -- **插件接口**: 支持第三方插件和扩展 -- **API兼容**: 向后兼容的API设计 - -## 📞 技术支持 - -### 常见问题 -1. **串口权限问题**: 确保用户有串口访问权限 -2. **依赖库安装**: 使用pip安装所需的Python库 -3. **设备连接**: 检查RS485适配器和设备地址配置 - -### 联系方式 -- **技术文档**: 查看UniLabOS官方文档 -- **问题反馈**: 通过GitHub Issues提交问题 -- **社区支持**: 加入UniLabOS开发者社区 - ---- - -**LaiYu_Liquid v1.0.0** - 生产就绪的液体处理工作站集成模块 -© 2024 UniLabOS Project. All rights reserved. \ No newline at end of file diff --git a/unilabos/devices/liquid_handling/laiyu/drivers/__init__.py b/unilabos/devices/liquid_handling/laiyu/drivers/__init__.py deleted file mode 100644 index cedd47a0..00000000 --- a/unilabos/devices/liquid_handling/laiyu/drivers/__init__.py +++ /dev/null @@ -1,30 +0,0 @@ -""" -LaiYu_Liquid 驱动程序模块 - -该模块包含了LaiYu_Liquid液体处理工作站的硬件驱动程序: -- SOPA移液器驱动程序 -- XYZ步进电机驱动程序 -""" - -# SOPA移液器驱动程序导入 -from .sopa_pipette_driver import SOPAPipette, SOPAConfig, SOPAStatusCode - -# XYZ步进电机驱动程序导入 -from .xyz_stepper_driver import StepperMotorDriver, XYZStepperController, MotorAxis, MotorStatus - -__all__ = [ - # SOPA移液器 - "SOPAPipette", - "SOPAConfig", - "SOPAStatusCode", - - # XYZ步进电机 - "StepperMotorDriver", - "XYZStepperController", - "MotorAxis", - "MotorStatus", -] - -__version__ = "1.0.0" -__author__ = "LaiYu_Liquid Driver Team" -__description__ = "LaiYu_Liquid 硬件驱动程序集合" \ No newline at end of file diff --git a/unilabos/devices/liquid_handling/laiyu/drivers/sopa_pipette_driver.py b/unilabos/devices/liquid_handling/laiyu/drivers/sopa_pipette_driver.py deleted file mode 100644 index 0e71bc71..00000000 --- a/unilabos/devices/liquid_handling/laiyu/drivers/sopa_pipette_driver.py +++ /dev/null @@ -1,1085 +0,0 @@ -#!/usr/bin/env python3 -# -*- coding: utf-8 -*- -""" -SOPA气动式移液器RS485控制驱动程序 - -基于SOPA气动式移液器RS485控制指令合集编写的Python驱动程序, -支持完整的移液器控制功能,包括移液、检测、配置等操作。 - -仅支持SC-STxxx-00-13型号的RS485通信。 -""" - -import serial -import time -import logging -import threading -from typing import Optional, Union, Dict, Any, Tuple, List -from enum import Enum, IntEnum -from dataclasses import dataclass -from contextlib import contextmanager - -# 配置日志 -logging.basicConfig(level=logging.INFO) -logger = logging.getLogger(__name__) - - -class SOPAError(Exception): - """SOPA移液器异常基类""" - pass - - -class SOPACommunicationError(SOPAError): - """通信异常""" - pass - - -class SOPADeviceError(SOPAError): - """设备异常""" - pass - - -class SOPAStatusCode(IntEnum): - """状态码枚举""" - NO_ERROR = 0x00 # 无错误 - ACTION_INCOMPLETE = 0x01 # 上次动作未完成 - NOT_INITIALIZED = 0x02 # 设备未初始化 - DEVICE_OVERLOAD = 0x03 # 设备过载 - INVALID_COMMAND = 0x04 # 无效指令 - LLD_FAULT = 0x05 # 液位探测故障 - AIR_ASPIRATE = 0x0D # 空吸 - NEEDLE_BLOCK = 0x0E # 堵针 - FOAM_DETECT = 0x10 # 泡沫 - EXCEED_TIP_VOLUME = 0x11 # 吸液超过吸头容量 - - -class CommunicationType(Enum): - """通信类型""" - TERMINAL_DEBUG = "/" # 终端调试,头码为0x2F - OEM_COMMUNICATION = "[" # OEM通信,头码为0x5B - - -class DetectionMode(IntEnum): - """液位检测模式""" - PRESSURE = 0 # 压力式检测(pLLD) - CAPACITIVE = 1 # 电容式检测(cLLD) - - -@dataclass -class SOPAConfig: - """SOPA移液器配置参数""" - # 通信参数 - port: str = "/dev/ttyUSB0" - baudrate: int = 115200 - address: int = 1 - timeout: float = 5.0 - comm_type: CommunicationType = CommunicationType.TERMINAL_DEBUG - - # 运动参数 (单位: 0.1ul/秒) - max_speed: int = 2000 # 最高速度 200ul/秒 - start_speed: int = 200 # 启动速度 20ul/秒 - cutoff_speed: int = 200 # 断流速度 20ul/秒 - acceleration: int = 30000 # 加速度 - - # 检测参数 - empty_threshold: int = 4 # 空吸门限 - foam_threshold: int = 20 # 泡沫门限 - block_threshold: int = 350 # 堵塞门限 - - # 液位检测参数 - lld_speed: int = 200 # 检测速度 (100~2000) - lld_sensitivity: int = 5 # 检测灵敏度 (3~40) - detection_mode: DetectionMode = DetectionMode.PRESSURE - - # 吸头参数 - tip_volume: int = 1000 # 吸头容量 (ul) - calibration_factor: float = 1.0 # 校准系数 - compensation_offset: float = 0.0 # 补偿偏差 - - def __post_init__(self): - """初始化后验证参数""" - self._validate_address() - - def _validate_address(self): - """ - 验证设备地址是否符合协议要求 - - 协议要求: - - 地址范围:1~254 - - 禁用地址:47, 69, 91 (对应ASCII字符 '/', 'E', '[') - """ - if not (1 <= self.address <= 254): - raise ValueError(f"设备地址必须在1-254范围内,当前地址: {self.address}") - - forbidden_addresses = [47, 69, 91] # '/', 'E', '[' - if self.address in forbidden_addresses: - forbidden_chars = {47: "'/' (0x2F)", 69: "'E' (0x45)", 91: "'[' (0x5B)"} - char_desc = forbidden_chars[self.address] - raise ValueError( - f"地址 {self.address} 不可用,因为它对应协议字符 {char_desc}。" - f"请选择其他地址(1-254,排除47、69、91)" - ) - - -class SOPAPipette: - """SOPA气动式移液器驱动类""" - - def __init__(self, config: SOPAConfig): - """ - 初始化SOPA移液器 - - Args: - config: 移液器配置参数 - """ - self.config = config - self.serial_port: Optional[serial.Serial] = None - self.is_connected = False - self.is_initialized = False - self.lock = threading.Lock() - - # 状态缓存 - self._last_status = SOPAStatusCode.NOT_INITIALIZED - self._current_position = 0 - self._tip_present = False - - def connect(self) -> bool: - """ - 连接移液器 - - Returns: - bool: 连接是否成功 - """ - try: - self.serial_port = serial.Serial( - port=self.config.port, - baudrate=self.config.baudrate, - bytesize=serial.EIGHTBITS, - parity=serial.PARITY_NONE, - stopbits=serial.STOPBITS_ONE, - timeout=self.config.timeout - ) - - if self.serial_port.is_open: - self.is_connected = True - logger.info(f"已连接到SOPA移液器,端口: {self.config.port}, 地址: {self.config.address}") - - # 查询设备信息 - version = self.get_firmware_version() - if version: - logger.info(f"固件版本: {version}") - - return True - else: - raise SOPACommunicationError("串口打开失败") - - except Exception as e: - logger.error(f"连接失败: {str(e)}") - self.is_connected = False - return False - - def disconnect(self): - """断开连接""" - if self.serial_port and self.serial_port.is_open: - self.serial_port.close() - self.is_connected = False - self.is_initialized = False - logger.info("已断开SOPA移液器连接") - - def _calculate_checksum(self, data: bytes) -> int: - """计算校验和""" - return sum(data) & 0xFF - - def _build_command(self, command: str) -> bytes: - """ - 构建完整命令字节串 - - 根据协议格式:头码 + 地址 + 命令/数据 + 尾码 + 校验和 - - Args: - command: 命令字符串 - - Returns: - bytes: 完整的命令字节串 - """ - header = self.config.comm_type.value # '/' 或 '[' - address = str(self.config.address) # 设备地址 - tail = "E" # 尾码固定为 'E' - - # 构建基础命令字符串:头码 + 地址 + 命令 + 尾码 - cmd_str = f"{header}{address}{command}{tail}" - - # 转换为字节串 - cmd_bytes = cmd_str.encode('ascii') - - # 计算校验和(所有字节的累加值) - checksum = self._calculate_checksum(cmd_bytes) - - # 返回完整命令:基础命令字节 + 校验和字节 - return cmd_bytes + bytes([checksum]) - - def _send_command(self, command: str) -> bool: - """ - 发送命令到移液器 - - Args: - command: 要发送的命令 - - Returns: - bool: 命令是否发送成功 - """ - if not self.is_connected or not self.serial_port: - raise SOPACommunicationError("设备未连接") - - with self.lock: - try: - full_command_bytes = self._build_command(command) - # 转换为可读字符串用于日志显示 - readable_cmd = ''.join(chr(b) if 32 <= b <= 126 else f'\\x{b:02X}' for b in full_command_bytes) - logger.debug(f"发送命令: {readable_cmd}") - - self.serial_port.write(full_command_bytes) - self.serial_port.flush() - - # 等待响应 - time.sleep(0.1) - return True - - except Exception as e: - logger.error(f"发送命令失败: {str(e)}") - raise SOPACommunicationError(f"发送命令失败: {str(e)}") - - def _read_response(self, timeout: float = None) -> Optional[str]: - """ - 读取设备响应 - - Args: - timeout: 超时时间 - - Returns: - Optional[str]: 设备响应字符串 - """ - if not self.is_connected or not self.serial_port: - return None - - timeout = timeout or self.config.timeout - - try: - # 设置读取超时 - self.serial_port.timeout = timeout - - response = b'' - start_time = time.time() - - while time.time() - start_time < timeout: - if self.serial_port.in_waiting > 0: - chunk = self.serial_port.read(self.serial_port.in_waiting) - response += chunk - - # 检查是否收到完整响应(以'E'结尾) - if response.endswith(b'E') or len(response) >= 20: - break - - time.sleep(0.01) - - if response: - decoded_response = response.decode('ascii', errors='ignore') - logger.debug(f"收到响应: {decoded_response}") - return decoded_response - - except Exception as e: - logger.error(f"读取响应失败: {str(e)}") - - return None - - def _send_query(self, query: str) -> Optional[str]: - """ - 发送查询命令并获取响应 - - Args: - query: 查询命令 - - Returns: - Optional[str]: 查询结果 - """ - try: - self._send_command(query) - return self._read_response() - except Exception as e: - logger.error(f"查询失败: {str(e)}") - return None - - # ==================== 基础控制方法 ==================== - - def initialize(self) -> bool: - """ - 初始化移液器 - - Returns: - bool: 初始化是否成功 - """ - try: - logger.info("初始化SOPA移液器...") - - # 发送初始化命令 - self._send_command("HE") - - # 等待初始化完成 - time.sleep(2.0) - - # 检查状态 - status = self.get_status() - if status == SOPAStatusCode.NO_ERROR: - self.is_initialized = True - logger.info("移液器初始化成功") - - # 应用配置参数 - self._apply_configuration() - return True - else: - logger.error(f"初始化失败,状态码: {status}") - return False - - except Exception as e: - logger.error(f"初始化异常: {str(e)}") - return False - - def _apply_configuration(self): - """应用配置参数""" - try: - # 设置运动参数 - self.set_acceleration(self.config.acceleration) - self.set_start_speed(self.config.start_speed) - self.set_cutoff_speed(self.config.cutoff_speed) - self.set_max_speed(self.config.max_speed) - - # 设置检测参数 - self.set_empty_threshold(self.config.empty_threshold) - self.set_foam_threshold(self.config.foam_threshold) - self.set_block_threshold(self.config.block_threshold) - - # 设置吸头参数 - self.set_tip_volume(self.config.tip_volume) - self.set_calibration_factor(self.config.calibration_factor) - - # 设置液位检测参数 - self.set_detection_mode(self.config.detection_mode) - self.set_lld_speed(self.config.lld_speed) - - logger.info("配置参数应用完成") - - except Exception as e: - logger.warning(f"应用配置参数失败: {str(e)}") - - def eject_tip(self) -> bool: - """ - 顶出枪头 - - Returns: - bool: 操作是否成功 - """ - try: - logger.info("顶出枪头") - self._send_command("RE") - time.sleep(1.0) - return True - except Exception as e: - logger.error(f"顶出枪头失败: {str(e)}") - return False - - def get_tip_status(self) -> bool: - """ - 获取枪头状态 - - Returns: - bool: True表示有枪头,False表示无枪头 - """ - try: - response = self._send_query("Q28") - if response and len(response) > 10: - # 解析响应中的枪头状态 - if "T1" in response: - self._tip_present = True - return True - elif "T0" in response: - self._tip_present = False - return False - else: - logger.error(f"获取枪头状态失败: {response}") - return False - except Exception as e: - logger.error(f"获取枪头状态失败: {str(e)}") - - return False - - # ==================== 移液控制方法 ==================== - - def move_absolute(self, position: float) -> bool: - """ - 绝对位置移动 - - Args: - position: 目标位置(微升) - - Returns: - bool: 移动是否成功 - """ - try: - if not self.is_initialized: - raise SOPADeviceError("设备未初始化") - - pos_int = int(position) - logger.debug(f"绝对移动到位置: {pos_int}ul") - - self._send_command(f"A{pos_int}E") - time.sleep(0.5) - - self._current_position = pos_int - return True - - except Exception as e: - logger.error(f"绝对移动失败: {str(e)}") - return False - - def aspirate(self, volume: float, detection: bool = False) -> bool: - """ - 抽吸液体 - - Args: - volume: 抽吸体积(微升) - detection: 是否开启液体检测 - - Returns: - bool: 抽吸是否成功 - """ - try: - if not self.is_initialized: - raise SOPADeviceError("设备未初始化") - - vol_int = int(volume) - logger.info(f"抽吸液体: {vol_int}ul, 检测: {detection}") - - # 构建命令 - cmd_parts = [] - cmd_parts.append(f"a{self.config.acceleration}") - cmd_parts.append(f"b{self.config.start_speed}") - cmd_parts.append(f"c{self.config.cutoff_speed}") - cmd_parts.append(f"s{self.config.max_speed}") - - if detection: - cmd_parts.append("f1") # 开启检测 - - cmd_parts.append(f"P{vol_int}") - - if detection: - cmd_parts.append("f0") # 关闭检测 - - cmd_parts.append("E") - - command = "".join(cmd_parts) - self._send_command(command) - - # 等待操作完成 - time.sleep(max(1.0, vol_int / 100.0)) - - # 检查状态 - status = self.get_status() - if status == SOPAStatusCode.NO_ERROR: - self._current_position += vol_int - logger.info(f"抽吸成功: {vol_int}ul") - return True - elif status == SOPAStatusCode.AIR_ASPIRATE: - logger.warning("检测到空吸") - return False - elif status == SOPAStatusCode.NEEDLE_BLOCK: - logger.error("检测到堵针") - return False - else: - logger.error(f"抽吸失败,状态码: {status}") - return False - - except Exception as e: - logger.error(f"抽吸失败: {str(e)}") - return False - - def dispense(self, volume: float, detection: bool = False) -> bool: - """ - 分配液体 - - Args: - volume: 分配体积(微升) - detection: 是否开启液体检测 - - Returns: - bool: 分配是否成功 - """ - try: - if not self.is_initialized: - raise SOPADeviceError("设备未初始化") - - vol_int = int(volume) - logger.info(f"分配液体: {vol_int}ul, 检测: {detection}") - - # 构建命令 - cmd_parts = [] - cmd_parts.append(f"a{self.config.acceleration}") - cmd_parts.append(f"b{self.config.start_speed}") - cmd_parts.append(f"c{self.config.cutoff_speed}") - cmd_parts.append(f"s{self.config.max_speed}") - - if detection: - cmd_parts.append("f1") # 开启检测 - - cmd_parts.append(f"D{vol_int}") - - if detection: - cmd_parts.append("f0") # 关闭检测 - - cmd_parts.append("E") - - command = "".join(cmd_parts) - self._send_command(command) - - # 等待操作完成 - time.sleep(max(1.0, vol_int / 200.0)) - - # 检查状态 - status = self.get_status() - if status == SOPAStatusCode.NO_ERROR: - self._current_position -= vol_int - logger.info(f"分配成功: {vol_int}ul") - return True - else: - logger.error(f"分配失败,状态码: {status}") - return False - - except Exception as e: - logger.error(f"分配失败: {str(e)}") - return False - - # ==================== 液位检测方法 ==================== - - def liquid_level_detection(self, sensitivity: int = None) -> bool: - """ - 执行液位检测 - - Args: - sensitivity: 检测灵敏度 (3~40) - - Returns: - bool: 检测是否成功 - """ - try: - if not self.is_initialized: - raise SOPADeviceError("设备未初始化") - - sens = sensitivity or self.config.lld_sensitivity - - if self.config.detection_mode == DetectionMode.PRESSURE: - # 压力式液面检测 - command = f"m0k{self.config.lld_speed}L{sens}E" - else: - # 电容式液面检测 - command = f"m1L{sens}E" - - logger.info(f"执行液位检测, 模式: {self.config.detection_mode.name}, 灵敏度: {sens}") - - self._send_command(command) - time.sleep(2.0) - - # 检查检测结果 - status = self.get_status() - if status == SOPAStatusCode.NO_ERROR: - logger.info("液位检测成功") - return True - elif status == SOPAStatusCode.LLD_FAULT: - logger.error("液位检测故障") - return False - else: - logger.warning(f"液位检测异常,状态码: {status}") - return False - - except Exception as e: - logger.error(f"液位检测失败: {str(e)}") - return False - - # ==================== 参数设置方法 ==================== - - def set_max_speed(self, speed: int) -> bool: - """设置最高速度 (0.1ul/秒为单位)""" - try: - self._send_command(f"s{speed}E") - self.config.max_speed = speed - logger.debug(f"设置最高速度: {speed} (0.1ul/秒)") - return True - except Exception as e: - logger.error(f"设置最高速度失败: {str(e)}") - return False - - def set_start_speed(self, speed: int) -> bool: - """设置启动速度 (0.1ul/秒为单位)""" - try: - self._send_command(f"b{speed}E") - self.config.start_speed = speed - logger.debug(f"设置启动速度: {speed} (0.1ul/秒)") - return True - except Exception as e: - logger.error(f"设置启动速度失败: {str(e)}") - return False - - def set_cutoff_speed(self, speed: int) -> bool: - """设置断流速度 (0.1ul/秒为单位)""" - try: - self._send_command(f"c{speed}E") - self.config.cutoff_speed = speed - logger.debug(f"设置断流速度: {speed} (0.1ul/秒)") - return True - except Exception as e: - logger.error(f"设置断流速度失败: {str(e)}") - return False - - def set_acceleration(self, accel: int) -> bool: - """设置加速度""" - try: - self._send_command(f"a{accel}E") - self.config.acceleration = accel - logger.debug(f"设置加速度: {accel}") - return True - except Exception as e: - logger.error(f"设置加速度失败: {str(e)}") - return False - - def set_empty_threshold(self, threshold: int) -> bool: - """设置空吸门限""" - try: - self._send_command(f"${threshold}E") - self.config.empty_threshold = threshold - logger.debug(f"设置空吸门限: {threshold}") - return True - except Exception as e: - logger.error(f"设置空吸门限失败: {str(e)}") - return False - - def set_foam_threshold(self, threshold: int) -> bool: - """设置泡沫门限""" - try: - self._send_command(f"!{threshold}E") - self.config.foam_threshold = threshold - logger.debug(f"设置泡沫门限: {threshold}") - return True - except Exception as e: - logger.error(f"设置泡沫门限失败: {str(e)}") - return False - - def set_block_threshold(self, threshold: int) -> bool: - """设置堵塞门限""" - try: - self._send_command(f"%{threshold}E") - self.config.block_threshold = threshold - logger.debug(f"设置堵塞门限: {threshold}") - return True - except Exception as e: - logger.error(f"设置堵塞门限失败: {str(e)}") - return False - - def set_tip_volume(self, volume: int) -> bool: - """设置吸头容量""" - try: - self._send_command(f"C{volume}E") - self.config.tip_volume = volume - logger.debug(f"设置吸头容量: {volume}ul") - return True - except Exception as e: - logger.error(f"设置吸头容量失败: {str(e)}") - return False - - def set_calibration_factor(self, factor: float) -> bool: - """设置校准系数""" - try: - self._send_command(f"j{factor}E") - self.config.calibration_factor = factor - logger.debug(f"设置校准系数: {factor}") - return True - except Exception as e: - logger.error(f"设置校准系数失败: {str(e)}") - return False - - def set_detection_mode(self, mode: DetectionMode) -> bool: - """设置液位检测模式""" - try: - self._send_command(f"m{mode.value}E") - self.config.detection_mode = mode - logger.debug(f"设置检测模式: {mode.name}") - return True - except Exception as e: - logger.error(f"设置检测模式失败: {str(e)}") - return False - - def set_lld_speed(self, speed: int) -> bool: - """设置液位检测速度""" - try: - if 100 <= speed <= 2000: - self._send_command(f"k{speed}E") - self.config.lld_speed = speed - logger.debug(f"设置检测速度: {speed}") - return True - else: - logger.error("检测速度超出范围 (100~2000)") - return False - except Exception as e: - logger.error(f"设置检测速度失败: {str(e)}") - return False - - # ==================== 状态查询方法 ==================== - - def get_status(self) -> SOPAStatusCode: - """ - 获取设备状态 - - Returns: - SOPAStatusCode: 当前状态码 - """ - try: - response = self._send_query("Q") - if response and len(response) > 8: - # 解析状态字节 - status_char = response[8] if len(response) > 8 else '0' - try: - status_code = int(status_char, 16) if status_char.isdigit() or status_char.lower() in 'abcdef' else 0 - self._last_status = SOPAStatusCode(status_code) - except ValueError: - self._last_status = SOPAStatusCode.NO_ERROR - - return self._last_status - except Exception as e: - logger.error(f"获取状态失败: {str(e)}") - - return SOPAStatusCode.NO_ERROR - - def get_firmware_version(self) -> Optional[str]: - """ - 获取固件版本信息 - 处理SOPA移液器的双响应帧格式 - - Returns: - Optional[str]: 固件版本字符串,获取失败返回None - """ - try: - if not self.is_connected: - logger.debug("设备未连接,无法查询版本") - return "设备未连接" - - # 清空串口缓冲区,避免残留数据干扰 - if self.serial_port and self.serial_port.in_waiting > 0: - logger.debug(f"清空缓冲区中的 {self.serial_port.in_waiting} 字节数据") - self.serial_port.reset_input_buffer() - - # 发送版本查询命令 - 使用VE命令 - command = self._build_command("VE") - logger.debug(f"发送版本查询命令: {command}") - self.serial_port.write(command) - - # 等待响应 - time.sleep(0.3) # 增加等待时间 - - # 读取所有可用数据 - all_data = b'' - timeout_count = 0 - max_timeout = 15 # 增加最大等待时间到1.5秒 - - while timeout_count < max_timeout: - if self.serial_port.in_waiting > 0: - data = self.serial_port.read(self.serial_port.in_waiting) - all_data += data - logger.debug(f"接收到 {len(data)} 字节数据: {data.hex().upper()}") - timeout_count = 0 # 重置超时计数 - else: - time.sleep(0.1) - timeout_count += 1 - - # 检查是否收到完整的双响应帧 - if len(all_data) >= 26: # 两个13字节的响应帧 - logger.debug("收到完整的双响应帧") - break - elif len(all_data) >= 13: # 至少一个响应帧 - # 继续等待一段时间看是否有第二个帧 - if timeout_count > 5: # 等待0.5秒后如果没有更多数据就停止 - logger.debug("只收到单响应帧") - break - - logger.debug(f"总共接收到 {len(all_data)} 字节数据: {all_data.hex().upper()}") - - if len(all_data) < 13: - logger.warning("接收到的数据不足一个完整响应帧") - return "版本信息不可用" - - # 解析响应数据 - version_info = self._parse_version_response(all_data) - logger.info(f"解析得到版本信息: {version_info}") - return version_info - - except Exception as e: - logger.error(f"获取固件版本失败: {str(e)}") - return "版本信息不可用" - - def _parse_version_response(self, data: bytes) -> str: - """ - 解析版本响应数据 - - Args: - data: 原始响应数据 - - Returns: - str: 解析后的版本信息 - """ - try: - # 将数据转换为十六进制字符串用于调试 - hex_data = data.hex().upper() - logger.debug(f"收到版本响应数据: {hex_data}") - - # 查找响应帧的起始位置 - responses = [] - i = 0 - while i < len(data) - 12: - # 查找帧头 0x2F (/) - if data[i] == 0x2F: - # 检查是否是完整的13字节帧 - if i + 12 < len(data) and data[i + 11] == 0x45: # 尾码 E - frame = data[i:i+13] - responses.append(frame) - i += 13 - else: - i += 1 - else: - i += 1 - - if len(responses) < 2: - # 如果只有一个响应帧,尝试解析 - if len(responses) == 1: - return self._extract_version_from_frame(responses[0]) - else: - return f"响应格式异常: {hex_data}" - - # 解析第二个响应帧(通常包含版本信息) - version_frame = responses[1] - return self._extract_version_from_frame(version_frame) - - except Exception as e: - logger.error(f"解析版本响应失败: {str(e)}") - return f"解析失败: {data.hex().upper()}" - - def _extract_version_from_frame(self, frame: bytes) -> str: - """ - 从响应帧中提取版本信息 - - Args: - frame: 13字节的响应帧 - - Returns: - str: 版本信息字符串 - """ - try: - # 帧格式: 头码(1) + 地址(1) + 数据(9) + 尾码(1) + 校验和(1) - if len(frame) != 13: - return f"帧长度错误: {frame.hex().upper()}" - - # 提取数据部分 (索引2-10,共9字节) - data_part = frame[2:11] - - # 尝试不同的解析方法 - version_candidates = [] - - # 方法1: 查找可打印的ASCII字符 - ascii_chars = [] - for byte in data_part: - if 32 <= byte <= 126: # 可打印ASCII范围 - ascii_chars.append(chr(byte)) - - if ascii_chars: - version_candidates.append(''.join(ascii_chars)) - - # 方法2: 解析为版本号格式 (如果前几个字节是版本信息) - if len(data_part) >= 3: - # 检查是否是 V.x.y 格式 - if data_part[0] == 0x56: # 'V' - version_str = f"V{data_part[1]}.{data_part[2]}" - version_candidates.append(version_str) - - # 方法3: 十六进制表示 - hex_version = ' '.join(f'{b:02X}' for b in data_part) - version_candidates.append(f"HEX: {hex_version}") - - # 返回最合理的版本信息 - for candidate in version_candidates: - if candidate and len(candidate.strip()) > 1: - return candidate.strip() - - return f"原始数据: {frame.hex().upper()}" - - except Exception as e: - logger.error(f"提取版本信息失败: {str(e)}") - return f"提取失败: {frame.hex().upper()}" - - def get_current_position(self) -> float: - """ - 获取当前位置 - - Returns: - float: 当前位置 (微升) - """ - try: - response = self._send_query("Q18") - if response and len(response) > 10: - # 解析位置信息 - pos_str = response[8:14].strip() - try: - self._current_position = int(pos_str) - except ValueError: - pass - except Exception as e: - logger.error(f"获取位置失败: {str(e)}") - - return self._current_position - - def get_device_info(self) -> Dict[str, Any]: - """ - 获取设备完整信息 - - Returns: - Dict[str, Any]: 设备信息字典 - """ - info = { - 'firmware_version': self.get_firmware_version(), - 'current_position': self.get_current_position(), - 'tip_present': self.get_tip_status(), - 'status': self.get_status(), - 'is_connected': self.is_connected, - 'is_initialized': self.is_initialized, - 'config': { - 'address': self.config.address, - 'baudrate': self.config.baudrate, - 'max_speed': self.config.max_speed, - 'tip_volume': self.config.tip_volume, - 'detection_mode': self.config.detection_mode.name - } - } - - return info - - # ==================== 高级操作方法 ==================== - - def transfer_liquid(self, source_volume: float, dispense_volume: float = None, - with_detection: bool = True, pre_wet: bool = False) -> bool: - """ - 完整的液体转移操作 - - Args: - source_volume: 从源容器抽吸的体积 - dispense_volume: 分配到目标容器的体积(默认等于抽吸体积) - with_detection: 是否使用液体检测 - pre_wet: 是否进行预润湿 - - Returns: - bool: 操作是否成功 - """ - try: - if not self.is_initialized: - raise SOPADeviceError("设备未初始化") - - dispense_volume = dispense_volume or source_volume - - logger.info(f"开始液体转移: 抽吸{source_volume}ul -> 分配{dispense_volume}ul") - - # 预润湿(如果需要) - if pre_wet: - logger.info("执行预润湿操作") - if not self.aspirate(source_volume * 0.1, with_detection): - return False - if not self.dispense(source_volume * 0.1): - return False - - # 执行液位检测(如果启用) - if with_detection: - if not self.liquid_level_detection(): - logger.warning("液位检测失败,继续执行") - - # 抽吸液体 - if not self.aspirate(source_volume, with_detection): - logger.error("抽吸失败") - return False - - # 可选的延时 - time.sleep(0.5) - - # 分配液体 - if not self.dispense(dispense_volume, with_detection): - logger.error("分配失败") - return False - - logger.info("液体转移完成") - return True - - except Exception as e: - logger.error(f"液体转移失败: {str(e)}") - return False - - @contextmanager - def batch_operation(self): - """批量操作上下文管理器""" - logger.info("开始批量操作") - try: - yield self - finally: - logger.info("批量操作完成") - - def reset_to_home(self) -> bool: - """回到初始位置""" - return self.move_absolute(0) - - def emergency_stop(self): - """紧急停止""" - try: - if self.serial_port and self.serial_port.is_open: - # 发送停止命令(如果协议支持) - self.serial_port.write(b'\x03') # Ctrl+C - logger.warning("执行紧急停止") - except Exception as e: - logger.error(f"紧急停止失败: {str(e)}") - - def __enter__(self): - """上下文管理器入口""" - if not self.is_connected: - self.connect() - return self - - def __exit__(self, exc_type, exc_val, exc_tb): - """上下文管理器出口""" - self.disconnect() - - def __del__(self): - """析构函数""" - self.disconnect() - - -# ==================== 工厂函数和便利方法 ==================== - -def create_sopa_pipette(port: str = "/dev/ttyUSB0", address: int = 1, - baudrate: int = 115200, **kwargs) -> SOPAPipette: - """ - 创建SOPA移液器实例的便利函数 - - Args: - port: 串口端口 - address: RS485地址 - baudrate: 波特率 - **kwargs: 其他配置参数 - - Returns: - SOPAPipette: 移液器实例 - """ - config = SOPAConfig( - port=port, - address=address, - baudrate=baudrate, - **kwargs - ) - - return SOPAPipette(config) diff --git a/unilabos/devices/liquid_handling/laiyu/drivers/xyz_stepper_driver.py b/unilabos/devices/liquid_handling/laiyu/drivers/xyz_stepper_driver.py deleted file mode 100644 index 8505ba76..00000000 --- a/unilabos/devices/liquid_handling/laiyu/drivers/xyz_stepper_driver.py +++ /dev/null @@ -1,663 +0,0 @@ -#!/usr/bin/env python3 -# -*- coding: utf-8 -*- -""" -XYZ三轴步进电机B系列驱动程序 -支持RS485通信,Modbus协议 -""" - -import serial -import struct -import time -import logging -from typing import Optional, Tuple, Dict, Any -from enum import Enum -from dataclasses import dataclass - -# 配置日志 -logging.basicConfig(level=logging.INFO) -logger = logging.getLogger(__name__) - - -class MotorAxis(Enum): - """电机轴枚举""" - X = 1 - Y = 2 - Z = 3 - - -class MotorStatus(Enum): - """电机状态枚举""" - STANDBY = 0x0000 # 待机/到位 - RUNNING = 0x0001 # 运行中 - COLLISION_STOP = 0x0002 # 碰撞停 - FORWARD_LIMIT_STOP = 0x0003 # 正光电停 - REVERSE_LIMIT_STOP = 0x0004 # 反光电停 - - -class ModbusFunction(Enum): - """Modbus功能码""" - READ_HOLDING_REGISTERS = 0x03 - WRITE_SINGLE_REGISTER = 0x06 - WRITE_MULTIPLE_REGISTERS = 0x10 - - -@dataclass -class MotorPosition: - """电机位置信息""" - steps: int - speed: int - current: int - status: MotorStatus - - -class ModbusException(Exception): - """Modbus通信异常""" - pass - - -class StepperMotorDriver: - """步进电机驱动器基类""" - - # 寄存器地址常量 - REG_STATUS = 0x00 - REG_POSITION_HIGH = 0x01 - REG_POSITION_LOW = 0x02 - REG_ACTUAL_SPEED = 0x03 - REG_EMERGENCY_STOP = 0x04 - REG_CURRENT = 0x05 - REG_ENABLE = 0x06 - REG_PWM_OUTPUT = 0x07 - REG_ZERO_SINGLE = 0x0E - REG_ZERO_COMMAND = 0x0F - - # 位置模式寄存器 - REG_TARGET_POSITION_HIGH = 0x10 - REG_TARGET_POSITION_LOW = 0x11 - REG_POSITION_SPEED = 0x13 - REG_POSITION_ACCELERATION = 0x14 - REG_POSITION_PRECISION = 0x15 - - # 速度模式寄存器 - REG_SPEED_MODE_SPEED = 0x61 - REG_SPEED_MODE_ACCELERATION = 0x62 - - # 设备参数寄存器 - REG_DEVICE_ADDRESS = 0xE0 - REG_DEFAULT_SPEED = 0xE7 - REG_DEFAULT_ACCELERATION = 0xE8 - - def __init__(self, port: str, baudrate: int = 115200, timeout: float = 1.0): - """ - 初始化步进电机驱动器 - - Args: - port: 串口端口名 - baudrate: 波特率 - timeout: 通信超时时间 - """ - self.port = port - self.baudrate = baudrate - self.timeout = timeout - self.serial_conn: Optional[serial.Serial] = None - - def connect(self) -> bool: - """ - 建立串口连接 - - Returns: - 连接是否成功 - """ - try: - self.serial_conn = serial.Serial( - port=self.port, - baudrate=self.baudrate, - bytesize=serial.EIGHTBITS, - parity=serial.PARITY_NONE, - stopbits=serial.STOPBITS_ONE, - timeout=self.timeout - ) - logger.info(f"已连接到串口: {self.port}") - return True - except Exception as e: - logger.error(f"串口连接失败: {e}") - return False - - def disconnect(self) -> None: - """关闭串口连接""" - if self.serial_conn and self.serial_conn.is_open: - self.serial_conn.close() - logger.info("串口连接已关闭") - - def __enter__(self): - """上下文管理器入口""" - if self.connect(): - return self - raise ModbusException("无法建立串口连接") - - def __exit__(self, exc_type, exc_val, exc_tb): - """上下文管理器出口""" - self.disconnect() - - @staticmethod - def calculate_crc(data: bytes) -> bytes: - """ - 计算Modbus CRC校验码 - - Args: - data: 待校验的数据 - - Returns: - CRC校验码 (2字节) - """ - crc = 0xFFFF - for byte in data: - crc ^= byte - for _ in range(8): - if crc & 0x0001: - crc >>= 1 - crc ^= 0xA001 - else: - crc >>= 1 - return struct.pack(' bytes: - """ - 发送Modbus命令并接收响应 - - Args: - slave_addr: 从站地址 - data: 命令数据 - - Returns: - 响应数据 - - Raises: - ModbusException: 通信异常 - """ - if not self.serial_conn or not self.serial_conn.is_open: - raise ModbusException("串口未连接") - - # 构建完整命令 - command = bytes([slave_addr]) + data - crc = self.calculate_crc(command) - full_command = command + crc - - # 清空接收缓冲区 - self.serial_conn.reset_input_buffer() - - # 发送命令 - self.serial_conn.write(full_command) - logger.debug(f"发送命令: {' '.join(f'{b:02X}' for b in full_command)}") - - # 等待响应 - time.sleep(0.01) # 短暂延时 - - # 读取响应 - response = self.serial_conn.read(256) # 最大读取256字节 - if not response: - raise ModbusException("未收到响应") - - logger.debug(f"接收响应: {' '.join(f'{b:02X}' for b in response)}") - - # 验证CRC - if len(response) < 3: - raise ModbusException("响应数据长度不足") - - data_part = response[:-2] - received_crc = response[-2:] - calculated_crc = self.calculate_crc(data_part) - - if received_crc != calculated_crc: - raise ModbusException(f"CRC校验失败{response}") - - return response - - def read_registers(self, slave_addr: int, start_addr: int, count: int) -> list: - """ - 读取保持寄存器 - - Args: - slave_addr: 从站地址 - start_addr: 起始地址 - count: 寄存器数量 - - Returns: - 寄存器值列表 - """ - data = struct.pack('>BHH', ModbusFunction.READ_HOLDING_REGISTERS.value, start_addr, count) - response = self._send_command(slave_addr, data) - - if len(response) < 5: - raise ModbusException("响应长度不足") - - if response[1] != ModbusFunction.READ_HOLDING_REGISTERS.value: - raise ModbusException(f"功能码错误: {response[1]:02X}") - - byte_count = response[2] - values = [] - for i in range(0, byte_count, 2): - value = struct.unpack('>H', response[3+i:5+i])[0] - values.append(value) - - return values - - def write_single_register(self, slave_addr: int, addr: int, value: int) -> bool: - """ - 写入单个寄存器 - - Args: - slave_addr: 从站地址 - addr: 寄存器地址 - value: 寄存器值 - - Returns: - 写入是否成功 - """ - data = struct.pack('>BHH', ModbusFunction.WRITE_SINGLE_REGISTER.value, addr, value) - response = self._send_command(slave_addr, data) - - return len(response) >= 8 and response[1] == ModbusFunction.WRITE_SINGLE_REGISTER.value - - def write_multiple_registers(self, slave_addr: int, start_addr: int, values: list) -> bool: - """ - 写入多个寄存器 - - Args: - slave_addr: 从站地址 - start_addr: 起始地址 - values: 寄存器值列表 - - Returns: - 写入是否成功 - """ - byte_count = len(values) * 2 - data = struct.pack('>BHHB', ModbusFunction.WRITE_MULTIPLE_REGISTERS.value, - start_addr, len(values), byte_count) - - for value in values: - data += struct.pack('>H', value) - - response = self._send_command(slave_addr, data) - - return len(response) >= 8 and response[1] == ModbusFunction.WRITE_MULTIPLE_REGISTERS.value - - -class XYZStepperController(StepperMotorDriver): - """XYZ三轴步进电机控制器""" - - # 电机配置常量 - STEPS_PER_REVOLUTION = 16384 # 每圈步数 - - def __init__(self, port: str, baudrate: int = 115200, timeout: float = 1.0): - """ - 初始化XYZ三轴步进电机控制器 - - Args: - port: 串口端口名 - baudrate: 波特率 - timeout: 通信超时时间 - """ - super().__init__(port, baudrate, timeout) - self.axis_addresses = { - MotorAxis.X: 1, - MotorAxis.Y: 2, - MotorAxis.Z: 3 - } - - def degrees_to_steps(self, degrees: float) -> int: - """ - 将角度转换为步数 - - Args: - degrees: 角度值 - - Returns: - 对应的步数 - """ - return int(degrees * self.STEPS_PER_REVOLUTION / 360.0) - - def steps_to_degrees(self, steps: int) -> float: - """ - 将步数转换为角度 - - Args: - steps: 步数 - - Returns: - 对应的角度值 - """ - return steps * 360.0 / self.STEPS_PER_REVOLUTION - - def revolutions_to_steps(self, revolutions: float) -> int: - """ - 将圈数转换为步数 - - Args: - revolutions: 圈数 - - Returns: - 对应的步数 - """ - return int(revolutions * self.STEPS_PER_REVOLUTION) - - def steps_to_revolutions(self, steps: int) -> float: - """ - 将步数转换为圈数 - - Args: - steps: 步数 - - Returns: - 对应的圈数 - """ - return steps / self.STEPS_PER_REVOLUTION - - def get_motor_status(self, axis: MotorAxis) -> MotorPosition: - """ - 获取电机状态信息 - - Args: - axis: 电机轴 - - Returns: - 电机位置信息 - """ - addr = self.axis_addresses[axis] - - # 读取状态、位置、速度、电流 - values = self.read_registers(addr, self.REG_STATUS, 6) - - status = MotorStatus(values[0]) - position_high = values[1] - position_low = values[2] - speed = values[3] - current = values[5] - - # 合并32位位置 - position = (position_high << 16) | position_low - # 处理有符号数 - if position > 0x7FFFFFFF: - position -= 0x100000000 - - return MotorPosition(position, speed, current, status) - - def emergency_stop(self, axis: MotorAxis) -> bool: - """ - 紧急停止电机 - - Args: - axis: 电机轴 - - Returns: - 操作是否成功 - """ - addr = self.axis_addresses[axis] - return self.write_single_register(addr, self.REG_EMERGENCY_STOP, 0x0000) - - def enable_motor(self, axis: MotorAxis, enable: bool = True) -> bool: - """ - 使能/失能电机 - - Args: - axis: 电机轴 - enable: True为使能,False为失能 - - Returns: - 操作是否成功 - """ - addr = self.axis_addresses[axis] - value = 0x0001 if enable else 0x0000 - return self.write_single_register(addr, self.REG_ENABLE, value) - - def move_to_position(self, axis: MotorAxis, position: int, speed: int = 5000, - acceleration: int = 1000, precision: int = 100) -> bool: - """ - 移动到指定位置 - - Args: - axis: 电机轴 - position: 目标位置(步数) - speed: 运行速度(rpm) - acceleration: 加速度(rpm/s) - precision: 到位精度 - - Returns: - 操作是否成功 - """ - addr = self.axis_addresses[axis] - - # 处理32位位置 - if position < 0: - position += 0x100000000 - - position_high = (position >> 16) & 0xFFFF - position_low = position & 0xFFFF - - values = [ - position_high, # 目标位置高位 - position_low, # 目标位置低位 - 0x0000, # 保留 - speed, # 速度 - acceleration, # 加速度 - precision # 精度 - ] - - return self.write_multiple_registers(addr, self.REG_TARGET_POSITION_HIGH, values) - - def set_speed_mode(self, axis: MotorAxis, speed: int, acceleration: int = 1000) -> bool: - """ - 设置速度模式运行 - - Args: - axis: 电机轴 - speed: 运行速度(rpm),正值正转,负值反转 - acceleration: 加速度(rpm/s) - - Returns: - 操作是否成功 - """ - addr = self.axis_addresses[axis] - - # 处理负数 - if speed < 0: - speed = 0x10000 + speed # 补码表示 - - values = [0x0000, speed, acceleration, 0x0000] - - return self.write_multiple_registers(addr, 0x60, values) - - def home_axis(self, axis: MotorAxis) -> bool: - """ - 轴归零操作 - - Args: - axis: 电机轴 - - Returns: - 操作是否成功 - """ - addr = self.axis_addresses[axis] - return self.write_single_register(addr, self.REG_ZERO_SINGLE, 0x0001) - - def wait_for_completion(self, axis: MotorAxis, timeout: float = 30.0) -> bool: - """ - 等待电机运动完成 - - Args: - axis: 电机轴 - timeout: 超时时间(秒) - - Returns: - 是否在超时前完成 - """ - start_time = time.time() - - while time.time() - start_time < timeout: - status = self.get_motor_status(axis) - if status.status == MotorStatus.STANDBY: - return True - time.sleep(0.1) - - logger.warning(f"{axis.name}轴运动超时") - return False - - def move_xyz(self, x: Optional[int] = None, y: Optional[int] = None, z: Optional[int] = None, - speed: int = 5000, acceleration: int = 1000) -> Dict[MotorAxis, bool]: - """ - 同时控制XYZ轴移动 - - Args: - x: X轴目标位置 - y: Y轴目标位置 - z: Z轴目标位置 - speed: 运行速度 - acceleration: 加速度 - - Returns: - 各轴操作结果字典 - """ - results = {} - - if x is not None: - results[MotorAxis.X] = self.move_to_position(MotorAxis.X, x, speed, acceleration) - - if y is not None: - results[MotorAxis.Y] = self.move_to_position(MotorAxis.Y, y, speed, acceleration) - - if z is not None: - results[MotorAxis.Z] = self.move_to_position(MotorAxis.Z, z, speed, acceleration) - - return results - - def move_xyz_degrees(self, x_deg: Optional[float] = None, y_deg: Optional[float] = None, - z_deg: Optional[float] = None, speed: int = 5000, - acceleration: int = 1000) -> Dict[MotorAxis, bool]: - """ - 使用角度值同时移动多个轴到指定位置 - - Args: - x_deg: X轴目标角度(度) - y_deg: Y轴目标角度(度) - z_deg: Z轴目标角度(度) - speed: 移动速度 - acceleration: 加速度 - - Returns: - 各轴移动操作结果 - """ - # 将角度转换为步数 - x_steps = self.degrees_to_steps(x_deg) if x_deg is not None else None - y_steps = self.degrees_to_steps(y_deg) if y_deg is not None else None - z_steps = self.degrees_to_steps(z_deg) if z_deg is not None else None - - return self.move_xyz(x_steps, y_steps, z_steps, speed, acceleration) - - def move_xyz_revolutions(self, x_rev: Optional[float] = None, y_rev: Optional[float] = None, - z_rev: Optional[float] = None, speed: int = 5000, - acceleration: int = 1000) -> Dict[MotorAxis, bool]: - """ - 使用圈数值同时移动多个轴到指定位置 - - Args: - x_rev: X轴目标圈数 - y_rev: Y轴目标圈数 - z_rev: Z轴目标圈数 - speed: 移动速度 - acceleration: 加速度 - - Returns: - 各轴移动操作结果 - """ - # 将圈数转换为步数 - x_steps = self.revolutions_to_steps(x_rev) if x_rev is not None else None - y_steps = self.revolutions_to_steps(y_rev) if y_rev is not None else None - z_steps = self.revolutions_to_steps(z_rev) if z_rev is not None else None - - return self.move_xyz(x_steps, y_steps, z_steps, speed, acceleration) - - def move_to_position_degrees(self, axis: MotorAxis, degrees: float, speed: int = 5000, - acceleration: int = 1000, precision: int = 100) -> bool: - """ - 使用角度值移动单个轴到指定位置 - - Args: - axis: 电机轴 - degrees: 目标角度(度) - speed: 移动速度 - acceleration: 加速度 - precision: 精度 - - Returns: - 移动操作是否成功 - """ - steps = self.degrees_to_steps(degrees) - return self.move_to_position(axis, steps, speed, acceleration, precision) - - def move_to_position_revolutions(self, axis: MotorAxis, revolutions: float, speed: int = 5000, - acceleration: int = 1000, precision: int = 100) -> bool: - """ - 使用圈数值移动单个轴到指定位置 - - Args: - axis: 电机轴 - revolutions: 目标圈数 - speed: 移动速度 - acceleration: 加速度 - precision: 精度 - - Returns: - 移动操作是否成功 - """ - steps = self.revolutions_to_steps(revolutions) - return self.move_to_position(axis, steps, speed, acceleration, precision) - - def stop_all_axes(self) -> Dict[MotorAxis, bool]: - """ - 紧急停止所有轴 - - Returns: - 各轴停止结果字典 - """ - results = {} - for axis in MotorAxis: - results[axis] = self.emergency_stop(axis) - return results - - def enable_all_axes(self, enable: bool = True) -> Dict[MotorAxis, bool]: - """ - 使能/失能所有轴 - - Args: - enable: True为使能,False为失能 - - Returns: - 各轴操作结果字典 - """ - results = {} - for axis in MotorAxis: - results[axis] = self.enable_motor(axis, enable) - return results - - def get_all_positions(self) -> Dict[MotorAxis, MotorPosition]: - """ - 获取所有轴的位置信息 - - Returns: - 各轴位置信息字典 - """ - positions = {} - for axis in MotorAxis: - positions[axis] = self.get_motor_status(axis) - return positions - - def home_all_axes(self) -> Dict[MotorAxis, bool]: - """ - 所有轴归零 - - Returns: - 各轴归零结果字典 - """ - results = {} - for axis in MotorAxis: - results[axis] = self.home_axis(axis) - return results diff --git a/unilabos/devices/liquid_handling/laiyu/laiyu.py b/unilabos/devices/liquid_handling/laiyu/laiyu.py deleted file mode 100644 index 0d7074a7..00000000 --- a/unilabos/devices/liquid_handling/laiyu/laiyu.py +++ /dev/null @@ -1,218 +0,0 @@ -import asyncio -import collections -import contextlib -import json -import time -from typing import Any, List, Dict, Optional, TypedDict, Union, Sequence, Iterator, Literal - -from pylabrobot.liquid_handling import ( - LiquidHandlerBackend, - Pickup, - SingleChannelAspiration, - Drop, - SingleChannelDispense, - PickupTipRack, - DropTipRack, - MultiHeadAspirationPlate, ChatterBoxBackend, LiquidHandlerChatterboxBackend, -) -from pylabrobot.liquid_handling.standard import ( - MultiHeadAspirationContainer, - MultiHeadDispenseContainer, - MultiHeadDispensePlate, - ResourcePickup, - ResourceMove, - ResourceDrop, -) -from pylabrobot.resources import Tip, Deck, Plate, Well, TipRack, Resource, Container, Coordinate, TipSpot, Trash - -from unilabos.devices.liquid_handling.liquid_handler_abstract import LiquidHandlerAbstract -from unilabos.devices.liquid_handling.rviz_backend import UniLiquidHandlerRvizBackend -from unilabos.devices.liquid_handling.laiyu.backend.laiyu_v_backend import UniLiquidHandlerLaiyuBackend - - - -class TransformXYZDeck(Deck): - """Laiyu 的专用 Deck 类,继承自 Deck。 - - 该类定义了 Laiyu 的工作台布局和槽位信息。 - """ - - def __init__(self, name: str, size_x: float, size_y: float, size_z: float): - super().__init__(name, size_x, size_y, size_z) - self.name = name - -class TransformXYZBackend(LiquidHandlerBackend): - def __init__(self, name: str, host: str, port: int, timeout: float): - super().__init__() - self.host = host - self.port = port - self.timeout = timeout - -class TransformXYZRvizBackend(UniLiquidHandlerRvizBackend): - def __init__(self, name: str, channel_num: int): - super().__init__(channel_num) - self.name = name - - -class TransformXYZContainer(Plate, TipRack): - """Laiyu 的专用 Container 类,继承自 Plate和TipRack。 - - 该类定义了 Laiyu 的工作台布局和槽位信息。 - """ - - def __init__( - self, - name: str, - size_x: float, - size_y: float, - size_z: float, - category: str, - ordering: collections.OrderedDict, - model: Optional[str] = None, - ): - super().__init__(name, size_x, size_y, size_z, category=category, ordering=ordering, model=model) - self._unilabos_state = {} - - def load_state(self, state: Dict[str, Any]) -> None: - """从给定的状态加载工作台信息。""" - super().load_state(state) - self._unilabos_state = state - - def serialize_state(self) -> Dict[str, Dict[str, Any]]: - data = super().serialize_state() - data.update(self._unilabos_state) - return data - -class TransformXYZHandler(LiquidHandlerAbstract): - support_touch_tip = False - - def __init__(self, deck: Deck, host: str = "127.0.0.1", port: int = 9999, timeout: float = 10.0, channel_num=1, simulator=True, **backend_kwargs): - # Handle case where deck is passed as a dict (from serialization) - if isinstance(deck, dict): - # Try to create a TransformXYZDeck from the dict - if 'name' in deck and 'size_x' in deck and 'size_y' in deck and 'size_z' in deck: - deck = TransformXYZDeck( - name=deck['name'], - size_x=deck.get('size_x', 100), - size_y=deck.get('size_y', 100), - size_z=deck.get('size_z', 100) - ) - else: - # Fallback: create a basic deck - deck = TransformXYZDeck(name='deck', size_x=100, size_y=100, size_z=100) - - if simulator: - self._unilabos_backend = TransformXYZRvizBackend(name="laiyu",channel_num=channel_num) - else: - self._unilabos_backend = TransformXYZBackend(name="laiyu",host=host, port=port, timeout=timeout) - super().__init__(backend=self._unilabos_backend, deck=deck, simulator=simulator, channel_num=channel_num) - - async def add_liquid( - self, - asp_vols: Union[List[float], float], - dis_vols: Union[List[float], float], - reagent_sources: Sequence[Container], - targets: Sequence[Container], - *, - use_channels: Optional[List[int]] = None, - flow_rates: Optional[List[Optional[float]]] = None, - offsets: Optional[List[Coordinate]] = None, - liquid_height: Optional[List[Optional[float]]] = None, - blow_out_air_volume: Optional[List[Optional[float]]] = None, - spread: Optional[Literal["wide", "tight", "custom"]] = "wide", - is_96_well: bool = False, - delays: Optional[List[int]] = None, - mix_time: Optional[int] = None, - mix_vol: Optional[int] = None, - mix_rate: Optional[int] = None, - mix_liquid_height: Optional[float] = None, - none_keys: List[str] = [], - ): - pass - - async def aspirate( - self, - resources: Sequence[Container], - vols: List[float], - use_channels: Optional[List[int]] = None, - flow_rates: Optional[List[Optional[float]]] = None, - offsets: Optional[List[Coordinate]] = None, - liquid_height: Optional[List[Optional[float]]] = None, - blow_out_air_volume: Optional[List[Optional[float]]] = None, - spread: Literal["wide", "tight", "custom"] = "wide", - **backend_kwargs, - ): - pass - - async def dispense( - self, - resources: Sequence[Container], - vols: List[float], - use_channels: Optional[List[int]] = None, - flow_rates: Optional[List[Optional[float]]] = None, - offsets: Optional[List[Coordinate]] = None, - liquid_height: Optional[List[Optional[float]]] = None, - blow_out_air_volume: Optional[List[Optional[float]]] = None, - spread: Literal["wide", "tight", "custom"] = "wide", - **backend_kwargs, - ): - pass - - async def drop_tips( - self, - tip_spots: Sequence[Union[TipSpot, Trash]], - use_channels: Optional[List[int]] = None, - offsets: Optional[List[Coordinate]] = None, - allow_nonzero_volume: bool = False, - **backend_kwargs, - ): - pass - - async def mix( - self, - targets: Sequence[Container], - mix_time: int = None, - mix_vol: Optional[int] = None, - height_to_bottom: Optional[float] = None, - offsets: Optional[Coordinate] = None, - mix_rate: Optional[float] = None, - none_keys: List[str] = [], - ): - pass - - async def pick_up_tips( - self, - tip_spots: List[TipSpot], - use_channels: Optional[List[int]] = None, - offsets: Optional[List[Coordinate]] = None, - **backend_kwargs, - ): - pass - - async def transfer_liquid( - self, - sources: Sequence[Container], - targets: Sequence[Container], - tip_racks: Sequence[TipRack], - *, - use_channels: Optional[List[int]] = None, - asp_vols: Union[List[float], float], - dis_vols: Union[List[float], float], - asp_flow_rates: Optional[List[Optional[float]]] = None, - dis_flow_rates: Optional[List[Optional[float]]] = None, - offsets: Optional[List[Coordinate]] = None, - touch_tip: bool = False, - liquid_height: Optional[List[Optional[float]]] = None, - blow_out_air_volume: Optional[List[Optional[float]]] = None, - spread: Literal["wide", "tight", "custom"] = "wide", - is_96_well: bool = False, - mix_stage: Optional[Literal["none", "before", "after", "both"]] = "none", - mix_times: Optional[List[int]] = None, - mix_vol: Optional[int] = None, - mix_rate: Optional[int] = None, - mix_liquid_height: Optional[float] = None, - delays: Optional[List[int]] = None, - none_keys: List[str] = [], - ): - pass - \ No newline at end of file diff --git a/unilabos/devices/liquid_handling/laiyu/tests/__init__.py b/unilabos/devices/liquid_handling/laiyu/tests/__init__.py deleted file mode 100644 index 7ff58fe2..00000000 --- a/unilabos/devices/liquid_handling/laiyu/tests/__init__.py +++ /dev/null @@ -1,13 +0,0 @@ -#!/usr/bin/env python3 -# -*- coding: utf-8 -*- -""" -LaiYu液体处理设备测试模块 - -该模块包含LaiYu液体处理设备的测试用例: -- test_deck_config.py: 工作台配置测试 - -作者: UniLab团队 -版本: 2.0.0 -""" - -__all__ = [] \ No newline at end of file diff --git a/unilabos/devices/liquid_handling/laiyu/tests/test_deck_config.py b/unilabos/devices/liquid_handling/laiyu/tests/test_deck_config.py deleted file mode 100644 index 04688302..00000000 --- a/unilabos/devices/liquid_handling/laiyu/tests/test_deck_config.py +++ /dev/null @@ -1,315 +0,0 @@ -#!/usr/bin/env python3 -# -*- coding: utf-8 -*- -""" -测试脚本:验证更新后的deck配置是否正常工作 -""" - -import sys -import os -import json - -# 添加项目根目录到Python路径 -project_root = os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))) -sys.path.insert(0, project_root) - -def test_config_loading(): - """测试配置文件加载功能""" - print("=" * 50) - print("测试配置文件加载功能") - print("=" * 50) - - try: - # 直接测试配置文件加载 - config_path = os.path.join(os.path.dirname(__file__), "controllers", "deckconfig.json") - fallback_path = os.path.join(os.path.dirname(__file__), "config", "deck.json") - - config = None - config_source = "" - - if os.path.exists(config_path): - with open(config_path, 'r', encoding='utf-8') as f: - config = json.load(f) - config_source = "config/deckconfig.json" - elif os.path.exists(fallback_path): - with open(fallback_path, 'r', encoding='utf-8') as f: - config = json.load(f) - config_source = "config/deck.json" - else: - print("❌ 配置文件不存在") - return False - - print(f"✅ 配置文件加载成功: {config_source}") - print(f" - 甲板尺寸: {config.get('size_x', 'N/A')} x {config.get('size_y', 'N/A')} x {config.get('size_z', 'N/A')}") - print(f" - 子模块数量: {len(config.get('children', []))}") - - # 检查各个模块是否存在 - modules = config.get('children', []) - module_types = [module.get('type') for module in modules] - module_names = [module.get('name') for module in modules] - - print(f" - 模块类型: {', '.join(set(filter(None, module_types)))}") - print(f" - 模块名称: {', '.join(filter(None, module_names))}") - - return config - except Exception as e: - print(f"❌ 配置文件加载失败: {e}") - return None - -def test_module_coordinates(config): - """测试各模块的坐标信息""" - print("\n" + "=" * 50) - print("测试模块坐标信息") - print("=" * 50) - - if not config: - print("❌ 配置为空,无法测试") - return False - - modules = config.get('children', []) - - for module in modules: - module_name = module.get('name', '未知模块') - module_type = module.get('type', '未知类型') - position = module.get('position', {}) - size = module.get('size', {}) - - print(f"\n模块: {module_name} ({module_type})") - print(f" - 位置: ({position.get('x', 0)}, {position.get('y', 0)}, {position.get('z', 0)})") - print(f" - 尺寸: {size.get('x', 0)} x {size.get('y', 0)} x {size.get('z', 0)}") - - # 检查孔位信息 - wells = module.get('wells', []) - if wells: - print(f" - 孔位数量: {len(wells)}") - - # 显示前几个和后几个孔位的坐标 - sample_wells = wells[:3] + wells[-3:] if len(wells) > 6 else wells - for well in sample_wells: - well_id = well.get('id', '未知') - well_pos = well.get('position', {}) - print(f" {well_id}: ({well_pos.get('x', 0)}, {well_pos.get('y', 0)}, {well_pos.get('z', 0)})") - else: - print(f" - 无孔位信息") - - return True - -def test_coordinate_ranges(config): - """测试坐标范围的合理性""" - print("\n" + "=" * 50) - print("测试坐标范围合理性") - print("=" * 50) - - if not config: - print("❌ 配置为空,无法测试") - return False - - deck_size = { - 'x': config.get('size_x', 340), - 'y': config.get('size_y', 250), - 'z': config.get('size_z', 160) - } - - print(f"甲板尺寸: {deck_size['x']} x {deck_size['y']} x {deck_size['z']}") - - modules = config.get('children', []) - all_coordinates = [] - - for module in modules: - module_name = module.get('name', '未知模块') - wells = module.get('wells', []) - - for well in wells: - well_pos = well.get('position', {}) - x, y, z = well_pos.get('x', 0), well_pos.get('y', 0), well_pos.get('z', 0) - all_coordinates.append((x, y, z, f"{module_name}:{well.get('id', '未知')}")) - - if not all_coordinates: - print("❌ 没有找到任何坐标信息") - return False - - # 计算坐标范围 - x_coords = [coord[0] for coord in all_coordinates] - y_coords = [coord[1] for coord in all_coordinates] - z_coords = [coord[2] for coord in all_coordinates] - - x_range = (min(x_coords), max(x_coords)) - y_range = (min(y_coords), max(y_coords)) - z_range = (min(z_coords), max(z_coords)) - - print(f"X坐标范围: {x_range[0]:.2f} ~ {x_range[1]:.2f}") - print(f"Y坐标范围: {y_range[0]:.2f} ~ {y_range[1]:.2f}") - print(f"Z坐标范围: {z_range[0]:.2f} ~ {z_range[1]:.2f}") - - # 检查是否超出甲板范围 - issues = [] - if x_range[1] > deck_size['x']: - issues.append(f"X坐标超出甲板范围: {x_range[1]} > {deck_size['x']}") - if y_range[1] > deck_size['y']: - issues.append(f"Y坐标超出甲板范围: {y_range[1]} > {deck_size['y']}") - if z_range[1] > deck_size['z']: - issues.append(f"Z坐标超出甲板范围: {z_range[1]} > {deck_size['z']}") - - if x_range[0] < 0: - issues.append(f"X坐标为负值: {x_range[0]}") - if y_range[0] < 0: - issues.append(f"Y坐标为负值: {y_range[0]}") - if z_range[0] < 0: - issues.append(f"Z坐标为负值: {z_range[0]}") - - if issues: - print("⚠️ 发现坐标问题:") - for issue in issues: - print(f" - {issue}") - return False - else: - print("✅ 所有坐标都在合理范围内") - return True - -def test_well_spacing(config): - """测试孔位间距的一致性""" - print("\n" + "=" * 50) - print("测试孔位间距一致性") - print("=" * 50) - - if not config: - print("❌ 配置为空,无法测试") - return False - - modules = config.get('children', []) - - for module in modules: - module_name = module.get('name', '未知模块') - module_type = module.get('type', '未知类型') - wells = module.get('wells', []) - - if len(wells) < 2: - continue - - print(f"\n模块: {module_name} ({module_type})") - - # 计算相邻孔位的间距 - spacings_x = [] - spacings_y = [] - - # 按行列排序孔位 - wells_by_row = {} - for well in wells: - well_id = well.get('id', '') - if len(well_id) >= 3: # 如A01格式 - row = well_id[0] - col = int(well_id[1:]) - if row not in wells_by_row: - wells_by_row[row] = {} - wells_by_row[row][col] = well - - # 计算同行相邻孔位的X间距 - for row, cols in wells_by_row.items(): - sorted_cols = sorted(cols.keys()) - for i in range(len(sorted_cols) - 1): - col1, col2 = sorted_cols[i], sorted_cols[i + 1] - if col2 == col1 + 1: # 相邻列 - pos1 = cols[col1].get('position', {}) - pos2 = cols[col2].get('position', {}) - spacing = abs(pos2.get('x', 0) - pos1.get('x', 0)) - spacings_x.append(spacing) - - # 计算同列相邻孔位的Y间距 - cols_by_row = {} - for well in wells: - well_id = well.get('id', '') - if len(well_id) >= 3: - row = ord(well_id[0]) - ord('A') - col = int(well_id[1:]) - if col not in cols_by_row: - cols_by_row[col] = {} - cols_by_row[col][row] = well - - for col, rows in cols_by_row.items(): - sorted_rows = sorted(rows.keys()) - for i in range(len(sorted_rows) - 1): - row1, row2 = sorted_rows[i], sorted_rows[i + 1] - if row2 == row1 + 1: # 相邻行 - pos1 = rows[row1].get('position', {}) - pos2 = rows[row2].get('position', {}) - spacing = abs(pos2.get('y', 0) - pos1.get('y', 0)) - spacings_y.append(spacing) - - # 检查间距一致性 - if spacings_x: - avg_x = sum(spacings_x) / len(spacings_x) - max_diff_x = max(abs(s - avg_x) for s in spacings_x) - print(f" - X方向平均间距: {avg_x:.2f}mm, 最大偏差: {max_diff_x:.2f}mm") - - if spacings_y: - avg_y = sum(spacings_y) / len(spacings_y) - max_diff_y = max(abs(s - avg_y) for s in spacings_y) - print(f" - Y方向平均间距: {avg_y:.2f}mm, 最大偏差: {max_diff_y:.2f}mm") - - return True - -def main(): - """主测试函数""" - print("LaiYu液体处理设备配置测试") - print("测试时间:", os.popen('date').read().strip()) - - # 运行所有测试 - tests = [ - ("配置文件加载", test_config_loading), - ] - - config = None - results = [] - - for test_name, test_func in tests: - try: - if test_name == "配置文件加载": - result = test_func() - config = result if result else None - results.append((test_name, bool(result))) - else: - result = test_func(config) - results.append((test_name, result)) - except Exception as e: - print(f"❌ 测试 {test_name} 执行失败: {e}") - results.append((test_name, False)) - - # 如果配置加载成功,运行其他测试 - if config: - additional_tests = [ - ("模块坐标信息", test_module_coordinates), - ("坐标范围合理性", test_coordinate_ranges), - ("孔位间距一致性", test_well_spacing) - ] - - for test_name, test_func in additional_tests: - try: - result = test_func(config) - results.append((test_name, result)) - except Exception as e: - print(f"❌ 测试 {test_name} 执行失败: {e}") - results.append((test_name, False)) - - # 输出测试总结 - print("\n" + "=" * 50) - print("测试总结") - print("=" * 50) - - passed = sum(1 for _, result in results if result) - total = len(results) - - for test_name, result in results: - status = "✅ 通过" if result else "❌ 失败" - print(f" {test_name}: {status}") - - print(f"\n总计: {passed}/{total} 个测试通过") - - if passed == total: - print("🎉 所有测试通过!配置更新成功。") - return True - else: - print("⚠️ 部分测试失败,需要进一步检查。") - return False - -if __name__ == "__main__": - success = main() - sys.exit(0 if success else 1) \ No newline at end of file diff --git a/unilabos/devices/liquid_handling/liquid_handler_abstract.py b/unilabos/devices/liquid_handling/liquid_handler_abstract.py deleted file mode 100644 index d02129c7..00000000 --- a/unilabos/devices/liquid_handling/liquid_handler_abstract.py +++ /dev/null @@ -1,1782 +0,0 @@ -from __future__ import annotations - -import asyncio -import time -import traceback -from collections import Counter -from typing import List, Sequence, Optional, Literal, Union, Iterator, Dict, Any, Callable, Set, cast - -from typing_extensions import TypedDict -from pylabrobot.liquid_handling import LiquidHandler, LiquidHandlerBackend, LiquidHandlerChatterboxBackend, Strictness -from unilabos.devices.liquid_handling.rviz_backend import UniLiquidHandlerRvizBackend -from unilabos.devices.liquid_handling.laiyu.backend.laiyu_v_backend import UniLiquidHandlerLaiyuBackend -from pylabrobot.liquid_handling.liquid_handler import TipPresenceProbingMethod -from pylabrobot.liquid_handling.standard import GripDirection -from pylabrobot.resources import ( - Resource, - TipRack, - Container, - Coordinate, - Well, - Deck, - TipSpot, - Plate, - ResourceStack, - ResourceHolder, - Lid, - Trash, - Tip, -) - -from unilabos.ros.nodes.base_device_node import BaseROS2DeviceNode -class SimpleReturn(TypedDict): - samples: list - volumes: list - -class LiquidHandlerMiddleware(LiquidHandler): - def __init__(self, backend: LiquidHandlerBackend, deck: Deck, simulator: bool = False, channel_num: int = 8, **kwargs): - self._simulator = simulator - self.channel_num = channel_num - self.pending_liquids_dict = {} - joint_config = kwargs.get("joint_config", None) - if simulator: - if joint_config: - self._simulate_backend = UniLiquidHandlerRvizBackend(channel_num, kwargs["total_height"], - joint_config=joint_config, lh_device_id=deck.name) - else: - self._simulate_backend = LiquidHandlerChatterboxBackend(channel_num) - self._simulate_handler = LiquidHandlerAbstract(self._simulate_backend, deck, False) - super().__init__(backend, deck) - - async def setup(self, **backend_kwargs): - if self._simulator: - return await self._simulate_handler.setup(**backend_kwargs) - return await super().setup(**backend_kwargs) - - def serialize_state(self) -> Dict[str, Any]: - if self._simulator: - self._simulate_handler.serialize_state() - return super().serialize_state() - - def load_state(self, state: Dict[str, Any]): - if self._simulator: - self._simulate_handler.load_state(state) - super().load_state(state) - - def update_head_state(self, state: Dict[int, Optional[Tip]]): - if self._simulator: - self._simulate_handler.update_head_state(state) - super().update_head_state(state) - - def clear_head_state(self): - if self._simulator: - self._simulate_handler.clear_head_state() - super().clear_head_state() - - def _run_async_in_thread(self, func, *args, **kwargs): - super()._run_async_in_thread(func, *args, **kwargs) - - def _send_assigned_resource_to_backend(self, resource: Resource): - if self._simulator: - self._simulate_handler._send_assigned_resource_to_backend(resource) - super()._send_assigned_resource_to_backend(resource) - - def _send_unassigned_resource_to_backend(self, resource: Resource): - if self._simulator: - self._simulate_handler._send_unassigned_resource_to_backend(resource) - super()._send_unassigned_resource_to_backend(resource) - - def summary(self): - if self._simulator: - self._simulate_handler.summary() - super().summary() - - def _assert_positions_unique(self, positions: List[str]): - super()._assert_positions_unique(positions) - - def _assert_resources_exist(self, resources: Sequence[Resource]): - super()._assert_resources_exist(resources) - - def _check_args( - self, method: Callable, backend_kwargs: Dict[str, Any], default: Set[str], strictness: Strictness - ) -> Set[str]: - return super()._check_args(method, backend_kwargs, default, strictness) - - def _make_sure_channels_exist(self, channels: List[int]): - super()._make_sure_channels_exist(channels) - - def _format_param(self, value: Any) -> Any: - return super()._format_param(value) - - def _log_command(self, name: str, **kwargs) -> None: - super()._log_command(name, **kwargs) - - async def pick_up_tips( - self, - tip_spots: List[TipSpot], - use_channels: Optional[List[int]] = None, - offsets: Optional[List[Coordinate]] = None, - **backend_kwargs, - ): - - if self._simulator: - return await self._simulate_handler.pick_up_tips(tip_spots, use_channels, offsets, **backend_kwargs) - return await super().pick_up_tips(tip_spots, use_channels, offsets, **backend_kwargs) - - async def drop_tips( - self, - tip_spots: Sequence[Union[TipSpot, Trash]], - use_channels: Optional[List[int]] = None, - offsets: Optional[List[Coordinate]] = None, - allow_nonzero_volume: bool = False, - **backend_kwargs, - ): - if self._simulator: - return await self._simulate_handler.drop_tips( - tip_spots, use_channels, offsets, allow_nonzero_volume, **backend_kwargs - ) - await super().drop_tips(tip_spots, use_channels, offsets, allow_nonzero_volume, **backend_kwargs) - self.pending_liquids_dict = {} - return - - async def return_tips( - self, use_channels: Optional[list[int]] = None, allow_nonzero_volume: bool = False, **backend_kwargs - ): - if self._simulator: - return await self._simulate_handler.return_tips(use_channels, allow_nonzero_volume, **backend_kwargs) - return await super().return_tips(use_channels, allow_nonzero_volume, **backend_kwargs) - - async def discard_tips( - self, - use_channels: Optional[List[int]] = None, - allow_nonzero_volume: bool = True, - offsets: Optional[List[Coordinate]] = None, - **backend_kwargs, - ): - # 如果 use_channels 为 None,使用默认值(所有通道) - if use_channels is None: - use_channels = list(range(self.channel_num)) - if not offsets or (isinstance(offsets, list) and len(offsets) != len(use_channels)): - offsets = [Coordinate.zero()] * len(use_channels) - if self._simulator: - return await self._simulate_handler.discard_tips(use_channels, allow_nonzero_volume, offsets, **backend_kwargs) - await super().discard_tips(use_channels, allow_nonzero_volume, offsets, **backend_kwargs) - self.pending_liquids_dict = {} - return - - def _check_containers(self, resources: Sequence[Resource]): - super()._check_containers(resources) - - async def aspirate( - self, - resources: Sequence[Container], - vols: List[float], - use_channels: Optional[List[int]] = None, - flow_rates: Optional[List[Optional[float]]] = None, - offsets: Optional[List[Coordinate]] = None, - liquid_height: Optional[List[Optional[float]]] = None, - blow_out_air_volume: Optional[List[Optional[float]]] = None, - spread: Literal["wide", "tight", "custom"] = "wide", - **backend_kwargs, - ): - - - if self._simulator: - return await self._simulate_handler.aspirate( - resources, - vols, - use_channels, - flow_rates, - offsets, - liquid_height, - blow_out_air_volume, - spread, - **backend_kwargs, - ) - await super().aspirate( - resources, - vols, - use_channels, - flow_rates, - offsets, - liquid_height, - blow_out_air_volume, - spread, - **backend_kwargs, - ) - - res_samples = [] - res_volumes = [] - for resource, volume, channel in zip(resources, vols, use_channels): - res_samples.append({"name": resource.name, "sample_uuid": resource.unilabos_extra.get("sample_uuid", None)}) - res_volumes.append(volume) - self.pending_liquids_dict[channel] = { - "sample_uuid": resource.unilabos_extra.get("sample_uuid", None), - "volume": volume - } - return SimpleReturn(samples=res_samples, volumes=res_volumes) - - - async def dispense( - self, - resources: Sequence[Container], - vols: List[float], - use_channels: Optional[List[int]] = None, - flow_rates: Optional[List[Optional[float]]] = None, - offsets: Optional[List[Coordinate]] = None, - liquid_height: Optional[List[Optional[float]]] = None, - blow_out_air_volume: Optional[List[Optional[float]]] = None, - spread: Literal["wide", "tight", "custom"] = "wide", - **backend_kwargs, - ) -> SimpleReturn: - if self._simulator: - return await self._simulate_handler.dispense( - resources, - vols, - use_channels, - flow_rates, - offsets, - liquid_height, - blow_out_air_volume, - spread, - **backend_kwargs, - ) - await super().dispense( - resources, - vols, - use_channels, - flow_rates, - offsets, - liquid_height, - blow_out_air_volume, - **backend_kwargs, - ) - res_samples = [] - res_volumes = [] - for resource, volume, channel in zip(resources, vols, use_channels): - res_uuid = self.pending_liquids_dict[channel]["sample_uuid"] - self.pending_liquids_dict[channel]["volume"] -= volume - resource.unilabos_extra["sample_uuid"] = res_uuid - res_samples.append({"name": resource.name, "sample_uuid": res_uuid}) - res_volumes.append(volume) - - return SimpleReturn(samples=res_samples, volumes=res_volumes) - - async def transfer( - self, - source: Well, - targets: List[Well], - source_vol: Optional[float] = None, - ratios: Optional[List[float]] = None, - target_vols: Optional[List[float]] = None, - aspiration_flow_rate: Optional[float] = None, - dispense_flow_rates: Optional[List[Optional[float]]] = None, - **backend_kwargs, - ): - if self._simulator: - return await self._simulate_handler.transfer( - source, - targets, - source_vol, - ratios, - target_vols, - aspiration_flow_rate, - dispense_flow_rates, - **backend_kwargs, - ) - return await super().transfer( - source, - targets, - source_vol, - ratios, - target_vols, - aspiration_flow_rate, - dispense_flow_rates, - **backend_kwargs, - ) - - def use_channels(self, channels: List[int]): - if self._simulator: - self._simulate_handler.use_channels(channels) - return super().use_channels(channels) - - async def pick_up_tips96(self, tip_rack: TipRack, offset: Coordinate = Coordinate.zero(), **backend_kwargs): - if self._simulator: - return await self._simulate_handler.pick_up_tips96(tip_rack, offset, **backend_kwargs) - return await super().pick_up_tips96(tip_rack, offset, **backend_kwargs) - - async def drop_tips96( - self, - resource: Union[TipRack, Trash], - offset: Coordinate = Coordinate.zero(), - allow_nonzero_volume: bool = False, - **backend_kwargs, - ): - if self._simulator: - return await self._simulate_handler.drop_tips96(resource, offset, allow_nonzero_volume, **backend_kwargs) - return await super().drop_tips96(resource, offset, allow_nonzero_volume, **backend_kwargs) - - def _get_96_head_origin_tip_rack(self) -> Optional[TipRack]: - return super()._get_96_head_origin_tip_rack() - - async def return_tips96(self, allow_nonzero_volume: bool = False, **backend_kwargs): - if self._simulator: - return await self._simulate_handler.return_tips96(allow_nonzero_volume, **backend_kwargs) - return await super().return_tips96(allow_nonzero_volume, **backend_kwargs) - - async def discard_tips96(self, allow_nonzero_volume: bool = True, **backend_kwargs): - if self._simulator: - return await self._simulate_handler.discard_tips96(allow_nonzero_volume, **backend_kwargs) - return await super().discard_tips96(allow_nonzero_volume, **backend_kwargs) - - async def aspirate96( - self, - resource: Union[Plate, Container, List[Well]], - volume: float, - offset: Coordinate = Coordinate.zero(), - flow_rate: Optional[float] = None, - blow_out_air_volume: Optional[float] = None, - **backend_kwargs, - ): - if self._simulator: - return await self._simulate_handler.aspirate96( - resource, volume, offset, flow_rate, blow_out_air_volume, **backend_kwargs - ) - return await super().aspirate96(resource, volume, offset, flow_rate, blow_out_air_volume, **backend_kwargs) - - async def dispense96( - self, - resource: Union[Plate, Container, List[Well]], - volume: float, - offset: Coordinate = Coordinate.zero(), - flow_rate: Optional[float] = None, - blow_out_air_volume: Optional[float] = None, - **backend_kwargs, - ): - if self._simulator: - return await self._simulate_handler.dispense96( - resource, volume, offset, flow_rate, blow_out_air_volume, **backend_kwargs - ) - return await super().dispense96(resource, volume, offset, flow_rate, blow_out_air_volume, **backend_kwargs) - - async def stamp( - self, - source: Plate, - target: Plate, - volume: float, - aspiration_flow_rate: Optional[float] = None, - dispense_flow_rate: Optional[float] = None, - ): - if self._simulator: - return await self._simulate_handler.stamp(source, target, volume, aspiration_flow_rate, dispense_flow_rate) - return await super().stamp(source, target, volume, aspiration_flow_rate, dispense_flow_rate) - - async def pick_up_resource( - self, - resource: Resource, - offset: Coordinate = Coordinate.zero(), - pickup_distance_from_top: float = 0, - direction: GripDirection = GripDirection.FRONT, - **backend_kwargs, - ): - if self._simulator: - return await self._simulate_handler.pick_up_resource( - resource, offset, pickup_distance_from_top, direction, **backend_kwargs - ) - return await super().pick_up_resource(resource, offset, pickup_distance_from_top, direction, **backend_kwargs) - - async def move_picked_up_resource( - self, - to: Coordinate, - offset: Coordinate = Coordinate.zero(), - direction: Optional[GripDirection] = None, - **backend_kwargs, - ): - if self._simulator: - return await self._simulate_handler.move_picked_up_resource(to, offset, direction, **backend_kwargs) - return await super().move_picked_up_resource(to, offset, direction, **backend_kwargs) - - async def drop_resource( - self, - destination: Union[ResourceStack, ResourceHolder, Resource, Coordinate], - offset: Coordinate = Coordinate.zero(), - direction: GripDirection = GripDirection.FRONT, - **backend_kwargs, - ): - if self._simulator: - return await self._simulate_handler.drop_resource(destination, offset, direction, **backend_kwargs) - return await super().drop_resource(destination, offset, direction, **backend_kwargs) - - async def move_resource( - self, - resource: Resource, - to: Union[ResourceStack, ResourceHolder, Resource, Coordinate], - intermediate_locations: Optional[List[Coordinate]] = None, - pickup_offset: Coordinate = Coordinate.zero(), - destination_offset: Coordinate = Coordinate.zero(), - pickup_distance_from_top: float = 0, - pickup_direction: GripDirection = GripDirection.FRONT, - drop_direction: GripDirection = GripDirection.FRONT, - **backend_kwargs, - ): - if self._simulator: - return await self._simulate_handler.move_resource( - resource, - to, - intermediate_locations, - pickup_offset, - destination_offset, - pickup_distance_from_top, - pickup_direction, - drop_direction, - **backend_kwargs, - ) - return await super().move_resource( - resource, - to, - intermediate_locations, - pickup_offset, - destination_offset, - pickup_distance_from_top, - pickup_direction, - drop_direction, - **backend_kwargs, - ) - - async def move_lid( - self, - lid: Lid, - to: Union[Plate, ResourceStack, Coordinate], - intermediate_locations: Optional[List[Coordinate]] = None, - pickup_offset: Coordinate = Coordinate.zero(), - destination_offset: Coordinate = Coordinate.zero(), - pickup_direction: GripDirection = GripDirection.FRONT, - drop_direction: GripDirection = GripDirection.FRONT, - pickup_distance_from_top: float = 5.7 - 3.33, - **backend_kwargs, - ): - if self._simulator: - return await self._simulate_handler.move_lid( - lid, - to, - intermediate_locations, - pickup_offset, - destination_offset, - pickup_direction, - drop_direction, - pickup_distance_from_top, - **backend_kwargs, - ) - return await super().move_lid( - lid, - to, - intermediate_locations, - pickup_offset, - destination_offset, - pickup_direction, - drop_direction, - pickup_distance_from_top, - **backend_kwargs, - ) - - async def move_plate( - self, - plate: Plate, - to: Union[ResourceStack, ResourceHolder, Resource, Coordinate], - intermediate_locations: Optional[List[Coordinate]] = None, - pickup_offset: Coordinate = Coordinate.zero(), - destination_offset: Coordinate = Coordinate.zero(), - drop_direction: GripDirection = GripDirection.FRONT, - pickup_direction: GripDirection = GripDirection.FRONT, - pickup_distance_from_top: float = 13.2 - 3.33, - **backend_kwargs, - ): - if self._simulator: - return await self._simulate_handler.move_plate( - plate, - to, - intermediate_locations, - pickup_offset, - destination_offset, - drop_direction, - pickup_direction, - pickup_distance_from_top, - **backend_kwargs, - ) - return await super().move_plate( - plate, - to, - intermediate_locations, - pickup_offset, - destination_offset, - drop_direction, - pickup_direction, - pickup_distance_from_top, - **backend_kwargs, - ) - - def serialize(self): - if self._simulator: - self._simulate_handler.serialize() - return super().serialize() - - @classmethod - def deserialize(cls, data: dict, allow_marshal: bool = False) -> LiquidHandler: - return super().deserialize(data, allow_marshal) - - @classmethod - def load(cls, path: str) -> LiquidHandler: - return super().load(path) - - async def prepare_for_manual_channel_operation(self, channel: int): - if self._simulator: - return await self._simulate_handler.prepare_for_manual_channel_operation(channel) - return await super().prepare_for_manual_channel_operation(channel) - - async def move_channel_x(self, channel: int, x: float): - if self._simulator: - return await self._simulate_handler.move_channel_x(channel, x) - return await super().move_channel_x(channel, x) - - async def move_channel_y(self, channel: int, y: float): - if self._simulator: - return await self._simulate_handler.move_channel_y(channel, y) - return await super().move_channel_y(channel, y) - - async def move_channel_z(self, channel: int, z: float): - if self._simulator: - return await self._simulate_handler.move_channel_z(channel, z) - return await super().move_channel_z(channel, z) - - def assign_child_resource(self, resource: Resource, location: Optional[Coordinate], reassign: bool = True): - if self._simulator: - self._simulate_handler.assign_child_resource(resource, location, reassign) - pass - - async def probe_tip_presence_via_pickup( - self, tip_spots: List[TipSpot], use_channels: Optional[List[int]] = None - ) -> Dict[str, bool]: - if self._simulator: - return await self._simulate_handler.probe_tip_presence_via_pickup(tip_spots, use_channels) - return await super().probe_tip_presence_via_pickup(tip_spots, use_channels) - - async def probe_tip_inventory( - self, - tip_spots: List[TipSpot], - probing_fn: Optional[TipPresenceProbingMethod] = None, - use_channels: Optional[List[int]] = None, - ) -> Dict[str, bool]: - if self._simulator: - return await self._simulate_handler.probe_tip_inventory(tip_spots, probing_fn, use_channels) - return await super().probe_tip_inventory(tip_spots, probing_fn, use_channels) - - async def consolidate_tip_inventory(self, tip_racks: List[TipRack], use_channels: Optional[List[int]] = None): - if self._simulator: - return await self._simulate_handler.consolidate_tip_inventory(tip_racks, use_channels) - return await super().consolidate_tip_inventory(tip_racks, use_channels) - - -class LiquidHandlerAbstract(LiquidHandlerMiddleware): - """Extended LiquidHandler with additional operations.""" - support_touch_tip = True - _ros_node: BaseROS2DeviceNode - - def __init__(self, backend: LiquidHandlerBackend, deck: Deck, simulator: bool=False, channel_num:int = 8, total_height:float = 310): - """Initialize a LiquidHandler. - - Args: - backend: Backend to use. - deck: Deck to use. - """ - backend_type = None - if isinstance(backend, dict) and "type" in backend: - backend_dict = backend.copy() - type_str = backend_dict.pop("type") - try: - # Try to get class from string using globals (current module), or fallback to pylabrobot or unilabos namespaces - backend_cls = None - if type_str in globals(): - backend_cls = globals()[type_str] - else: - # Try resolving dotted notation, e.g. "xxx.yyy.ClassName" - components = type_str.split(".") - mod = None - if len(components) > 1: - module_name = ".".join(components[:-1]) - try: - import importlib - mod = importlib.import_module(module_name) - except ImportError: - mod = None - if mod is not None: - backend_cls = getattr(mod, components[-1], None) - if backend_cls is None: - # Try pylabrobot style import (if available) - try: - import pylabrobot - backend_cls = getattr(pylabrobot, type_str, None) - except Exception: - backend_cls = None - if backend_cls is not None and isinstance(backend_cls, type): - backend_type = backend_cls(**backend_dict) # pass the rest of dict as kwargs - except Exception as exc: - raise RuntimeError(f"Failed to convert backend type '{type_str}' to class: {exc}") - else: - backend_type = backend - self._simulator = simulator - self.group_info = dict() - super().__init__(backend_type, deck, simulator, channel_num) - - def post_init(self, ros_node: BaseROS2DeviceNode): - self._ros_node = ros_node - - @classmethod - def set_liquid(cls, wells: list[Well], liquid_names: list[str], volumes: list[float]) -> SimpleReturn: - """Set the liquid in a well.""" - res_samples = [] - res_volumes = [] - for well, liquid_name, volume in zip(wells, liquid_names, volumes): - well.set_liquids([(liquid_name, volume)]) # type: ignore - res_samples.append({"name": well.name, "sample_uuid": well.unilabos_extra.get("sample_uuid", None)}) - res_volumes.append(volume) - - return SimpleReturn(samples=res_samples, volumes=res_volumes) - # --------------------------------------------------------------- - # REMOVE LIQUID -------------------------------------------------- - # --------------------------------------------------------------- - - def set_group(self, group_name: str, wells: List[Well], volumes: List[float]): - if self.channel_num == 8 and len(wells) != 8: - raise RuntimeError(f"Expected 8 wells, got {len(wells)}") - self.group_info[group_name] = wells - self.set_liquid(wells, [group_name] * len(wells), volumes) - - async def transfer_group(self, source_group_name: str, target_group_name: str, unit_volume: float): - - source_wells = self.group_info.get(source_group_name, []) - target_wells = self.group_info.get(target_group_name, []) - - rack_info = dict() - for child in self.deck.children: - if issubclass(child.__class__, TipRack): - rack: TipRack = cast(TipRack, child) - if "plate" not in rack.name.lower(): - for tip in rack.get_all_tips(): - if unit_volume > tip.maximal_volume: - break - else: - rack_info[rack.name] = (rack, tip.maximal_volume - unit_volume) - - if len(rack_info) == 0: - raise ValueError(f"No tip rack can support volume {unit_volume}.") - - rack_info = sorted(rack_info.items(), key=lambda x: x[1][1]) - for child in self.deck.children: - if child.name == rack_info[0][0]: - target_rack = child - target_rack = cast(TipRack, target_rack) - available_tips = {} - for (idx, tipSpot) in enumerate(target_rack.get_all_items()): - if tipSpot.has_tip(): - available_tips[idx] = tipSpot - continue - # 一般移动液体有两种方式,一对多和多对多 - print("channel_num", self.channel_num) - if self.channel_num == 8: - - tip_prefix = list(available_tips.values())[0].name.split('_')[0] - colnum_list = [int(tip.name.split('_')[-1][1:]) for tip in available_tips.values()] - available_cols = [colnum for colnum, count in dict(Counter(colnum_list)).items() if count == 8] - available_cols.sort() - available_tips_dict = {tip.name: tip for tip in available_tips.values()} - tips_to_use = [available_tips_dict[f"{tip_prefix}_{chr(65 + i)}{available_cols[0]}"] for i in range(8)] - print("tips_to_use", tips_to_use) - await self.pick_up_tips(tips_to_use, use_channels=list(range(0, 8))) - print("source_wells", source_wells) - await self.aspirate(source_wells, [unit_volume] * 8, use_channels=list(range(0, 8))) - print("target_wells", target_wells) - await self.dispense(target_wells, [unit_volume] * 8, use_channels=list(range(0, 8))) - await self.discard_tips(use_channels=list(range(0, 8))) - - elif self.channel_num == 1: - - for num_well in range(len(target_wells)): - tip_to_use = available_tips[list(available_tips.keys())[num_well]] - print("tip_to_use", tip_to_use) - await self.pick_up_tips([tip_to_use], use_channels=[0]) - print("source_wells", source_wells) - print("target_wells", target_wells) - if len(source_wells) == 1: - await self.aspirate([source_wells[0]], [unit_volume], use_channels=[0]) - else: - await self.aspirate([source_wells[num_well]], [unit_volume], use_channels=[0]) - await self.dispense([target_wells[num_well]], [unit_volume], use_channels=[0]) - await self.discard_tips(use_channels=[0]) - - else: - raise ValueError(f"Unsupported channel number {self.channel_num}.") - - async def create_protocol( - self, - protocol_name: str, - protocol_description: str, - protocol_version: str, - protocol_author: str, - protocol_date: str, - protocol_type: str, - none_keys: List[str] = [], - ): - """Create a new protocol with the given metadata.""" - pass - - - async def remove_liquid( - self, - vols: List[float], - sources: Sequence[Container], - waste_liquid: Optional[Container] = None, - *, - use_channels: Optional[List[int]] = None, - flow_rates: Optional[List[Optional[float]]] = None, - offsets: Optional[List[Coordinate]] = None, - liquid_height: Optional[List[Optional[float]]] = None, - blow_out_air_volume: Optional[List[Optional[float]]] = None, - spread: Optional[Literal["wide", "tight", "custom"]] = "wide", - delays: Optional[List[int]] = None, - is_96_well: Optional[bool] = False, - top: Optional[List[float]] = None, - none_keys: List[str] = [], - ): - """A complete *remove* (aspirate → waste) operation.""" - - try: - if is_96_well: - pass # This mode is not verified. - else: - # 首先应该对任务分组,然后每次1个/8个进行操作处理 - if len(use_channels) == 1 and self.backend.num_channels == 1: - - for _ in range(len(sources)): - tip = [] - for __ in range(len(use_channels)): - tip.extend(next(self.current_tip)) - await self.pick_up_tips(tip) - await self.aspirate( - resources=[sources[_]], - vols=[vols[_]], - use_channels=use_channels, - flow_rates=[flow_rates[0]] if flow_rates else None, - offsets=[offsets[0]] if offsets else None, - liquid_height=[liquid_height[0]] if liquid_height else None, - blow_out_air_volume=[blow_out_air_volume[0]] if blow_out_air_volume else None, - spread=spread, - ) - if delays is not None: - await self.custom_delay(seconds=delays[0]) - - await self.dispense( - resources=[waste_liquid], - vols=[vols[_]], - use_channels=use_channels, - flow_rates=[flow_rates[1]] if flow_rates else None, - offsets=[offsets[1]] if offsets else None, - blow_out_air_volume=[blow_out_air_volume[1]] if blow_out_air_volume else None, - liquid_height=[liquid_height[1]] if liquid_height else None, - spread=spread, - ) - await self.discard_tips() - - elif len(use_channels) == 8 and self.backend.num_channels == 8: - - - # 对于8个的情况,需要判断此时任务是不是能被8通道移液站来成功处理 - if len(sources) % 8 != 0: - raise ValueError(f"Length of `sources` {len(sources)} must be a multiple of 8 for 8-channel mode.") - - # 8个8个来取任务序列 - - for i in range(0, len(sources), 8): - tip = [] - for _ in range(len(use_channels)): - tip.extend(next(self.current_tip)) - await self.pick_up_tips(tip) - current_targets = waste_liquid[i:i + 8] - current_reagent_sources = sources[i:i + 8] - current_asp_vols = vols[i:i + 8] - current_dis_vols = vols[i:i + 8] - current_asp_flow_rates = flow_rates[i:i + 8] if flow_rates else [None] * 8 - current_dis_flow_rates = flow_rates[-i*8-8:len(flow_rates)-i*8] if flow_rates else [None] * 8 - current_asp_offset = offsets[i:i + 8] if offsets else [None] * 8 - current_dis_offset = offsets[-i*8-8:len(offsets)-i*8] if offsets else [None] * 8 - current_asp_liquid_height = liquid_height[i:i + 8] if liquid_height else [None] * 8 - current_dis_liquid_height = liquid_height[-i*8-8:len(liquid_height)-i*8] if liquid_height else [None] * 8 - current_asp_blow_out_air_volume = blow_out_air_volume[i:i + 8] if blow_out_air_volume else [None] * 8 - current_dis_blow_out_air_volume = blow_out_air_volume[-i*8-8:len(blow_out_air_volume)-i*8] if blow_out_air_volume else [None] * 8 - - await self.aspirate( - resources=current_reagent_sources, - vols=current_asp_vols, - use_channels=use_channels, - flow_rates=current_asp_flow_rates, - offsets=current_asp_offset, - liquid_height=current_asp_liquid_height, - blow_out_air_volume=current_asp_blow_out_air_volume, - spread=spread, - ) - if delays is not None: - await self.custom_delay(seconds=delays[0]) - await self.dispense( - resources=current_targets, - vols=current_dis_vols, - use_channels=use_channels, - flow_rates=current_dis_flow_rates, - offsets=current_dis_offset, - liquid_height=current_dis_liquid_height, - blow_out_air_volume=current_dis_blow_out_air_volume, - spread=spread, - ) - if delays is not None and len(delays) > 1: - await self.custom_delay(seconds=delays[1]) - await self.touch_tip(current_targets) - await self.discard_tips() - - except Exception as e: - traceback.print_exc() - raise RuntimeError(f"Liquid addition failed: {e}") from e - - # --------------------------------------------------------------- - # ADD LIQUID ----------------------------------------------------- - # --------------------------------------------------------------- - - async def add_liquid( - self, - asp_vols: Union[List[float], float], - dis_vols: Union[List[float], float], - reagent_sources: Sequence[Container], - targets: Sequence[Container], - *, - use_channels: Optional[List[int]] = None, - flow_rates: Optional[List[Optional[float]]] = None, - offsets: Optional[List[Coordinate]] = None, - liquid_height: Optional[List[Optional[float]]] = None, - blow_out_air_volume: Optional[List[Optional[float]]] = None, - spread: Optional[Literal["wide", "tight", "custom"]] = "wide", - is_96_well: bool = False, - delays: Optional[List[int]] = None, - mix_time: Optional[int] = None, - mix_vol: Optional[int] = None, - mix_rate: Optional[int] = None, - mix_liquid_height: Optional[float] = None, - none_keys: List[str] = [], - ): - # """A complete *add* (aspirate reagent → dispense into targets) operation.""" - - # # try: - if is_96_well: - pass # This mode is not verified. - else: - if len(asp_vols) != len(targets): - raise ValueError(f"Length of `asp_vols` {len(asp_vols)} must match `targets` {len(targets)}.") - # 首先应该对任务分组,然后每次1个/8个进行操作处理 - if len(use_channels) == 1: - for _ in range(len(targets)): - tip = [] - for x in range(len(use_channels)): - tip.extend(next(self.current_tip)) - await self.pick_up_tips(tip) - - await self.aspirate( - resources=[reagent_sources[_]], - vols=[asp_vols[_]], - use_channels=use_channels, - flow_rates=[flow_rates[0]] if flow_rates else None, - offsets=[offsets[0]] if offsets else None, - liquid_height=[liquid_height[0]] if liquid_height else None, - blow_out_air_volume=[blow_out_air_volume[0]] if blow_out_air_volume else None, - spread=spread, - ) - - if delays is not None: - await self.custom_delay(seconds=delays[0]) - await self.dispense( - resources=[targets[_]], - vols=[dis_vols[_]], - use_channels=use_channels, - flow_rates=[flow_rates[1]] if flow_rates else None, - offsets=[offsets[1]] if offsets else None, - blow_out_air_volume=[blow_out_air_volume[1]] if blow_out_air_volume else None, - liquid_height=[liquid_height[1]] if liquid_height else None, - spread=spread, - ) - - if delays is not None and len(delays) > 1: - await self.custom_delay(seconds=delays[1]) - # 只有在 mix_time 有效时才调用 mix - if mix_time is not None and mix_time > 0: - await self.mix( - targets=[targets[_]], - mix_time=mix_time, - mix_vol=mix_vol, - offsets=offsets if offsets else None, - height_to_bottom=mix_liquid_height if mix_liquid_height else None, - mix_rate=mix_rate if mix_rate else None, - ) - if delays is not None and len(delays) > 1: - await self.custom_delay(seconds=delays[1]) - await self.touch_tip(targets[_]) - await self.discard_tips() - - elif len(use_channels) == 8: - # 对于8个的情况,需要判断此时任务是不是能被8通道移液站来成功处理 - if len(targets) % 8 != 0: - raise ValueError(f"Length of `targets` {len(targets)} must be a multiple of 8 for 8-channel mode.") - - for i in range(0, len(targets), 8): - tip = [] - for _ in range(len(use_channels)): - tip.extend(next(self.current_tip)) - await self.pick_up_tips(tip) - current_targets = targets[i:i + 8] - current_reagent_sources = reagent_sources[i:i + 8] - current_asp_vols = asp_vols[i:i + 8] - current_dis_vols = dis_vols[i:i + 8] - current_asp_flow_rates = flow_rates[i:i + 8] if flow_rates else [None] * 8 - current_dis_flow_rates = flow_rates[-i*8-8:len(flow_rates)-i*8] if flow_rates else [None] * 8 - current_asp_offset = offsets[i:i + 8] if offsets else [None] * 8 - current_dis_offset = offsets[-i*8-8:len(offsets)-i*8] if offsets else [None] * 8 - current_asp_liquid_height = liquid_height[i:i + 8] if liquid_height else [None] * 8 - current_dis_liquid_height = liquid_height[-i*8-8:len(liquid_height)-i*8] if liquid_height else [None] * 8 - current_asp_blow_out_air_volume = blow_out_air_volume[i:i + 8] if blow_out_air_volume else [None] * 8 - current_dis_blow_out_air_volume = blow_out_air_volume[-i*8-8:len(blow_out_air_volume)-i*8] if blow_out_air_volume else [None] * 8 - - await self.aspirate( - resources=current_reagent_sources, - vols=current_asp_vols, - use_channels=use_channels, - flow_rates=current_asp_flow_rates, - offsets=current_asp_offset, - liquid_height=current_asp_liquid_height, - blow_out_air_volume=current_asp_blow_out_air_volume, - spread=spread, - ) - if delays is not None: - await self.custom_delay(seconds=delays[0]) - await self.dispense( - resources=current_targets, - vols=current_dis_vols, - use_channels=use_channels, - flow_rates=current_dis_flow_rates, - offsets=current_dis_offset, - liquid_height=current_dis_liquid_height, - blow_out_air_volume=current_dis_blow_out_air_volume, - spread=spread, - ) - if delays is not None and len(delays) > 1: - await self.custom_delay(seconds=delays[1]) - - # 只有在 mix_time 有效时才调用 mix - if mix_time is not None and mix_time > 0: - await self.mix( - targets=current_targets, - mix_time=mix_time, - mix_vol=mix_vol, - offsets=offsets if offsets else None, - height_to_bottom=mix_liquid_height if mix_liquid_height else None, - mix_rate=mix_rate if mix_rate else None, - ) - if delays is not None and len(delays) > 1: - await self.custom_delay(seconds=delays[1]) - await self.touch_tip(current_targets) - await self.discard_tips() - - - # except Exception as e: - # traceback.print_exc() - # raise RuntimeError(f"Liquid addition failed: {e}") from e - - # --------------------------------------------------------------- - # TRANSFER LIQUID ------------------------------------------------ - # --------------------------------------------------------------- - async def transfer_liquid( - self, - sources: Sequence[Container], - targets: Sequence[Container], - tip_racks: Sequence[TipRack], - *, - use_channels: Optional[List[int]] = None, - asp_vols: Union[List[float], float], - dis_vols: Union[List[float], float], - asp_flow_rates: Optional[List[Optional[float]]] = None, - dis_flow_rates: Optional[List[Optional[float]]] = None, - offsets: Optional[List[Coordinate]] = None, - touch_tip: bool = False, - liquid_height: Optional[List[Optional[float]]] = None, - blow_out_air_volume: Optional[List[Optional[float]]] = None, - spread: Literal["wide", "tight", "custom"] = "wide", - is_96_well: bool = False, - mix_stage: Optional[Literal["none", "before", "after", "both"]] = "none", - mix_times: Optional[int] = None, - mix_vol: Optional[int] = None, - mix_rate: Optional[int] = None, - mix_liquid_height: Optional[float] = None, - delays: Optional[List[int]] = None, - none_keys: List[str] = [], - ): - """Transfer liquid with automatic mode detection. - - Supports three transfer modes: - 1. One-to-many (1 source -> N targets): Distribute from one source to multiple targets - 2. One-to-one (N sources -> N targets): Standard transfer, each source to corresponding target - 3. Many-to-one (N sources -> 1 target): Combine multiple sources into one target - - Parameters - ---------- - asp_vols, dis_vols - Single volume (µL) or list. Automatically expanded based on transfer mode. - sources, targets - Containers (wells or plates). Length determines transfer mode: - - len(sources) == 1, len(targets) > 1: One-to-many mode - - len(sources) == len(targets): One-to-one mode - - len(sources) > 1, len(targets) == 1: Many-to-one mode - tip_racks - One or more TipRacks providing fresh tips. - is_96_well - Set *True* to use the 96‑channel head. - mix_stage - When to mix the target wells relative to dispensing. Default "none" means - no mixing occurs even if mix_times is provided. Use "before", "after", or - "both" to mix at the corresponding stage(s). - mix_times - Number of mix cycles. If *None* (default) no mixing occurs regardless of - mix_stage. - """ - - # 确保 use_channels 有默认值 - if use_channels is None: - # 默认使用设备所有通道(例如 8 通道移液站默认就是 0-7) - use_channels = list(range(self.channel_num)) if self.channel_num > 0 else [0] - - if is_96_well: - pass # This mode is not verified. - else: - # 转换体积参数为列表 - if isinstance(asp_vols, (int, float)): - asp_vols = [float(asp_vols)] - else: - asp_vols = [float(v) for v in asp_vols] - - if isinstance(dis_vols, (int, float)): - dis_vols = [float(dis_vols)] - else: - dis_vols = [float(v) for v in dis_vols] - - # 统一混合次数为标量,防止数组/列表与 int 比较时报错 - if mix_times is not None and not isinstance(mix_times, (int, float)): - try: - mix_times = mix_times[0] if len(mix_times) > 0 else None - except Exception: - try: - mix_times = next(iter(mix_times)) - except Exception: - pass - if mix_times is not None: - mix_times = int(mix_times) - - # 识别传输模式(mix_times 为 None 也应该能正常移液,只是不做 mix) - num_sources = len(sources) - num_targets = len(targets) - - if num_sources == 1 and num_targets > 1: - # 模式1: 一对多 (1 source -> N targets) - await self._transfer_one_to_many( - sources[0], targets, tip_racks, use_channels, - asp_vols, dis_vols, asp_flow_rates, dis_flow_rates, - offsets, touch_tip, liquid_height, blow_out_air_volume, - spread, mix_stage, mix_times, mix_vol, mix_rate, - mix_liquid_height, delays - ) - elif num_sources > 1 and num_targets == 1: - # 模式2: 多对一 (N sources -> 1 target) - await self._transfer_many_to_one( - sources, targets[0], tip_racks, use_channels, - asp_vols, dis_vols, asp_flow_rates, dis_flow_rates, - offsets, touch_tip, liquid_height, blow_out_air_volume, - spread, mix_stage, mix_times, mix_vol, mix_rate, - mix_liquid_height, delays - ) - elif num_sources == num_targets: - # 模式3: 一对一 (N sources -> N targets) - await self._transfer_one_to_one( - sources, targets, tip_racks, use_channels, - asp_vols, dis_vols, asp_flow_rates, dis_flow_rates, - offsets, touch_tip, liquid_height, blow_out_air_volume, - spread, mix_stage, mix_times, mix_vol, mix_rate, - mix_liquid_height, delays - ) - else: - raise ValueError( - f"Unsupported transfer mode: {num_sources} sources -> {num_targets} targets. " - "Supported modes: 1->N, N->1, or N->N." - ) - - async def _transfer_one_to_one( - self, - sources: Sequence[Container], - targets: Sequence[Container], - tip_racks: Sequence[TipRack], - use_channels: List[int], - asp_vols: List[float], - dis_vols: List[float], - asp_flow_rates: Optional[List[Optional[float]]], - dis_flow_rates: Optional[List[Optional[float]]], - offsets: Optional[List[Coordinate]], - touch_tip: bool, - liquid_height: Optional[List[Optional[float]]], - blow_out_air_volume: Optional[List[Optional[float]]], - spread: Literal["wide", "tight", "custom"], - mix_stage: Optional[Literal["none", "before", "after", "both"]], - mix_times: Optional[int], - mix_vol: Optional[int], - mix_rate: Optional[int], - mix_liquid_height: Optional[float], - delays: Optional[List[int]], - ): - """一对一传输模式:N sources -> N targets""" - # 验证参数长度 - if len(asp_vols) != len(targets): - raise ValueError(f"Length of `asp_vols` {len(asp_vols)} must match `targets` {len(targets)}.") - if len(dis_vols) != len(targets): - raise ValueError(f"Length of `dis_vols` {len(dis_vols)} must match `targets` {len(targets)}.") - if len(sources) != len(targets): - raise ValueError(f"Length of `sources` {len(sources)} must match `targets` {len(targets)}.") - - if len(use_channels) == 1: - for _ in range(len(targets)): - tip = [] - for ___ in range(len(use_channels)): - tip.extend(next(self.current_tip)) - await self.pick_up_tips(tip) - - if mix_stage in ["before", "both"] and mix_times is not None and mix_times > 0: - await self.mix( - targets=[targets[_]], - mix_time=mix_times, - mix_vol=mix_vol, - offsets=offsets if offsets else None, - height_to_bottom=mix_liquid_height if mix_liquid_height else None, - mix_rate=mix_rate if mix_rate else None, - ) - - await self.aspirate( - resources=[sources[_]], - vols=[asp_vols[_]], - use_channels=use_channels, - flow_rates=[asp_flow_rates[_]] if asp_flow_rates and len(asp_flow_rates) > _ else None, - offsets=[offsets[_]] if offsets and len(offsets) > _ else None, - liquid_height=[liquid_height[_]] if liquid_height and len(liquid_height) > _ else None, - blow_out_air_volume=[blow_out_air_volume[_]] if blow_out_air_volume and len(blow_out_air_volume) > _ else None, - spread=spread, - ) - if delays is not None: - await self.custom_delay(seconds=delays[0]) - await self.dispense( - resources=[targets[_]], - vols=[dis_vols[_]], - use_channels=use_channels, - flow_rates=[dis_flow_rates[_]] if dis_flow_rates and len(dis_flow_rates) > _ else None, - offsets=[offsets[_]] if offsets and len(offsets) > _ else None, - blow_out_air_volume=[blow_out_air_volume[_]] if blow_out_air_volume and len(blow_out_air_volume) > _ else None, - liquid_height=[liquid_height[_]] if liquid_height and len(liquid_height) > _ else None, - spread=spread, - ) - if delays is not None and len(delays) > 1: - await self.custom_delay(seconds=delays[1]) - if mix_stage in ["after", "both"] and mix_times is not None and mix_times > 0: - await self.mix( - targets=[targets[_]], - mix_time=mix_times, - mix_vol=mix_vol, - offsets=offsets if offsets else None, - height_to_bottom=mix_liquid_height if mix_liquid_height else None, - mix_rate=mix_rate if mix_rate else None, - ) - if delays is not None and len(delays) > 1: - await self.custom_delay(seconds=delays[1]) - await self.touch_tip(targets[_]) - await self.discard_tips(use_channels=use_channels) - - elif len(use_channels) == 8: - if len(targets) % 8 != 0: - raise ValueError(f"Length of `targets` {len(targets)} must be a multiple of 8 for 8-channel mode.") - - for i in range(0, len(targets), 8): - tip = [] - for _ in range(len(use_channels)): - tip.extend(next(self.current_tip)) - await self.pick_up_tips(tip) - current_targets = targets[i:i + 8] - current_reagent_sources = sources[i:i + 8] - current_asp_vols = asp_vols[i:i + 8] - current_dis_vols = dis_vols[i:i + 8] - current_asp_flow_rates = asp_flow_rates[i:i + 8] if asp_flow_rates else None - current_asp_offset = offsets[i:i + 8] if offsets else [None] * 8 - current_dis_offset = offsets[i:i + 8] if offsets else [None] * 8 - current_asp_liquid_height = liquid_height[i:i + 8] if liquid_height else [None] * 8 - current_dis_liquid_height = liquid_height[i:i + 8] if liquid_height else [None] * 8 - current_asp_blow_out_air_volume = blow_out_air_volume[i:i + 8] if blow_out_air_volume else [None] * 8 - current_dis_blow_out_air_volume = blow_out_air_volume[i:i + 8] if blow_out_air_volume else [None] * 8 - current_dis_flow_rates = dis_flow_rates[i:i + 8] if dis_flow_rates else None - - if mix_stage in ["before", "both"] and mix_times is not None and mix_times > 0: - await self.mix( - targets=current_targets, - mix_time=mix_times, - mix_vol=mix_vol, - offsets=offsets if offsets else None, - height_to_bottom=mix_liquid_height if mix_liquid_height else None, - mix_rate=mix_rate if mix_rate else None, - ) - - await self.aspirate( - resources=current_reagent_sources, - vols=current_asp_vols, - use_channels=use_channels, - flow_rates=current_asp_flow_rates, - offsets=current_asp_offset, - blow_out_air_volume=current_asp_blow_out_air_volume, - liquid_height=current_asp_liquid_height, - spread=spread, - ) - - if delays is not None: - await self.custom_delay(seconds=delays[0]) - await self.dispense( - resources=current_targets, - vols=current_dis_vols, - use_channels=use_channels, - flow_rates=current_dis_flow_rates, - offsets=current_dis_offset, - blow_out_air_volume=current_dis_blow_out_air_volume, - liquid_height=current_dis_liquid_height, - spread=spread, - ) - if delays is not None and len(delays) > 1: - await self.custom_delay(seconds=delays[1]) - - if mix_stage in ["after", "both"] and mix_times is not None and mix_times > 0: - await self.mix( - targets=current_targets, - mix_time=mix_times, - mix_vol=mix_vol, - offsets=offsets if offsets else None, - height_to_bottom=mix_liquid_height if mix_liquid_height else None, - mix_rate=mix_rate if mix_rate else None, - ) - if delays is not None and len(delays) > 1: - await self.custom_delay(seconds=delays[1]) - await self.touch_tip(current_targets) - await self.discard_tips([0,1,2,3,4,5,6,7]) - - async def _transfer_one_to_many( - self, - source: Container, - targets: Sequence[Container], - tip_racks: Sequence[TipRack], - use_channels: List[int], - asp_vols: List[float], - dis_vols: List[float], - asp_flow_rates: Optional[List[Optional[float]]], - dis_flow_rates: Optional[List[Optional[float]]], - offsets: Optional[List[Coordinate]], - touch_tip: bool, - liquid_height: Optional[List[Optional[float]]], - blow_out_air_volume: Optional[List[Optional[float]]], - spread: Literal["wide", "tight", "custom"], - mix_stage: Optional[Literal["none", "before", "after", "both"]], - mix_times: Optional[int], - mix_vol: Optional[int], - mix_rate: Optional[int], - mix_liquid_height: Optional[float], - delays: Optional[List[int]], - ): - """一对多传输模式:1 source -> N targets""" - # 验证和扩展体积参数 - if len(asp_vols) == 1: - # 如果只提供一个吸液体积,计算总吸液体积(所有分液体积之和) - total_asp_vol = sum(dis_vols) - asp_vol = asp_vols[0] if asp_vols[0] >= total_asp_vol else total_asp_vol - else: - raise ValueError("For one-to-many mode, `asp_vols` should be a single value or list with one element.") - - if len(dis_vols) != len(targets): - raise ValueError(f"Length of `dis_vols` {len(dis_vols)} must match `targets` {len(targets)}.") - - if len(use_channels) == 1: - # 单通道模式:一次吸液,多次分液 - tip = [] - for _ in range(len(use_channels)): - tip.extend(next(self.current_tip)) - await self.pick_up_tips(tip) - - if mix_stage in ["before", "both"] and mix_times is not None and mix_times > 0: - for idx, target in enumerate(targets): - await self.mix( - targets=[target], - mix_time=mix_times, - mix_vol=mix_vol, - offsets=offsets[idx:idx + 1] if offsets and len(offsets) > idx else None, - height_to_bottom=mix_liquid_height if mix_liquid_height else None, - mix_rate=mix_rate if mix_rate else None, - ) - - # 从源容器吸液(总体积) - await self.aspirate( - resources=[source], - vols=[asp_vol], - use_channels=use_channels, - flow_rates=[asp_flow_rates[0]] if asp_flow_rates and len(asp_flow_rates) > 0 else None, - offsets=[offsets[0]] if offsets and len(offsets) > 0 else None, - liquid_height=[liquid_height[0]] if liquid_height and len(liquid_height) > 0 else None, - blow_out_air_volume=[blow_out_air_volume[0]] if blow_out_air_volume and len(blow_out_air_volume) > 0 else None, - spread=spread, - ) - - if delays is not None: - await self.custom_delay(seconds=delays[0]) - - # 分多次分液到不同的目标容器 - for idx, target in enumerate(targets): - await self.dispense( - resources=[target], - vols=[dis_vols[idx]], - use_channels=use_channels, - flow_rates=[dis_flow_rates[idx]] if dis_flow_rates and len(dis_flow_rates) > idx else None, - offsets=[offsets[idx]] if offsets and len(offsets) > idx else None, - blow_out_air_volume=[blow_out_air_volume[idx]] if blow_out_air_volume and len(blow_out_air_volume) > idx else None, - liquid_height=[liquid_height[idx]] if liquid_height and len(liquid_height) > idx else None, - spread=spread, - ) - if delays is not None and len(delays) > 1: - await self.custom_delay(seconds=delays[1]) - if mix_stage in ["after", "both"] and mix_times is not None and mix_times > 0: - await self.mix( - targets=[target], - mix_time=mix_times, - mix_vol=mix_vol, - offsets=offsets[idx:idx+1] if offsets else None, - height_to_bottom=mix_liquid_height if mix_liquid_height else None, - mix_rate=mix_rate if mix_rate else None, - ) - if touch_tip: - await self.touch_tip([target]) - - await self.discard_tips(use_channels=use_channels) - - elif len(use_channels) == 8: - # 8通道模式:需要确保目标数量是8的倍数 - if len(targets) % 8 != 0: - raise ValueError(f"For 8-channel mode, number of targets {len(targets)} must be a multiple of 8.") - - # 每次处理8个目标 - for i in range(0, len(targets), 8): - tip = [] - for _ in range(len(use_channels)): - tip.extend(next(self.current_tip)) - await self.pick_up_tips(tip) - - current_targets = targets[i:i + 8] - current_dis_vols = dis_vols[i:i + 8] - - # 8个通道都从同一个源容器吸液,每个通道的吸液体积等于对应的分液体积 - current_asp_flow_rates = asp_flow_rates[0:1] * 8 if asp_flow_rates and len(asp_flow_rates) > 0 else None - current_asp_offset = offsets[0:1] * 8 if offsets and len(offsets) > 0 else [None] * 8 - current_asp_liquid_height = liquid_height[0:1] * 8 if liquid_height and len(liquid_height) > 0 else [None] * 8 - current_asp_blow_out_air_volume = blow_out_air_volume[0:1] * 8 if blow_out_air_volume and len(blow_out_air_volume) > 0 else [None] * 8 - - if mix_stage in ["before", "both"] and mix_times is not None and mix_times > 0: - await self.mix( - targets=current_targets, - mix_time=mix_times, - mix_vol=mix_vol, - offsets=offsets[i:i + 8] if offsets else None, - height_to_bottom=mix_liquid_height if mix_liquid_height else None, - mix_rate=mix_rate if mix_rate else None, - ) - - # 从源容器吸液(8个通道都从同一个源,但每个通道的吸液体积不同) - await self.aspirate( - resources=[source] * 8, # 8个通道都从同一个源 - vols=current_dis_vols, # 每个通道的吸液体积等于对应的分液体积 - use_channels=use_channels, - flow_rates=current_asp_flow_rates, - offsets=current_asp_offset, - liquid_height=current_asp_liquid_height, - blow_out_air_volume=current_asp_blow_out_air_volume, - spread=spread, - ) - - if delays is not None: - await self.custom_delay(seconds=delays[0]) - - # 分液到8个目标 - current_dis_flow_rates = dis_flow_rates[i:i + 8] if dis_flow_rates else None - current_dis_offset = offsets[i:i + 8] if offsets else [None] * 8 - current_dis_liquid_height = liquid_height[i:i + 8] if liquid_height else [None] * 8 - current_dis_blow_out_air_volume = blow_out_air_volume[i:i + 8] if blow_out_air_volume else [None] * 8 - - await self.dispense( - resources=current_targets, - vols=current_dis_vols, - use_channels=use_channels, - flow_rates=current_dis_flow_rates, - offsets=current_dis_offset, - blow_out_air_volume=current_dis_blow_out_air_volume, - liquid_height=current_dis_liquid_height, - spread=spread, - ) - - if delays is not None and len(delays) > 1: - await self.custom_delay(seconds=delays[1]) - - if mix_stage in ["after", "both"] and mix_times is not None and mix_times > 0: - await self.mix( - targets=current_targets, - mix_time=mix_times, - mix_vol=mix_vol, - offsets=offsets if offsets else None, - height_to_bottom=mix_liquid_height if mix_liquid_height else None, - mix_rate=mix_rate if mix_rate else None, - ) - - if touch_tip: - await self.touch_tip(current_targets) - - await self.discard_tips([0,1,2,3,4,5,6,7]) - - async def _transfer_many_to_one( - self, - sources: Sequence[Container], - target: Container, - tip_racks: Sequence[TipRack], - use_channels: List[int], - asp_vols: List[float], - dis_vols: List[float], - asp_flow_rates: Optional[List[Optional[float]]], - dis_flow_rates: Optional[List[Optional[float]]], - offsets: Optional[List[Coordinate]], - touch_tip: bool, - liquid_height: Optional[List[Optional[float]]], - blow_out_air_volume: Optional[List[Optional[float]]], - spread: Literal["wide", "tight", "custom"], - mix_stage: Optional[Literal["none", "before", "after", "both"]], - mix_times: Optional[int], - mix_vol: Optional[int], - mix_rate: Optional[int], - mix_liquid_height: Optional[float], - delays: Optional[List[int]], - ): - """多对一传输模式:N sources -> 1 target(汇总/混合)""" - # 验证和扩展体积参数 - if len(asp_vols) != len(sources): - raise ValueError(f"Length of `asp_vols` {len(asp_vols)} must match `sources` {len(sources)}.") - - # 支持两种模式: - # 1. dis_vols 为单个值:所有源汇总,使用总吸液体积或指定分液体积 - # 2. dis_vols 长度等于 asp_vols:每个源按不同比例分液(按比例混合) - if len(dis_vols) == 1: - # 模式1:使用单个分液体积 - total_dis_vol = sum(asp_vols) - dis_vol = dis_vols[0] if dis_vols[0] >= total_dis_vol else total_dis_vol - use_proportional_mixing = False - elif len(dis_vols) == len(asp_vols): - # 模式2:按不同比例混合 - use_proportional_mixing = True - else: - raise ValueError( - f"For many-to-one mode, `dis_vols` should be a single value or list with length {len(asp_vols)} " - f"(matching `asp_vols`). Got length {len(dis_vols)}." - ) - - if len(use_channels) == 1: - # 单通道模式:多次吸液,一次分液 - # 先混合前(如果需要) - if mix_stage in ["before", "both"] and mix_times is not None and mix_times > 0: - await self.mix( - targets=[target], - mix_time=mix_times, - mix_vol=mix_vol, - offsets=offsets[0:1] if offsets else None, - height_to_bottom=mix_liquid_height if mix_liquid_height else None, - mix_rate=mix_rate if mix_rate else None, - ) - - # 从每个源容器吸液并分液到目标容器 - for idx, source in enumerate(sources): - tip = [] - for _ in range(len(use_channels)): - tip.extend(next(self.current_tip)) - await self.pick_up_tips(tip) - - await self.aspirate( - resources=[source], - vols=[asp_vols[idx]], - use_channels=use_channels, - flow_rates=[asp_flow_rates[idx]] if asp_flow_rates and len(asp_flow_rates) > idx else None, - offsets=[offsets[idx]] if offsets and len(offsets) > idx else None, - liquid_height=[liquid_height[idx]] if liquid_height and len(liquid_height) > idx else None, - blow_out_air_volume=[blow_out_air_volume[idx]] if blow_out_air_volume and len(blow_out_air_volume) > idx else None, - spread=spread, - ) - - if delays is not None: - await self.custom_delay(seconds=delays[0]) - - # 分液到目标容器 - if use_proportional_mixing: - # 按不同比例混合:使用对应的 dis_vols - dis_vol = dis_vols[idx] - dis_flow_rate = dis_flow_rates[idx] if dis_flow_rates and len(dis_flow_rates) > idx else None - dis_offset = offsets[idx] if offsets and len(offsets) > idx else None - dis_liquid_height = liquid_height[idx] if liquid_height and len(liquid_height) > idx else None - dis_blow_out = blow_out_air_volume[idx] if blow_out_air_volume and len(blow_out_air_volume) > idx else None - else: - # 标准模式:分液体积等于吸液体积 - dis_vol = asp_vols[idx] - dis_flow_rate = dis_flow_rates[0] if dis_flow_rates and len(dis_flow_rates) > 0 else None - dis_offset = offsets[0] if offsets and len(offsets) > 0 else None - dis_liquid_height = liquid_height[0] if liquid_height and len(liquid_height) > 0 else None - dis_blow_out = blow_out_air_volume[0] if blow_out_air_volume and len(blow_out_air_volume) > 0 else None - - await self.dispense( - resources=[target], - vols=[dis_vol], - use_channels=use_channels, - flow_rates=[dis_flow_rate] if dis_flow_rate is not None else None, - offsets=[dis_offset] if dis_offset is not None else None, - blow_out_air_volume=[dis_blow_out] if dis_blow_out is not None else None, - liquid_height=[dis_liquid_height] if dis_liquid_height is not None else None, - spread=spread, - ) - - if delays is not None and len(delays) > 1: - await self.custom_delay(seconds=delays[1]) - - await self.discard_tips(use_channels=use_channels) - - # 最后在目标容器中混合(如果需要) - if mix_stage in ["after", "both"] and mix_times is not None and mix_times > 0: - await self.mix( - targets=[target], - mix_time=mix_times, - mix_vol=mix_vol, - offsets=offsets[0:1] if offsets else None, - height_to_bottom=mix_liquid_height if mix_liquid_height else None, - mix_rate=mix_rate if mix_rate else None, - ) - - if touch_tip: - await self.touch_tip([target]) - - elif len(use_channels) == 8: - # 8通道模式:需要确保源数量是8的倍数 - if len(sources) % 8 != 0: - raise ValueError(f"For 8-channel mode, number of sources {len(sources)} must be a multiple of 8.") - - # 每次处理8个源 - if mix_stage in ["before", "both"] and mix_times is not None and mix_times > 0: - await self.mix( - targets=[target], - mix_time=mix_times, - mix_vol=mix_vol, - offsets=offsets[0:1] if offsets else None, - height_to_bottom=mix_liquid_height if mix_liquid_height else None, - mix_rate=mix_rate if mix_rate else None, - ) - - for i in range(0, len(sources), 8): - tip = [] - for _ in range(len(use_channels)): - tip.extend(next(self.current_tip)) - await self.pick_up_tips(tip) - - current_sources = sources[i:i + 8] - current_asp_vols = asp_vols[i:i + 8] - current_asp_flow_rates = asp_flow_rates[i:i + 8] if asp_flow_rates else None - current_asp_offset = offsets[i:i + 8] if offsets else [None] * 8 - current_asp_liquid_height = liquid_height[i:i + 8] if liquid_height else [None] * 8 - current_asp_blow_out_air_volume = blow_out_air_volume[i:i + 8] if blow_out_air_volume else [None] * 8 - - # 从8个源容器吸液 - await self.aspirate( - resources=current_sources, - vols=current_asp_vols, - use_channels=use_channels, - flow_rates=current_asp_flow_rates, - offsets=current_asp_offset, - blow_out_air_volume=current_asp_blow_out_air_volume, - liquid_height=current_asp_liquid_height, - spread=spread, - ) - - if delays is not None: - await self.custom_delay(seconds=delays[0]) - - # 分液到目标容器(每个通道分液到同一个目标) - if use_proportional_mixing: - # 按比例混合:使用对应的 dis_vols - current_dis_vols = dis_vols[i:i + 8] - current_dis_flow_rates = dis_flow_rates[i:i + 8] if dis_flow_rates else None - current_dis_offset = offsets[i:i + 8] if offsets else [None] * 8 - current_dis_liquid_height = liquid_height[i:i + 8] if liquid_height else [None] * 8 - current_dis_blow_out_air_volume = blow_out_air_volume[i:i + 8] if blow_out_air_volume else [None] * 8 - else: - # 标准模式:每个通道分液体积等于其吸液体积 - current_dis_vols = current_asp_vols - current_dis_flow_rates = dis_flow_rates[0:1] * 8 if dis_flow_rates else None - current_dis_offset = offsets[0:1] * 8 if offsets else [None] * 8 - current_dis_liquid_height = liquid_height[0:1] * 8 if liquid_height else [None] * 8 - current_dis_blow_out_air_volume = blow_out_air_volume[0:1] * 8 if blow_out_air_volume else [None] * 8 - - await self.dispense( - resources=[target] * 8, # 8个通道都分到同一个目标 - vols=current_dis_vols, - use_channels=use_channels, - flow_rates=current_dis_flow_rates, - offsets=current_dis_offset, - blow_out_air_volume=current_dis_blow_out_air_volume, - liquid_height=current_dis_liquid_height, - spread=spread, - ) - - if delays is not None and len(delays) > 1: - await self.custom_delay(seconds=delays[1]) - - await self.discard_tips([0,1,2,3,4,5,6,7]) - - # 最后在目标容器中混合(如果需要) - if mix_stage in ["after", "both"] and mix_times is not None and mix_times > 0: - await self.mix( - targets=[target], - mix_time=mix_times, - mix_vol=mix_vol, - offsets=offsets[0:1] if offsets else None, - height_to_bottom=mix_liquid_height if mix_liquid_height else None, - mix_rate=mix_rate if mix_rate else None, - ) - - if touch_tip: - await self.touch_tip([target]) - - # except Exception as e: - # traceback.print_exc() - # raise RuntimeError(f"Liquid addition failed: {e}") from e - - - # --------------------------------------------------------------- - # Helper utilities - # --------------------------------------------------------------- - - async def custom_delay(self, seconds=0, msg=None): - """ - seconds: seconds to wait - msg: information to be printed - """ - if seconds != None and seconds > 0: - if msg: - print(f"Waiting time: {msg}") - print(f"Current time: {time.strftime('%H:%M:%S')}") - print(f"Time to finish: {time.strftime('%H:%M:%S', time.localtime(time.time() + seconds))}") - await self._ros_node.sleep(seconds) - if msg: - print(f"Done: {msg}") - print(f"Current time: {time.strftime('%H:%M:%S')}") - - async def touch_tip(self, targets: Sequence[Container]): - - """Touch the tip to the side of the well.""" - - if not self.support_touch_tip: - return - await self.aspirate( - resources=[targets], - vols=[0], - use_channels=None, - flow_rates=None, - offsets=[Coordinate(x=-targets.get_size_x() / 2, y=0, z=0)], - liquid_height=None, - blow_out_air_volume=None, - ) - # await self.custom_delay(seconds=1) # In the simulation, we do not need to wait - await self.aspirate( - resources=[targets], - vols=[0], - use_channels=None, - flow_rates=None, - offsets=[Coordinate(x=targets.get_size_x() / 2, y=0, z=0)], - liquid_height=None, - blow_out_air_volume=None, - ) - - async def mix( - self, - targets: Sequence[Container], - mix_time: int = None, - mix_vol: Optional[int] = None, - height_to_bottom: Optional[float] = None, - offsets: Optional[Coordinate] = None, - mix_rate: Optional[float] = None, - none_keys: List[str] = [], - ): - if mix_time is None: # No mixing required - return - """Mix the liquid in the target wells.""" - for _ in range(mix_time): - await self.aspirate( - resources=[targets], - vols=[mix_vol], - flow_rates=[mix_rate] if mix_rate else None, - offsets=[offsets] if offsets else None, - liquid_height=[height_to_bottom] if height_to_bottom else None, - ) - await self.custom_delay(seconds=1) - await self.dispense( - resources=[targets], - vols=[mix_vol], - flow_rates=[mix_rate] if mix_rate else None, - offsets=[offsets] if offsets else None, - liquid_height=[height_to_bottom] if height_to_bottom else None, - ) - - def iter_tips(self, tip_racks: Sequence[TipRack]) -> Iterator[Resource]: - """Yield tips from a list of TipRacks one-by-one until depleted.""" - for rack in tip_racks: - for tip in rack: - yield tip - raise RuntimeError("Out of tips!") - - def set_tiprack(self, tip_racks: Sequence[TipRack]): - """Set the tip racks for the liquid handler.""" - - self.tip_racks = tip_racks - tip_iter = self.iter_tips(tip_racks) - self.current_tip = tip_iter - - async def move_to(self, well: Well, dis_to_top: float = 0, channel: int = 0): - """ - Move a single channel to a specific well with a given z-height. - - Parameters - ---------- - well : Well - The target well. - dis_to_top : float - Height in mm to move to relative to the well top. - channel : int - Pipetting channel to move (default: 0). - """ - await self.prepare_for_manual_channel_operation(channel=channel) - abs_loc = well.get_absolute_location() - well_height = well.get_absolute_size_z() - await self.move_channel_x(channel, abs_loc.x) - await self.move_channel_y(channel, abs_loc.y) - await self.move_channel_z(channel, abs_loc.z + well_height + dis_to_top) diff --git a/unilabos/devices/liquid_handling/prcxi/__init__.py b/unilabos/devices/liquid_handling/prcxi/__init__.py deleted file mode 100644 index e69de29b..00000000 diff --git a/unilabos/devices/liquid_handling/prcxi/abstract_protocol.py b/unilabos/devices/liquid_handling/prcxi/abstract_protocol.py deleted file mode 100644 index b09d1b94..00000000 --- a/unilabos/devices/liquid_handling/prcxi/abstract_protocol.py +++ /dev/null @@ -1,621 +0,0 @@ -import asyncio -import collections -import contextlib -import json -import socket -import time -from typing import Any, List, Dict, Optional, TypedDict, Union, Sequence, Iterator, Literal -import pprint as pp -from pylabrobot.liquid_handling import ( - LiquidHandlerBackend, - Pickup, - SingleChannelAspiration, - Drop, - SingleChannelDispense, - PickupTipRack, - DropTipRack, - MultiHeadAspirationPlate, ChatterBoxBackend, LiquidHandlerChatterboxBackend, -) -from pylabrobot.liquid_handling.standard import ( - MultiHeadAspirationContainer, - MultiHeadDispenseContainer, - MultiHeadDispensePlate, - ResourcePickup, - ResourceMove, - ResourceDrop, -) -from pylabrobot.resources import Tip, Deck, Plate, Well, TipRack, Resource, Container, Coordinate, TipSpot, Trash -from traitlets import Int - -from unilabos.devices.liquid_handling.liquid_handler_abstract import LiquidHandlerAbstract - - - - -class MaterialResource: - """统一的液体/反应器资源,支持多孔(wells)场景: - - wells: 列表,每个元素代表一个物料孔(unit); - - units: 与 wells 对齐的列表,每个元素是 {liquid_id: volume}; - - 若传入 liquid_id + volume 或 composition,总量将**等分**到各 unit; - """ - def __init__( - self, - resource_name: str, - slot: int, - well: List[int], - composition: Optional[Dict[str, float]] = None, - liquid_id: Optional[str] = None, - volume: Union[float, int] = 0.0, - is_supply: Optional[bool] = None, - ): - self.resource_name = resource_name - self.slot = int(slot) - self.well = list(well or []) - self.is_supply = bool(is_supply) if is_supply is not None else (bool(composition) or (liquid_id is not None)) - - # 规范化:至少有 1 个 unit - n = max(1, len(self.well)) - self.units: List[Dict[str, float]] = [dict() for _ in range(n)] - - # 初始化内容:等分到各 unit - if composition: - for k, v in composition.items(): - share = float(v) / n - for u in self.units: - if share > 0: - u[k] = u.get(k, 0.0) + share - elif liquid_id is not None and float(volume) > 0: - share = float(volume) / n - for u in self.units: - u[liquid_id] = u.get(liquid_id, 0.0) + share - - # 位置描述 - def location(self) -> Dict[str, Any]: - return {"slot": self.slot, "well": self.well} - - def unit_count(self) -> int: - return len(self.units) - - def unit_volume(self, idx: int) -> float: - return float(sum(self.units[idx].values())) - - def total_volume(self) -> float: - return float(sum(self.unit_volume(i) for i in range(self.unit_count()))) - - def add_to_unit(self, idx: int, liquid_id: str, vol: Union[float, int]): - v = float(vol) - if v < 0: - return - u = self.units[idx] - if liquid_id not in u: - u[liquid_id] = 0.0 - if v > 0: - u[liquid_id] += v - - def remove_from_unit(self, idx: int, total: Union[float, int]) -> Dict[str, float]: - take = float(total) - if take <= 0: return {} - u = self.units[idx] - avail = sum(u.values()) - if avail <= 0: return {} - take = min(take, avail) - ratio = take / avail - removed: Dict[str, float] = {} - for k, v in list(u.items()): - dv = v * ratio - nv = v - dv - if nv < 1e-9: nv = 0.0 - u[k] = nv - removed[k] = dv - - self.units[idx] = {k: v for k, v in u.items() if v > 0} - return removed - - def transfer_unit_to(self, src_idx: int, other: "MaterialResource", dst_idx: int, total: Union[float, int]): - moved = self.remove_from_unit(src_idx, total) - for k, v in moved.items(): - other.add_to_unit(dst_idx, k, v) - - def get_resource(self) -> Dict[str, Any]: - return { - "resource_name": self.resource_name, - "slot": self.slot, - "well": self.well, - "units": [dict(u) for u in self.units], - "total_volume": self.total_volume(), - "is_supply": self.is_supply, - } - -def transfer_liquid( - sources: MaterialResource, - targets: MaterialResource, - unit_volume: Optional[Union[float, int]] = None, - tip: Optional[str] = None, #这里应该是指定种类的 -) -> Dict[str, Any]: - try: - vol_each = float(unit_volume) - except (TypeError, ValueError): - return {"action": "transfer_liquid", "error": "invalid unit_volume"} - if vol_each <= 0: - return {"action": "transfer_liquid", "error": "non-positive volume"} - - ns, nt = sources.unit_count(), targets.unit_count() - # one-to-many: 从单个 source unit(0) 扇出到目标各 unit - if ns == 1 and nt >= 1: - for j in range(nt): - sources.transfer_unit_to(0, targets, j, vol_each) - # many-to-many: 数量相同,逐一对应 - elif ns == nt and ns > 0: - for i in range(ns): - sources.transfer_unit_to(i, targets, i, vol_each) - else: - raise ValueError(f"Unsupported mapping: sources={ns} units, targets={nt} units. Only 1->N or N->N are allowed.") - - return { - "action": "transfer_liquid", - "sources": sources.get_resource(), - "targets": targets.get_resource(), - "unit_volume": unit_volume, - "tip": tip, - } - -def plan_transfer(pm: "ProtocolManager", **kwargs) -> Dict[str, Any]: - """Shorthand to add a non-committing transfer to a ProtocolManager. - Accepts the same kwargs as ProtocolManager.add_transfer. - """ - return pm.add_transfer(**kwargs) - -class ProtocolManager: - """Plan/track transfers and back‑solve minimum initial volumes. - - Use add_transfer(...) to register steps (no mutation). - Use compute_min_initials(...) to infer the minimal starting volume of each liquid - per resource required to execute the plan in order. - """ - - # ---------- lifecycle ---------- - def __init__(self): - # queued logical steps (keep live refs to MaterialResource) - self.steps: List[Dict[str, Any]] = [] - - # simple tip catalog; choose the smallest that meets min_aspirate and capacity*safety - self.tip_catalog = [ - {"name": "TIP_10uL", "capacity": 10.0, "min_aspirate": 0.5}, - {"name": "TIP_20uL", "capacity": 20.0, "min_aspirate": 1.0}, - {"name": "TIP_50uL", "capacity": 50.0, "min_aspirate": 2.0}, - {"name": "TIP_200uL", "capacity": 200.0, "min_aspirate": 5.0}, - {"name": "TIP_300uL", "capacity": 300.0, "min_aspirate": 10.0}, - {"name": "TIP_1000uL", "capacity": 1000.0, "min_aspirate": 20.0}, - ] - - # stable labels for unknown liquids per resource (A, B, C, ..., AA, AB, ...) - self._unknown_labels: Dict[MaterialResource, str] = {} - self._unknown_label_counter: int = 0 - - # ---------- public API ---------- - def recommend_tip(self, unit_volume: float, safety: float = 1.10) -> str: - v = float(unit_volume) - # prefer: meets min_aspirate and capacity with safety margin; else fallback to capacity-only; else max capacity - eligible = [t for t in self.tip_catalog if t["min_aspirate"] <= v and t["capacity"] >= v * safety] - if not eligible: - eligible = [t for t in self.tip_catalog if t["capacity"] >= v] - return min(eligible or self.tip_catalog, key=lambda t: t["capacity"]) ["name"] - - def get_tip_capacity(self, tip_name: str) -> Optional[float]: - for t in self.tip_catalog: - if t["name"] == tip_name: - return t["capacity"] - return None - - def add_transfer( - self, - sources: MaterialResource, - targets: MaterialResource, - unit_volume: Union[float, int], - tip: Optional[str] = None, - ) -> Dict[str, Any]: - step = { - "action": "transfer_liquid", - "sources": sources, - "targets": targets, - "unit_volume": float(unit_volume), - "tip": tip or self.recommend_tip(unit_volume), - } - self.steps.append(step) - # return a serializable shadow (no mutation) - return { - "action": "transfer_liquid", - "sources": sources.get_resource(), - "targets": targets.get_resource(), - "unit_volume": step["unit_volume"], - "tip": step["tip"], - } - - @staticmethod - def _liquid_keys_of(resource: MaterialResource) -> List[str]: - keys: set[str] = set() - for u in resource.units: - keys.update(u.keys()) - return sorted(keys) - - @staticmethod - def _fanout_multiplier(ns: int, nt: int) -> Optional[int]: - """Return the number of liquid movements for a mapping shape. - 1->N: N moves; N->N: N moves; otherwise unsupported (None). - """ - if ns == 1 and nt >= 1: - return nt - if ns == nt and ns > 0: - return ns - return None - - # ---------- planning core ---------- - def compute_min_initials( - self, - use_initial: bool = False, - external_only: bool = True, - ) -> Dict[str, Dict[str, float]]: - """Simulate the plan (non‑mutating) and return minimal starting volumes per resource/liquid.""" - ledger: Dict[MaterialResource, Dict[str, float]] = {} - min_seen: Dict[MaterialResource, Dict[str, float]] = {} - - def _ensure(res: MaterialResource) -> None: - if res in ledger: - return - declared = self._liquid_keys_of(res) - if use_initial: - # sum actual held amounts across units - totals = {k: 0.0 for k in declared} - for u in res.units: - for k, v in u.items(): - totals[k] = totals.get(k, 0.0) + float(v) - ledger[res] = totals - else: - ledger[res] = {k: 0.0 for k in declared} - min_seen[res] = {k: ledger[res].get(k, 0.0) for k in ledger[res]} - - def _proportions(src: MaterialResource, src_bal: Dict[str, float]) -> tuple[List[str], Dict[str, float]]: - keys = list(src_bal.keys()) - total_pos = sum(x for x in src_bal.values() if x > 0) - - # if ledger has no keys yet, seed from declared types on the resource - if not keys: - keys = self._liquid_keys_of(src) - for k in keys: - src_bal.setdefault(k, 0.0) - min_seen[src].setdefault(k, 0.0) - - if total_pos > 0: - # proportional to current positive balances - props = {k: (src_bal.get(k, 0.0) / total_pos) for k in keys} - return keys, props - - # no material currently: evenly from known keys, or assign an unknown label - if keys: - eq = 1.0 / len(keys) - return keys, {k: eq for k in keys} - - unk = self._label_for_unknown(src) - keys = [unk] - src_bal.setdefault(unk, 0.0) - min_seen[src].setdefault(unk, 0.0) - return keys, {unk: 1.0} - - for step in self.steps: - if step.get("action") != "transfer_liquid": - continue - - src: MaterialResource = step["sources"] - dst: MaterialResource = step["targets"] - vol = float(step["unit_volume"]) - if vol <= 0: - continue - - _ensure(src) - _ensure(dst) - - mult = self._fanout_multiplier(src.unit_count(), dst.unit_count()) - if not mult: - continue # unsupported mapping shape for this planner - - eff_vol = vol * mult - src_bal = ledger[src] - keys, props = _proportions(src, src_bal) - - # subtract from src; track minima; accumulate to dst - moved: Dict[str, float] = {} - for k in keys: - dv = eff_vol * props[k] - src_bal[k] = src_bal.get(k, 0.0) - dv - moved[k] = dv - prev_min = min_seen[src].get(k, 0.0) - if src_bal[k] < prev_min: - min_seen[src][k] = src_bal[k] - - dst_bal = ledger[dst] - for k, dv in moved.items(): - dst_bal[k] = dst_bal.get(k, 0.0) + dv - min_seen[dst].setdefault(k, dst_bal[k]) - - # convert minima (negative) to required initials - result: Dict[str, Dict[str, float]] = {} - for res, mins in min_seen.items(): - if external_only and not getattr(res, "is_supply", False): - continue - need = {liq: max(0.0, -mn) for liq, mn in mins.items() if mn < 0.0} - if need: - result[res.resource_name] = need - return result - - def compute_tip_consumption(self) -> Dict[str, Any]: - """Compute how many tips are consumed at each transfer step, and aggregate by tip type. - Rule: each liquid movement (source unit -> target unit) consumes one tip. - For supported shapes: 1->N uses N tips; N->N uses N tips. - """ - per_step: List[Dict[str, Any]] = [] - totals_by_tip: Dict[str, int] = {} - - for i, s in enumerate(self.steps): - if s.get("action") != "transfer_liquid": - continue - ns = s["sources"].unit_count() - nt = s["targets"].unit_count() - moves = self._fanout_multiplier(ns, nt) or 0 - tip_name = s.get("tip") or self.recommend_tip(s["unit_volume"]) # per-step tip may vary - per_step.append({ - "idx": i, - "tip": tip_name, - "tips_used": moves, - "moves": moves, - }) - totals_by_tip[tip_name] = totals_by_tip.get(tip_name, 0) + int(moves) - - return {"per_step": per_step, "totals_by_tip": totals_by_tip} - - def compute_min_initials_with_tips( - self, - use_initial: bool = False, - external_only: bool = True, - ) -> Dict[str, Any]: - needs = self.compute_min_initials(use_initial=use_initial, external_only=external_only) - step_tips: List[Dict[str, Any]] = [] - totals_by_tip: Dict[str, int] = {} - - for i, s in enumerate(self.steps): - if s.get("action") != "transfer_liquid": - continue - ns = s["sources"].unit_count() - nt = s["targets"].unit_count() - moves = self._fanout_multiplier(ns, nt) or 0 - tip_name = s.get("tip") or self.recommend_tip(s["unit_volume"]) # step-specific tip - totals_by_tip[self.get_tip_capacity(tip_name)] = totals_by_tip.get(tip_name, 0) + int(moves) - - step_tips.append({ - "idx": i, - "tip": tip_name, - "tip_capacity": self.get_tip_capacity(tip_name), - "unit_volume": s["unit_volume"], - "tips_used": moves, - }) - return {"liquid_setup": needs, "step_tips": step_tips, "totals_by_tip": totals_by_tip} - - # ---------- unknown labels ---------- - def _index_to_letters(self, idx: int) -> str: - """0->A, 1->B, ... 25->Z, 26->AA, 27->AB ... (Excel-like)""" - s: List[str] = [] - idx = int(idx) - while True: - idx, r = divmod(idx, 26) - s.append(chr(ord('A') + r)) - if idx == 0: - break - idx -= 1 # Excel-style carry - return "".join(reversed(s)) - - def _label_for_unknown(self, res: MaterialResource) -> str: - """Assign a stable unknown-liquid label (A/B/C/...) per resource.""" - if res not in self._unknown_labels: - lab = self._index_to_letters(self._unknown_label_counter) - self._unknown_label_counter += 1 - self._unknown_labels[res] = lab - return self._unknown_labels[res] - - -# 在这一步传输目前有的物料 -class LabResource: - def __init__(self): - self.tipracks = [] - self.plates = [] - self.trash = [] - - def add_tipracks(self, tiprack: List[TipRack]): - self.tipracks.extend(tiprack) - def add_plates(self, plate: List[Plate]): - self.plates.extend(plate) - def add_trash(self, trash: List[Plate]): - self.trash.extend(trash) - def get_resources_info(self) -> Dict[str, Any]: - tipracks = [{"name": tr.name, "max_volume": tr.children[0].tracker._tip.maximal_volume, "count": len(tr.children)} for tr in self.tipracks] - plates = [{"name": pl.name, "max_volume": pl.children[0].max_volume, "count": len(pl.children)} for pl in self.plates] - trash = [{"name": t.name, "max_volume": t.children[0].max_volume, "count": len(t.children)} for t in self.trash] - return { - "tipracks": tipracks, - "plates": plates, - "trash": trash - } - -from typing import Dict, Any - -import time -class DefaultLayout: - - def __init__(self, product_name: str = "PRCXI9300"): - self.labresource = {} - if product_name not in ["PRCXI9300", "PRCXI9320"]: - raise ValueError(f"Unsupported product_name: {product_name}. Only 'PRCXI9300' and 'PRCXI9320' are supported.") - - if product_name == "PRCXI9300": - self.rows = 2 - self.columns = 3 - self.layout = [1, 2, 3, 4, 5, 6] - self.trash_slot = 3 - self.waste_liquid_slot = 6 - - elif product_name == "PRCXI9320": - self.rows = 3 - self.columns = 4 - self.layout = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16] - self.trash_slot = 16 - self.waste_liquid_slot = 12 - self.default_layout = {"MatrixId":f"{time.time()}","MatrixName":f"{time.time()}","MatrixCount":16,"WorkTablets": - [{"Number": 1, "Code": "T1", "Material": {"uuid": "57b1e4711e9e4a32b529f3132fc5931f", "materialEnum": 0}}, - {"Number": 2, "Code": "T2", "Material": {"uuid": "57b1e4711e9e4a32b529f3132fc5931f", "materialEnum": 0}}, - {"Number": 3, "Code": "T3", "Material": {"uuid": "57b1e4711e9e4a32b529f3132fc5931f", "materialEnum": 0}}, - {"Number": 4, "Code": "T4", "Material": {"uuid": "57b1e4711e9e4a32b529f3132fc5931f", "materialEnum": 0}}, - {"Number": 5, "Code": "T5", "Material": {"uuid": "57b1e4711e9e4a32b529f3132fc5931f", "materialEnum": 0}}, - {"Number": 6, "Code": "T6", "Material": {"uuid": "57b1e4711e9e4a32b529f3132fc5931f", "materialEnum": 0}}, - {"Number": 7, "Code": "T7", "Material": {"uuid": "57b1e4711e9e4a32b529f3132fc5931f", "materialEnum": 0}}, - {"Number": 8, "Code": "T8", "Material": {"uuid": "57b1e4711e9e4a32b529f3132fc5931f", "materialEnum": 0}}, - {"Number": 9, "Code": "T9", "Material": {"uuid": "57b1e4711e9e4a32b529f3132fc5931f", "materialEnum": 0}}, - {"Number": 10, "Code": "T10", "Material": {"uuid": "57b1e4711e9e4a32b529f3132fc5931f", "materialEnum": 0}}, - {"Number": 11, "Code": "T11", "Material": {"uuid": "57b1e4711e9e4a32b529f3132fc5931f", "materialEnum": 0}}, - {"Number": 12, "Code": "T12", "Material": {"uuid": "730067cf07ae43849ddf4034299030e9", "materialEnum": 0}}, # 这个设置成废液槽,用储液槽表示 - {"Number": 13, "Code": "T13", "Material": {"uuid": "57b1e4711e9e4a32b529f3132fc5931f", "materialEnum": 0}}, - {"Number": 14, "Code": "T14", "Material": {"uuid": "57b1e4711e9e4a32b529f3132fc5931f", "materialEnum": 0}}, - {"Number": 15, "Code": "T15", "Material": {"uuid": "57b1e4711e9e4a32b529f3132fc5931f", "materialEnum": 0}}, - {"Number": 16, "Code": "T16", "Material": {"uuid": "730067cf07ae43849ddf4034299030e9", "materialEnum": 0}} # 这个设置成垃圾桶,用储液槽表示 -] -} - - def get_layout(self) -> Dict[str, Any]: - return { - "rows": self.rows, - "columns": self.columns, - "layout": self.layout, - "trash_slot": self.trash_slot, - "waste_liquid_slot": self.waste_liquid_slot - } - - def get_trash_slot(self) -> int: - return self.trash_slot - - def get_waste_liquid_slot(self) -> int: - return self.waste_liquid_slot - - def add_lab_resource(self, material_info): - self.labresource = material_info - - def recommend_layout(self, needs: Dict[str, int]) -> Dict[str, Any]: - """根据 needs 推荐布局""" - for k, v in needs.items(): - if k not in self.labresource: - raise ValueError(f"Material {k} not found in lab resources.") - - # 预留位置12和16不动 - reserved_positions = {12, 16} - available_positions = [i for i in range(1, 17) if i not in reserved_positions] - - # 计算总需求 - total_needed = sum(needs.values()) - if total_needed > len(available_positions): - raise ValueError(f"需要 {total_needed} 个位置,但只有 {len(available_positions)} 个可用位置(排除位置12和16)") - - # 依次分配位置 - current_pos = 0 - for material_name, count in needs.items(): - material_uuid = self.labresource[material_name]['uuid'] - material_enum = self.labresource[material_name]['materialEnum'] - - for _ in range(count): - if current_pos >= len(available_positions): - raise ValueError("位置不足,无法分配更多物料") - - position = available_positions[current_pos] - # 找到对应的tablet并更新 - for tablet in self.default_layout['WorkTablets']: - if tablet['Number'] == position: - tablet['Material']['uuid'] = material_uuid - tablet['Material']['materialEnum'] = material_enum - break - - current_pos += 1 - - return self.default_layout - - -if __name__ == "__main__": - with open("prcxi_material.json", "r") as f: - material_info = json.load(f) - - layout = DefaultLayout("PRCXI9320") - layout.add_lab_resource(material_info) - plan = layout.recommend_layout({ - "10μL加长 Tip头": 2, - "300μL Tip头": 2, - "96深孔板": 2, - }) - - - - -# if __name__ == "__main__": -# # ---- 资源:SUP 供液(X),中间板 R1(4 孔空),目标板 R2(4 孔空)---- -# # sup = MaterialResource("SUP", slot=5, well=[1], liquid_id="X", volume=10000) -# # r1 = MaterialResource("R1", slot=6, well=[1,2,3,4,5,6,7,8]) -# # r2 = MaterialResource("R2", slot=7, well=[1,2,3,4,5,6,7,8]) - -# # pm = ProtocolManager() -# # # 步骤1:SUP -> R1,1->N 扇出,每孔 50 uL(总 200 uL) -# # pm.add_transfer(sup, r1, unit_volume=10.0) -# # # 步骤2:R1 -> R2,N->N 对应,每对 25 uL(总 100 uL;来自 R1 中已存在的混合物 X) -# # pm.add_transfer(r1, r2, unit_volume=120.0) - -# # out = pm.compute_min_initials_with_tips() -# # # layout_planer = DefaultLayout('PRCXI9320') -# # # print(layout_planer.get_layout()) -# # # print("回推最小需求:", out["liquid_setup"]) # {'SUP': {'X': 200.0}} -# # # print("步骤枪头建议:", out["step_tips"]) # [{'idx':0,'tip':'TIP_200uL','unit_volume':50.0}, {'idx':1,'tip':'TIP_50uL','unit_volume':25.0}] - -# # # # 实际执行(可选) -# # # transfer_liquid(sup, r1, unit_volume=50.0) -# # # transfer_liquid(r1, r2, unit_volume=25.0) -# # # print("执行后 SUP:", sup.get_resource()) # 总体积 -200 -# # # print("执行后 R1:", r1.get_resource()) # 每孔 25 uL(50 进 -25 出) -# # # print("执行后 R2:", r2.get_resource()) # 每孔 25 uL - - -# # from pylabrobot.resources.opentrons.tube_racks import * -# # from pylabrobot.resources.opentrons.plates import * -# # from pylabrobot.resources.opentrons.tip_racks import * -# # from pylabrobot.resources.opentrons.reservoirs import * - -# # plate = [locals()['nest_96_wellplate_2ml_deep'](name="thermoscientificnunc_96_wellplate_2000ul"), locals()['corning_96_wellplate_360ul_flat'](name="corning_96_wellplate_360ul_flat")] -# # tiprack = [locals()['opentrons_96_tiprack_300ul'](name="opentrons_96_tiprack_300ul"), locals()['opentrons_96_tiprack_1000ul'](name="opentrons_96_tiprack_1000ul")] -# # trash = [locals()['axygen_1_reservoir_90ml'](name="axygen_1_reservoir_90ml")] - -# # from pprint import pprint - -# # lab_resource = LabResource() -# # lab_resource.add_tipracks(tiprack) -# # lab_resource.add_plates(plate) -# # lab_resource.add_trash(trash) - -# # layout_planer = DefaultLayout('PRCXI9300') -# # layout_planer.add_lab_resource(lab_resource) -# # layout_planer.recommend_layout(out) - -# with open("prcxi_material.json", "r") as f: -# material_info = json.load(f) -# # print("当前实验物料信息:", material_info) - -# layout = DefaultLayout("PRCXI9320") -# layout.add_lab_resource(material_info) -# print(layout.default_layout['WorkTablets']) -# # plan = layout.recommend_layout({ -# # "10μL加长 Tip头": 2, -# # "300μL Tip头": 2, -# # "96深孔板": 2, -# # }) - - - diff --git a/unilabos/devices/liquid_handling/prcxi/base_material.json b/unilabos/devices/liquid_handling/prcxi/base_material.json deleted file mode 100644 index 1206b201..00000000 --- a/unilabos/devices/liquid_handling/prcxi/base_material.json +++ /dev/null @@ -1,954 +0,0 @@ -[ - { - "uuid": "3b6f33ffbf734014bcc20e3c63e124d4", - "Code": "ZX-58-1250", - "Name": "Tip头适配器 1250uL", - "SummaryName": "Tip头适配器 1250uL", - "SupplyType": 2, - "Factory": "宁静致远", - "LengthNum": 128, - "WidthNum": 85, - "HeightNum": 20, - "DepthNum": 4, - "StandardHeight": 0, - "PipetteHeight": null, - "HoleColum": 1, - "HoleRow": 1, - "HoleDiameter": 0, - "Volume": 1250, - "ImagePath": "/images/20220624015044.jpg", - "QRCode": null, - "Qty": 10, - "CreateName": null, - "CreateTime": "2021-12-30 16:03:52.6583727", - "UpdateName": null, - "UpdateTime": "2022-06-24 13:50:44.8123474", - "IsStright": 0, - "IsGeneral": 0, - "IsControl": 1, - "ArmCode": null, - "XSpacing": null, - "YSpacing": null, - "materialEnum": null, - "Margins_X": 0, - "Margins_Y": 0 - }, - { - "uuid": "7c822592b360451fb59690e49ac6b181", - "Code": "ZX-58-300", - "Name": "ZHONGXI 适配器 300uL", - "SummaryName": "ZHONGXI 适配器 300uL", - "SupplyType": 2, - "Factory": "宁静致远", - "LengthNum": 127, - "WidthNum": 85, - "HeightNum": 81, - "DepthNum": 4, - "StandardHeight": 0, - "PipetteHeight": null, - "HoleColum": 1, - "HoleRow": 1, - "HoleDiameter": 0, - "Volume": 300, - "ImagePath": "/images/20220623102838.jpg", - "QRCode": null, - "Qty": 10, - "CreateName": null, - "CreateTime": "2021-12-30 16:07:53.7453351", - "UpdateName": null, - "UpdateTime": "2022-06-23 10:28:38.6190575", - "IsStright": 0, - "IsGeneral": 0, - "IsControl": 1, - "ArmCode": null, - "XSpacing": null, - "YSpacing": null, - "materialEnum": null, - "Margins_X": 0, - "Margins_Y": 0 - }, - { - "uuid": "8cc3dce884ac41c09f4570d0bcbfb01c", - "Code": "ZX-58-10", - "Name": "吸头10ul 适配器", - "SummaryName": "吸头10ul 适配器", - "SupplyType": 2, - "Factory": "宁静致远", - "LengthNum": 128, - "WidthNum": 85, - "HeightNum": 72.3, - "DepthNum": 0, - "StandardHeight": 0, - "PipetteHeight": 0, - "HoleColum": 1, - "HoleRow": 1, - "HoleDiameter": 127, - "Volume": 1000, - "ImagePath": "", - "QRCode": null, - "Qty": 10, - "CreateName": null, - "CreateTime": "2021-12-30 16:37:40.7073733", - "UpdateName": null, - "UpdateTime": "2025-05-30 15:17:01.8231737", - "IsStright": 0, - "IsGeneral": 1, - "IsControl": 1, - "ArmCode": null, - "XSpacing": 0, - "YSpacing": 0, - "materialEnum": 0, - "Margins_X": 0, - "Margins_Y": 0 - }, - { - "uuid": "7960f49ddfe9448abadda89bd1556936", - "Code": "ZX-001-1250", - "Name": "1250μL Tip头", - "SummaryName": "1250μL Tip头", - "SupplyType": 1, - "Factory": "宁静致远", - "LengthNum": 118.09, - "WidthNum": 80.7, - "HeightNum": 107.67, - "DepthNum": 100, - "StandardHeight": 0, - "PipetteHeight": null, - "HoleColum": 12, - "HoleRow": 8, - "HoleDiameter": 7.95, - "Volume": 1250, - "ImagePath": "/images/20220623102536.jpg", - "QRCode": null, - "Qty": 96, - "CreateName": null, - "CreateTime": "2021-12-30 20:53:27.8591195", - "UpdateName": null, - "UpdateTime": "2022-06-23 10:25:36.2592442", - "IsStright": 0, - "IsGeneral": 0, - "IsControl": 1, - "ArmCode": null, - "XSpacing": 9, - "YSpacing": 9, - "materialEnum": null, - "Margins_X": 0, - "Margins_Y": 0 - }, - { - "uuid": "45f2ed3ad925484d96463d675a0ebf66", - "Code": "ZX-001-10", - "Name": "10μL Tip头", - "SummaryName": "10μL Tip头", - "SupplyType": 1, - "Factory": "宁静致远", - "LengthNum": 120.98, - "WidthNum": 82.12, - "HeightNum": 67, - "DepthNum": 39.1, - "StandardHeight": 0, - "PipetteHeight": null, - "HoleColum": 12, - "HoleRow": 8, - "HoleDiameter": 5, - "Volume": 10, - "ImagePath": "/images/20221119041031.jpg", - "QRCode": null, - "Qty": -21, - "CreateName": null, - "CreateTime": "2021-12-30 20:56:53.462015", - "UpdateName": null, - "UpdateTime": "2022-11-19 16:10:31.126801", - "IsStright": 0, - "IsGeneral": 1, - "IsControl": 1, - "ArmCode": null, - "XSpacing": 9, - "YSpacing": 9, - "materialEnum": null, - "Margins_X": 0, - "Margins_Y": 0 - }, - { - "uuid": "068b3815e36b4a72a59bae017011b29f", - "Code": "ZX-001-10+", - "Name": "10μL加长 Tip头", - "SummaryName": "10μL加长 Tip头", - "SupplyType": 1, - "Factory": "宁静致远", - "LengthNum": 122.11, - "WidthNum": 80.05, - "HeightNum": 58.23, - "DepthNum": 45.1, - "StandardHeight": 0, - "PipetteHeight": 60, - "HoleColum": 12, - "HoleRow": 8, - "HoleDiameter": 7, - "Volume": 10, - "ImagePath": "", - "QRCode": null, - "Qty": 42, - "CreateName": null, - "CreateTime": "2021-12-30 20:57:57.331211", - "UpdateName": null, - "UpdateTime": "2025-09-17 17:02:51.2070383", - "IsStright": 0, - "IsGeneral": 0, - "IsControl": 1, - "ArmCode": null, - "XSpacing": 9, - "YSpacing": 9, - "materialEnum": 1, - "Margins_X": 7.97, - "Margins_Y": 5 - }, - { - "uuid": "80652665f6a54402b2408d50b40398df", - "Code": "ZX-001-1000", - "Name": "1000μL Tip头", - "SummaryName": "1000μL Tip头", - "SupplyType": 1, - "Factory": "宁静致远", - "LengthNum": 128.09, - "WidthNum": 85.8, - "HeightNum": 98, - "DepthNum": 88, - "StandardHeight": 0, - "PipetteHeight": 100, - "HoleColum": 12, - "HoleRow": 8, - "HoleDiameter": 7.95, - "Volume": 1000, - "ImagePath": "", - "QRCode": null, - "Qty": 47, - "CreateName": null, - "CreateTime": "2021-12-30 20:59:20.5534915", - "UpdateName": null, - "UpdateTime": "2025-05-30 14:49:53.639727", - "IsStright": 0, - "IsGeneral": 0, - "IsControl": 1, - "ArmCode": null, - "XSpacing": 9, - "YSpacing": 9, - "materialEnum": 1, - "Margins_X": 14.5, - "Margins_Y": 11.4 - }, - { - "uuid": "076250742950465b9d6ea29a225dfb00", - "Code": "ZX-001-300", - "Name": "300μL Tip头", - "SummaryName": "300μL Tip头", - "SupplyType": 1, - "Factory": "宁静致远", - "LengthNum": 122.11, - "WidthNum": 80.05, - "HeightNum": 58.23, - "DepthNum": 45.1, - "StandardHeight": 0, - "PipetteHeight": 60, - "HoleColum": 12, - "HoleRow": 8, - "HoleDiameter": 7, - "Volume": 300, - "ImagePath": "", - "QRCode": null, - "Qty": 11, - "CreateName": null, - "CreateTime": "2021-12-30 21:00:24.7266192", - "UpdateName": null, - "UpdateTime": "2025-09-17 17:02:40.6676947", - "IsStright": 0, - "IsGeneral": 0, - "IsControl": 1, - "ArmCode": null, - "XSpacing": 9, - "YSpacing": 9, - "materialEnum": 1, - "Margins_X": 7.97, - "Margins_Y": 5 - }, - { - "uuid": "7a73bb9e5c264515a8fcbe88aed0e6f7", - "Code": "ZX-001-200", - "Name": "200μL Tip头", - "SummaryName": "200μL Tip头", - "SupplyType": 1, - "Factory": "宁静致远", - "LengthNum": 120.98, - "WidthNum": 82.12, - "HeightNum": 66.9, - "DepthNum": 52, - "StandardHeight": 0, - "PipetteHeight": 30, - "HoleColum": 12, - "HoleRow": 8, - "HoleDiameter": 5.5, - "Volume": 200, - "ImagePath": "", - "QRCode": null, - "Qty": 19, - "CreateName": null, - "CreateTime": "2021-12-30 21:01:17.626704", - "UpdateName": null, - "UpdateTime": "2025-05-27 11:42:24.6021522", - "IsStright": 0, - "IsGeneral": 0, - "IsControl": 1, - "ArmCode": null, - "XSpacing": 9, - "YSpacing": 9, - "materialEnum": 0, - "Margins_X": 0, - "Margins_Y": 0 - }, - { - "uuid": "73bb9b10bc394978b70e027bf45ce2d3", - "Code": "ZX-023-0.2", - "Name": "0.2ml PCR板", - "SummaryName": "0.2ml PCR板", - "SupplyType": 1, - "Factory": "中析", - "LengthNum": 126, - "WidthNum": 86, - "HeightNum": 21.2, - "DepthNum": 15.17, - "StandardHeight": 0, - "PipetteHeight": null, - "HoleColum": 12, - "HoleRow": 8, - "HoleDiameter": 6, - "Volume": 1000, - "ImagePath": "", - "QRCode": null, - "Qty": -12, - "CreateName": null, - "CreateTime": "2021-12-30 21:06:02.7746392", - "UpdateName": null, - "UpdateTime": "2024-02-20 16:17:16.7921748", - "IsStright": 0, - "IsGeneral": 1, - "IsControl": 1, - "ArmCode": null, - "XSpacing": 9, - "YSpacing": 9, - "materialEnum": null, - "Margins_X": 0, - "Margins_Y": 0 - }, - { - "uuid": "ca877b8b114a4310b429d1de4aae96ee", - "Code": "ZX-019-2.2", - "Name": "2.2ml 深孔板", - "SummaryName": "2.2ml 深孔板", - "SupplyType": 1, - "Factory": "宁静致远", - "LengthNum": 127.3, - "WidthNum": 85.35, - "HeightNum": 44, - "DepthNum": 42, - "StandardHeight": 0, - "PipetteHeight": null, - "HoleColum": 12, - "HoleRow": 8, - "HoleDiameter": 8.2, - "Volume": 2200, - "ImagePath": "", - "QRCode": null, - "Qty": 34, - "CreateName": null, - "CreateTime": "2021-12-30 21:07:16.4538022", - "UpdateName": null, - "UpdateTime": "2023-08-12 13:11:26.3993472", - "IsStright": 0, - "IsGeneral": 1, - "IsControl": 1, - "ArmCode": null, - "XSpacing": 9, - "YSpacing": 9, - "materialEnum": null, - "Margins_X": 0, - "Margins_Y": 0 - }, - { - "uuid": "04211a2dc93547fe9bf6121eac533650", - "Code": "ZX-58-10000", - "Name": "储液槽", - "SummaryName": "储液槽", - "SupplyType": 1, - "Factory": "宁静致远", - "LengthNum": 125.02, - "WidthNum": 82.97, - "HeightNum": 31.2, - "DepthNum": 24, - "StandardHeight": 0, - "PipetteHeight": 0, - "HoleColum": 1, - "HoleRow": 1, - "HoleDiameter": 99.33, - "Volume": 1250, - "ImagePath": "", - "QRCode": null, - "Qty": -172, - "CreateName": null, - "CreateTime": "2021-12-31 18:37:56.7949909", - "UpdateName": null, - "UpdateTime": "2025-09-17 17:22:22.8543991", - "IsStright": 0, - "IsGeneral": 0, - "IsControl": 1, - "ArmCode": null, - "XSpacing": 9, - "YSpacing": 9, - "materialEnum": 0, - "Margins_X": 8.5, - "Margins_Y": 5.5 - }, - { - "uuid": "4a043a07c65a4f9bb97745e1f129b165", - "Code": "ZX-58-0001", - "Name": "全裙边 PCR适配器", - "SummaryName": "全裙边 PCR适配器", - "SupplyType": 2, - "Factory": "宁静致远", - "LengthNum": 125.42, - "WidthNum": 83.13, - "HeightNum": 15.69, - "DepthNum": 13.41, - "StandardHeight": 0, - "PipetteHeight": 0, - "HoleColum": 12, - "HoleRow": 8, - "HoleDiameter": 5.1, - "Volume": 1250, - "ImagePath": "", - "QRCode": null, - "Qty": 100, - "CreateName": null, - "CreateTime": "2022-01-02 19:21:35.8664843", - "UpdateName": null, - "UpdateTime": "2025-09-17 17:14:36.1210193", - "IsStright": 1, - "IsGeneral": 1, - "IsControl": 1, - "ArmCode": null, - "XSpacing": 9, - "YSpacing": 9, - "materialEnum": 3, - "Margins_X": 9.78, - "Margins_Y": 7.72 - }, - { - "uuid": "6bdfdd7069df453896b0806df50f2f4d", - "Code": "ZX-ADP-001", - "Name": "储液槽 适配器", - "SummaryName": "储液槽 适配器", - "SupplyType": 2, - "Factory": "宁静致远", - "LengthNum": 133, - "WidthNum": 91.8, - "HeightNum": 70, - "DepthNum": 4, - "StandardHeight": 0, - "PipetteHeight": null, - "HoleColum": 1, - "HoleRow": 1, - "HoleDiameter": 1, - "Volume": 1250, - "ImagePath": "", - "QRCode": null, - "Qty": null, - "CreateName": null, - "CreateTime": "2022-02-16 17:31:26.413594", - "UpdateName": null, - "UpdateTime": "2023-08-12 13:10:58.786996", - "IsStright": 0, - "IsGeneral": 1, - "IsControl": 0, - "ArmCode": null, - "XSpacing": 0, - "YSpacing": 0, - "materialEnum": null, - "Margins_X": 0, - "Margins_Y": 0 - }, - { - "uuid": "9a439bed8f3344549643d6b3bc5a5eb4", - "Code": "ZX-002-300", - "Name": "300ul深孔板适配器", - "SummaryName": "300ul深孔板适配器", - "SupplyType": 2, - "Factory": "宁静致远", - "LengthNum": 136.4, - "WidthNum": 93.8, - "HeightNum": 96, - "DepthNum": 7, - "StandardHeight": 0, - "PipetteHeight": null, - "HoleColum": 12, - "HoleRow": 8, - "HoleDiameter": 8.1, - "Volume": 300, - "ImagePath": "", - "QRCode": null, - "Qty": null, - "CreateName": null, - "CreateTime": "2022-06-18 15:17:42.7917763", - "UpdateName": null, - "UpdateTime": "2023-08-12 13:10:46.1526635", - "IsStright": 0, - "IsGeneral": 1, - "IsControl": 0, - "ArmCode": null, - "XSpacing": 9, - "YSpacing": 9, - "materialEnum": null, - "Margins_X": 0, - "Margins_Y": 0 - }, - { - "uuid": "4dc8d6ecfd0449549683b8ef815a861b", - "Code": "ZX-002-10", - "Name": "10ul专用深孔板适配器", - "SummaryName": "10ul专用深孔板适配器", - "SupplyType": 2, - "Factory": "宁静致远", - "LengthNum": 136.5, - "WidthNum": 93.8, - "HeightNum": 121.5, - "DepthNum": 7, - "StandardHeight": 0, - "PipetteHeight": null, - "HoleColum": 12, - "HoleRow": 8, - "HoleDiameter": 8.1, - "Volume": 10, - "ImagePath": "", - "QRCode": null, - "Qty": null, - "CreateName": null, - "CreateTime": "2022-06-30 09:37:31.0451435", - "UpdateName": null, - "UpdateTime": "2023-08-12 13:10:38.5409878", - "IsStright": 0, - "IsGeneral": 0, - "IsControl": 0, - "ArmCode": null, - "XSpacing": 9, - "YSpacing": 9, - "materialEnum": null, - "Margins_X": 0, - "Margins_Y": 0 - }, - { - "uuid": "b01627718d3341aba649baa81c2c083c", - "Code": "Sd155", - "Name": "爱津", - "SummaryName": "爱津", - "SupplyType": 1, - "Factory": "中析", - "LengthNum": 125, - "WidthNum": 85, - "HeightNum": 64, - "DepthNum": 45.5, - "StandardHeight": 0, - "PipetteHeight": null, - "HoleColum": 12, - "HoleRow": 8, - "HoleDiameter": 4, - "Volume": 20, - "ImagePath": "", - "QRCode": null, - "Qty": null, - "CreateName": null, - "CreateTime": "2022-11-07 08:56:30.1794274", - "UpdateName": null, - "UpdateTime": "2022-11-07 09:00:29.5496845", - "IsStright": 0, - "IsGeneral": 1, - "IsControl": 0, - "ArmCode": null, - "XSpacing": null, - "YSpacing": null, - "materialEnum": null, - "Margins_X": 0, - "Margins_Y": 0 - }, - { - "uuid": "adfabfffa8f24af5abfbba67b8d0f973", - "Code": "Fhh478", - "Name": "适配器", - "SummaryName": "适配器", - "SupplyType": 2, - "Factory": "中析", - "LengthNum": 120, - "WidthNum": 90, - "HeightNum": 86, - "DepthNum": 4, - "StandardHeight": 0, - "PipetteHeight": null, - "HoleColum": 1, - "HoleRow": 1, - "HoleDiameter": 4, - "Volume": 1000, - "ImagePath": null, - "QRCode": null, - "Qty": null, - "CreateName": null, - "CreateTime": "2022-11-07 09:00:10.7579131", - "UpdateName": null, - "UpdateTime": "2022-11-07 09:00:10.7579134", - "IsStright": 0, - "IsGeneral": 1, - "IsControl": 0, - "ArmCode": null, - "XSpacing": null, - "YSpacing": null, - "materialEnum": null, - "Margins_X": 0, - "Margins_Y": 0 - }, - { - "uuid": "730067cf07ae43849ddf4034299030e9", - "Code": "q1", - "Name": "废弃槽", - "SummaryName": "废弃槽", - "SupplyType": 1, - "Factory": "中析", - "LengthNum": 126.59, - "WidthNum": 84.87, - "HeightNum": 103.17, - "DepthNum": 80, - "StandardHeight": 0, - "PipetteHeight": 0, - "HoleColum": 1, - "HoleRow": 1, - "HoleDiameter": 1, - "Volume": 1250, - "ImagePath": "", - "QRCode": null, - "Qty": null, - "CreateName": null, - "CreateTime": "2023-10-14 13:15:45.8172852", - "UpdateName": null, - "UpdateTime": "2025-09-17 17:06:18.3331101", - "IsStright": 0, - "IsGeneral": 1, - "IsControl": 0, - "ArmCode": null, - "XSpacing": 1, - "YSpacing": 1, - "materialEnum": 0, - "Margins_X": 2.29, - "Margins_Y": 2.64 - }, - { - "uuid": "57b1e4711e9e4a32b529f3132fc5931f", - "Code": "q2", - "Name": "96深孔板", - "SummaryName": "96深孔板", - "SupplyType": 1, - "Factory": "中析", - "LengthNum": 127.3, - "WidthNum": 85.35, - "HeightNum": 44, - "DepthNum": 42, - "StandardHeight": 0, - "PipetteHeight": 1, - "HoleColum": 12, - "HoleRow": 8, - "HoleDiameter": 8.2, - "Volume": 1250, - "ImagePath": "", - "QRCode": null, - "Qty": null, - "CreateName": null, - "CreateTime": "2023-10-14 13:19:55.7225524", - "UpdateName": null, - "UpdateTime": "2025-07-03 17:28:59.0082394", - "IsStright": 0, - "IsGeneral": 1, - "IsControl": 0, - "ArmCode": null, - "XSpacing": 9, - "YSpacing": 9, - "materialEnum": 0, - "Margins_X": 15, - "Margins_Y": 10 - }, - { - "uuid": "853dcfb6226f476e8b23c250217dc7da", - "Code": "q3", - "Name": "384板", - "SummaryName": "384板", - "SupplyType": 1, - "Factory": "中析", - "LengthNum": 126.6, - "WidthNum": 84, - "HeightNum": 9.4, - "DepthNum": 8, - "StandardHeight": 0, - "PipetteHeight": null, - "HoleColum": 24, - "HoleRow": 16, - "HoleDiameter": 3, - "Volume": 1250, - "ImagePath": null, - "QRCode": null, - "Qty": null, - "CreateName": null, - "CreateTime": "2023-10-14 13:22:34.779818", - "UpdateName": null, - "UpdateTime": "2023-10-14 13:22:34.7798181", - "IsStright": 0, - "IsGeneral": 1, - "IsControl": 0, - "ArmCode": null, - "XSpacing": 4.5, - "YSpacing": 4.5, - "materialEnum": null, - "Margins_X": 0, - "Margins_Y": 0 - }, - { - "uuid": "01953864f6f140ccaa8ddffd4f3e46f5", - "Code": "sdfrth654", - "Name": "4道储液槽", - "SummaryName": "4道储液槽", - "SupplyType": 1, - "Factory": "中析", - "LengthNum": 100, - "WidthNum": 40, - "HeightNum": 30, - "DepthNum": 10, - "StandardHeight": 0, - "PipetteHeight": null, - "HoleColum": 4, - "HoleRow": 8, - "HoleDiameter": 4, - "Volume": 1000, - "ImagePath": "", - "QRCode": null, - "Qty": null, - "CreateName": null, - "CreateTime": "2024-02-20 14:44:25.0021372", - "UpdateName": null, - "UpdateTime": "2025-03-31 15:09:30.7392062", - "IsStright": 0, - "IsGeneral": 1, - "IsControl": 0, - "ArmCode": null, - "XSpacing": 27, - "YSpacing": 9, - "materialEnum": 0, - "Margins_X": 0, - "Margins_Y": 0 - }, - { - "uuid": "026c5d5cf3d94e56b4e16b7fb53a995b", - "Code": "22", - "Name": "48孔深孔板", - "SummaryName": "48孔深孔板", - "SupplyType": 1, - "Factory": "", - "LengthNum": null, - "WidthNum": null, - "HeightNum": null, - "DepthNum": null, - "StandardHeight": null, - "PipetteHeight": null, - "HoleColum": 6, - "HoleRow": 8, - "HoleDiameter": null, - "Volume": 23, - "ImagePath": null, - "QRCode": null, - "Qty": null, - "CreateName": null, - "CreateTime": "2025-03-19 09:38:09.8535874", - "UpdateName": null, - "UpdateTime": "2025-03-19 09:38:09.8536386", - "IsStright": null, - "IsGeneral": null, - "IsControl": null, - "ArmCode": null, - "XSpacing": 18.5, - "YSpacing": 9, - "materialEnum": 2, - "Margins_X": 0, - "Margins_Y": 0 - }, - { - "uuid": "0f1639987b154e1fac78f4fb29a1f7c1", - "Code": "12道储液槽", - "Name": "12道储液槽", - "SummaryName": "12道储液槽", - "SupplyType": 1, - "Factory": "", - "LengthNum": 129.5, - "WidthNum": 83.047, - "HeightNum": 30.6, - "DepthNum": 26.7, - "StandardHeight": null, - "PipetteHeight": 0, - "HoleColum": 12, - "HoleRow": 8, - "HoleDiameter": 8.04, - "Volume": 12, - "ImagePath": "", - "QRCode": null, - "Qty": null, - "CreateName": null, - "CreateTime": "2025-05-21 13:10:53.2735971", - "UpdateName": null, - "UpdateTime": "2025-09-17 17:20:40.4460256", - "IsStright": null, - "IsGeneral": null, - "IsControl": null, - "ArmCode": null, - "XSpacing": 9, - "YSpacing": 9, - "materialEnum": 0, - "Margins_X": 8.7, - "Margins_Y": 5.35 - }, - { - "uuid": "548bbc3df0d4447586f2c19d2c0c0c55", - "Code": "HPLC01", - "Name": "HPLC料盘", - "SummaryName": "HPLC料盘", - "SupplyType": 1, - "Factory": "", - "LengthNum": 0, - "WidthNum": 0, - "HeightNum": 0, - "DepthNum": 0, - "StandardHeight": null, - "PipetteHeight": 0, - "HoleColum": 7, - "HoleRow": 15, - "HoleDiameter": 0, - "Volume": 1, - "ImagePath": null, - "QRCode": null, - "Qty": null, - "CreateName": null, - "CreateTime": "2025-07-12 17:10:43.2660127", - "UpdateName": null, - "UpdateTime": "2025-07-12 17:10:43.2660131", - "IsStright": null, - "IsGeneral": null, - "IsControl": null, - "ArmCode": null, - "XSpacing": 12.5, - "YSpacing": 16.5, - "materialEnum": 0, - "Margins_X": 0, - "Margins_Y": 0 - }, - { - "uuid": "e146697c395e4eabb3d6b74f0dd6aaf7", - "Code": "1", - "Name": "ep适配器", - "SummaryName": "ep适配器", - "SupplyType": 1, - "Factory": "", - "LengthNum": 128.04, - "WidthNum": 85.8, - "HeightNum": 42.66, - "DepthNum": 38.08, - "StandardHeight": null, - "PipetteHeight": 0, - "HoleColum": 6, - "HoleRow": 4, - "HoleDiameter": 10.6, - "Volume": 1, - "ImagePath": "", - "QRCode": null, - "Qty": null, - "CreateName": null, - "CreateTime": "2025-09-03 13:31:54.1541015", - "UpdateName": null, - "UpdateTime": "2025-09-17 17:18:03.8051993", - "IsStright": null, - "IsGeneral": null, - "IsControl": null, - "ArmCode": null, - "XSpacing": 21, - "YSpacing": 18, - "materialEnum": 0, - "Margins_X": 3.54, - "Margins_Y": 10.5 - }, - { - "uuid": "a0757a90d8e44e81a68f306a608694f2", - "Code": "ZX-58-30", - "Name": "30mm适配器", - "SummaryName": "30mm适配器", - "SupplyType": 2, - "Factory": "", - "LengthNum": 132, - "WidthNum": 93.5, - "HeightNum": 30, - "DepthNum": 7, - "StandardHeight": null, - "PipetteHeight": 0, - "HoleColum": 12, - "HoleRow": 8, - "HoleDiameter": 8.1, - "Volume": 30, - "ImagePath": null, - "QRCode": null, - "Qty": null, - "CreateName": null, - "CreateTime": "2025-09-15 14:02:30.8094658", - "UpdateName": null, - "UpdateTime": "2025-09-15 14:02:30.8098183", - "IsStright": null, - "IsGeneral": null, - "IsControl": null, - "ArmCode": null, - "XSpacing": 9, - "YSpacing": 9, - "materialEnum": 0, - "Margins_X": 0, - "Margins_Y": 0 - }, - { - "uuid": "b05b3b2aafd94ec38ea0cd3215ecea8f", - "Code": "ZX-78-096", - "Name": "细菌培养皿", - "SummaryName": "细菌培养皿", - "SupplyType": 1, - "Factory": "", - "LengthNum": 124.09, - "WidthNum": 81.89, - "HeightNum": 13.67, - "DepthNum": 11.2, - "StandardHeight": null, - "PipetteHeight": 0, - "HoleColum": 12, - "HoleRow": 8, - "HoleDiameter": 6.58, - "Volume": 78, - "ImagePath": null, - "QRCode": null, - "Qty": null, - "CreateName": null, - "CreateTime": "2025-09-17 17:10:54.1859566", - "UpdateName": null, - "UpdateTime": "2025-09-17 17:10:54.1859568", - "IsStright": null, - "IsGeneral": null, - "IsControl": null, - "ArmCode": null, - "XSpacing": 9, - "YSpacing": 9, - "materialEnum": 4, - "Margins_X": 9.28, - "Margins_Y": 6.19 - } -] \ No newline at end of file diff --git a/unilabos/devices/liquid_handling/prcxi/deck.json b/unilabos/devices/liquid_handling/prcxi/deck.json deleted file mode 100644 index ab7e6e9b..00000000 --- a/unilabos/devices/liquid_handling/prcxi/deck.json +++ /dev/null @@ -1,41155 +0,0 @@ -[ - { - "id": "PRCXI_Deck", - "name": "PRCXI_Deck", - "sample_id": null, - "children": [ - "RackT1", - "PlateT2", - "container_for_nothin3", - "PlateT4", - "RackT5", - "PlateT6", - "container_for_nothing7", - "container_for_nothing8", - "PlateT9", - "PlateT10", - "container_for_nothing11", - "container_for_nothing12", - "PlateT13", - "PlateT14", - "PlateT15", - "trash" - ], - "parent": null, - "type": "deck", - "class": "", - "position": { - "x": 0, - "y": 0, - "z": 0 - }, - "config": { - "type": "PRCXI9300Deck", - "size_x": 100, - "size_y": 100, - "size_z": 100, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "deck", - "barcode": null - }, - "data": {} - }, - { - "id": "RackT1", - "name": "RackT1", - "sample_id": null, - "children": [ - "RackT1_A1", - "RackT1_B1", - "RackT1_C1", - "RackT1_D1", - "RackT1_E1", - "RackT1_F1", - "RackT1_G1", - "RackT1_H1", - "RackT1_A2", - "RackT1_B2", - "RackT1_C2", - "RackT1_D2", - "RackT1_E2", - "RackT1_F2", - "RackT1_G2", - "RackT1_H2", - "RackT1_A3", - "RackT1_B3", - "RackT1_C3", - "RackT1_D3", - "RackT1_E3", - "RackT1_F3", - "RackT1_G3", - "RackT1_H3", - "RackT1_A4", - "RackT1_B4", - "RackT1_C4", - "RackT1_D4", - "RackT1_E4", - "RackT1_F4", - "RackT1_G4", - "RackT1_H4", - "RackT1_A5", - "RackT1_B5", - "RackT1_C5", - "RackT1_D5", - "RackT1_E5", - "RackT1_F5", - "RackT1_G5", - "RackT1_H5", - "RackT1_A6", - "RackT1_B6", - "RackT1_C6", - "RackT1_D6", - "RackT1_E6", - "RackT1_F6", - "RackT1_G6", - "RackT1_H6", - "RackT1_A7", - "RackT1_B7", - "RackT1_C7", - "RackT1_D7", - "RackT1_E7", - "RackT1_F7", - "RackT1_G7", - "RackT1_H7", - "RackT1_A8", - "RackT1_B8", - "RackT1_C8", - "RackT1_D8", - "RackT1_E8", - "RackT1_F8", - "RackT1_G8", - "RackT1_H8", - "RackT1_A9", - "RackT1_B9", - "RackT1_C9", - "RackT1_D9", - "RackT1_E9", - "RackT1_F9", - "RackT1_G9", - "RackT1_H9", - "RackT1_A10", - "RackT1_B10", - "RackT1_C10", - "RackT1_D10", - "RackT1_E10", - "RackT1_F10", - "RackT1_G10", - "RackT1_H10", - "RackT1_A11", - "RackT1_B11", - "RackT1_C11", - "RackT1_D11", - "RackT1_E11", - "RackT1_F11", - "RackT1_G11", - "RackT1_H11", - "RackT1_A12", - "RackT1_B12", - "RackT1_C12", - "RackT1_D12", - "RackT1_E12", - "RackT1_F12", - "RackT1_G12", - "RackT1_H12" - ], - "parent": "PRCXI_Deck", - "type": "container", - "class": "", - "position": { - "x": 0, - "y": 0, - "z": 0 - }, - "config": { - "type": "PRCXI9300TipRack", - "size_x": 50, - "size_y": 50, - "size_z": 10, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "tip_rack", - "model": null, - "barcode": null, - "ordering": { - "A1": "tip_A1", - "B1": "tip_B1", - "C1": "tip_C1", - "D1": "tip_D1", - "E1": "tip_E1", - "F1": "tip_F1", - "G1": "tip_G1", - "H1": "tip_H1", - "A2": "tip_A2", - "B2": "tip_B2", - "C2": "tip_C2", - "D2": "tip_D2", - "E2": "tip_E2", - "F2": "tip_F2", - "G2": "tip_G2", - "H2": "tip_H2", - "A3": "tip_A3", - "B3": "tip_B3", - "C3": "tip_C3", - "D3": "tip_D3", - "E3": "tip_E3", - "F3": "tip_F3", - "G3": "tip_G3", - "H3": "tip_H3", - "A4": "tip_A4", - "B4": "tip_B4", - "C4": "tip_C4", - "D4": "tip_D4", - "E4": "tip_E4", - "F4": "tip_F4", - "G4": "tip_G4", - "H4": "tip_H4", - "A5": "tip_A5", - "B5": "tip_B5", - "C5": "tip_C5", - "D5": "tip_D5", - "E5": "tip_E5", - "F5": "tip_F5", - "G5": "tip_G5", - "H5": "tip_H5", - "A6": "tip_A6", - "B6": "tip_B6", - "C6": "tip_C6", - "D6": "tip_D6", - "E6": "tip_E6", - "F6": "tip_F6", - "G6": "tip_G6", - "H6": "tip_H6", - "A7": "tip_A7", - "B7": "tip_B7", - "C7": "tip_C7", - "D7": "tip_D7", - "E7": "tip_E7", - "F7": "tip_F7", - "G7": "tip_G7", - "H7": "tip_H7", - "A8": "tip_A8", - "B8": "tip_B8", - "C8": "tip_C8", - "D8": "tip_D8", - "E8": "tip_E8", - "F8": "tip_F8", - "G8": "tip_G8", - "H8": "tip_H8", - "A9": "tip_A9", - "B9": "tip_B9", - "C9": "tip_C9", - "D9": "tip_D9", - "E9": "tip_E9", - "F9": "tip_F9", - "G9": "tip_G9", - "H9": "tip_H9", - "A10": "tip_A10", - "B10": "tip_B10", - "C10": "tip_C10", - "D10": "tip_D10", - "E10": "tip_E10", - "F10": "tip_F10", - "G10": "tip_G10", - "H10": "tip_H10", - "A11": "tip_A11", - "B11": "tip_B11", - "C11": "tip_C11", - "D11": "tip_D11", - "E11": "tip_E11", - "F11": "tip_F11", - "G11": "tip_G11", - "H11": "tip_H11", - "A12": "tip_A12", - "B12": "tip_B12", - "C12": "tip_C12", - "D12": "tip_D12", - "E12": "tip_E12", - "F12": "tip_F12", - "G12": "tip_G12", - "H12": "tip_H12" - } - }, - "data": { - "Material": { - "uuid": "068b3815e36b4a72a59bae017011b29f", - "Code": "ZX-001-10+", - "Name": "10μL加长 Tip头" - } - } - }, - { - "id": "RackT1_A1", - "name": "RackT1_A1", - "sample_id": null, - "children": [], - "parent": "RackT1", - "type": "container", - "class": "", - "position": { - "x": 13.224, - "y": 73.084, - "z": 25.49 - }, - "config": { - "type": "TipSpot", - "size_x": 2.312, - "size_y": 2.312, - "size_z": 0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "tip_spot", - "model": null, - "barcode": null, - "prototype_tip": { - "type": "Tip", - "total_tip_length": 39.2, - "has_filter": false, - "maximal_volume": 10.0, - "fitting_depth": 3.29 - } - }, - "data": { - "tip": null, - "tip_state": null, - "pending_tip": null - } - }, - { - "id": "RackT1_B1", - "name": "RackT1_B1", - "sample_id": null, - "children": [], - "parent": "RackT1", - "type": "container", - "class": "", - "position": { - "x": 13.224, - "y": 64.084, - "z": 25.49 - }, - "config": { - "type": "TipSpot", - "size_x": 2.312, - "size_y": 2.312, - "size_z": 0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "tip_spot", - "model": null, - "barcode": null, - "prototype_tip": { - "type": "Tip", - "total_tip_length": 39.2, - "has_filter": false, - "maximal_volume": 10.0, - "fitting_depth": 3.29 - } - }, - "data": { - "tip": null, - "tip_state": null, - "pending_tip": null - } - }, - { - "id": "RackT1_C1", - "name": "RackT1_C1", - "sample_id": null, - "children": [], - "parent": "RackT1", - "type": "container", - "class": "", - "position": { - "x": 13.224, - "y": 55.084, - "z": 25.49 - }, - "config": { - "type": "TipSpot", - "size_x": 2.312, - "size_y": 2.312, - "size_z": 0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "tip_spot", - "model": null, - "barcode": null, - "prototype_tip": { - "type": "Tip", - "total_tip_length": 39.2, - "has_filter": false, - "maximal_volume": 10.0, - "fitting_depth": 3.29 - } - }, - "data": { - "tip": null, - "tip_state": null, - "pending_tip": null - } - }, - { - "id": "RackT1_D1", - "name": "RackT1_D1", - "sample_id": null, - "children": [], - "parent": "RackT1", - "type": "container", - "class": "", - "position": { - "x": 13.224, - "y": 46.084, - "z": 25.49 - }, - "config": { - "type": "TipSpot", - "size_x": 2.312, - "size_y": 2.312, - "size_z": 0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "tip_spot", - "model": null, - "barcode": null, - "prototype_tip": { - "type": "Tip", - "total_tip_length": 39.2, - "has_filter": false, - "maximal_volume": 10.0, - "fitting_depth": 3.29 - } - }, - "data": { - "tip": null, - "tip_state": null, - "pending_tip": null - } - }, - { - "id": "RackT1_E1", - "name": "RackT1_E1", - "sample_id": null, - "children": [], - "parent": "RackT1", - "type": "container", - "class": "", - "position": { - "x": 13.224, - "y": 37.084, - "z": 25.49 - }, - "config": { - "type": "TipSpot", - "size_x": 2.312, - "size_y": 2.312, - "size_z": 0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "tip_spot", - "model": null, - "barcode": null, - "prototype_tip": { - "type": "Tip", - "total_tip_length": 39.2, - "has_filter": false, - "maximal_volume": 10.0, - "fitting_depth": 3.29 - } - }, - "data": { - "tip": null, - "tip_state": null, - "pending_tip": null - } - }, - { - "id": "RackT1_F1", - "name": "RackT1_F1", - "sample_id": null, - "children": [], - "parent": "RackT1", - "type": "container", - "class": "", - "position": { - "x": 13.224, - "y": 28.084, - "z": 25.49 - }, - "config": { - "type": "TipSpot", - "size_x": 2.312, - "size_y": 2.312, - "size_z": 0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "tip_spot", - "model": null, - "barcode": null, - "prototype_tip": { - "type": "Tip", - "total_tip_length": 39.2, - "has_filter": false, - "maximal_volume": 10.0, - "fitting_depth": 3.29 - } - }, - "data": { - "tip": null, - "tip_state": null, - "pending_tip": null - } - }, - { - "id": "RackT1_G1", - "name": "RackT1_G1", - "sample_id": null, - "children": [], - "parent": "RackT1", - "type": "container", - "class": "", - "position": { - "x": 13.224, - "y": 19.084, - "z": 25.49 - }, - "config": { - "type": "TipSpot", - "size_x": 2.312, - "size_y": 2.312, - "size_z": 0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "tip_spot", - "model": null, - "barcode": null, - "prototype_tip": { - "type": "Tip", - "total_tip_length": 39.2, - "has_filter": false, - "maximal_volume": 10.0, - "fitting_depth": 3.29 - } - }, - "data": { - "tip": null, - "tip_state": null, - "pending_tip": null - } - }, - { - "id": "RackT1_H1", - "name": "RackT1_H1", - "sample_id": null, - "children": [], - "parent": "RackT1", - "type": "container", - "class": "", - "position": { - "x": 13.224, - "y": 10.084, - "z": 25.49 - }, - "config": { - "type": "TipSpot", - "size_x": 2.312, - "size_y": 2.312, - "size_z": 0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "tip_spot", - "model": null, - "barcode": null, - "prototype_tip": { - "type": "Tip", - "total_tip_length": 39.2, - "has_filter": false, - "maximal_volume": 10.0, - "fitting_depth": 3.29 - } - }, - "data": { - "tip": null, - "tip_state": null, - "pending_tip": null - } - }, - { - "id": "RackT1_A2", - "name": "RackT1_A2", - "sample_id": null, - "children": [], - "parent": "RackT1", - "type": "container", - "class": "", - "position": { - "x": 22.224, - "y": 73.084, - "z": 25.49 - }, - "config": { - "type": "TipSpot", - "size_x": 2.312, - "size_y": 2.312, - "size_z": 0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "tip_spot", - "model": null, - "barcode": null, - "prototype_tip": { - "type": "Tip", - "total_tip_length": 39.2, - "has_filter": false, - "maximal_volume": 10.0, - "fitting_depth": 3.29 - } - }, - "data": { - "tip": null, - "tip_state": null, - "pending_tip": null - } - }, - { - "id": "RackT1_B2", - "name": "RackT1_B2", - "sample_id": null, - "children": [], - "parent": "RackT1", - "type": "container", - "class": "", - "position": { - "x": 22.224, - "y": 64.084, - "z": 25.49 - }, - "config": { - "type": "TipSpot", - "size_x": 2.312, - "size_y": 2.312, - "size_z": 0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "tip_spot", - "model": null, - "barcode": null, - "prototype_tip": { - "type": "Tip", - "total_tip_length": 39.2, - "has_filter": false, - "maximal_volume": 10.0, - "fitting_depth": 3.29 - } - }, - "data": { - "tip": null, - "tip_state": null, - "pending_tip": null - } - }, - { - "id": "RackT1_C2", - "name": "RackT1_C2", - "sample_id": null, - "children": [], - "parent": "RackT1", - "type": "container", - "class": "", - "position": { - "x": 22.224, - "y": 55.084, - "z": 25.49 - }, - "config": { - "type": "TipSpot", - "size_x": 2.312, - "size_y": 2.312, - "size_z": 0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "tip_spot", - "model": null, - "barcode": null, - "prototype_tip": { - "type": "Tip", - "total_tip_length": 39.2, - "has_filter": false, - "maximal_volume": 10.0, - "fitting_depth": 3.29 - } - }, - "data": { - "tip": null, - "tip_state": null, - "pending_tip": null - } - }, - { - "id": "RackT1_D2", - "name": "RackT1_D2", - "sample_id": null, - "children": [], - "parent": "RackT1", - "type": "container", - "class": "", - "position": { - "x": 22.224, - "y": 46.084, - "z": 25.49 - }, - "config": { - "type": "TipSpot", - "size_x": 2.312, - "size_y": 2.312, - "size_z": 0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "tip_spot", - "model": null, - "barcode": null, - "prototype_tip": { - "type": "Tip", - "total_tip_length": 39.2, - "has_filter": false, - "maximal_volume": 10.0, - "fitting_depth": 3.29 - } - }, - "data": { - "tip": null, - "tip_state": null, - "pending_tip": null - } - }, - { - "id": "RackT1_E2", - "name": "RackT1_E2", - "sample_id": null, - "children": [], - "parent": "RackT1", - "type": "container", - "class": "", - "position": { - "x": 22.224, - "y": 37.084, - "z": 25.49 - }, - "config": { - "type": "TipSpot", - "size_x": 2.312, - "size_y": 2.312, - "size_z": 0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "tip_spot", - "model": null, - "barcode": null, - "prototype_tip": { - "type": "Tip", - "total_tip_length": 39.2, - "has_filter": false, - "maximal_volume": 10.0, - "fitting_depth": 3.29 - } - }, - "data": { - "tip": null, - "tip_state": null, - "pending_tip": null - } - }, - { - "id": "RackT1_F2", - "name": "RackT1_F2", - "sample_id": null, - "children": [], - "parent": "RackT1", - "type": "container", - "class": "", - "position": { - "x": 22.224, - "y": 28.084, - "z": 25.49 - }, - "config": { - "type": "TipSpot", - "size_x": 2.312, - "size_y": 2.312, - "size_z": 0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "tip_spot", - "model": null, - "barcode": null, - "prototype_tip": { - "type": "Tip", - "total_tip_length": 39.2, - "has_filter": false, - "maximal_volume": 10.0, - "fitting_depth": 3.29 - } - }, - "data": { - "tip": null, - "tip_state": null, - "pending_tip": null - } - }, - { - "id": "RackT1_G2", - "name": "RackT1_G2", - "sample_id": null, - "children": [], - "parent": "RackT1", - "type": "container", - "class": "", - "position": { - "x": 22.224, - "y": 19.084, - "z": 25.49 - }, - "config": { - "type": "TipSpot", - "size_x": 2.312, - "size_y": 2.312, - "size_z": 0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "tip_spot", - "model": null, - "barcode": null, - "prototype_tip": { - "type": "Tip", - "total_tip_length": 39.2, - "has_filter": false, - "maximal_volume": 10.0, - "fitting_depth": 3.29 - } - }, - "data": { - "tip": null, - "tip_state": null, - "pending_tip": null - } - }, - { - "id": "RackT1_H2", - "name": "RackT1_H2", - "sample_id": null, - "children": [], - "parent": "RackT1", - "type": "container", - "class": "", - "position": { - "x": 22.224, - "y": 10.084, - "z": 25.49 - }, - "config": { - "type": "TipSpot", - "size_x": 2.312, - "size_y": 2.312, - "size_z": 0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "tip_spot", - "model": null, - "barcode": null, - "prototype_tip": { - "type": "Tip", - "total_tip_length": 39.2, - "has_filter": false, - "maximal_volume": 10.0, - "fitting_depth": 3.29 - } - }, - "data": { - "tip": null, - "tip_state": null, - "pending_tip": null - } - }, - { - "id": "RackT1_A3", - "name": "RackT1_A3", - "sample_id": null, - "children": [], - "parent": "RackT1", - "type": "container", - "class": "", - "position": { - "x": 31.224, - "y": 73.084, - "z": 25.49 - }, - "config": { - "type": "TipSpot", - "size_x": 2.312, - "size_y": 2.312, - "size_z": 0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "tip_spot", - "model": null, - "barcode": null, - "prototype_tip": { - "type": "Tip", - "total_tip_length": 39.2, - "has_filter": false, - "maximal_volume": 10.0, - "fitting_depth": 3.29 - } - }, - "data": { - "tip": null, - "tip_state": null, - "pending_tip": null - } - }, - { - "id": "RackT1_B3", - "name": "RackT1_B3", - "sample_id": null, - "children": [], - "parent": "RackT1", - "type": "container", - "class": "", - "position": { - "x": 31.224, - "y": 64.084, - "z": 25.49 - }, - "config": { - "type": "TipSpot", - "size_x": 2.312, - "size_y": 2.312, - "size_z": 0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "tip_spot", - "model": null, - "barcode": null, - "prototype_tip": { - "type": "Tip", - "total_tip_length": 39.2, - "has_filter": false, - "maximal_volume": 10.0, - "fitting_depth": 3.29 - } - }, - "data": { - "tip": null, - "tip_state": null, - "pending_tip": null - } - }, - { - "id": "RackT1_C3", - "name": "RackT1_C3", - "sample_id": null, - "children": [], - "parent": "RackT1", - "type": "container", - "class": "", - "position": { - "x": 31.224, - "y": 55.084, - "z": 25.49 - }, - "config": { - "type": "TipSpot", - "size_x": 2.312, - "size_y": 2.312, - "size_z": 0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "tip_spot", - "model": null, - "barcode": null, - "prototype_tip": { - "type": "Tip", - "total_tip_length": 39.2, - "has_filter": false, - "maximal_volume": 10.0, - "fitting_depth": 3.29 - } - }, - "data": { - "tip": null, - "tip_state": null, - "pending_tip": null - } - }, - { - "id": "RackT1_D3", - "name": "RackT1_D3", - "sample_id": null, - "children": [], - "parent": "RackT1", - "type": "container", - "class": "", - "position": { - "x": 31.224, - "y": 46.084, - "z": 25.49 - }, - "config": { - "type": "TipSpot", - "size_x": 2.312, - "size_y": 2.312, - "size_z": 0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "tip_spot", - "model": null, - "barcode": null, - "prototype_tip": { - "type": "Tip", - "total_tip_length": 39.2, - "has_filter": false, - "maximal_volume": 10.0, - "fitting_depth": 3.29 - } - }, - "data": { - "tip": null, - "tip_state": null, - "pending_tip": null - } - }, - { - "id": "RackT1_E3", - "name": "RackT1_E3", - "sample_id": null, - "children": [], - "parent": "RackT1", - "type": "container", - "class": "", - "position": { - "x": 31.224, - "y": 37.084, - "z": 25.49 - }, - "config": { - "type": "TipSpot", - "size_x": 2.312, - "size_y": 2.312, - "size_z": 0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "tip_spot", - "model": null, - "barcode": null, - "prototype_tip": { - "type": "Tip", - "total_tip_length": 39.2, - "has_filter": false, - "maximal_volume": 10.0, - "fitting_depth": 3.29 - } - }, - "data": { - "tip": null, - "tip_state": null, - "pending_tip": null - } - }, - { - "id": "RackT1_F3", - "name": "RackT1_F3", - "sample_id": null, - "children": [], - "parent": "RackT1", - "type": "container", - "class": "", - "position": { - "x": 31.224, - "y": 28.084, - "z": 25.49 - }, - "config": { - "type": "TipSpot", - "size_x": 2.312, - "size_y": 2.312, - "size_z": 0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "tip_spot", - "model": null, - "barcode": null, - "prototype_tip": { - "type": "Tip", - "total_tip_length": 39.2, - "has_filter": false, - "maximal_volume": 10.0, - "fitting_depth": 3.29 - } - }, - "data": { - "tip": null, - "tip_state": null, - "pending_tip": null - } - }, - { - "id": "RackT1_G3", - "name": "RackT1_G3", - "sample_id": null, - "children": [], - "parent": "RackT1", - "type": "container", - "class": "", - "position": { - "x": 31.224, - "y": 19.084, - "z": 25.49 - }, - "config": { - "type": "TipSpot", - "size_x": 2.312, - "size_y": 2.312, - "size_z": 0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "tip_spot", - "model": null, - "barcode": null, - "prototype_tip": { - "type": "Tip", - "total_tip_length": 39.2, - "has_filter": false, - "maximal_volume": 10.0, - "fitting_depth": 3.29 - } - }, - "data": { - "tip": null, - "tip_state": null, - "pending_tip": null - } - }, - { - "id": "RackT1_H3", - "name": "RackT1_H3", - "sample_id": null, - "children": [], - "parent": "RackT1", - "type": "container", - "class": "", - "position": { - "x": 31.224, - "y": 10.084, - "z": 25.49 - }, - "config": { - "type": "TipSpot", - "size_x": 2.312, - "size_y": 2.312, - "size_z": 0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "tip_spot", - "model": null, - "barcode": null, - "prototype_tip": { - "type": "Tip", - "total_tip_length": 39.2, - "has_filter": false, - "maximal_volume": 10.0, - "fitting_depth": 3.29 - } - }, - "data": { - "tip": null, - "tip_state": null, - "pending_tip": null - } - }, - { - "id": "RackT1_A4", - "name": "RackT1_A4", - "sample_id": null, - "children": [], - "parent": "RackT1", - "type": "container", - "class": "", - "position": { - "x": 40.224, - "y": 73.084, - "z": 25.49 - }, - "config": { - "type": "TipSpot", - "size_x": 2.312, - "size_y": 2.312, - "size_z": 0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "tip_spot", - "model": null, - "barcode": null, - "prototype_tip": { - "type": "Tip", - "total_tip_length": 39.2, - "has_filter": false, - "maximal_volume": 10.0, - "fitting_depth": 3.29 - } - }, - "data": { - "tip": null, - "tip_state": null, - "pending_tip": null - } - }, - { - "id": "RackT1_B4", - "name": "RackT1_B4", - "sample_id": null, - "children": [], - "parent": "RackT1", - "type": "container", - "class": "", - "position": { - "x": 40.224, - "y": 64.084, - "z": 25.49 - }, - "config": { - "type": "TipSpot", - "size_x": 2.312, - "size_y": 2.312, - "size_z": 0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "tip_spot", - "model": null, - "barcode": null, - "prototype_tip": { - "type": "Tip", - "total_tip_length": 39.2, - "has_filter": false, - "maximal_volume": 10.0, - "fitting_depth": 3.29 - } - }, - "data": { - "tip": null, - "tip_state": null, - "pending_tip": null - } - }, - { - "id": "RackT1_C4", - "name": "RackT1_C4", - "sample_id": null, - "children": [], - "parent": "RackT1", - "type": "container", - "class": "", - "position": { - "x": 40.224, - "y": 55.084, - "z": 25.49 - }, - "config": { - "type": "TipSpot", - "size_x": 2.312, - "size_y": 2.312, - "size_z": 0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "tip_spot", - "model": null, - "barcode": null, - "prototype_tip": { - "type": "Tip", - "total_tip_length": 39.2, - "has_filter": false, - "maximal_volume": 10.0, - "fitting_depth": 3.29 - } - }, - "data": { - "tip": null, - "tip_state": null, - "pending_tip": null - } - }, - { - "id": "RackT1_D4", - "name": "RackT1_D4", - "sample_id": null, - "children": [], - "parent": "RackT1", - "type": "container", - "class": "", - "position": { - "x": 40.224, - "y": 46.084, - "z": 25.49 - }, - "config": { - "type": "TipSpot", - "size_x": 2.312, - "size_y": 2.312, - "size_z": 0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "tip_spot", - "model": null, - "barcode": null, - "prototype_tip": { - "type": "Tip", - "total_tip_length": 39.2, - "has_filter": false, - "maximal_volume": 10.0, - "fitting_depth": 3.29 - } - }, - "data": { - "tip": null, - "tip_state": null, - "pending_tip": null - } - }, - { - "id": "RackT1_E4", - "name": "RackT1_E4", - "sample_id": null, - "children": [], - "parent": "RackT1", - "type": "container", - "class": "", - "position": { - "x": 40.224, - "y": 37.084, - "z": 25.49 - }, - "config": { - "type": "TipSpot", - "size_x": 2.312, - "size_y": 2.312, - "size_z": 0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "tip_spot", - "model": null, - "barcode": null, - "prototype_tip": { - "type": "Tip", - "total_tip_length": 39.2, - "has_filter": false, - "maximal_volume": 10.0, - "fitting_depth": 3.29 - } - }, - "data": { - "tip": null, - "tip_state": null, - "pending_tip": null - } - }, - { - "id": "RackT1_F4", - "name": "RackT1_F4", - "sample_id": null, - "children": [], - "parent": "RackT1", - "type": "container", - "class": "", - "position": { - "x": 40.224, - "y": 28.084, - "z": 25.49 - }, - "config": { - "type": "TipSpot", - "size_x": 2.312, - "size_y": 2.312, - "size_z": 0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "tip_spot", - "model": null, - "barcode": null, - "prototype_tip": { - "type": "Tip", - "total_tip_length": 39.2, - "has_filter": false, - "maximal_volume": 10.0, - "fitting_depth": 3.29 - } - }, - "data": { - "tip": null, - "tip_state": null, - "pending_tip": null - } - }, - { - "id": "RackT1_G4", - "name": "RackT1_G4", - "sample_id": null, - "children": [], - "parent": "RackT1", - "type": "container", - "class": "", - "position": { - "x": 40.224, - "y": 19.084, - "z": 25.49 - }, - "config": { - "type": "TipSpot", - "size_x": 2.312, - "size_y": 2.312, - "size_z": 0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "tip_spot", - "model": null, - "barcode": null, - "prototype_tip": { - "type": "Tip", - "total_tip_length": 39.2, - "has_filter": false, - "maximal_volume": 10.0, - "fitting_depth": 3.29 - } - }, - "data": { - "tip": null, - "tip_state": null, - "pending_tip": null - } - }, - { - "id": "RackT1_H4", - "name": "RackT1_H4", - "sample_id": null, - "children": [], - "parent": "RackT1", - "type": "container", - "class": "", - "position": { - "x": 40.224, - "y": 10.084, - "z": 25.49 - }, - "config": { - "type": "TipSpot", - "size_x": 2.312, - "size_y": 2.312, - "size_z": 0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "tip_spot", - "model": null, - "barcode": null, - "prototype_tip": { - "type": "Tip", - "total_tip_length": 39.2, - "has_filter": false, - "maximal_volume": 10.0, - "fitting_depth": 3.29 - } - }, - "data": { - "tip": null, - "tip_state": null, - "pending_tip": null - } - }, - { - "id": "RackT1_A5", - "name": "RackT1_A5", - "sample_id": null, - "children": [], - "parent": "RackT1", - "type": "container", - "class": "", - "position": { - "x": 49.224, - "y": 73.084, - "z": 25.49 - }, - "config": { - "type": "TipSpot", - "size_x": 2.312, - "size_y": 2.312, - "size_z": 0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "tip_spot", - "model": null, - "barcode": null, - "prototype_tip": { - "type": "Tip", - "total_tip_length": 39.2, - "has_filter": false, - "maximal_volume": 10.0, - "fitting_depth": 3.29 - } - }, - "data": { - "tip": null, - "tip_state": null, - "pending_tip": null - } - }, - { - "id": "RackT1_B5", - "name": "RackT1_B5", - "sample_id": null, - "children": [], - "parent": "RackT1", - "type": "container", - "class": "", - "position": { - "x": 49.224, - "y": 64.084, - "z": 25.49 - }, - "config": { - "type": "TipSpot", - "size_x": 2.312, - "size_y": 2.312, - "size_z": 0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "tip_spot", - "model": null, - "barcode": null, - "prototype_tip": { - "type": "Tip", - "total_tip_length": 39.2, - "has_filter": false, - "maximal_volume": 10.0, - "fitting_depth": 3.29 - } - }, - "data": { - "tip": null, - "tip_state": null, - "pending_tip": null - } - }, - { - "id": "RackT1_C5", - "name": "RackT1_C5", - "sample_id": null, - "children": [], - "parent": "RackT1", - "type": "container", - "class": "", - "position": { - "x": 49.224, - "y": 55.084, - "z": 25.49 - }, - "config": { - "type": "TipSpot", - "size_x": 2.312, - "size_y": 2.312, - "size_z": 0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "tip_spot", - "model": null, - "barcode": null, - "prototype_tip": { - "type": "Tip", - "total_tip_length": 39.2, - "has_filter": false, - "maximal_volume": 10.0, - "fitting_depth": 3.29 - } - }, - "data": { - "tip": null, - "tip_state": null, - "pending_tip": null - } - }, - { - "id": "RackT1_D5", - "name": "RackT1_D5", - "sample_id": null, - "children": [], - "parent": "RackT1", - "type": "container", - "class": "", - "position": { - "x": 49.224, - "y": 46.084, - "z": 25.49 - }, - "config": { - "type": "TipSpot", - "size_x": 2.312, - "size_y": 2.312, - "size_z": 0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "tip_spot", - "model": null, - "barcode": null, - "prototype_tip": { - "type": "Tip", - "total_tip_length": 39.2, - "has_filter": false, - "maximal_volume": 10.0, - "fitting_depth": 3.29 - } - }, - "data": { - "tip": null, - "tip_state": null, - "pending_tip": null - } - }, - { - "id": "RackT1_E5", - "name": "RackT1_E5", - "sample_id": null, - "children": [], - "parent": "RackT1", - "type": "container", - "class": "", - "position": { - "x": 49.224, - "y": 37.084, - "z": 25.49 - }, - "config": { - "type": "TipSpot", - "size_x": 2.312, - "size_y": 2.312, - "size_z": 0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "tip_spot", - "model": null, - "barcode": null, - "prototype_tip": { - "type": "Tip", - "total_tip_length": 39.2, - "has_filter": false, - "maximal_volume": 10.0, - "fitting_depth": 3.29 - } - }, - "data": { - "tip": null, - "tip_state": null, - "pending_tip": null - } - }, - { - "id": "RackT1_F5", - "name": "RackT1_F5", - "sample_id": null, - "children": [], - "parent": "RackT1", - "type": "container", - "class": "", - "position": { - "x": 49.224, - "y": 28.084, - "z": 25.49 - }, - "config": { - "type": "TipSpot", - "size_x": 2.312, - "size_y": 2.312, - "size_z": 0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "tip_spot", - "model": null, - "barcode": null, - "prototype_tip": { - "type": "Tip", - "total_tip_length": 39.2, - "has_filter": false, - "maximal_volume": 10.0, - "fitting_depth": 3.29 - } - }, - "data": { - "tip": null, - "tip_state": null, - "pending_tip": null - } - }, - { - "id": "RackT1_G5", - "name": "RackT1_G5", - "sample_id": null, - "children": [], - "parent": "RackT1", - "type": "container", - "class": "", - "position": { - "x": 49.224, - "y": 19.084, - "z": 25.49 - }, - "config": { - "type": "TipSpot", - "size_x": 2.312, - "size_y": 2.312, - "size_z": 0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "tip_spot", - "model": null, - "barcode": null, - "prototype_tip": { - "type": "Tip", - "total_tip_length": 39.2, - "has_filter": false, - "maximal_volume": 10.0, - "fitting_depth": 3.29 - } - }, - "data": { - "tip": null, - "tip_state": null, - "pending_tip": null - } - }, - { - "id": "RackT1_H5", - "name": "RackT1_H5", - "sample_id": null, - "children": [], - "parent": "RackT1", - "type": "container", - "class": "", - "position": { - "x": 49.224, - "y": 10.084, - "z": 25.49 - }, - "config": { - "type": "TipSpot", - "size_x": 2.312, - "size_y": 2.312, - "size_z": 0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "tip_spot", - "model": null, - "barcode": null, - "prototype_tip": { - "type": "Tip", - "total_tip_length": 39.2, - "has_filter": false, - "maximal_volume": 10.0, - "fitting_depth": 3.29 - } - }, - "data": { - "tip": null, - "tip_state": null, - "pending_tip": null - } - }, - { - "id": "RackT1_A6", - "name": "RackT1_A6", - "sample_id": null, - "children": [], - "parent": "RackT1", - "type": "container", - "class": "", - "position": { - "x": 58.224, - "y": 73.084, - "z": 25.49 - }, - "config": { - "type": "TipSpot", - "size_x": 2.312, - "size_y": 2.312, - "size_z": 0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "tip_spot", - "model": null, - "barcode": null, - "prototype_tip": { - "type": "Tip", - "total_tip_length": 39.2, - "has_filter": false, - "maximal_volume": 10.0, - "fitting_depth": 3.29 - } - }, - "data": { - "tip": null, - "tip_state": null, - "pending_tip": null - } - }, - { - "id": "RackT1_B6", - "name": "RackT1_B6", - "sample_id": null, - "children": [], - "parent": "RackT1", - "type": "container", - "class": "", - "position": { - "x": 58.224, - "y": 64.084, - "z": 25.49 - }, - "config": { - "type": "TipSpot", - "size_x": 2.312, - "size_y": 2.312, - "size_z": 0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "tip_spot", - "model": null, - "barcode": null, - "prototype_tip": { - "type": "Tip", - "total_tip_length": 39.2, - "has_filter": false, - "maximal_volume": 10.0, - "fitting_depth": 3.29 - } - }, - "data": { - "tip": null, - "tip_state": null, - "pending_tip": null - } - }, - { - "id": "RackT1_C6", - "name": "RackT1_C6", - "sample_id": null, - "children": [], - "parent": "RackT1", - "type": "container", - "class": "", - "position": { - "x": 58.224, - "y": 55.084, - "z": 25.49 - }, - "config": { - "type": "TipSpot", - "size_x": 2.312, - "size_y": 2.312, - "size_z": 0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "tip_spot", - "model": null, - "barcode": null, - "prototype_tip": { - "type": "Tip", - "total_tip_length": 39.2, - "has_filter": false, - "maximal_volume": 10.0, - "fitting_depth": 3.29 - } - }, - "data": { - "tip": null, - "tip_state": null, - "pending_tip": null - } - }, - { - "id": "RackT1_D6", - "name": "RackT1_D6", - "sample_id": null, - "children": [], - "parent": "RackT1", - "type": "container", - "class": "", - "position": { - "x": 58.224, - "y": 46.084, - "z": 25.49 - }, - "config": { - "type": "TipSpot", - "size_x": 2.312, - "size_y": 2.312, - "size_z": 0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "tip_spot", - "model": null, - "barcode": null, - "prototype_tip": { - "type": "Tip", - "total_tip_length": 39.2, - "has_filter": false, - "maximal_volume": 10.0, - "fitting_depth": 3.29 - } - }, - "data": { - "tip": null, - "tip_state": null, - "pending_tip": null - } - }, - { - "id": "RackT1_E6", - "name": "RackT1_E6", - "sample_id": null, - "children": [], - "parent": "RackT1", - "type": "container", - "class": "", - "position": { - "x": 58.224, - "y": 37.084, - "z": 25.49 - }, - "config": { - "type": "TipSpot", - "size_x": 2.312, - "size_y": 2.312, - "size_z": 0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "tip_spot", - "model": null, - "barcode": null, - "prototype_tip": { - "type": "Tip", - "total_tip_length": 39.2, - "has_filter": false, - "maximal_volume": 10.0, - "fitting_depth": 3.29 - } - }, - "data": { - "tip": null, - "tip_state": null, - "pending_tip": null - } - }, - { - "id": "RackT1_F6", - "name": "RackT1_F6", - "sample_id": null, - "children": [], - "parent": "RackT1", - "type": "container", - "class": "", - "position": { - "x": 58.224, - "y": 28.084, - "z": 25.49 - }, - "config": { - "type": "TipSpot", - "size_x": 2.312, - "size_y": 2.312, - "size_z": 0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "tip_spot", - "model": null, - "barcode": null, - "prototype_tip": { - "type": "Tip", - "total_tip_length": 39.2, - "has_filter": false, - "maximal_volume": 10.0, - "fitting_depth": 3.29 - } - }, - "data": { - "tip": null, - "tip_state": null, - "pending_tip": null - } - }, - { - "id": "RackT1_G6", - "name": "RackT1_G6", - "sample_id": null, - "children": [], - "parent": "RackT1", - "type": "container", - "class": "", - "position": { - "x": 58.224, - "y": 19.084, - "z": 25.49 - }, - "config": { - "type": "TipSpot", - "size_x": 2.312, - "size_y": 2.312, - "size_z": 0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "tip_spot", - "model": null, - "barcode": null, - "prototype_tip": { - "type": "Tip", - "total_tip_length": 39.2, - "has_filter": false, - "maximal_volume": 10.0, - "fitting_depth": 3.29 - } - }, - "data": { - "tip": null, - "tip_state": null, - "pending_tip": null - } - }, - { - "id": "RackT1_H6", - "name": "RackT1_H6", - "sample_id": null, - "children": [], - "parent": "RackT1", - "type": "container", - "class": "", - "position": { - "x": 58.224, - "y": 10.084, - "z": 25.49 - }, - "config": { - "type": "TipSpot", - "size_x": 2.312, - "size_y": 2.312, - "size_z": 0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "tip_spot", - "model": null, - "barcode": null, - "prototype_tip": { - "type": "Tip", - "total_tip_length": 39.2, - "has_filter": false, - "maximal_volume": 10.0, - "fitting_depth": 3.29 - } - }, - "data": { - "tip": null, - "tip_state": null, - "pending_tip": null - } - }, - { - "id": "RackT1_A7", - "name": "RackT1_A7", - "sample_id": null, - "children": [], - "parent": "RackT1", - "type": "container", - "class": "", - "position": { - "x": 67.224, - "y": 73.084, - "z": 25.49 - }, - "config": { - "type": "TipSpot", - "size_x": 2.312, - "size_y": 2.312, - "size_z": 0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "tip_spot", - "model": null, - "barcode": null, - "prototype_tip": { - "type": "Tip", - "total_tip_length": 39.2, - "has_filter": false, - "maximal_volume": 10.0, - "fitting_depth": 3.29 - } - }, - "data": { - "tip": null, - "tip_state": null, - "pending_tip": null - } - }, - { - "id": "RackT1_B7", - "name": "RackT1_B7", - "sample_id": null, - "children": [], - "parent": "RackT1", - "type": "container", - "class": "", - "position": { - "x": 67.224, - "y": 64.084, - "z": 25.49 - }, - "config": { - "type": "TipSpot", - "size_x": 2.312, - "size_y": 2.312, - "size_z": 0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "tip_spot", - "model": null, - "barcode": null, - "prototype_tip": { - "type": "Tip", - "total_tip_length": 39.2, - "has_filter": false, - "maximal_volume": 10.0, - "fitting_depth": 3.29 - } - }, - "data": { - "tip": null, - "tip_state": null, - "pending_tip": null - } - }, - { - "id": "RackT1_C7", - "name": "RackT1_C7", - "sample_id": null, - "children": [], - "parent": "RackT1", - "type": "container", - "class": "", - "position": { - "x": 67.224, - "y": 55.084, - "z": 25.49 - }, - "config": { - "type": "TipSpot", - "size_x": 2.312, - "size_y": 2.312, - "size_z": 0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "tip_spot", - "model": null, - "barcode": null, - "prototype_tip": { - "type": "Tip", - "total_tip_length": 39.2, - "has_filter": false, - "maximal_volume": 10.0, - "fitting_depth": 3.29 - } - }, - "data": { - "tip": null, - "tip_state": null, - "pending_tip": null - } - }, - { - "id": "RackT1_D7", - "name": "RackT1_D7", - "sample_id": null, - "children": [], - "parent": "RackT1", - "type": "container", - "class": "", - "position": { - "x": 67.224, - "y": 46.084, - "z": 25.49 - }, - "config": { - "type": "TipSpot", - "size_x": 2.312, - "size_y": 2.312, - "size_z": 0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "tip_spot", - "model": null, - "barcode": null, - "prototype_tip": { - "type": "Tip", - "total_tip_length": 39.2, - "has_filter": false, - "maximal_volume": 10.0, - "fitting_depth": 3.29 - } - }, - "data": { - "tip": null, - "tip_state": null, - "pending_tip": null - } - }, - { - "id": "RackT1_E7", - "name": "RackT1_E7", - "sample_id": null, - "children": [], - "parent": "RackT1", - "type": "container", - "class": "", - "position": { - "x": 67.224, - "y": 37.084, - "z": 25.49 - }, - "config": { - "type": "TipSpot", - "size_x": 2.312, - "size_y": 2.312, - "size_z": 0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "tip_spot", - "model": null, - "barcode": null, - "prototype_tip": { - "type": "Tip", - "total_tip_length": 39.2, - "has_filter": false, - "maximal_volume": 10.0, - "fitting_depth": 3.29 - } - }, - "data": { - "tip": null, - "tip_state": null, - "pending_tip": null - } - }, - { - "id": "RackT1_F7", - "name": "RackT1_F7", - "sample_id": null, - "children": [], - "parent": "RackT1", - "type": "container", - "class": "", - "position": { - "x": 67.224, - "y": 28.084, - "z": 25.49 - }, - "config": { - "type": "TipSpot", - "size_x": 2.312, - "size_y": 2.312, - "size_z": 0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "tip_spot", - "model": null, - "barcode": null, - "prototype_tip": { - "type": "Tip", - "total_tip_length": 39.2, - "has_filter": false, - "maximal_volume": 10.0, - "fitting_depth": 3.29 - } - }, - "data": { - "tip": null, - "tip_state": null, - "pending_tip": null - } - }, - { - "id": "RackT1_G7", - "name": "RackT1_G7", - "sample_id": null, - "children": [], - "parent": "RackT1", - "type": "container", - "class": "", - "position": { - "x": 67.224, - "y": 19.084, - "z": 25.49 - }, - "config": { - "type": "TipSpot", - "size_x": 2.312, - "size_y": 2.312, - "size_z": 0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "tip_spot", - "model": null, - "barcode": null, - "prototype_tip": { - "type": "Tip", - "total_tip_length": 39.2, - "has_filter": false, - "maximal_volume": 10.0, - "fitting_depth": 3.29 - } - }, - "data": { - "tip": null, - "tip_state": null, - "pending_tip": null - } - }, - { - "id": "RackT1_H7", - "name": "RackT1_H7", - "sample_id": null, - "children": [], - "parent": "RackT1", - "type": "container", - "class": "", - "position": { - "x": 67.224, - "y": 10.084, - "z": 25.49 - }, - "config": { - "type": "TipSpot", - "size_x": 2.312, - "size_y": 2.312, - "size_z": 0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "tip_spot", - "model": null, - "barcode": null, - "prototype_tip": { - "type": "Tip", - "total_tip_length": 39.2, - "has_filter": false, - "maximal_volume": 10.0, - "fitting_depth": 3.29 - } - }, - "data": { - "tip": null, - "tip_state": null, - "pending_tip": null - } - }, - { - "id": "RackT1_A8", - "name": "RackT1_A8", - "sample_id": null, - "children": [], - "parent": "RackT1", - "type": "container", - "class": "", - "position": { - "x": 76.224, - "y": 73.084, - "z": 25.49 - }, - "config": { - "type": "TipSpot", - "size_x": 2.312, - "size_y": 2.312, - "size_z": 0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "tip_spot", - "model": null, - "barcode": null, - "prototype_tip": { - "type": "Tip", - "total_tip_length": 39.2, - "has_filter": false, - "maximal_volume": 10.0, - "fitting_depth": 3.29 - } - }, - "data": { - "tip": null, - "tip_state": null, - "pending_tip": null - } - }, - { - "id": "RackT1_B8", - "name": "RackT1_B8", - "sample_id": null, - "children": [], - "parent": "RackT1", - "type": "container", - "class": "", - "position": { - "x": 76.224, - "y": 64.084, - "z": 25.49 - }, - "config": { - "type": "TipSpot", - "size_x": 2.312, - "size_y": 2.312, - "size_z": 0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "tip_spot", - "model": null, - "barcode": null, - "prototype_tip": { - "type": "Tip", - "total_tip_length": 39.2, - "has_filter": false, - "maximal_volume": 10.0, - "fitting_depth": 3.29 - } - }, - "data": { - "tip": null, - "tip_state": null, - "pending_tip": null - } - }, - { - "id": "RackT1_C8", - "name": "RackT1_C8", - "sample_id": null, - "children": [], - "parent": "RackT1", - "type": "container", - "class": "", - "position": { - "x": 76.224, - "y": 55.084, - "z": 25.49 - }, - "config": { - "type": "TipSpot", - "size_x": 2.312, - "size_y": 2.312, - "size_z": 0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "tip_spot", - "model": null, - "barcode": null, - "prototype_tip": { - "type": "Tip", - "total_tip_length": 39.2, - "has_filter": false, - "maximal_volume": 10.0, - "fitting_depth": 3.29 - } - }, - "data": { - "tip": null, - "tip_state": null, - "pending_tip": null - } - }, - { - "id": "RackT1_D8", - "name": "RackT1_D8", - "sample_id": null, - "children": [], - "parent": "RackT1", - "type": "container", - "class": "", - "position": { - "x": 76.224, - "y": 46.084, - "z": 25.49 - }, - "config": { - "type": "TipSpot", - "size_x": 2.312, - "size_y": 2.312, - "size_z": 0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "tip_spot", - "model": null, - "barcode": null, - "prototype_tip": { - "type": "Tip", - "total_tip_length": 39.2, - "has_filter": false, - "maximal_volume": 10.0, - "fitting_depth": 3.29 - } - }, - "data": { - "tip": null, - "tip_state": null, - "pending_tip": null - } - }, - { - "id": "RackT1_E8", - "name": "RackT1_E8", - "sample_id": null, - "children": [], - "parent": "RackT1", - "type": "container", - "class": "", - "position": { - "x": 76.224, - "y": 37.084, - "z": 25.49 - }, - "config": { - "type": "TipSpot", - "size_x": 2.312, - "size_y": 2.312, - "size_z": 0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "tip_spot", - "model": null, - "barcode": null, - "prototype_tip": { - "type": "Tip", - "total_tip_length": 39.2, - "has_filter": false, - "maximal_volume": 10.0, - "fitting_depth": 3.29 - } - }, - "data": { - "tip": null, - "tip_state": null, - "pending_tip": null - } - }, - { - "id": "RackT1_F8", - "name": "RackT1_F8", - "sample_id": null, - "children": [], - "parent": "RackT1", - "type": "container", - "class": "", - "position": { - "x": 76.224, - "y": 28.084, - "z": 25.49 - }, - "config": { - "type": "TipSpot", - "size_x": 2.312, - "size_y": 2.312, - "size_z": 0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "tip_spot", - "model": null, - "barcode": null, - "prototype_tip": { - "type": "Tip", - "total_tip_length": 39.2, - "has_filter": false, - "maximal_volume": 10.0, - "fitting_depth": 3.29 - } - }, - "data": { - "tip": null, - "tip_state": null, - "pending_tip": null - } - }, - { - "id": "RackT1_G8", - "name": "RackT1_G8", - "sample_id": null, - "children": [], - "parent": "RackT1", - "type": "container", - "class": "", - "position": { - "x": 76.224, - "y": 19.084, - "z": 25.49 - }, - "config": { - "type": "TipSpot", - "size_x": 2.312, - "size_y": 2.312, - "size_z": 0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "tip_spot", - "model": null, - "barcode": null, - "prototype_tip": { - "type": "Tip", - "total_tip_length": 39.2, - "has_filter": false, - "maximal_volume": 10.0, - "fitting_depth": 3.29 - } - }, - "data": { - "tip": null, - "tip_state": null, - "pending_tip": null - } - }, - { - "id": "RackT1_H8", - "name": "RackT1_H8", - "sample_id": null, - "children": [], - "parent": "RackT1", - "type": "container", - "class": "", - "position": { - "x": 76.224, - "y": 10.084, - "z": 25.49 - }, - "config": { - "type": "TipSpot", - "size_x": 2.312, - "size_y": 2.312, - "size_z": 0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "tip_spot", - "model": null, - "barcode": null, - "prototype_tip": { - "type": "Tip", - "total_tip_length": 39.2, - "has_filter": false, - "maximal_volume": 10.0, - "fitting_depth": 3.29 - } - }, - "data": { - "tip": null, - "tip_state": null, - "pending_tip": null - } - }, - { - "id": "RackT1_A9", - "name": "RackT1_A9", - "sample_id": null, - "children": [], - "parent": "RackT1", - "type": "container", - "class": "", - "position": { - "x": 85.224, - "y": 73.084, - "z": 25.49 - }, - "config": { - "type": "TipSpot", - "size_x": 2.312, - "size_y": 2.312, - "size_z": 0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "tip_spot", - "model": null, - "barcode": null, - "prototype_tip": { - "type": "Tip", - "total_tip_length": 39.2, - "has_filter": false, - "maximal_volume": 10.0, - "fitting_depth": 3.29 - } - }, - "data": { - "tip": null, - "tip_state": null, - "pending_tip": null - } - }, - { - "id": "RackT1_B9", - "name": "RackT1_B9", - "sample_id": null, - "children": [], - "parent": "RackT1", - "type": "container", - "class": "", - "position": { - "x": 85.224, - "y": 64.084, - "z": 25.49 - }, - "config": { - "type": "TipSpot", - "size_x": 2.312, - "size_y": 2.312, - "size_z": 0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "tip_spot", - "model": null, - "barcode": null, - "prototype_tip": { - "type": "Tip", - "total_tip_length": 39.2, - "has_filter": false, - "maximal_volume": 10.0, - "fitting_depth": 3.29 - } - }, - "data": { - "tip": null, - "tip_state": null, - "pending_tip": null - } - }, - { - "id": "RackT1_C9", - "name": "RackT1_C9", - "sample_id": null, - "children": [], - "parent": "RackT1", - "type": "container", - "class": "", - "position": { - "x": 85.224, - "y": 55.084, - "z": 25.49 - }, - "config": { - "type": "TipSpot", - "size_x": 2.312, - "size_y": 2.312, - "size_z": 0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "tip_spot", - "model": null, - "barcode": null, - "prototype_tip": { - "type": "Tip", - "total_tip_length": 39.2, - "has_filter": false, - "maximal_volume": 10.0, - "fitting_depth": 3.29 - } - }, - "data": { - "tip": null, - "tip_state": null, - "pending_tip": null - } - }, - { - "id": "RackT1_D9", - "name": "RackT1_D9", - "sample_id": null, - "children": [], - "parent": "RackT1", - "type": "container", - "class": "", - "position": { - "x": 85.224, - "y": 46.084, - "z": 25.49 - }, - "config": { - "type": "TipSpot", - "size_x": 2.312, - "size_y": 2.312, - "size_z": 0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "tip_spot", - "model": null, - "barcode": null, - "prototype_tip": { - "type": "Tip", - "total_tip_length": 39.2, - "has_filter": false, - "maximal_volume": 10.0, - "fitting_depth": 3.29 - } - }, - "data": { - "tip": null, - "tip_state": null, - "pending_tip": null - } - }, - { - "id": "RackT1_E9", - "name": "RackT1_E9", - "sample_id": null, - "children": [], - "parent": "RackT1", - "type": "container", - "class": "", - "position": { - "x": 85.224, - "y": 37.084, - "z": 25.49 - }, - "config": { - "type": "TipSpot", - "size_x": 2.312, - "size_y": 2.312, - "size_z": 0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "tip_spot", - "model": null, - "barcode": null, - "prototype_tip": { - "type": "Tip", - "total_tip_length": 39.2, - "has_filter": false, - "maximal_volume": 10.0, - "fitting_depth": 3.29 - } - }, - "data": { - "tip": null, - "tip_state": null, - "pending_tip": null - } - }, - { - "id": "RackT1_F9", - "name": "RackT1_F9", - "sample_id": null, - "children": [], - "parent": "RackT1", - "type": "container", - "class": "", - "position": { - "x": 85.224, - "y": 28.084, - "z": 25.49 - }, - "config": { - "type": "TipSpot", - "size_x": 2.312, - "size_y": 2.312, - "size_z": 0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "tip_spot", - "model": null, - "barcode": null, - "prototype_tip": { - "type": "Tip", - "total_tip_length": 39.2, - "has_filter": false, - "maximal_volume": 10.0, - "fitting_depth": 3.29 - } - }, - "data": { - "tip": null, - "tip_state": null, - "pending_tip": null - } - }, - { - "id": "RackT1_G9", - "name": "RackT1_G9", - "sample_id": null, - "children": [], - "parent": "RackT1", - "type": "container", - "class": "", - "position": { - "x": 85.224, - "y": 19.084, - "z": 25.49 - }, - "config": { - "type": "TipSpot", - "size_x": 2.312, - "size_y": 2.312, - "size_z": 0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "tip_spot", - "model": null, - "barcode": null, - "prototype_tip": { - "type": "Tip", - "total_tip_length": 39.2, - "has_filter": false, - "maximal_volume": 10.0, - "fitting_depth": 3.29 - } - }, - "data": { - "tip": null, - "tip_state": null, - "pending_tip": null - } - }, - { - "id": "RackT1_H9", - "name": "RackT1_H9", - "sample_id": null, - "children": [], - "parent": "RackT1", - "type": "container", - "class": "", - "position": { - "x": 85.224, - "y": 10.084, - "z": 25.49 - }, - "config": { - "type": "TipSpot", - "size_x": 2.312, - "size_y": 2.312, - "size_z": 0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "tip_spot", - "model": null, - "barcode": null, - "prototype_tip": { - "type": "Tip", - "total_tip_length": 39.2, - "has_filter": false, - "maximal_volume": 10.0, - "fitting_depth": 3.29 - } - }, - "data": { - "tip": null, - "tip_state": null, - "pending_tip": null - } - }, - { - "id": "RackT1_A10", - "name": "RackT1_A10", - "sample_id": null, - "children": [], - "parent": "RackT1", - "type": "container", - "class": "", - "position": { - "x": 94.224, - "y": 73.084, - "z": 25.49 - }, - "config": { - "type": "TipSpot", - "size_x": 2.312, - "size_y": 2.312, - "size_z": 0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "tip_spot", - "model": null, - "barcode": null, - "prototype_tip": { - "type": "Tip", - "total_tip_length": 39.2, - "has_filter": false, - "maximal_volume": 10.0, - "fitting_depth": 3.29 - } - }, - "data": { - "tip": null, - "tip_state": null, - "pending_tip": null - } - }, - { - "id": "RackT1_B10", - "name": "RackT1_B10", - "sample_id": null, - "children": [], - "parent": "RackT1", - "type": "container", - "class": "", - "position": { - "x": 94.224, - "y": 64.084, - "z": 25.49 - }, - "config": { - "type": "TipSpot", - "size_x": 2.312, - "size_y": 2.312, - "size_z": 0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "tip_spot", - "model": null, - "barcode": null, - "prototype_tip": { - "type": "Tip", - "total_tip_length": 39.2, - "has_filter": false, - "maximal_volume": 10.0, - "fitting_depth": 3.29 - } - }, - "data": { - "tip": null, - "tip_state": null, - "pending_tip": null - } - }, - { - "id": "RackT1_C10", - "name": "RackT1_C10", - "sample_id": null, - "children": [], - "parent": "RackT1", - "type": "container", - "class": "", - "position": { - "x": 94.224, - "y": 55.084, - "z": 25.49 - }, - "config": { - "type": "TipSpot", - "size_x": 2.312, - "size_y": 2.312, - "size_z": 0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "tip_spot", - "model": null, - "barcode": null, - "prototype_tip": { - "type": "Tip", - "total_tip_length": 39.2, - "has_filter": false, - "maximal_volume": 10.0, - "fitting_depth": 3.29 - } - }, - "data": { - "tip": null, - "tip_state": null, - "pending_tip": null - } - }, - { - "id": "RackT1_D10", - "name": "RackT1_D10", - "sample_id": null, - "children": [], - "parent": "RackT1", - "type": "container", - "class": "", - "position": { - "x": 94.224, - "y": 46.084, - "z": 25.49 - }, - "config": { - "type": "TipSpot", - "size_x": 2.312, - "size_y": 2.312, - "size_z": 0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "tip_spot", - "model": null, - "barcode": null, - "prototype_tip": { - "type": "Tip", - "total_tip_length": 39.2, - "has_filter": false, - "maximal_volume": 10.0, - "fitting_depth": 3.29 - } - }, - "data": { - "tip": null, - "tip_state": null, - "pending_tip": null - } - }, - { - "id": "RackT1_E10", - "name": "RackT1_E10", - "sample_id": null, - "children": [], - "parent": "RackT1", - "type": "container", - "class": "", - "position": { - "x": 94.224, - "y": 37.084, - "z": 25.49 - }, - "config": { - "type": "TipSpot", - "size_x": 2.312, - "size_y": 2.312, - "size_z": 0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "tip_spot", - "model": null, - "barcode": null, - "prototype_tip": { - "type": "Tip", - "total_tip_length": 39.2, - "has_filter": false, - "maximal_volume": 10.0, - "fitting_depth": 3.29 - } - }, - "data": { - "tip": null, - "tip_state": null, - "pending_tip": null - } - }, - { - "id": "RackT1_F10", - "name": "RackT1_F10", - "sample_id": null, - "children": [], - "parent": "RackT1", - "type": "container", - "class": "", - "position": { - "x": 94.224, - "y": 28.084, - "z": 25.49 - }, - "config": { - "type": "TipSpot", - "size_x": 2.312, - "size_y": 2.312, - "size_z": 0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "tip_spot", - "model": null, - "barcode": null, - "prototype_tip": { - "type": "Tip", - "total_tip_length": 39.2, - "has_filter": false, - "maximal_volume": 10.0, - "fitting_depth": 3.29 - } - }, - "data": { - "tip": null, - "tip_state": null, - "pending_tip": null - } - }, - { - "id": "RackT1_G10", - "name": "RackT1_G10", - "sample_id": null, - "children": [], - "parent": "RackT1", - "type": "container", - "class": "", - "position": { - "x": 94.224, - "y": 19.084, - "z": 25.49 - }, - "config": { - "type": "TipSpot", - "size_x": 2.312, - "size_y": 2.312, - "size_z": 0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "tip_spot", - "model": null, - "barcode": null, - "prototype_tip": { - "type": "Tip", - "total_tip_length": 39.2, - "has_filter": false, - "maximal_volume": 10.0, - "fitting_depth": 3.29 - } - }, - "data": { - "tip": null, - "tip_state": null, - "pending_tip": null - } - }, - { - "id": "RackT1_H10", - "name": "RackT1_H10", - "sample_id": null, - "children": [], - "parent": "RackT1", - "type": "container", - "class": "", - "position": { - "x": 94.224, - "y": 10.084, - "z": 25.49 - }, - "config": { - "type": "TipSpot", - "size_x": 2.312, - "size_y": 2.312, - "size_z": 0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "tip_spot", - "model": null, - "barcode": null, - "prototype_tip": { - "type": "Tip", - "total_tip_length": 39.2, - "has_filter": false, - "maximal_volume": 10.0, - "fitting_depth": 3.29 - } - }, - "data": { - "tip": null, - "tip_state": null, - "pending_tip": null - } - }, - { - "id": "RackT1_A11", - "name": "RackT1_A11", - "sample_id": null, - "children": [], - "parent": "RackT1", - "type": "container", - "class": "", - "position": { - "x": 103.224, - "y": 73.084, - "z": 25.49 - }, - "config": { - "type": "TipSpot", - "size_x": 2.312, - "size_y": 2.312, - "size_z": 0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "tip_spot", - "model": null, - "barcode": null, - "prototype_tip": { - "type": "Tip", - "total_tip_length": 39.2, - "has_filter": false, - "maximal_volume": 10.0, - "fitting_depth": 3.29 - } - }, - "data": { - "tip": null, - "tip_state": null, - "pending_tip": null - } - }, - { - "id": "RackT1_B11", - "name": "RackT1_B11", - "sample_id": null, - "children": [], - "parent": "RackT1", - "type": "container", - "class": "", - "position": { - "x": 103.224, - "y": 64.084, - "z": 25.49 - }, - "config": { - "type": "TipSpot", - "size_x": 2.312, - "size_y": 2.312, - "size_z": 0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "tip_spot", - "model": null, - "barcode": null, - "prototype_tip": { - "type": "Tip", - "total_tip_length": 39.2, - "has_filter": false, - "maximal_volume": 10.0, - "fitting_depth": 3.29 - } - }, - "data": { - "tip": null, - "tip_state": null, - "pending_tip": null - } - }, - { - "id": "RackT1_C11", - "name": "RackT1_C11", - "sample_id": null, - "children": [], - "parent": "RackT1", - "type": "container", - "class": "", - "position": { - "x": 103.224, - "y": 55.084, - "z": 25.49 - }, - "config": { - "type": "TipSpot", - "size_x": 2.312, - "size_y": 2.312, - "size_z": 0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "tip_spot", - "model": null, - "barcode": null, - "prototype_tip": { - "type": "Tip", - "total_tip_length": 39.2, - "has_filter": false, - "maximal_volume": 10.0, - "fitting_depth": 3.29 - } - }, - "data": { - "tip": null, - "tip_state": null, - "pending_tip": null - } - }, - { - "id": "RackT1_D11", - "name": "RackT1_D11", - "sample_id": null, - "children": [], - "parent": "RackT1", - "type": "container", - "class": "", - "position": { - "x": 103.224, - "y": 46.084, - "z": 25.49 - }, - "config": { - "type": "TipSpot", - "size_x": 2.312, - "size_y": 2.312, - "size_z": 0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "tip_spot", - "model": null, - "barcode": null, - "prototype_tip": { - "type": "Tip", - "total_tip_length": 39.2, - "has_filter": false, - "maximal_volume": 10.0, - "fitting_depth": 3.29 - } - }, - "data": { - "tip": null, - "tip_state": null, - "pending_tip": null - } - }, - { - "id": "RackT1_E11", - "name": "RackT1_E11", - "sample_id": null, - "children": [], - "parent": "RackT1", - "type": "container", - "class": "", - "position": { - "x": 103.224, - "y": 37.084, - "z": 25.49 - }, - "config": { - "type": "TipSpot", - "size_x": 2.312, - "size_y": 2.312, - "size_z": 0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "tip_spot", - "model": null, - "barcode": null, - "prototype_tip": { - "type": "Tip", - "total_tip_length": 39.2, - "has_filter": false, - "maximal_volume": 10.0, - "fitting_depth": 3.29 - } - }, - "data": { - "tip": null, - "tip_state": null, - "pending_tip": null - } - }, - { - "id": "RackT1_F11", - "name": "RackT1_F11", - "sample_id": null, - "children": [], - "parent": "RackT1", - "type": "container", - "class": "", - "position": { - "x": 103.224, - "y": 28.084, - "z": 25.49 - }, - "config": { - "type": "TipSpot", - "size_x": 2.312, - "size_y": 2.312, - "size_z": 0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "tip_spot", - "model": null, - "barcode": null, - "prototype_tip": { - "type": "Tip", - "total_tip_length": 39.2, - "has_filter": false, - "maximal_volume": 10.0, - "fitting_depth": 3.29 - } - }, - "data": { - "tip": null, - "tip_state": null, - "pending_tip": null - } - }, - { - "id": "RackT1_G11", - "name": "RackT1_G11", - "sample_id": null, - "children": [], - "parent": "RackT1", - "type": "container", - "class": "", - "position": { - "x": 103.224, - "y": 19.084, - "z": 25.49 - }, - "config": { - "type": "TipSpot", - "size_x": 2.312, - "size_y": 2.312, - "size_z": 0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "tip_spot", - "model": null, - "barcode": null, - "prototype_tip": { - "type": "Tip", - "total_tip_length": 39.2, - "has_filter": false, - "maximal_volume": 10.0, - "fitting_depth": 3.29 - } - }, - "data": { - "tip": null, - "tip_state": null, - "pending_tip": null - } - }, - { - "id": "RackT1_H11", - "name": "RackT1_H11", - "sample_id": null, - "children": [], - "parent": "RackT1", - "type": "container", - "class": "", - "position": { - "x": 103.224, - "y": 10.084, - "z": 25.49 - }, - "config": { - "type": "TipSpot", - "size_x": 2.312, - "size_y": 2.312, - "size_z": 0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "tip_spot", - "model": null, - "barcode": null, - "prototype_tip": { - "type": "Tip", - "total_tip_length": 39.2, - "has_filter": false, - "maximal_volume": 10.0, - "fitting_depth": 3.29 - } - }, - "data": { - "tip": null, - "tip_state": null, - "pending_tip": null - } - }, - { - "id": "RackT1_A12", - "name": "RackT1_A12", - "sample_id": null, - "children": [], - "parent": "RackT1", - "type": "container", - "class": "", - "position": { - "x": 112.224, - "y": 73.084, - "z": 25.49 - }, - "config": { - "type": "TipSpot", - "size_x": 2.312, - "size_y": 2.312, - "size_z": 0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "tip_spot", - "model": null, - "barcode": null, - "prototype_tip": { - "type": "Tip", - "total_tip_length": 39.2, - "has_filter": false, - "maximal_volume": 10.0, - "fitting_depth": 3.29 - } - }, - "data": { - "tip": null, - "tip_state": null, - "pending_tip": null - } - }, - { - "id": "RackT1_B12", - "name": "RackT1_B12", - "sample_id": null, - "children": [], - "parent": "RackT1", - "type": "container", - "class": "", - "position": { - "x": 112.224, - "y": 64.084, - "z": 25.49 - }, - "config": { - "type": "TipSpot", - "size_x": 2.312, - "size_y": 2.312, - "size_z": 0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "tip_spot", - "model": null, - "barcode": null, - "prototype_tip": { - "type": "Tip", - "total_tip_length": 39.2, - "has_filter": false, - "maximal_volume": 10.0, - "fitting_depth": 3.29 - } - }, - "data": { - "tip": null, - "tip_state": null, - "pending_tip": null - } - }, - { - "id": "RackT1_C12", - "name": "RackT1_C12", - "sample_id": null, - "children": [], - "parent": "RackT1", - "type": "container", - "class": "", - "position": { - "x": 112.224, - "y": 55.084, - "z": 25.49 - }, - "config": { - "type": "TipSpot", - "size_x": 2.312, - "size_y": 2.312, - "size_z": 0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "tip_spot", - "model": null, - "barcode": null, - "prototype_tip": { - "type": "Tip", - "total_tip_length": 39.2, - "has_filter": false, - "maximal_volume": 10.0, - "fitting_depth": 3.29 - } - }, - "data": { - "tip": null, - "tip_state": null, - "pending_tip": null - } - }, - { - "id": "RackT1_D12", - "name": "RackT1_D12", - "sample_id": null, - "children": [], - "parent": "RackT1", - "type": "container", - "class": "", - "position": { - "x": 112.224, - "y": 46.084, - "z": 25.49 - }, - "config": { - "type": "TipSpot", - "size_x": 2.312, - "size_y": 2.312, - "size_z": 0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "tip_spot", - "model": null, - "barcode": null, - "prototype_tip": { - "type": "Tip", - "total_tip_length": 39.2, - "has_filter": false, - "maximal_volume": 10.0, - "fitting_depth": 3.29 - } - }, - "data": { - "tip": null, - "tip_state": null, - "pending_tip": null - } - }, - { - "id": "RackT1_E12", - "name": "RackT1_E12", - "sample_id": null, - "children": [], - "parent": "RackT1", - "type": "container", - "class": "", - "position": { - "x": 112.224, - "y": 37.084, - "z": 25.49 - }, - "config": { - "type": "TipSpot", - "size_x": 2.312, - "size_y": 2.312, - "size_z": 0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "tip_spot", - "model": null, - "barcode": null, - "prototype_tip": { - "type": "Tip", - "total_tip_length": 39.2, - "has_filter": false, - "maximal_volume": 10.0, - "fitting_depth": 3.29 - } - }, - "data": { - "tip": null, - "tip_state": null, - "pending_tip": null - } - }, - { - "id": "RackT1_F12", - "name": "RackT1_F12", - "sample_id": null, - "children": [], - "parent": "RackT1", - "type": "container", - "class": "", - "position": { - "x": 112.224, - "y": 28.084, - "z": 25.49 - }, - "config": { - "type": "TipSpot", - "size_x": 2.312, - "size_y": 2.312, - "size_z": 0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "tip_spot", - "model": null, - "barcode": null, - "prototype_tip": { - "type": "Tip", - "total_tip_length": 39.2, - "has_filter": false, - "maximal_volume": 10.0, - "fitting_depth": 3.29 - } - }, - "data": { - "tip": null, - "tip_state": null, - "pending_tip": null - } - }, - { - "id": "RackT1_G12", - "name": "RackT1_G12", - "sample_id": null, - "children": [], - "parent": "RackT1", - "type": "container", - "class": "", - "position": { - "x": 112.224, - "y": 19.084, - "z": 25.49 - }, - "config": { - "type": "TipSpot", - "size_x": 2.312, - "size_y": 2.312, - "size_z": 0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "tip_spot", - "model": null, - "barcode": null, - "prototype_tip": { - "type": "Tip", - "total_tip_length": 39.2, - "has_filter": false, - "maximal_volume": 10.0, - "fitting_depth": 3.29 - } - }, - "data": { - "tip": null, - "tip_state": null, - "pending_tip": null - } - }, - { - "id": "RackT1_H12", - "name": "RackT1_H12", - "sample_id": null, - "children": [], - "parent": "RackT1", - "type": "container", - "class": "", - "position": { - "x": 112.224, - "y": 10.084, - "z": 25.49 - }, - "config": { - "type": "TipSpot", - "size_x": 2.312, - "size_y": 2.312, - "size_z": 0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "tip_spot", - "model": null, - "barcode": null, - "prototype_tip": { - "type": "Tip", - "total_tip_length": 39.2, - "has_filter": false, - "maximal_volume": 10.0, - "fitting_depth": 3.29 - } - }, - "data": { - "tip": null, - "tip_state": null, - "pending_tip": null - } - }, - { - "id": "PlateT2", - "name": "PlateT2", - "sample_id": null, - "children": [ - "PlateT2_A1", - "PlateT2_B1", - "PlateT2_C1", - "PlateT2_D1", - "PlateT2_E1", - "PlateT2_F1", - "PlateT2_G1", - "PlateT2_H1", - "PlateT2_A2", - "PlateT2_B2", - "PlateT2_C2", - "PlateT2_D2", - "PlateT2_E2", - "PlateT2_F2", - "PlateT2_G2", - "PlateT2_H2", - "PlateT2_A3", - "PlateT2_B3", - "PlateT2_C3", - "PlateT2_D3", - "PlateT2_E3", - "PlateT2_F3", - "PlateT2_G3", - "PlateT2_H3", - "PlateT2_A4", - "PlateT2_B4", - "PlateT2_C4", - "PlateT2_D4", - "PlateT2_E4", - "PlateT2_F4", - "PlateT2_G4", - "PlateT2_H4", - "PlateT2_A5", - "PlateT2_B5", - "PlateT2_C5", - "PlateT2_D5", - "PlateT2_E5", - "PlateT2_F5", - "PlateT2_G5", - "PlateT2_H5", - "PlateT2_A6", - "PlateT2_B6", - "PlateT2_C6", - "PlateT2_D6", - "PlateT2_E6", - "PlateT2_F6", - "PlateT2_G6", - "PlateT2_H6", - "PlateT2_A7", - "PlateT2_B7", - "PlateT2_C7", - "PlateT2_D7", - "PlateT2_E7", - "PlateT2_F7", - "PlateT2_G7", - "PlateT2_H7", - "PlateT2_A8", - "PlateT2_B8", - "PlateT2_C8", - "PlateT2_D8", - "PlateT2_E8", - "PlateT2_F8", - "PlateT2_G8", - "PlateT2_H8", - "PlateT2_A9", - "PlateT2_B9", - "PlateT2_C9", - "PlateT2_D9", - "PlateT2_E9", - "PlateT2_F9", - "PlateT2_G9", - "PlateT2_H9", - "PlateT2_A10", - "PlateT2_B10", - "PlateT2_C10", - "PlateT2_D10", - "PlateT2_E10", - "PlateT2_F10", - "PlateT2_G10", - "PlateT2_H10", - "PlateT2_A11", - "PlateT2_B11", - "PlateT2_C11", - "PlateT2_D11", - "PlateT2_E11", - "PlateT2_F11", - "PlateT2_G11", - "PlateT2_H11", - "PlateT2_A12", - "PlateT2_B12", - "PlateT2_C12", - "PlateT2_D12", - "PlateT2_E12", - "PlateT2_F12", - "PlateT2_G12", - "PlateT2_H12" - ], - "parent": "PRCXI_Deck", - "type": "plate", - "class": "", - "position": { - "x": 0, - "y": 0, - "z": 0 - }, - "config": { - "type": "PRCXI9300Plate", - "size_x": 50, - "size_y": 50, - "size_z": 10, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "plate", - "model": null, - "barcode": null, - "ordering": { - "A1": "PlateT2_A1", - "B1": "PlateT2_B1", - "C1": "PlateT2_C1", - "D1": "PlateT2_D1", - "E1": "PlateT2_E1", - "F1": "PlateT2_F1", - "G1": "PlateT2_G1", - "H1": "PlateT2_H1", - "A2": "PlateT2_A2", - "B2": "PlateT2_B2", - "C2": "PlateT2_C2", - "D2": "PlateT2_D2", - "E2": "PlateT2_E2", - "F2": "PlateT2_F2", - "G2": "PlateT2_G2", - "H2": "PlateT2_H2", - "A3": "PlateT2_A3", - "B3": "PlateT2_B3", - "C3": "PlateT2_C3", - "D3": "PlateT2_D3", - "E3": "PlateT2_E3", - "F3": "PlateT2_F3", - "G3": "PlateT2_G3", - "H3": "PlateT2_H3", - "A4": "PlateT2_A4", - "B4": "PlateT2_B4", - "C4": "PlateT2_C4", - "D4": "PlateT2_D4", - "E4": "PlateT2_E4", - "F4": "PlateT2_F4", - "G4": "PlateT2_G4", - "H4": "PlateT2_H4", - "A5": "PlateT2_A5", - "B5": "PlateT2_B5", - "C5": "PlateT2_C5", - "D5": "PlateT2_D5", - "E5": "PlateT2_E5", - "F5": "PlateT2_F5", - "G5": "PlateT2_G5", - "H5": "PlateT2_H5", - "A6": "PlateT2_A6", - "B6": "PlateT2_B6", - "C6": "PlateT2_C6", - "D6": "PlateT2_D6", - "E6": "PlateT2_E6", - "F6": "PlateT2_F6", - "G6": "PlateT2_G6", - "H6": "PlateT2_H6", - "A7": "PlateT2_A7", - "B7": "PlateT2_B7", - "C7": "PlateT2_C7", - "D7": "PlateT2_D7", - "E7": "PlateT2_E7", - "F7": "PlateT2_F7", - "G7": "PlateT2_G7", - "H7": "PlateT2_H7", - "A8": "PlateT2_A8", - "B8": "PlateT2_B8", - "C8": "PlateT2_C8", - "D8": "PlateT2_D8", - "E8": "PlateT2_E8", - "F8": "PlateT2_F8", - "G8": "PlateT2_G8", - "H8": "PlateT2_H8", - "A9": "PlateT2_A9", - "B9": "PlateT2_B9", - "C9": "PlateT2_C9", - "D9": "PlateT2_D9", - "E9": "PlateT2_E9", - "F9": "PlateT2_F9", - "G9": "PlateT2_G9", - "H9": "PlateT2_H9", - "A10": "PlateT2_A10", - "B10": "PlateT2_B10", - "C10": "PlateT2_C10", - "D10": "PlateT2_D10", - "E10": "PlateT2_E10", - "F10": "PlateT2_F10", - "G10": "PlateT2_G10", - "H10": "PlateT2_H10", - "A11": "PlateT2_A11", - "B11": "PlateT2_B11", - "C11": "PlateT2_C11", - "D11": "PlateT2_D11", - "E11": "PlateT2_E11", - "F11": "PlateT2_F11", - "G11": "PlateT2_G11", - "H11": "PlateT2_H11", - "A12": "PlateT2_A12", - "B12": "PlateT2_B12", - "C12": "PlateT2_C12", - "D12": "PlateT2_D12", - "E12": "PlateT2_E12", - "F12": "PlateT2_F12", - "G12": "PlateT2_G12", - "H12": "PlateT2_H12" - } - }, - "data": { - "Material": { - "uuid": "b05b3b2aafd94ec38ea0cd3215ecea8f", - "Code": "ZX-78-096", - "Name": "细菌培养皿" - } - } - }, - { - "id": "PlateT2_A1", - "name": "PlateT2_A1", - "sample_id": null, - "children": [], - "parent": "PlateT2", - "type": "well", - "class": "", - "position": { - "x": 11.9545, - "y": 71.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT2_B1", - "name": "PlateT2_B1", - "sample_id": null, - "children": [], - "parent": "PlateT2", - "type": "well", - "class": "", - "position": { - "x": 11.9545, - "y": 62.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT2_C1", - "name": "PlateT2_C1", - "sample_id": null, - "children": [], - "parent": "PlateT2", - "type": "well", - "class": "", - "position": { - "x": 11.9545, - "y": 53.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT2_D1", - "name": "PlateT2_D1", - "sample_id": null, - "children": [], - "parent": "PlateT2", - "type": "well", - "class": "", - "position": { - "x": 11.9545, - "y": 44.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT2_E1", - "name": "PlateT2_E1", - "sample_id": null, - "children": [], - "parent": "PlateT2", - "type": "well", - "class": "", - "position": { - "x": 11.9545, - "y": 35.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT2_F1", - "name": "PlateT2_F1", - "sample_id": null, - "children": [], - "parent": "PlateT2", - "type": "well", - "class": "", - "position": { - "x": 11.9545, - "y": 26.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT2_G1", - "name": "PlateT2_G1", - "sample_id": null, - "children": [], - "parent": "PlateT2", - "type": "well", - "class": "", - "position": { - "x": 11.9545, - "y": 17.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT2_H1", - "name": "PlateT2_H1", - "sample_id": null, - "children": [], - "parent": "PlateT2", - "type": "well", - "class": "", - "position": { - "x": 11.9545, - "y": 8.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT2_A2", - "name": "PlateT2_A2", - "sample_id": null, - "children": [], - "parent": "PlateT2", - "type": "well", - "class": "", - "position": { - "x": 20.9545, - "y": 71.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT2_B2", - "name": "PlateT2_B2", - "sample_id": null, - "children": [], - "parent": "PlateT2", - "type": "well", - "class": "", - "position": { - "x": 20.9545, - "y": 62.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT2_C2", - "name": "PlateT2_C2", - "sample_id": null, - "children": [], - "parent": "PlateT2", - "type": "well", - "class": "", - "position": { - "x": 20.9545, - "y": 53.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT2_D2", - "name": "PlateT2_D2", - "sample_id": null, - "children": [], - "parent": "PlateT2", - "type": "well", - "class": "", - "position": { - "x": 20.9545, - "y": 44.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT2_E2", - "name": "PlateT2_E2", - "sample_id": null, - "children": [], - "parent": "PlateT2", - "type": "well", - "class": "", - "position": { - "x": 20.9545, - "y": 35.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT2_F2", - "name": "PlateT2_F2", - "sample_id": null, - "children": [], - "parent": "PlateT2", - "type": "well", - "class": "", - "position": { - "x": 20.9545, - "y": 26.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT2_G2", - "name": "PlateT2_G2", - "sample_id": null, - "children": [], - "parent": "PlateT2", - "type": "well", - "class": "", - "position": { - "x": 20.9545, - "y": 17.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT2_H2", - "name": "PlateT2_H2", - "sample_id": null, - "children": [], - "parent": "PlateT2", - "type": "well", - "class": "", - "position": { - "x": 20.9545, - "y": 8.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT2_A3", - "name": "PlateT2_A3", - "sample_id": null, - "children": [], - "parent": "PlateT2", - "type": "well", - "class": "", - "position": { - "x": 29.9545, - "y": 71.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT2_B3", - "name": "PlateT2_B3", - "sample_id": null, - "children": [], - "parent": "PlateT2", - "type": "well", - "class": "", - "position": { - "x": 29.9545, - "y": 62.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT2_C3", - "name": "PlateT2_C3", - "sample_id": null, - "children": [], - "parent": "PlateT2", - "type": "well", - "class": "", - "position": { - "x": 29.9545, - "y": 53.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT2_D3", - "name": "PlateT2_D3", - "sample_id": null, - "children": [], - "parent": "PlateT2", - "type": "well", - "class": "", - "position": { - "x": 29.9545, - "y": 44.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT2_E3", - "name": "PlateT2_E3", - "sample_id": null, - "children": [], - "parent": "PlateT2", - "type": "well", - "class": "", - "position": { - "x": 29.9545, - "y": 35.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT2_F3", - "name": "PlateT2_F3", - "sample_id": null, - "children": [], - "parent": "PlateT2", - "type": "well", - "class": "", - "position": { - "x": 29.9545, - "y": 26.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT2_G3", - "name": "PlateT2_G3", - "sample_id": null, - "children": [], - "parent": "PlateT2", - "type": "well", - "class": "", - "position": { - "x": 29.9545, - "y": 17.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT2_H3", - "name": "PlateT2_H3", - "sample_id": null, - "children": [], - "parent": "PlateT2", - "type": "well", - "class": "", - "position": { - "x": 29.9545, - "y": 8.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT2_A4", - "name": "PlateT2_A4", - "sample_id": null, - "children": [], - "parent": "PlateT2", - "type": "well", - "class": "", - "position": { - "x": 38.9545, - "y": 71.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT2_B4", - "name": "PlateT2_B4", - "sample_id": null, - "children": [], - "parent": "PlateT2", - "type": "well", - "class": "", - "position": { - "x": 38.9545, - "y": 62.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT2_C4", - "name": "PlateT2_C4", - "sample_id": null, - "children": [], - "parent": "PlateT2", - "type": "well", - "class": "", - "position": { - "x": 38.9545, - "y": 53.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT2_D4", - "name": "PlateT2_D4", - "sample_id": null, - "children": [], - "parent": "PlateT2", - "type": "well", - "class": "", - "position": { - "x": 38.9545, - "y": 44.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT2_E4", - "name": "PlateT2_E4", - "sample_id": null, - "children": [], - "parent": "PlateT2", - "type": "well", - "class": "", - "position": { - "x": 38.9545, - "y": 35.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT2_F4", - "name": "PlateT2_F4", - "sample_id": null, - "children": [], - "parent": "PlateT2", - "type": "well", - "class": "", - "position": { - "x": 38.9545, - "y": 26.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT2_G4", - "name": "PlateT2_G4", - "sample_id": null, - "children": [], - "parent": "PlateT2", - "type": "well", - "class": "", - "position": { - "x": 38.9545, - "y": 17.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT2_H4", - "name": "PlateT2_H4", - "sample_id": null, - "children": [], - "parent": "PlateT2", - "type": "well", - "class": "", - "position": { - "x": 38.9545, - "y": 8.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT2_A5", - "name": "PlateT2_A5", - "sample_id": null, - "children": [], - "parent": "PlateT2", - "type": "well", - "class": "", - "position": { - "x": 47.9545, - "y": 71.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT2_B5", - "name": "PlateT2_B5", - "sample_id": null, - "children": [], - "parent": "PlateT2", - "type": "well", - "class": "", - "position": { - "x": 47.9545, - "y": 62.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT2_C5", - "name": "PlateT2_C5", - "sample_id": null, - "children": [], - "parent": "PlateT2", - "type": "well", - "class": "", - "position": { - "x": 47.9545, - "y": 53.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT2_D5", - "name": "PlateT2_D5", - "sample_id": null, - "children": [], - "parent": "PlateT2", - "type": "well", - "class": "", - "position": { - "x": 47.9545, - "y": 44.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT2_E5", - "name": "PlateT2_E5", - "sample_id": null, - "children": [], - "parent": "PlateT2", - "type": "well", - "class": "", - "position": { - "x": 47.9545, - "y": 35.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT2_F5", - "name": "PlateT2_F5", - "sample_id": null, - "children": [], - "parent": "PlateT2", - "type": "well", - "class": "", - "position": { - "x": 47.9545, - "y": 26.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT2_G5", - "name": "PlateT2_G5", - "sample_id": null, - "children": [], - "parent": "PlateT2", - "type": "well", - "class": "", - "position": { - "x": 47.9545, - "y": 17.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT2_H5", - "name": "PlateT2_H5", - "sample_id": null, - "children": [], - "parent": "PlateT2", - "type": "well", - "class": "", - "position": { - "x": 47.9545, - "y": 8.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT2_A6", - "name": "PlateT2_A6", - "sample_id": null, - "children": [], - "parent": "PlateT2", - "type": "well", - "class": "", - "position": { - "x": 56.9545, - "y": 71.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT2_B6", - "name": "PlateT2_B6", - "sample_id": null, - "children": [], - "parent": "PlateT2", - "type": "well", - "class": "", - "position": { - "x": 56.9545, - "y": 62.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT2_C6", - "name": "PlateT2_C6", - "sample_id": null, - "children": [], - "parent": "PlateT2", - "type": "well", - "class": "", - "position": { - "x": 56.9545, - "y": 53.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT2_D6", - "name": "PlateT2_D6", - "sample_id": null, - "children": [], - "parent": "PlateT2", - "type": "well", - "class": "", - "position": { - "x": 56.9545, - "y": 44.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT2_E6", - "name": "PlateT2_E6", - "sample_id": null, - "children": [], - "parent": "PlateT2", - "type": "well", - "class": "", - "position": { - "x": 56.9545, - "y": 35.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT2_F6", - "name": "PlateT2_F6", - "sample_id": null, - "children": [], - "parent": "PlateT2", - "type": "well", - "class": "", - "position": { - "x": 56.9545, - "y": 26.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT2_G6", - "name": "PlateT2_G6", - "sample_id": null, - "children": [], - "parent": "PlateT2", - "type": "well", - "class": "", - "position": { - "x": 56.9545, - "y": 17.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT2_H6", - "name": "PlateT2_H6", - "sample_id": null, - "children": [], - "parent": "PlateT2", - "type": "well", - "class": "", - "position": { - "x": 56.9545, - "y": 8.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT2_A7", - "name": "PlateT2_A7", - "sample_id": null, - "children": [], - "parent": "PlateT2", - "type": "well", - "class": "", - "position": { - "x": 65.9545, - "y": 71.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT2_B7", - "name": "PlateT2_B7", - "sample_id": null, - "children": [], - "parent": "PlateT2", - "type": "well", - "class": "", - "position": { - "x": 65.9545, - "y": 62.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT2_C7", - "name": "PlateT2_C7", - "sample_id": null, - "children": [], - "parent": "PlateT2", - "type": "well", - "class": "", - "position": { - "x": 65.9545, - "y": 53.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT2_D7", - "name": "PlateT2_D7", - "sample_id": null, - "children": [], - "parent": "PlateT2", - "type": "well", - "class": "", - "position": { - "x": 65.9545, - "y": 44.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT2_E7", - "name": "PlateT2_E7", - "sample_id": null, - "children": [], - "parent": "PlateT2", - "type": "well", - "class": "", - "position": { - "x": 65.9545, - "y": 35.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT2_F7", - "name": "PlateT2_F7", - "sample_id": null, - "children": [], - "parent": "PlateT2", - "type": "well", - "class": "", - "position": { - "x": 65.9545, - "y": 26.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT2_G7", - "name": "PlateT2_G7", - "sample_id": null, - "children": [], - "parent": "PlateT2", - "type": "well", - "class": "", - "position": { - "x": 65.9545, - "y": 17.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT2_H7", - "name": "PlateT2_H7", - "sample_id": null, - "children": [], - "parent": "PlateT2", - "type": "well", - "class": "", - "position": { - "x": 65.9545, - "y": 8.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT2_A8", - "name": "PlateT2_A8", - "sample_id": null, - "children": [], - "parent": "PlateT2", - "type": "well", - "class": "", - "position": { - "x": 74.9545, - "y": 71.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT2_B8", - "name": "PlateT2_B8", - "sample_id": null, - "children": [], - "parent": "PlateT2", - "type": "well", - "class": "", - "position": { - "x": 74.9545, - "y": 62.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT2_C8", - "name": "PlateT2_C8", - "sample_id": null, - "children": [], - "parent": "PlateT2", - "type": "well", - "class": "", - "position": { - "x": 74.9545, - "y": 53.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT2_D8", - "name": "PlateT2_D8", - "sample_id": null, - "children": [], - "parent": "PlateT2", - "type": "well", - "class": "", - "position": { - "x": 74.9545, - "y": 44.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT2_E8", - "name": "PlateT2_E8", - "sample_id": null, - "children": [], - "parent": "PlateT2", - "type": "well", - "class": "", - "position": { - "x": 74.9545, - "y": 35.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT2_F8", - "name": "PlateT2_F8", - "sample_id": null, - "children": [], - "parent": "PlateT2", - "type": "well", - "class": "", - "position": { - "x": 74.9545, - "y": 26.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT2_G8", - "name": "PlateT2_G8", - "sample_id": null, - "children": [], - "parent": "PlateT2", - "type": "well", - "class": "", - "position": { - "x": 74.9545, - "y": 17.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT2_H8", - "name": "PlateT2_H8", - "sample_id": null, - "children": [], - "parent": "PlateT2", - "type": "well", - "class": "", - "position": { - "x": 74.9545, - "y": 8.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT2_A9", - "name": "PlateT2_A9", - "sample_id": null, - "children": [], - "parent": "PlateT2", - "type": "well", - "class": "", - "position": { - "x": 83.9545, - "y": 71.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT2_B9", - "name": "PlateT2_B9", - "sample_id": null, - "children": [], - "parent": "PlateT2", - "type": "well", - "class": "", - "position": { - "x": 83.9545, - "y": 62.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT2_C9", - "name": "PlateT2_C9", - "sample_id": null, - "children": [], - "parent": "PlateT2", - "type": "well", - "class": "", - "position": { - "x": 83.9545, - "y": 53.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT2_D9", - "name": "PlateT2_D9", - "sample_id": null, - "children": [], - "parent": "PlateT2", - "type": "well", - "class": "", - "position": { - "x": 83.9545, - "y": 44.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT2_E9", - "name": "PlateT2_E9", - "sample_id": null, - "children": [], - "parent": "PlateT2", - "type": "well", - "class": "", - "position": { - "x": 83.9545, - "y": 35.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT2_F9", - "name": "PlateT2_F9", - "sample_id": null, - "children": [], - "parent": "PlateT2", - "type": "well", - "class": "", - "position": { - "x": 83.9545, - "y": 26.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT2_G9", - "name": "PlateT2_G9", - "sample_id": null, - "children": [], - "parent": "PlateT2", - "type": "well", - "class": "", - "position": { - "x": 83.9545, - "y": 17.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT2_H9", - "name": "PlateT2_H9", - "sample_id": null, - "children": [], - "parent": "PlateT2", - "type": "well", - "class": "", - "position": { - "x": 83.9545, - "y": 8.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT2_A10", - "name": "PlateT2_A10", - "sample_id": null, - "children": [], - "parent": "PlateT2", - "type": "well", - "class": "", - "position": { - "x": 92.9545, - "y": 71.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT2_B10", - "name": "PlateT2_B10", - "sample_id": null, - "children": [], - "parent": "PlateT2", - "type": "well", - "class": "", - "position": { - "x": 92.9545, - "y": 62.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT2_C10", - "name": "PlateT2_C10", - "sample_id": null, - "children": [], - "parent": "PlateT2", - "type": "well", - "class": "", - "position": { - "x": 92.9545, - "y": 53.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT2_D10", - "name": "PlateT2_D10", - "sample_id": null, - "children": [], - "parent": "PlateT2", - "type": "well", - "class": "", - "position": { - "x": 92.9545, - "y": 44.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT2_E10", - "name": "PlateT2_E10", - "sample_id": null, - "children": [], - "parent": "PlateT2", - "type": "well", - "class": "", - "position": { - "x": 92.9545, - "y": 35.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT2_F10", - "name": "PlateT2_F10", - "sample_id": null, - "children": [], - "parent": "PlateT2", - "type": "well", - "class": "", - "position": { - "x": 92.9545, - "y": 26.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT2_G10", - "name": "PlateT2_G10", - "sample_id": null, - "children": [], - "parent": "PlateT2", - "type": "well", - "class": "", - "position": { - "x": 92.9545, - "y": 17.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT2_H10", - "name": "PlateT2_H10", - "sample_id": null, - "children": [], - "parent": "PlateT2", - "type": "well", - "class": "", - "position": { - "x": 92.9545, - "y": 8.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT2_A11", - "name": "PlateT2_A11", - "sample_id": null, - "children": [], - "parent": "PlateT2", - "type": "well", - "class": "", - "position": { - "x": 101.9545, - "y": 71.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT2_B11", - "name": "PlateT2_B11", - "sample_id": null, - "children": [], - "parent": "PlateT2", - "type": "well", - "class": "", - "position": { - "x": 101.9545, - "y": 62.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT2_C11", - "name": "PlateT2_C11", - "sample_id": null, - "children": [], - "parent": "PlateT2", - "type": "well", - "class": "", - "position": { - "x": 101.9545, - "y": 53.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT2_D11", - "name": "PlateT2_D11", - "sample_id": null, - "children": [], - "parent": "PlateT2", - "type": "well", - "class": "", - "position": { - "x": 101.9545, - "y": 44.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT2_E11", - "name": "PlateT2_E11", - "sample_id": null, - "children": [], - "parent": "PlateT2", - "type": "well", - "class": "", - "position": { - "x": 101.9545, - "y": 35.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT2_F11", - "name": "PlateT2_F11", - "sample_id": null, - "children": [], - "parent": "PlateT2", - "type": "well", - "class": "", - "position": { - "x": 101.9545, - "y": 26.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT2_G11", - "name": "PlateT2_G11", - "sample_id": null, - "children": [], - "parent": "PlateT2", - "type": "well", - "class": "", - "position": { - "x": 101.9545, - "y": 17.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT2_H11", - "name": "PlateT2_H11", - "sample_id": null, - "children": [], - "parent": "PlateT2", - "type": "well", - "class": "", - "position": { - "x": 101.9545, - "y": 8.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT2_A12", - "name": "PlateT2_A12", - "sample_id": null, - "children": [], - "parent": "PlateT2", - "type": "well", - "class": "", - "position": { - "x": 110.9545, - "y": 71.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT2_B12", - "name": "PlateT2_B12", - "sample_id": null, - "children": [], - "parent": "PlateT2", - "type": "well", - "class": "", - "position": { - "x": 110.9545, - "y": 62.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT2_C12", - "name": "PlateT2_C12", - "sample_id": null, - "children": [], - "parent": "PlateT2", - "type": "well", - "class": "", - "position": { - "x": 110.9545, - "y": 53.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT2_D12", - "name": "PlateT2_D12", - "sample_id": null, - "children": [], - "parent": "PlateT2", - "type": "well", - "class": "", - "position": { - "x": 110.9545, - "y": 44.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT2_E12", - "name": "PlateT2_E12", - "sample_id": null, - "children": [], - "parent": "PlateT2", - "type": "well", - "class": "", - "position": { - "x": 110.9545, - "y": 35.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT2_F12", - "name": "PlateT2_F12", - "sample_id": null, - "children": [], - "parent": "PlateT2", - "type": "well", - "class": "", - "position": { - "x": 110.9545, - "y": 26.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT2_G12", - "name": "PlateT2_G12", - "sample_id": null, - "children": [], - "parent": "PlateT2", - "type": "well", - "class": "", - "position": { - "x": 110.9545, - "y": 17.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT2_H12", - "name": "PlateT2_H12", - "sample_id": null, - "children": [], - "parent": "PlateT2", - "type": "well", - "class": "", - "position": { - "x": 110.9545, - "y": 8.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "container_for_nothin3", - "name": "container_for_nothin3", - "sample_id": null, - "children": [], - "parent": "PRCXI_Deck", - "type": "plate", - "class": "", - "position": { - "x": 0, - "y": 0, - "z": 0 - }, - "config": { - "type": "PRCXI9300Plate", - "size_x": 50, - "size_y": 50, - "size_z": 10, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "plate", - "model": null, - "barcode": null, - "ordering": {} - }, - "data": {} - }, - { - "id": "PlateT4", - "name": "PlateT4", - "sample_id": null, - "children": [ - "PlateT4_A1", - "PlateT4_B1", - "PlateT4_C1", - "PlateT4_D1", - "PlateT4_E1", - "PlateT4_F1", - "PlateT4_G1", - "PlateT4_H1", - "PlateT4_A2", - "PlateT4_B2", - "PlateT4_C2", - "PlateT4_D2", - "PlateT4_E2", - "PlateT4_F2", - "PlateT4_G2", - "PlateT4_H2", - "PlateT4_A3", - "PlateT4_B3", - "PlateT4_C3", - "PlateT4_D3", - "PlateT4_E3", - "PlateT4_F3", - "PlateT4_G3", - "PlateT4_H3", - "PlateT4_A4", - "PlateT4_B4", - "PlateT4_C4", - "PlateT4_D4", - "PlateT4_E4", - "PlateT4_F4", - "PlateT4_G4", - "PlateT4_H4", - "PlateT4_A5", - "PlateT4_B5", - "PlateT4_C5", - "PlateT4_D5", - "PlateT4_E5", - "PlateT4_F5", - "PlateT4_G5", - "PlateT4_H5", - "PlateT4_A6", - "PlateT4_B6", - "PlateT4_C6", - "PlateT4_D6", - "PlateT4_E6", - "PlateT4_F6", - "PlateT4_G6", - "PlateT4_H6", - "PlateT4_A7", - "PlateT4_B7", - "PlateT4_C7", - "PlateT4_D7", - "PlateT4_E7", - "PlateT4_F7", - "PlateT4_G7", - "PlateT4_H7", - "PlateT4_A8", - "PlateT4_B8", - "PlateT4_C8", - "PlateT4_D8", - "PlateT4_E8", - "PlateT4_F8", - "PlateT4_G8", - "PlateT4_H8", - "PlateT4_A9", - "PlateT4_B9", - "PlateT4_C9", - "PlateT4_D9", - "PlateT4_E9", - "PlateT4_F9", - "PlateT4_G9", - "PlateT4_H9", - "PlateT4_A10", - "PlateT4_B10", - "PlateT4_C10", - "PlateT4_D10", - "PlateT4_E10", - "PlateT4_F10", - "PlateT4_G10", - "PlateT4_H10", - "PlateT4_A11", - "PlateT4_B11", - "PlateT4_C11", - "PlateT4_D11", - "PlateT4_E11", - "PlateT4_F11", - "PlateT4_G11", - "PlateT4_H11", - "PlateT4_A12", - "PlateT4_B12", - "PlateT4_C12", - "PlateT4_D12", - "PlateT4_E12", - "PlateT4_F12", - "PlateT4_G12", - "PlateT4_H12" - ], - "parent": "PRCXI_Deck", - "type": "plate", - "class": "", - "position": { - "x": 0, - "y": 0, - "z": 0 - }, - "config": { - "type": "PRCXI9300Plate", - "size_x": 50, - "size_y": 50, - "size_z": 10, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "plate", - "model": null, - "barcode": null, - "ordering": { - "A1": "PlateT4_A1", - "B1": "PlateT4_B1", - "C1": "PlateT4_C1", - "D1": "PlateT4_D1", - "E1": "PlateT4_E1", - "F1": "PlateT4_F1", - "G1": "PlateT4_G1", - "H1": "PlateT4_H1", - "A2": "PlateT4_A2", - "B2": "PlateT4_B2", - "C2": "PlateT4_C2", - "D2": "PlateT4_D2", - "E2": "PlateT4_E2", - "F2": "PlateT4_F2", - "G2": "PlateT4_G2", - "H2": "PlateT4_H2", - "A3": "PlateT4_A3", - "B3": "PlateT4_B3", - "C3": "PlateT4_C3", - "D3": "PlateT4_D3", - "E3": "PlateT4_E3", - "F3": "PlateT4_F3", - "G3": "PlateT4_G3", - "H3": "PlateT4_H3", - "A4": "PlateT4_A4", - "B4": "PlateT4_B4", - "C4": "PlateT4_C4", - "D4": "PlateT4_D4", - "E4": "PlateT4_E4", - "F4": "PlateT4_F4", - "G4": "PlateT4_G4", - "H4": "PlateT4_H4", - "A5": "PlateT4_A5", - "B5": "PlateT4_B5", - "C5": "PlateT4_C5", - "D5": "PlateT4_D5", - "E5": "PlateT4_E5", - "F5": "PlateT4_F5", - "G5": "PlateT4_G5", - "H5": "PlateT4_H5", - "A6": "PlateT4_A6", - "B6": "PlateT4_B6", - "C6": "PlateT4_C6", - "D6": "PlateT4_D6", - "E6": "PlateT4_E6", - "F6": "PlateT4_F6", - "G6": "PlateT4_G6", - "H6": "PlateT4_H6", - "A7": "PlateT4_A7", - "B7": "PlateT4_B7", - "C7": "PlateT4_C7", - "D7": "PlateT4_D7", - "E7": "PlateT4_E7", - "F7": "PlateT4_F7", - "G7": "PlateT4_G7", - "H7": "PlateT4_H7", - "A8": "PlateT4_A8", - "B8": "PlateT4_B8", - "C8": "PlateT4_C8", - "D8": "PlateT4_D8", - "E8": "PlateT4_E8", - "F8": "PlateT4_F8", - "G8": "PlateT4_G8", - "H8": "PlateT4_H8", - "A9": "PlateT4_A9", - "B9": "PlateT4_B9", - "C9": "PlateT4_C9", - "D9": "PlateT4_D9", - "E9": "PlateT4_E9", - "F9": "PlateT4_F9", - "G9": "PlateT4_G9", - "H9": "PlateT4_H9", - "A10": "PlateT4_A10", - "B10": "PlateT4_B10", - "C10": "PlateT4_C10", - "D10": "PlateT4_D10", - "E10": "PlateT4_E10", - "F10": "PlateT4_F10", - "G10": "PlateT4_G10", - "H10": "PlateT4_H10", - "A11": "PlateT4_A11", - "B11": "PlateT4_B11", - "C11": "PlateT4_C11", - "D11": "PlateT4_D11", - "E11": "PlateT4_E11", - "F11": "PlateT4_F11", - "G11": "PlateT4_G11", - "H11": "PlateT4_H11", - "A12": "PlateT4_A12", - "B12": "PlateT4_B12", - "C12": "PlateT4_C12", - "D12": "PlateT4_D12", - "E12": "PlateT4_E12", - "F12": "PlateT4_F12", - "G12": "PlateT4_G12", - "H12": "PlateT4_H12" - } - }, - "data": { - "Material": { - "uuid": "b05b3b2aafd94ec38ea0cd3215ecea8f", - "Code": "ZX-78-096", - "Name": "细菌培养皿" - } - } - }, - { - "id": "PlateT4_A1", - "name": "PlateT4_A1", - "sample_id": null, - "children": [], - "parent": "PlateT4", - "type": "well", - "class": "", - "position": { - "x": 11.9545, - "y": 71.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT4_B1", - "name": "PlateT4_B1", - "sample_id": null, - "children": [], - "parent": "PlateT4", - "type": "well", - "class": "", - "position": { - "x": 11.9545, - "y": 62.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT4_C1", - "name": "PlateT4_C1", - "sample_id": null, - "children": [], - "parent": "PlateT4", - "type": "well", - "class": "", - "position": { - "x": 11.9545, - "y": 53.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT4_D1", - "name": "PlateT4_D1", - "sample_id": null, - "children": [], - "parent": "PlateT4", - "type": "well", - "class": "", - "position": { - "x": 11.9545, - "y": 44.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT4_E1", - "name": "PlateT4_E1", - "sample_id": null, - "children": [], - "parent": "PlateT4", - "type": "well", - "class": "", - "position": { - "x": 11.9545, - "y": 35.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT4_F1", - "name": "PlateT4_F1", - "sample_id": null, - "children": [], - "parent": "PlateT4", - "type": "well", - "class": "", - "position": { - "x": 11.9545, - "y": 26.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT4_G1", - "name": "PlateT4_G1", - "sample_id": null, - "children": [], - "parent": "PlateT4", - "type": "well", - "class": "", - "position": { - "x": 11.9545, - "y": 17.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT4_H1", - "name": "PlateT4_H1", - "sample_id": null, - "children": [], - "parent": "PlateT4", - "type": "well", - "class": "", - "position": { - "x": 11.9545, - "y": 8.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT4_A2", - "name": "PlateT4_A2", - "sample_id": null, - "children": [], - "parent": "PlateT4", - "type": "well", - "class": "", - "position": { - "x": 20.9545, - "y": 71.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT4_B2", - "name": "PlateT4_B2", - "sample_id": null, - "children": [], - "parent": "PlateT4", - "type": "well", - "class": "", - "position": { - "x": 20.9545, - "y": 62.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT4_C2", - "name": "PlateT4_C2", - "sample_id": null, - "children": [], - "parent": "PlateT4", - "type": "well", - "class": "", - "position": { - "x": 20.9545, - "y": 53.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT4_D2", - "name": "PlateT4_D2", - "sample_id": null, - "children": [], - "parent": "PlateT4", - "type": "well", - "class": "", - "position": { - "x": 20.9545, - "y": 44.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT4_E2", - "name": "PlateT4_E2", - "sample_id": null, - "children": [], - "parent": "PlateT4", - "type": "well", - "class": "", - "position": { - "x": 20.9545, - "y": 35.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT4_F2", - "name": "PlateT4_F2", - "sample_id": null, - "children": [], - "parent": "PlateT4", - "type": "well", - "class": "", - "position": { - "x": 20.9545, - "y": 26.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT4_G2", - "name": "PlateT4_G2", - "sample_id": null, - "children": [], - "parent": "PlateT4", - "type": "well", - "class": "", - "position": { - "x": 20.9545, - "y": 17.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT4_H2", - "name": "PlateT4_H2", - "sample_id": null, - "children": [], - "parent": "PlateT4", - "type": "well", - "class": "", - "position": { - "x": 20.9545, - "y": 8.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT4_A3", - "name": "PlateT4_A3", - "sample_id": null, - "children": [], - "parent": "PlateT4", - "type": "well", - "class": "", - "position": { - "x": 29.9545, - "y": 71.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT4_B3", - "name": "PlateT4_B3", - "sample_id": null, - "children": [], - "parent": "PlateT4", - "type": "well", - "class": "", - "position": { - "x": 29.9545, - "y": 62.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT4_C3", - "name": "PlateT4_C3", - "sample_id": null, - "children": [], - "parent": "PlateT4", - "type": "well", - "class": "", - "position": { - "x": 29.9545, - "y": 53.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT4_D3", - "name": "PlateT4_D3", - "sample_id": null, - "children": [], - "parent": "PlateT4", - "type": "well", - "class": "", - "position": { - "x": 29.9545, - "y": 44.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT4_E3", - "name": "PlateT4_E3", - "sample_id": null, - "children": [], - "parent": "PlateT4", - "type": "well", - "class": "", - "position": { - "x": 29.9545, - "y": 35.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT4_F3", - "name": "PlateT4_F3", - "sample_id": null, - "children": [], - "parent": "PlateT4", - "type": "well", - "class": "", - "position": { - "x": 29.9545, - "y": 26.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT4_G3", - "name": "PlateT4_G3", - "sample_id": null, - "children": [], - "parent": "PlateT4", - "type": "well", - "class": "", - "position": { - "x": 29.9545, - "y": 17.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT4_H3", - "name": "PlateT4_H3", - "sample_id": null, - "children": [], - "parent": "PlateT4", - "type": "well", - "class": "", - "position": { - "x": 29.9545, - "y": 8.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT4_A4", - "name": "PlateT4_A4", - "sample_id": null, - "children": [], - "parent": "PlateT4", - "type": "well", - "class": "", - "position": { - "x": 38.9545, - "y": 71.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT4_B4", - "name": "PlateT4_B4", - "sample_id": null, - "children": [], - "parent": "PlateT4", - "type": "well", - "class": "", - "position": { - "x": 38.9545, - "y": 62.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT4_C4", - "name": "PlateT4_C4", - "sample_id": null, - "children": [], - "parent": "PlateT4", - "type": "well", - "class": "", - "position": { - "x": 38.9545, - "y": 53.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT4_D4", - "name": "PlateT4_D4", - "sample_id": null, - "children": [], - "parent": "PlateT4", - "type": "well", - "class": "", - "position": { - "x": 38.9545, - "y": 44.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT4_E4", - "name": "PlateT4_E4", - "sample_id": null, - "children": [], - "parent": "PlateT4", - "type": "well", - "class": "", - "position": { - "x": 38.9545, - "y": 35.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT4_F4", - "name": "PlateT4_F4", - "sample_id": null, - "children": [], - "parent": "PlateT4", - "type": "well", - "class": "", - "position": { - "x": 38.9545, - "y": 26.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT4_G4", - "name": "PlateT4_G4", - "sample_id": null, - "children": [], - "parent": "PlateT4", - "type": "well", - "class": "", - "position": { - "x": 38.9545, - "y": 17.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT4_H4", - "name": "PlateT4_H4", - "sample_id": null, - "children": [], - "parent": "PlateT4", - "type": "well", - "class": "", - "position": { - "x": 38.9545, - "y": 8.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT4_A5", - "name": "PlateT4_A5", - "sample_id": null, - "children": [], - "parent": "PlateT4", - "type": "well", - "class": "", - "position": { - "x": 47.9545, - "y": 71.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT4_B5", - "name": "PlateT4_B5", - "sample_id": null, - "children": [], - "parent": "PlateT4", - "type": "well", - "class": "", - "position": { - "x": 47.9545, - "y": 62.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT4_C5", - "name": "PlateT4_C5", - "sample_id": null, - "children": [], - "parent": "PlateT4", - "type": "well", - "class": "", - "position": { - "x": 47.9545, - "y": 53.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT4_D5", - "name": "PlateT4_D5", - "sample_id": null, - "children": [], - "parent": "PlateT4", - "type": "well", - "class": "", - "position": { - "x": 47.9545, - "y": 44.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT4_E5", - "name": "PlateT4_E5", - "sample_id": null, - "children": [], - "parent": "PlateT4", - "type": "well", - "class": "", - "position": { - "x": 47.9545, - "y": 35.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT4_F5", - "name": "PlateT4_F5", - "sample_id": null, - "children": [], - "parent": "PlateT4", - "type": "well", - "class": "", - "position": { - "x": 47.9545, - "y": 26.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT4_G5", - "name": "PlateT4_G5", - "sample_id": null, - "children": [], - "parent": "PlateT4", - "type": "well", - "class": "", - "position": { - "x": 47.9545, - "y": 17.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT4_H5", - "name": "PlateT4_H5", - "sample_id": null, - "children": [], - "parent": "PlateT4", - "type": "well", - "class": "", - "position": { - "x": 47.9545, - "y": 8.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT4_A6", - "name": "PlateT4_A6", - "sample_id": null, - "children": [], - "parent": "PlateT4", - "type": "well", - "class": "", - "position": { - "x": 56.9545, - "y": 71.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT4_B6", - "name": "PlateT4_B6", - "sample_id": null, - "children": [], - "parent": "PlateT4", - "type": "well", - "class": "", - "position": { - "x": 56.9545, - "y": 62.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT4_C6", - "name": "PlateT4_C6", - "sample_id": null, - "children": [], - "parent": "PlateT4", - "type": "well", - "class": "", - "position": { - "x": 56.9545, - "y": 53.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT4_D6", - "name": "PlateT4_D6", - "sample_id": null, - "children": [], - "parent": "PlateT4", - "type": "well", - "class": "", - "position": { - "x": 56.9545, - "y": 44.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT4_E6", - "name": "PlateT4_E6", - "sample_id": null, - "children": [], - "parent": "PlateT4", - "type": "well", - "class": "", - "position": { - "x": 56.9545, - "y": 35.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT4_F6", - "name": "PlateT4_F6", - "sample_id": null, - "children": [], - "parent": "PlateT4", - "type": "well", - "class": "", - "position": { - "x": 56.9545, - "y": 26.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT4_G6", - "name": "PlateT4_G6", - "sample_id": null, - "children": [], - "parent": "PlateT4", - "type": "well", - "class": "", - "position": { - "x": 56.9545, - "y": 17.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT4_H6", - "name": "PlateT4_H6", - "sample_id": null, - "children": [], - "parent": "PlateT4", - "type": "well", - "class": "", - "position": { - "x": 56.9545, - "y": 8.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT4_A7", - "name": "PlateT4_A7", - "sample_id": null, - "children": [], - "parent": "PlateT4", - "type": "well", - "class": "", - "position": { - "x": 65.9545, - "y": 71.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT4_B7", - "name": "PlateT4_B7", - "sample_id": null, - "children": [], - "parent": "PlateT4", - "type": "well", - "class": "", - "position": { - "x": 65.9545, - "y": 62.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT4_C7", - "name": "PlateT4_C7", - "sample_id": null, - "children": [], - "parent": "PlateT4", - "type": "well", - "class": "", - "position": { - "x": 65.9545, - "y": 53.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT4_D7", - "name": "PlateT4_D7", - "sample_id": null, - "children": [], - "parent": "PlateT4", - "type": "well", - "class": "", - "position": { - "x": 65.9545, - "y": 44.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT4_E7", - "name": "PlateT4_E7", - "sample_id": null, - "children": [], - "parent": "PlateT4", - "type": "well", - "class": "", - "position": { - "x": 65.9545, - "y": 35.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT4_F7", - "name": "PlateT4_F7", - "sample_id": null, - "children": [], - "parent": "PlateT4", - "type": "well", - "class": "", - "position": { - "x": 65.9545, - "y": 26.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT4_G7", - "name": "PlateT4_G7", - "sample_id": null, - "children": [], - "parent": "PlateT4", - "type": "well", - "class": "", - "position": { - "x": 65.9545, - "y": 17.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT4_H7", - "name": "PlateT4_H7", - "sample_id": null, - "children": [], - "parent": "PlateT4", - "type": "well", - "class": "", - "position": { - "x": 65.9545, - "y": 8.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT4_A8", - "name": "PlateT4_A8", - "sample_id": null, - "children": [], - "parent": "PlateT4", - "type": "well", - "class": "", - "position": { - "x": 74.9545, - "y": 71.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT4_B8", - "name": "PlateT4_B8", - "sample_id": null, - "children": [], - "parent": "PlateT4", - "type": "well", - "class": "", - "position": { - "x": 74.9545, - "y": 62.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT4_C8", - "name": "PlateT4_C8", - "sample_id": null, - "children": [], - "parent": "PlateT4", - "type": "well", - "class": "", - "position": { - "x": 74.9545, - "y": 53.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT4_D8", - "name": "PlateT4_D8", - "sample_id": null, - "children": [], - "parent": "PlateT4", - "type": "well", - "class": "", - "position": { - "x": 74.9545, - "y": 44.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT4_E8", - "name": "PlateT4_E8", - "sample_id": null, - "children": [], - "parent": "PlateT4", - "type": "well", - "class": "", - "position": { - "x": 74.9545, - "y": 35.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT4_F8", - "name": "PlateT4_F8", - "sample_id": null, - "children": [], - "parent": "PlateT4", - "type": "well", - "class": "", - "position": { - "x": 74.9545, - "y": 26.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT4_G8", - "name": "PlateT4_G8", - "sample_id": null, - "children": [], - "parent": "PlateT4", - "type": "well", - "class": "", - "position": { - "x": 74.9545, - "y": 17.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT4_H8", - "name": "PlateT4_H8", - "sample_id": null, - "children": [], - "parent": "PlateT4", - "type": "well", - "class": "", - "position": { - "x": 74.9545, - "y": 8.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT4_A9", - "name": "PlateT4_A9", - "sample_id": null, - "children": [], - "parent": "PlateT4", - "type": "well", - "class": "", - "position": { - "x": 83.9545, - "y": 71.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT4_B9", - "name": "PlateT4_B9", - "sample_id": null, - "children": [], - "parent": "PlateT4", - "type": "well", - "class": "", - "position": { - "x": 83.9545, - "y": 62.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT4_C9", - "name": "PlateT4_C9", - "sample_id": null, - "children": [], - "parent": "PlateT4", - "type": "well", - "class": "", - "position": { - "x": 83.9545, - "y": 53.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT4_D9", - "name": "PlateT4_D9", - "sample_id": null, - "children": [], - "parent": "PlateT4", - "type": "well", - "class": "", - "position": { - "x": 83.9545, - "y": 44.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT4_E9", - "name": "PlateT4_E9", - "sample_id": null, - "children": [], - "parent": "PlateT4", - "type": "well", - "class": "", - "position": { - "x": 83.9545, - "y": 35.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT4_F9", - "name": "PlateT4_F9", - "sample_id": null, - "children": [], - "parent": "PlateT4", - "type": "well", - "class": "", - "position": { - "x": 83.9545, - "y": 26.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT4_G9", - "name": "PlateT4_G9", - "sample_id": null, - "children": [], - "parent": "PlateT4", - "type": "well", - "class": "", - "position": { - "x": 83.9545, - "y": 17.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT4_H9", - "name": "PlateT4_H9", - "sample_id": null, - "children": [], - "parent": "PlateT4", - "type": "well", - "class": "", - "position": { - "x": 83.9545, - "y": 8.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT4_A10", - "name": "PlateT4_A10", - "sample_id": null, - "children": [], - "parent": "PlateT4", - "type": "well", - "class": "", - "position": { - "x": 92.9545, - "y": 71.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT4_B10", - "name": "PlateT4_B10", - "sample_id": null, - "children": [], - "parent": "PlateT4", - "type": "well", - "class": "", - "position": { - "x": 92.9545, - "y": 62.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT4_C10", - "name": "PlateT4_C10", - "sample_id": null, - "children": [], - "parent": "PlateT4", - "type": "well", - "class": "", - "position": { - "x": 92.9545, - "y": 53.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT4_D10", - "name": "PlateT4_D10", - "sample_id": null, - "children": [], - "parent": "PlateT4", - "type": "well", - "class": "", - "position": { - "x": 92.9545, - "y": 44.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT4_E10", - "name": "PlateT4_E10", - "sample_id": null, - "children": [], - "parent": "PlateT4", - "type": "well", - "class": "", - "position": { - "x": 92.9545, - "y": 35.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT4_F10", - "name": "PlateT4_F10", - "sample_id": null, - "children": [], - "parent": "PlateT4", - "type": "well", - "class": "", - "position": { - "x": 92.9545, - "y": 26.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT4_G10", - "name": "PlateT4_G10", - "sample_id": null, - "children": [], - "parent": "PlateT4", - "type": "well", - "class": "", - "position": { - "x": 92.9545, - "y": 17.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT4_H10", - "name": "PlateT4_H10", - "sample_id": null, - "children": [], - "parent": "PlateT4", - "type": "well", - "class": "", - "position": { - "x": 92.9545, - "y": 8.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT4_A11", - "name": "PlateT4_A11", - "sample_id": null, - "children": [], - "parent": "PlateT4", - "type": "well", - "class": "", - "position": { - "x": 101.9545, - "y": 71.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT4_B11", - "name": "PlateT4_B11", - "sample_id": null, - "children": [], - "parent": "PlateT4", - "type": "well", - "class": "", - "position": { - "x": 101.9545, - "y": 62.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT4_C11", - "name": "PlateT4_C11", - "sample_id": null, - "children": [], - "parent": "PlateT4", - "type": "well", - "class": "", - "position": { - "x": 101.9545, - "y": 53.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT4_D11", - "name": "PlateT4_D11", - "sample_id": null, - "children": [], - "parent": "PlateT4", - "type": "well", - "class": "", - "position": { - "x": 101.9545, - "y": 44.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT4_E11", - "name": "PlateT4_E11", - "sample_id": null, - "children": [], - "parent": "PlateT4", - "type": "well", - "class": "", - "position": { - "x": 101.9545, - "y": 35.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT4_F11", - "name": "PlateT4_F11", - "sample_id": null, - "children": [], - "parent": "PlateT4", - "type": "well", - "class": "", - "position": { - "x": 101.9545, - "y": 26.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT4_G11", - "name": "PlateT4_G11", - "sample_id": null, - "children": [], - "parent": "PlateT4", - "type": "well", - "class": "", - "position": { - "x": 101.9545, - "y": 17.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT4_H11", - "name": "PlateT4_H11", - "sample_id": null, - "children": [], - "parent": "PlateT4", - "type": "well", - "class": "", - "position": { - "x": 101.9545, - "y": 8.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT4_A12", - "name": "PlateT4_A12", - "sample_id": null, - "children": [], - "parent": "PlateT4", - "type": "well", - "class": "", - "position": { - "x": 110.9545, - "y": 71.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT4_B12", - "name": "PlateT4_B12", - "sample_id": null, - "children": [], - "parent": "PlateT4", - "type": "well", - "class": "", - "position": { - "x": 110.9545, - "y": 62.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT4_C12", - "name": "PlateT4_C12", - "sample_id": null, - "children": [], - "parent": "PlateT4", - "type": "well", - "class": "", - "position": { - "x": 110.9545, - "y": 53.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT4_D12", - "name": "PlateT4_D12", - "sample_id": null, - "children": [], - "parent": "PlateT4", - "type": "well", - "class": "", - "position": { - "x": 110.9545, - "y": 44.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT4_E12", - "name": "PlateT4_E12", - "sample_id": null, - "children": [], - "parent": "PlateT4", - "type": "well", - "class": "", - "position": { - "x": 110.9545, - "y": 35.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT4_F12", - "name": "PlateT4_F12", - "sample_id": null, - "children": [], - "parent": "PlateT4", - "type": "well", - "class": "", - "position": { - "x": 110.9545, - "y": 26.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT4_G12", - "name": "PlateT4_G12", - "sample_id": null, - "children": [], - "parent": "PlateT4", - "type": "well", - "class": "", - "position": { - "x": 110.9545, - "y": 17.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT4_H12", - "name": "PlateT4_H12", - "sample_id": null, - "children": [], - "parent": "PlateT4", - "type": "well", - "class": "", - "position": { - "x": 110.9545, - "y": 8.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "RackT5", - "name": "RackT5", - "sample_id": null, - "children": [ - "RackT5_A1", - "RackT5_B1", - "RackT5_C1", - "RackT5_D1", - "RackT5_E1", - "RackT5_F1", - "RackT5_G1", - "RackT5_H1", - "RackT5_A2", - "RackT5_B2", - "RackT5_C2", - "RackT5_D2", - "RackT5_E2", - "RackT5_F2", - "RackT5_G2", - "RackT5_H2", - "RackT5_A3", - "RackT5_B3", - "RackT5_C3", - "RackT5_D3", - "RackT5_E3", - "RackT5_F3", - "RackT5_G3", - "RackT5_H3", - "RackT5_A4", - "RackT5_B4", - "RackT5_C4", - "RackT5_D4", - "RackT5_E4", - "RackT5_F4", - "RackT5_G4", - "RackT5_H4", - "RackT5_A5", - "RackT5_B5", - "RackT5_C5", - "RackT5_D5", - "RackT5_E5", - "RackT5_F5", - "RackT5_G5", - "RackT5_H5", - "RackT5_A6", - "RackT5_B6", - "RackT5_C6", - "RackT5_D6", - "RackT5_E6", - "RackT5_F6", - "RackT5_G6", - "RackT5_H6", - "RackT5_A7", - "RackT5_B7", - "RackT5_C7", - "RackT5_D7", - "RackT5_E7", - "RackT5_F7", - "RackT5_G7", - "RackT5_H7", - "RackT5_A8", - "RackT5_B8", - "RackT5_C8", - "RackT5_D8", - "RackT5_E8", - "RackT5_F8", - "RackT5_G8", - "RackT5_H8", - "RackT5_A9", - "RackT5_B9", - "RackT5_C9", - "RackT5_D9", - "RackT5_E9", - "RackT5_F9", - "RackT5_G9", - "RackT5_H9", - "RackT5_A10", - "RackT5_B10", - "RackT5_C10", - "RackT5_D10", - "RackT5_E10", - "RackT5_F10", - "RackT5_G10", - "RackT5_H10", - "RackT5_A11", - "RackT5_B11", - "RackT5_C11", - "RackT5_D11", - "RackT5_E11", - "RackT5_F11", - "RackT5_G11", - "RackT5_H11", - "RackT5_A12", - "RackT5_B12", - "RackT5_C12", - "RackT5_D12", - "RackT5_E12", - "RackT5_F12", - "RackT5_G12", - "RackT5_H12" - ], - "parent": "PRCXI_Deck", - "type": "container", - "class": "", - "position": { - "x": 0, - "y": 0, - "z": 0 - }, - "config": { - "type": "PRCXI9300TipRack", - "size_x": 50, - "size_y": 50, - "size_z": 10, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "tip_rack", - "model": null, - "barcode": null, - "ordering": { - "A1": "tip_A1", - "B1": "tip_B1", - "C1": "tip_C1", - "D1": "tip_D1", - "E1": "tip_E1", - "F1": "tip_F1", - "G1": "tip_G1", - "H1": "tip_H1", - "A2": "tip_A2", - "B2": "tip_B2", - "C2": "tip_C2", - "D2": "tip_D2", - "E2": "tip_E2", - "F2": "tip_F2", - "G2": "tip_G2", - "H2": "tip_H2", - "A3": "tip_A3", - "B3": "tip_B3", - "C3": "tip_C3", - "D3": "tip_D3", - "E3": "tip_E3", - "F3": "tip_F3", - "G3": "tip_G3", - "H3": "tip_H3", - "A4": "tip_A4", - "B4": "tip_B4", - "C4": "tip_C4", - "D4": "tip_D4", - "E4": "tip_E4", - "F4": "tip_F4", - "G4": "tip_G4", - "H4": "tip_H4", - "A5": "tip_A5", - "B5": "tip_B5", - "C5": "tip_C5", - "D5": "tip_D5", - "E5": "tip_E5", - "F5": "tip_F5", - "G5": "tip_G5", - "H5": "tip_H5", - "A6": "tip_A6", - "B6": "tip_B6", - "C6": "tip_C6", - "D6": "tip_D6", - "E6": "tip_E6", - "F6": "tip_F6", - "G6": "tip_G6", - "H6": "tip_H6", - "A7": "tip_A7", - "B7": "tip_B7", - "C7": "tip_C7", - "D7": "tip_D7", - "E7": "tip_E7", - "F7": "tip_F7", - "G7": "tip_G7", - "H7": "tip_H7", - "A8": "tip_A8", - "B8": "tip_B8", - "C8": "tip_C8", - "D8": "tip_D8", - "E8": "tip_E8", - "F8": "tip_F8", - "G8": "tip_G8", - "H8": "tip_H8", - "A9": "tip_A9", - "B9": "tip_B9", - "C9": "tip_C9", - "D9": "tip_D9", - "E9": "tip_E9", - "F9": "tip_F9", - "G9": "tip_G9", - "H9": "tip_H9", - "A10": "tip_A10", - "B10": "tip_B10", - "C10": "tip_C10", - "D10": "tip_D10", - "E10": "tip_E10", - "F10": "tip_F10", - "G10": "tip_G10", - "H10": "tip_H10", - "A11": "tip_A11", - "B11": "tip_B11", - "C11": "tip_C11", - "D11": "tip_D11", - "E11": "tip_E11", - "F11": "tip_F11", - "G11": "tip_G11", - "H11": "tip_H11", - "A12": "tip_A12", - "B12": "tip_B12", - "C12": "tip_C12", - "D12": "tip_D12", - "E12": "tip_E12", - "F12": "tip_F12", - "G12": "tip_G12", - "H12": "tip_H12" - } - }, - "data": { - "Material": { - "uuid": "076250742950465b9d6ea29a225dfb00", - "Code": "ZX-001-300", - "SupplyType": 1, - "Name": "300μL Tip头" - } - } - }, - { - "id": "RackT5_A1", - "name": "RackT5_A1", - "sample_id": null, - "children": [], - "parent": "RackT5", - "type": "container", - "class": "", - "position": { - "x": 13.224, - "y": 73.084, - "z": 25.49 - }, - "config": { - "type": "TipSpot", - "size_x": 2.312, - "size_y": 2.312, - "size_z": 0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "tip_spot", - "model": null, - "barcode": null, - "prototype_tip": { - "type": "Tip", - "total_tip_length": 39.2, - "has_filter": false, - "maximal_volume": 10.0, - "fitting_depth": 3.29 - } - }, - "data": { - "tip": null, - "tip_state": null, - "pending_tip": null - } - }, - { - "id": "RackT5_B1", - "name": "RackT5_B1", - "sample_id": null, - "children": [], - "parent": "RackT5", - "type": "container", - "class": "", - "position": { - "x": 13.224, - "y": 64.084, - "z": 25.49 - }, - "config": { - "type": "TipSpot", - "size_x": 2.312, - "size_y": 2.312, - "size_z": 0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "tip_spot", - "model": null, - "barcode": null, - "prototype_tip": { - "type": "Tip", - "total_tip_length": 39.2, - "has_filter": false, - "maximal_volume": 10.0, - "fitting_depth": 3.29 - } - }, - "data": { - "tip": null, - "tip_state": null, - "pending_tip": null - } - }, - { - "id": "RackT5_C1", - "name": "RackT5_C1", - "sample_id": null, - "children": [], - "parent": "RackT5", - "type": "container", - "class": "", - "position": { - "x": 13.224, - "y": 55.084, - "z": 25.49 - }, - "config": { - "type": "TipSpot", - "size_x": 2.312, - "size_y": 2.312, - "size_z": 0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "tip_spot", - "model": null, - "barcode": null, - "prototype_tip": { - "type": "Tip", - "total_tip_length": 39.2, - "has_filter": false, - "maximal_volume": 10.0, - "fitting_depth": 3.29 - } - }, - "data": { - "tip": null, - "tip_state": null, - "pending_tip": null - } - }, - { - "id": "RackT5_D1", - "name": "RackT5_D1", - "sample_id": null, - "children": [], - "parent": "RackT5", - "type": "container", - "class": "", - "position": { - "x": 13.224, - "y": 46.084, - "z": 25.49 - }, - "config": { - "type": "TipSpot", - "size_x": 2.312, - "size_y": 2.312, - "size_z": 0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "tip_spot", - "model": null, - "barcode": null, - "prototype_tip": { - "type": "Tip", - "total_tip_length": 39.2, - "has_filter": false, - "maximal_volume": 10.0, - "fitting_depth": 3.29 - } - }, - "data": { - "tip": null, - "tip_state": null, - "pending_tip": null - } - }, - { - "id": "RackT5_E1", - "name": "RackT5_E1", - "sample_id": null, - "children": [], - "parent": "RackT5", - "type": "container", - "class": "", - "position": { - "x": 13.224, - "y": 37.084, - "z": 25.49 - }, - "config": { - "type": "TipSpot", - "size_x": 2.312, - "size_y": 2.312, - "size_z": 0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "tip_spot", - "model": null, - "barcode": null, - "prototype_tip": { - "type": "Tip", - "total_tip_length": 39.2, - "has_filter": false, - "maximal_volume": 10.0, - "fitting_depth": 3.29 - } - }, - "data": { - "tip": null, - "tip_state": null, - "pending_tip": null - } - }, - { - "id": "RackT5_F1", - "name": "RackT5_F1", - "sample_id": null, - "children": [], - "parent": "RackT5", - "type": "container", - "class": "", - "position": { - "x": 13.224, - "y": 28.084, - "z": 25.49 - }, - "config": { - "type": "TipSpot", - "size_x": 2.312, - "size_y": 2.312, - "size_z": 0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "tip_spot", - "model": null, - "barcode": null, - "prototype_tip": { - "type": "Tip", - "total_tip_length": 39.2, - "has_filter": false, - "maximal_volume": 10.0, - "fitting_depth": 3.29 - } - }, - "data": { - "tip": null, - "tip_state": null, - "pending_tip": null - } - }, - { - "id": "RackT5_G1", - "name": "RackT5_G1", - "sample_id": null, - "children": [], - "parent": "RackT5", - "type": "container", - "class": "", - "position": { - "x": 13.224, - "y": 19.084, - "z": 25.49 - }, - "config": { - "type": "TipSpot", - "size_x": 2.312, - "size_y": 2.312, - "size_z": 0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "tip_spot", - "model": null, - "barcode": null, - "prototype_tip": { - "type": "Tip", - "total_tip_length": 39.2, - "has_filter": false, - "maximal_volume": 10.0, - "fitting_depth": 3.29 - } - }, - "data": { - "tip": null, - "tip_state": null, - "pending_tip": null - } - }, - { - "id": "RackT5_H1", - "name": "RackT5_H1", - "sample_id": null, - "children": [], - "parent": "RackT5", - "type": "container", - "class": "", - "position": { - "x": 13.224, - "y": 10.084, - "z": 25.49 - }, - "config": { - "type": "TipSpot", - "size_x": 2.312, - "size_y": 2.312, - "size_z": 0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "tip_spot", - "model": null, - "barcode": null, - "prototype_tip": { - "type": "Tip", - "total_tip_length": 39.2, - "has_filter": false, - "maximal_volume": 10.0, - "fitting_depth": 3.29 - } - }, - "data": { - "tip": null, - "tip_state": null, - "pending_tip": null - } - }, - { - "id": "RackT5_A2", - "name": "RackT5_A2", - "sample_id": null, - "children": [], - "parent": "RackT5", - "type": "container", - "class": "", - "position": { - "x": 22.224, - "y": 73.084, - "z": 25.49 - }, - "config": { - "type": "TipSpot", - "size_x": 2.312, - "size_y": 2.312, - "size_z": 0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "tip_spot", - "model": null, - "barcode": null, - "prototype_tip": { - "type": "Tip", - "total_tip_length": 39.2, - "has_filter": false, - "maximal_volume": 10.0, - "fitting_depth": 3.29 - } - }, - "data": { - "tip": null, - "tip_state": null, - "pending_tip": null - } - }, - { - "id": "RackT5_B2", - "name": "RackT5_B2", - "sample_id": null, - "children": [], - "parent": "RackT5", - "type": "container", - "class": "", - "position": { - "x": 22.224, - "y": 64.084, - "z": 25.49 - }, - "config": { - "type": "TipSpot", - "size_x": 2.312, - "size_y": 2.312, - "size_z": 0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "tip_spot", - "model": null, - "barcode": null, - "prototype_tip": { - "type": "Tip", - "total_tip_length": 39.2, - "has_filter": false, - "maximal_volume": 10.0, - "fitting_depth": 3.29 - } - }, - "data": { - "tip": null, - "tip_state": null, - "pending_tip": null - } - }, - { - "id": "RackT5_C2", - "name": "RackT5_C2", - "sample_id": null, - "children": [], - "parent": "RackT5", - "type": "container", - "class": "", - "position": { - "x": 22.224, - "y": 55.084, - "z": 25.49 - }, - "config": { - "type": "TipSpot", - "size_x": 2.312, - "size_y": 2.312, - "size_z": 0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "tip_spot", - "model": null, - "barcode": null, - "prototype_tip": { - "type": "Tip", - "total_tip_length": 39.2, - "has_filter": false, - "maximal_volume": 10.0, - "fitting_depth": 3.29 - } - }, - "data": { - "tip": null, - "tip_state": null, - "pending_tip": null - } - }, - { - "id": "RackT5_D2", - "name": "RackT5_D2", - "sample_id": null, - "children": [], - "parent": "RackT5", - "type": "container", - "class": "", - "position": { - "x": 22.224, - "y": 46.084, - "z": 25.49 - }, - "config": { - "type": "TipSpot", - "size_x": 2.312, - "size_y": 2.312, - "size_z": 0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "tip_spot", - "model": null, - "barcode": null, - "prototype_tip": { - "type": "Tip", - "total_tip_length": 39.2, - "has_filter": false, - "maximal_volume": 10.0, - "fitting_depth": 3.29 - } - }, - "data": { - "tip": null, - "tip_state": null, - "pending_tip": null - } - }, - { - "id": "RackT5_E2", - "name": "RackT5_E2", - "sample_id": null, - "children": [], - "parent": "RackT5", - "type": "container", - "class": "", - "position": { - "x": 22.224, - "y": 37.084, - "z": 25.49 - }, - "config": { - "type": "TipSpot", - "size_x": 2.312, - "size_y": 2.312, - "size_z": 0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "tip_spot", - "model": null, - "barcode": null, - "prototype_tip": { - "type": "Tip", - "total_tip_length": 39.2, - "has_filter": false, - "maximal_volume": 10.0, - "fitting_depth": 3.29 - } - }, - "data": { - "tip": null, - "tip_state": null, - "pending_tip": null - } - }, - { - "id": "RackT5_F2", - "name": "RackT5_F2", - "sample_id": null, - "children": [], - "parent": "RackT5", - "type": "container", - "class": "", - "position": { - "x": 22.224, - "y": 28.084, - "z": 25.49 - }, - "config": { - "type": "TipSpot", - "size_x": 2.312, - "size_y": 2.312, - "size_z": 0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "tip_spot", - "model": null, - "barcode": null, - "prototype_tip": { - "type": "Tip", - "total_tip_length": 39.2, - "has_filter": false, - "maximal_volume": 10.0, - "fitting_depth": 3.29 - } - }, - "data": { - "tip": null, - "tip_state": null, - "pending_tip": null - } - }, - { - "id": "RackT5_G2", - "name": "RackT5_G2", - "sample_id": null, - "children": [], - "parent": "RackT5", - "type": "container", - "class": "", - "position": { - "x": 22.224, - "y": 19.084, - "z": 25.49 - }, - "config": { - "type": "TipSpot", - "size_x": 2.312, - "size_y": 2.312, - "size_z": 0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "tip_spot", - "model": null, - "barcode": null, - "prototype_tip": { - "type": "Tip", - "total_tip_length": 39.2, - "has_filter": false, - "maximal_volume": 10.0, - "fitting_depth": 3.29 - } - }, - "data": { - "tip": null, - "tip_state": null, - "pending_tip": null - } - }, - { - "id": "RackT5_H2", - "name": "RackT5_H2", - "sample_id": null, - "children": [], - "parent": "RackT5", - "type": "container", - "class": "", - "position": { - "x": 22.224, - "y": 10.084, - "z": 25.49 - }, - "config": { - "type": "TipSpot", - "size_x": 2.312, - "size_y": 2.312, - "size_z": 0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "tip_spot", - "model": null, - "barcode": null, - "prototype_tip": { - "type": "Tip", - "total_tip_length": 39.2, - "has_filter": false, - "maximal_volume": 10.0, - "fitting_depth": 3.29 - } - }, - "data": { - "tip": null, - "tip_state": null, - "pending_tip": null - } - }, - { - "id": "RackT5_A3", - "name": "RackT5_A3", - "sample_id": null, - "children": [], - "parent": "RackT5", - "type": "container", - "class": "", - "position": { - "x": 31.224, - "y": 73.084, - "z": 25.49 - }, - "config": { - "type": "TipSpot", - "size_x": 2.312, - "size_y": 2.312, - "size_z": 0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "tip_spot", - "model": null, - "barcode": null, - "prototype_tip": { - "type": "Tip", - "total_tip_length": 39.2, - "has_filter": false, - "maximal_volume": 10.0, - "fitting_depth": 3.29 - } - }, - "data": { - "tip": null, - "tip_state": null, - "pending_tip": null - } - }, - { - "id": "RackT5_B3", - "name": "RackT5_B3", - "sample_id": null, - "children": [], - "parent": "RackT5", - "type": "container", - "class": "", - "position": { - "x": 31.224, - "y": 64.084, - "z": 25.49 - }, - "config": { - "type": "TipSpot", - "size_x": 2.312, - "size_y": 2.312, - "size_z": 0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "tip_spot", - "model": null, - "barcode": null, - "prototype_tip": { - "type": "Tip", - "total_tip_length": 39.2, - "has_filter": false, - "maximal_volume": 10.0, - "fitting_depth": 3.29 - } - }, - "data": { - "tip": null, - "tip_state": null, - "pending_tip": null - } - }, - { - "id": "RackT5_C3", - "name": "RackT5_C3", - "sample_id": null, - "children": [], - "parent": "RackT5", - "type": "container", - "class": "", - "position": { - "x": 31.224, - "y": 55.084, - "z": 25.49 - }, - "config": { - "type": "TipSpot", - "size_x": 2.312, - "size_y": 2.312, - "size_z": 0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "tip_spot", - "model": null, - "barcode": null, - "prototype_tip": { - "type": "Tip", - "total_tip_length": 39.2, - "has_filter": false, - "maximal_volume": 10.0, - "fitting_depth": 3.29 - } - }, - "data": { - "tip": null, - "tip_state": null, - "pending_tip": null - } - }, - { - "id": "RackT5_D3", - "name": "RackT5_D3", - "sample_id": null, - "children": [], - "parent": "RackT5", - "type": "container", - "class": "", - "position": { - "x": 31.224, - "y": 46.084, - "z": 25.49 - }, - "config": { - "type": "TipSpot", - "size_x": 2.312, - "size_y": 2.312, - "size_z": 0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "tip_spot", - "model": null, - "barcode": null, - "prototype_tip": { - "type": "Tip", - "total_tip_length": 39.2, - "has_filter": false, - "maximal_volume": 10.0, - "fitting_depth": 3.29 - } - }, - "data": { - "tip": null, - "tip_state": null, - "pending_tip": null - } - }, - { - "id": "RackT5_E3", - "name": "RackT5_E3", - "sample_id": null, - "children": [], - "parent": "RackT5", - "type": "container", - "class": "", - "position": { - "x": 31.224, - "y": 37.084, - "z": 25.49 - }, - "config": { - "type": "TipSpot", - "size_x": 2.312, - "size_y": 2.312, - "size_z": 0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "tip_spot", - "model": null, - "barcode": null, - "prototype_tip": { - "type": "Tip", - "total_tip_length": 39.2, - "has_filter": false, - "maximal_volume": 10.0, - "fitting_depth": 3.29 - } - }, - "data": { - "tip": null, - "tip_state": null, - "pending_tip": null - } - }, - { - "id": "RackT5_F3", - "name": "RackT5_F3", - "sample_id": null, - "children": [], - "parent": "RackT5", - "type": "container", - "class": "", - "position": { - "x": 31.224, - "y": 28.084, - "z": 25.49 - }, - "config": { - "type": "TipSpot", - "size_x": 2.312, - "size_y": 2.312, - "size_z": 0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "tip_spot", - "model": null, - "barcode": null, - "prototype_tip": { - "type": "Tip", - "total_tip_length": 39.2, - "has_filter": false, - "maximal_volume": 10.0, - "fitting_depth": 3.29 - } - }, - "data": { - "tip": null, - "tip_state": null, - "pending_tip": null - } - }, - { - "id": "RackT5_G3", - "name": "RackT5_G3", - "sample_id": null, - "children": [], - "parent": "RackT5", - "type": "container", - "class": "", - "position": { - "x": 31.224, - "y": 19.084, - "z": 25.49 - }, - "config": { - "type": "TipSpot", - "size_x": 2.312, - "size_y": 2.312, - "size_z": 0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "tip_spot", - "model": null, - "barcode": null, - "prototype_tip": { - "type": "Tip", - "total_tip_length": 39.2, - "has_filter": false, - "maximal_volume": 10.0, - "fitting_depth": 3.29 - } - }, - "data": { - "tip": null, - "tip_state": null, - "pending_tip": null - } - }, - { - "id": "RackT5_H3", - "name": "RackT5_H3", - "sample_id": null, - "children": [], - "parent": "RackT5", - "type": "container", - "class": "", - "position": { - "x": 31.224, - "y": 10.084, - "z": 25.49 - }, - "config": { - "type": "TipSpot", - "size_x": 2.312, - "size_y": 2.312, - "size_z": 0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "tip_spot", - "model": null, - "barcode": null, - "prototype_tip": { - "type": "Tip", - "total_tip_length": 39.2, - "has_filter": false, - "maximal_volume": 10.0, - "fitting_depth": 3.29 - } - }, - "data": { - "tip": null, - "tip_state": null, - "pending_tip": null - } - }, - { - "id": "RackT5_A4", - "name": "RackT5_A4", - "sample_id": null, - "children": [], - "parent": "RackT5", - "type": "container", - "class": "", - "position": { - "x": 40.224, - "y": 73.084, - "z": 25.49 - }, - "config": { - "type": "TipSpot", - "size_x": 2.312, - "size_y": 2.312, - "size_z": 0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "tip_spot", - "model": null, - "barcode": null, - "prototype_tip": { - "type": "Tip", - "total_tip_length": 39.2, - "has_filter": false, - "maximal_volume": 10.0, - "fitting_depth": 3.29 - } - }, - "data": { - "tip": null, - "tip_state": null, - "pending_tip": null - } - }, - { - "id": "RackT5_B4", - "name": "RackT5_B4", - "sample_id": null, - "children": [], - "parent": "RackT5", - "type": "container", - "class": "", - "position": { - "x": 40.224, - "y": 64.084, - "z": 25.49 - }, - "config": { - "type": "TipSpot", - "size_x": 2.312, - "size_y": 2.312, - "size_z": 0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "tip_spot", - "model": null, - "barcode": null, - "prototype_tip": { - "type": "Tip", - "total_tip_length": 39.2, - "has_filter": false, - "maximal_volume": 10.0, - "fitting_depth": 3.29 - } - }, - "data": { - "tip": null, - "tip_state": null, - "pending_tip": null - } - }, - { - "id": "RackT5_C4", - "name": "RackT5_C4", - "sample_id": null, - "children": [], - "parent": "RackT5", - "type": "container", - "class": "", - "position": { - "x": 40.224, - "y": 55.084, - "z": 25.49 - }, - "config": { - "type": "TipSpot", - "size_x": 2.312, - "size_y": 2.312, - "size_z": 0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "tip_spot", - "model": null, - "barcode": null, - "prototype_tip": { - "type": "Tip", - "total_tip_length": 39.2, - "has_filter": false, - "maximal_volume": 10.0, - "fitting_depth": 3.29 - } - }, - "data": { - "tip": null, - "tip_state": null, - "pending_tip": null - } - }, - { - "id": "RackT5_D4", - "name": "RackT5_D4", - "sample_id": null, - "children": [], - "parent": "RackT5", - "type": "container", - "class": "", - "position": { - "x": 40.224, - "y": 46.084, - "z": 25.49 - }, - "config": { - "type": "TipSpot", - "size_x": 2.312, - "size_y": 2.312, - "size_z": 0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "tip_spot", - "model": null, - "barcode": null, - "prototype_tip": { - "type": "Tip", - "total_tip_length": 39.2, - "has_filter": false, - "maximal_volume": 10.0, - "fitting_depth": 3.29 - } - }, - "data": { - "tip": null, - "tip_state": null, - "pending_tip": null - } - }, - { - "id": "RackT5_E4", - "name": "RackT5_E4", - "sample_id": null, - "children": [], - "parent": "RackT5", - "type": "container", - "class": "", - "position": { - "x": 40.224, - "y": 37.084, - "z": 25.49 - }, - "config": { - "type": "TipSpot", - "size_x": 2.312, - "size_y": 2.312, - "size_z": 0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "tip_spot", - "model": null, - "barcode": null, - "prototype_tip": { - "type": "Tip", - "total_tip_length": 39.2, - "has_filter": false, - "maximal_volume": 10.0, - "fitting_depth": 3.29 - } - }, - "data": { - "tip": null, - "tip_state": null, - "pending_tip": null - } - }, - { - "id": "RackT5_F4", - "name": "RackT5_F4", - "sample_id": null, - "children": [], - "parent": "RackT5", - "type": "container", - "class": "", - "position": { - "x": 40.224, - "y": 28.084, - "z": 25.49 - }, - "config": { - "type": "TipSpot", - "size_x": 2.312, - "size_y": 2.312, - "size_z": 0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "tip_spot", - "model": null, - "barcode": null, - "prototype_tip": { - "type": "Tip", - "total_tip_length": 39.2, - "has_filter": false, - "maximal_volume": 10.0, - "fitting_depth": 3.29 - } - }, - "data": { - "tip": null, - "tip_state": null, - "pending_tip": null - } - }, - { - "id": "RackT5_G4", - "name": "RackT5_G4", - "sample_id": null, - "children": [], - "parent": "RackT5", - "type": "container", - "class": "", - "position": { - "x": 40.224, - "y": 19.084, - "z": 25.49 - }, - "config": { - "type": "TipSpot", - "size_x": 2.312, - "size_y": 2.312, - "size_z": 0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "tip_spot", - "model": null, - "barcode": null, - "prototype_tip": { - "type": "Tip", - "total_tip_length": 39.2, - "has_filter": false, - "maximal_volume": 10.0, - "fitting_depth": 3.29 - } - }, - "data": { - "tip": null, - "tip_state": null, - "pending_tip": null - } - }, - { - "id": "RackT5_H4", - "name": "RackT5_H4", - "sample_id": null, - "children": [], - "parent": "RackT5", - "type": "container", - "class": "", - "position": { - "x": 40.224, - "y": 10.084, - "z": 25.49 - }, - "config": { - "type": "TipSpot", - "size_x": 2.312, - "size_y": 2.312, - "size_z": 0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "tip_spot", - "model": null, - "barcode": null, - "prototype_tip": { - "type": "Tip", - "total_tip_length": 39.2, - "has_filter": false, - "maximal_volume": 10.0, - "fitting_depth": 3.29 - } - }, - "data": { - "tip": null, - "tip_state": null, - "pending_tip": null - } - }, - { - "id": "RackT5_A5", - "name": "RackT5_A5", - "sample_id": null, - "children": [], - "parent": "RackT5", - "type": "container", - "class": "", - "position": { - "x": 49.224, - "y": 73.084, - "z": 25.49 - }, - "config": { - "type": "TipSpot", - "size_x": 2.312, - "size_y": 2.312, - "size_z": 0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "tip_spot", - "model": null, - "barcode": null, - "prototype_tip": { - "type": "Tip", - "total_tip_length": 39.2, - "has_filter": false, - "maximal_volume": 10.0, - "fitting_depth": 3.29 - } - }, - "data": { - "tip": null, - "tip_state": null, - "pending_tip": null - } - }, - { - "id": "RackT5_B5", - "name": "RackT5_B5", - "sample_id": null, - "children": [], - "parent": "RackT5", - "type": "container", - "class": "", - "position": { - "x": 49.224, - "y": 64.084, - "z": 25.49 - }, - "config": { - "type": "TipSpot", - "size_x": 2.312, - "size_y": 2.312, - "size_z": 0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "tip_spot", - "model": null, - "barcode": null, - "prototype_tip": { - "type": "Tip", - "total_tip_length": 39.2, - "has_filter": false, - "maximal_volume": 10.0, - "fitting_depth": 3.29 - } - }, - "data": { - "tip": null, - "tip_state": null, - "pending_tip": null - } - }, - { - "id": "RackT5_C5", - "name": "RackT5_C5", - "sample_id": null, - "children": [], - "parent": "RackT5", - "type": "container", - "class": "", - "position": { - "x": 49.224, - "y": 55.084, - "z": 25.49 - }, - "config": { - "type": "TipSpot", - "size_x": 2.312, - "size_y": 2.312, - "size_z": 0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "tip_spot", - "model": null, - "barcode": null, - "prototype_tip": { - "type": "Tip", - "total_tip_length": 39.2, - "has_filter": false, - "maximal_volume": 10.0, - "fitting_depth": 3.29 - } - }, - "data": { - "tip": null, - "tip_state": null, - "pending_tip": null - } - }, - { - "id": "RackT5_D5", - "name": "RackT5_D5", - "sample_id": null, - "children": [], - "parent": "RackT5", - "type": "container", - "class": "", - "position": { - "x": 49.224, - "y": 46.084, - "z": 25.49 - }, - "config": { - "type": "TipSpot", - "size_x": 2.312, - "size_y": 2.312, - "size_z": 0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "tip_spot", - "model": null, - "barcode": null, - "prototype_tip": { - "type": "Tip", - "total_tip_length": 39.2, - "has_filter": false, - "maximal_volume": 10.0, - "fitting_depth": 3.29 - } - }, - "data": { - "tip": null, - "tip_state": null, - "pending_tip": null - } - }, - { - "id": "RackT5_E5", - "name": "RackT5_E5", - "sample_id": null, - "children": [], - "parent": "RackT5", - "type": "container", - "class": "", - "position": { - "x": 49.224, - "y": 37.084, - "z": 25.49 - }, - "config": { - "type": "TipSpot", - "size_x": 2.312, - "size_y": 2.312, - "size_z": 0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "tip_spot", - "model": null, - "barcode": null, - "prototype_tip": { - "type": "Tip", - "total_tip_length": 39.2, - "has_filter": false, - "maximal_volume": 10.0, - "fitting_depth": 3.29 - } - }, - "data": { - "tip": null, - "tip_state": null, - "pending_tip": null - } - }, - { - "id": "RackT5_F5", - "name": "RackT5_F5", - "sample_id": null, - "children": [], - "parent": "RackT5", - "type": "container", - "class": "", - "position": { - "x": 49.224, - "y": 28.084, - "z": 25.49 - }, - "config": { - "type": "TipSpot", - "size_x": 2.312, - "size_y": 2.312, - "size_z": 0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "tip_spot", - "model": null, - "barcode": null, - "prototype_tip": { - "type": "Tip", - "total_tip_length": 39.2, - "has_filter": false, - "maximal_volume": 10.0, - "fitting_depth": 3.29 - } - }, - "data": { - "tip": null, - "tip_state": null, - "pending_tip": null - } - }, - { - "id": "RackT5_G5", - "name": "RackT5_G5", - "sample_id": null, - "children": [], - "parent": "RackT5", - "type": "container", - "class": "", - "position": { - "x": 49.224, - "y": 19.084, - "z": 25.49 - }, - "config": { - "type": "TipSpot", - "size_x": 2.312, - "size_y": 2.312, - "size_z": 0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "tip_spot", - "model": null, - "barcode": null, - "prototype_tip": { - "type": "Tip", - "total_tip_length": 39.2, - "has_filter": false, - "maximal_volume": 10.0, - "fitting_depth": 3.29 - } - }, - "data": { - "tip": null, - "tip_state": null, - "pending_tip": null - } - }, - { - "id": "RackT5_H5", - "name": "RackT5_H5", - "sample_id": null, - "children": [], - "parent": "RackT5", - "type": "container", - "class": "", - "position": { - "x": 49.224, - "y": 10.084, - "z": 25.49 - }, - "config": { - "type": "TipSpot", - "size_x": 2.312, - "size_y": 2.312, - "size_z": 0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "tip_spot", - "model": null, - "barcode": null, - "prototype_tip": { - "type": "Tip", - "total_tip_length": 39.2, - "has_filter": false, - "maximal_volume": 10.0, - "fitting_depth": 3.29 - } - }, - "data": { - "tip": null, - "tip_state": null, - "pending_tip": null - } - }, - { - "id": "RackT5_A6", - "name": "RackT5_A6", - "sample_id": null, - "children": [], - "parent": "RackT5", - "type": "container", - "class": "", - "position": { - "x": 58.224, - "y": 73.084, - "z": 25.49 - }, - "config": { - "type": "TipSpot", - "size_x": 2.312, - "size_y": 2.312, - "size_z": 0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "tip_spot", - "model": null, - "barcode": null, - "prototype_tip": { - "type": "Tip", - "total_tip_length": 39.2, - "has_filter": false, - "maximal_volume": 10.0, - "fitting_depth": 3.29 - } - }, - "data": { - "tip": null, - "tip_state": null, - "pending_tip": null - } - }, - { - "id": "RackT5_B6", - "name": "RackT5_B6", - "sample_id": null, - "children": [], - "parent": "RackT5", - "type": "container", - "class": "", - "position": { - "x": 58.224, - "y": 64.084, - "z": 25.49 - }, - "config": { - "type": "TipSpot", - "size_x": 2.312, - "size_y": 2.312, - "size_z": 0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "tip_spot", - "model": null, - "barcode": null, - "prototype_tip": { - "type": "Tip", - "total_tip_length": 39.2, - "has_filter": false, - "maximal_volume": 10.0, - "fitting_depth": 3.29 - } - }, - "data": { - "tip": null, - "tip_state": null, - "pending_tip": null - } - }, - { - "id": "RackT5_C6", - "name": "RackT5_C6", - "sample_id": null, - "children": [], - "parent": "RackT5", - "type": "container", - "class": "", - "position": { - "x": 58.224, - "y": 55.084, - "z": 25.49 - }, - "config": { - "type": "TipSpot", - "size_x": 2.312, - "size_y": 2.312, - "size_z": 0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "tip_spot", - "model": null, - "barcode": null, - "prototype_tip": { - "type": "Tip", - "total_tip_length": 39.2, - "has_filter": false, - "maximal_volume": 10.0, - "fitting_depth": 3.29 - } - }, - "data": { - "tip": null, - "tip_state": null, - "pending_tip": null - } - }, - { - "id": "RackT5_D6", - "name": "RackT5_D6", - "sample_id": null, - "children": [], - "parent": "RackT5", - "type": "container", - "class": "", - "position": { - "x": 58.224, - "y": 46.084, - "z": 25.49 - }, - "config": { - "type": "TipSpot", - "size_x": 2.312, - "size_y": 2.312, - "size_z": 0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "tip_spot", - "model": null, - "barcode": null, - "prototype_tip": { - "type": "Tip", - "total_tip_length": 39.2, - "has_filter": false, - "maximal_volume": 10.0, - "fitting_depth": 3.29 - } - }, - "data": { - "tip": null, - "tip_state": null, - "pending_tip": null - } - }, - { - "id": "RackT5_E6", - "name": "RackT5_E6", - "sample_id": null, - "children": [], - "parent": "RackT5", - "type": "container", - "class": "", - "position": { - "x": 58.224, - "y": 37.084, - "z": 25.49 - }, - "config": { - "type": "TipSpot", - "size_x": 2.312, - "size_y": 2.312, - "size_z": 0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "tip_spot", - "model": null, - "barcode": null, - "prototype_tip": { - "type": "Tip", - "total_tip_length": 39.2, - "has_filter": false, - "maximal_volume": 10.0, - "fitting_depth": 3.29 - } - }, - "data": { - "tip": null, - "tip_state": null, - "pending_tip": null - } - }, - { - "id": "RackT5_F6", - "name": "RackT5_F6", - "sample_id": null, - "children": [], - "parent": "RackT5", - "type": "container", - "class": "", - "position": { - "x": 58.224, - "y": 28.084, - "z": 25.49 - }, - "config": { - "type": "TipSpot", - "size_x": 2.312, - "size_y": 2.312, - "size_z": 0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "tip_spot", - "model": null, - "barcode": null, - "prototype_tip": { - "type": "Tip", - "total_tip_length": 39.2, - "has_filter": false, - "maximal_volume": 10.0, - "fitting_depth": 3.29 - } - }, - "data": { - "tip": null, - "tip_state": null, - "pending_tip": null - } - }, - { - "id": "RackT5_G6", - "name": "RackT5_G6", - "sample_id": null, - "children": [], - "parent": "RackT5", - "type": "container", - "class": "", - "position": { - "x": 58.224, - "y": 19.084, - "z": 25.49 - }, - "config": { - "type": "TipSpot", - "size_x": 2.312, - "size_y": 2.312, - "size_z": 0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "tip_spot", - "model": null, - "barcode": null, - "prototype_tip": { - "type": "Tip", - "total_tip_length": 39.2, - "has_filter": false, - "maximal_volume": 10.0, - "fitting_depth": 3.29 - } - }, - "data": { - "tip": null, - "tip_state": null, - "pending_tip": null - } - }, - { - "id": "RackT5_H6", - "name": "RackT5_H6", - "sample_id": null, - "children": [], - "parent": "RackT5", - "type": "container", - "class": "", - "position": { - "x": 58.224, - "y": 10.084, - "z": 25.49 - }, - "config": { - "type": "TipSpot", - "size_x": 2.312, - "size_y": 2.312, - "size_z": 0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "tip_spot", - "model": null, - "barcode": null, - "prototype_tip": { - "type": "Tip", - "total_tip_length": 39.2, - "has_filter": false, - "maximal_volume": 10.0, - "fitting_depth": 3.29 - } - }, - "data": { - "tip": null, - "tip_state": null, - "pending_tip": null - } - }, - { - "id": "RackT5_A7", - "name": "RackT5_A7", - "sample_id": null, - "children": [], - "parent": "RackT5", - "type": "container", - "class": "", - "position": { - "x": 67.224, - "y": 73.084, - "z": 25.49 - }, - "config": { - "type": "TipSpot", - "size_x": 2.312, - "size_y": 2.312, - "size_z": 0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "tip_spot", - "model": null, - "barcode": null, - "prototype_tip": { - "type": "Tip", - "total_tip_length": 39.2, - "has_filter": false, - "maximal_volume": 10.0, - "fitting_depth": 3.29 - } - }, - "data": { - "tip": null, - "tip_state": null, - "pending_tip": null - } - }, - { - "id": "RackT5_B7", - "name": "RackT5_B7", - "sample_id": null, - "children": [], - "parent": "RackT5", - "type": "container", - "class": "", - "position": { - "x": 67.224, - "y": 64.084, - "z": 25.49 - }, - "config": { - "type": "TipSpot", - "size_x": 2.312, - "size_y": 2.312, - "size_z": 0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "tip_spot", - "model": null, - "barcode": null, - "prototype_tip": { - "type": "Tip", - "total_tip_length": 39.2, - "has_filter": false, - "maximal_volume": 10.0, - "fitting_depth": 3.29 - } - }, - "data": { - "tip": null, - "tip_state": null, - "pending_tip": null - } - }, - { - "id": "RackT5_C7", - "name": "RackT5_C7", - "sample_id": null, - "children": [], - "parent": "RackT5", - "type": "container", - "class": "", - "position": { - "x": 67.224, - "y": 55.084, - "z": 25.49 - }, - "config": { - "type": "TipSpot", - "size_x": 2.312, - "size_y": 2.312, - "size_z": 0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "tip_spot", - "model": null, - "barcode": null, - "prototype_tip": { - "type": "Tip", - "total_tip_length": 39.2, - "has_filter": false, - "maximal_volume": 10.0, - "fitting_depth": 3.29 - } - }, - "data": { - "tip": null, - "tip_state": null, - "pending_tip": null - } - }, - { - "id": "RackT5_D7", - "name": "RackT5_D7", - "sample_id": null, - "children": [], - "parent": "RackT5", - "type": "container", - "class": "", - "position": { - "x": 67.224, - "y": 46.084, - "z": 25.49 - }, - "config": { - "type": "TipSpot", - "size_x": 2.312, - "size_y": 2.312, - "size_z": 0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "tip_spot", - "model": null, - "barcode": null, - "prototype_tip": { - "type": "Tip", - "total_tip_length": 39.2, - "has_filter": false, - "maximal_volume": 10.0, - "fitting_depth": 3.29 - } - }, - "data": { - "tip": null, - "tip_state": null, - "pending_tip": null - } - }, - { - "id": "RackT5_E7", - "name": "RackT5_E7", - "sample_id": null, - "children": [], - "parent": "RackT5", - "type": "container", - "class": "", - "position": { - "x": 67.224, - "y": 37.084, - "z": 25.49 - }, - "config": { - "type": "TipSpot", - "size_x": 2.312, - "size_y": 2.312, - "size_z": 0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "tip_spot", - "model": null, - "barcode": null, - "prototype_tip": { - "type": "Tip", - "total_tip_length": 39.2, - "has_filter": false, - "maximal_volume": 10.0, - "fitting_depth": 3.29 - } - }, - "data": { - "tip": null, - "tip_state": null, - "pending_tip": null - } - }, - { - "id": "RackT5_F7", - "name": "RackT5_F7", - "sample_id": null, - "children": [], - "parent": "RackT5", - "type": "container", - "class": "", - "position": { - "x": 67.224, - "y": 28.084, - "z": 25.49 - }, - "config": { - "type": "TipSpot", - "size_x": 2.312, - "size_y": 2.312, - "size_z": 0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "tip_spot", - "model": null, - "barcode": null, - "prototype_tip": { - "type": "Tip", - "total_tip_length": 39.2, - "has_filter": false, - "maximal_volume": 10.0, - "fitting_depth": 3.29 - } - }, - "data": { - "tip": null, - "tip_state": null, - "pending_tip": null - } - }, - { - "id": "RackT5_G7", - "name": "RackT5_G7", - "sample_id": null, - "children": [], - "parent": "RackT5", - "type": "container", - "class": "", - "position": { - "x": 67.224, - "y": 19.084, - "z": 25.49 - }, - "config": { - "type": "TipSpot", - "size_x": 2.312, - "size_y": 2.312, - "size_z": 0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "tip_spot", - "model": null, - "barcode": null, - "prototype_tip": { - "type": "Tip", - "total_tip_length": 39.2, - "has_filter": false, - "maximal_volume": 10.0, - "fitting_depth": 3.29 - } - }, - "data": { - "tip": null, - "tip_state": null, - "pending_tip": null - } - }, - { - "id": "RackT5_H7", - "name": "RackT5_H7", - "sample_id": null, - "children": [], - "parent": "RackT5", - "type": "container", - "class": "", - "position": { - "x": 67.224, - "y": 10.084, - "z": 25.49 - }, - "config": { - "type": "TipSpot", - "size_x": 2.312, - "size_y": 2.312, - "size_z": 0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "tip_spot", - "model": null, - "barcode": null, - "prototype_tip": { - "type": "Tip", - "total_tip_length": 39.2, - "has_filter": false, - "maximal_volume": 10.0, - "fitting_depth": 3.29 - } - }, - "data": { - "tip": null, - "tip_state": null, - "pending_tip": null - } - }, - { - "id": "RackT5_A8", - "name": "RackT5_A8", - "sample_id": null, - "children": [], - "parent": "RackT5", - "type": "container", - "class": "", - "position": { - "x": 76.224, - "y": 73.084, - "z": 25.49 - }, - "config": { - "type": "TipSpot", - "size_x": 2.312, - "size_y": 2.312, - "size_z": 0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "tip_spot", - "model": null, - "barcode": null, - "prototype_tip": { - "type": "Tip", - "total_tip_length": 39.2, - "has_filter": false, - "maximal_volume": 10.0, - "fitting_depth": 3.29 - } - }, - "data": { - "tip": null, - "tip_state": null, - "pending_tip": null - } - }, - { - "id": "RackT5_B8", - "name": "RackT5_B8", - "sample_id": null, - "children": [], - "parent": "RackT5", - "type": "container", - "class": "", - "position": { - "x": 76.224, - "y": 64.084, - "z": 25.49 - }, - "config": { - "type": "TipSpot", - "size_x": 2.312, - "size_y": 2.312, - "size_z": 0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "tip_spot", - "model": null, - "barcode": null, - "prototype_tip": { - "type": "Tip", - "total_tip_length": 39.2, - "has_filter": false, - "maximal_volume": 10.0, - "fitting_depth": 3.29 - } - }, - "data": { - "tip": null, - "tip_state": null, - "pending_tip": null - } - }, - { - "id": "RackT5_C8", - "name": "RackT5_C8", - "sample_id": null, - "children": [], - "parent": "RackT5", - "type": "container", - "class": "", - "position": { - "x": 76.224, - "y": 55.084, - "z": 25.49 - }, - "config": { - "type": "TipSpot", - "size_x": 2.312, - "size_y": 2.312, - "size_z": 0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "tip_spot", - "model": null, - "barcode": null, - "prototype_tip": { - "type": "Tip", - "total_tip_length": 39.2, - "has_filter": false, - "maximal_volume": 10.0, - "fitting_depth": 3.29 - } - }, - "data": { - "tip": null, - "tip_state": null, - "pending_tip": null - } - }, - { - "id": "RackT5_D8", - "name": "RackT5_D8", - "sample_id": null, - "children": [], - "parent": "RackT5", - "type": "container", - "class": "", - "position": { - "x": 76.224, - "y": 46.084, - "z": 25.49 - }, - "config": { - "type": "TipSpot", - "size_x": 2.312, - "size_y": 2.312, - "size_z": 0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "tip_spot", - "model": null, - "barcode": null, - "prototype_tip": { - "type": "Tip", - "total_tip_length": 39.2, - "has_filter": false, - "maximal_volume": 10.0, - "fitting_depth": 3.29 - } - }, - "data": { - "tip": null, - "tip_state": null, - "pending_tip": null - } - }, - { - "id": "RackT5_E8", - "name": "RackT5_E8", - "sample_id": null, - "children": [], - "parent": "RackT5", - "type": "container", - "class": "", - "position": { - "x": 76.224, - "y": 37.084, - "z": 25.49 - }, - "config": { - "type": "TipSpot", - "size_x": 2.312, - "size_y": 2.312, - "size_z": 0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "tip_spot", - "model": null, - "barcode": null, - "prototype_tip": { - "type": "Tip", - "total_tip_length": 39.2, - "has_filter": false, - "maximal_volume": 10.0, - "fitting_depth": 3.29 - } - }, - "data": { - "tip": null, - "tip_state": null, - "pending_tip": null - } - }, - { - "id": "RackT5_F8", - "name": "RackT5_F8", - "sample_id": null, - "children": [], - "parent": "RackT5", - "type": "container", - "class": "", - "position": { - "x": 76.224, - "y": 28.084, - "z": 25.49 - }, - "config": { - "type": "TipSpot", - "size_x": 2.312, - "size_y": 2.312, - "size_z": 0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "tip_spot", - "model": null, - "barcode": null, - "prototype_tip": { - "type": "Tip", - "total_tip_length": 39.2, - "has_filter": false, - "maximal_volume": 10.0, - "fitting_depth": 3.29 - } - }, - "data": { - "tip": null, - "tip_state": null, - "pending_tip": null - } - }, - { - "id": "RackT5_G8", - "name": "RackT5_G8", - "sample_id": null, - "children": [], - "parent": "RackT5", - "type": "container", - "class": "", - "position": { - "x": 76.224, - "y": 19.084, - "z": 25.49 - }, - "config": { - "type": "TipSpot", - "size_x": 2.312, - "size_y": 2.312, - "size_z": 0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "tip_spot", - "model": null, - "barcode": null, - "prototype_tip": { - "type": "Tip", - "total_tip_length": 39.2, - "has_filter": false, - "maximal_volume": 10.0, - "fitting_depth": 3.29 - } - }, - "data": { - "tip": null, - "tip_state": null, - "pending_tip": null - } - }, - { - "id": "RackT5_H8", - "name": "RackT5_H8", - "sample_id": null, - "children": [], - "parent": "RackT5", - "type": "container", - "class": "", - "position": { - "x": 76.224, - "y": 10.084, - "z": 25.49 - }, - "config": { - "type": "TipSpot", - "size_x": 2.312, - "size_y": 2.312, - "size_z": 0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "tip_spot", - "model": null, - "barcode": null, - "prototype_tip": { - "type": "Tip", - "total_tip_length": 39.2, - "has_filter": false, - "maximal_volume": 10.0, - "fitting_depth": 3.29 - } - }, - "data": { - "tip": null, - "tip_state": null, - "pending_tip": null - } - }, - { - "id": "RackT5_A9", - "name": "RackT5_A9", - "sample_id": null, - "children": [], - "parent": "RackT5", - "type": "container", - "class": "", - "position": { - "x": 85.224, - "y": 73.084, - "z": 25.49 - }, - "config": { - "type": "TipSpot", - "size_x": 2.312, - "size_y": 2.312, - "size_z": 0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "tip_spot", - "model": null, - "barcode": null, - "prototype_tip": { - "type": "Tip", - "total_tip_length": 39.2, - "has_filter": false, - "maximal_volume": 10.0, - "fitting_depth": 3.29 - } - }, - "data": { - "tip": null, - "tip_state": null, - "pending_tip": null - } - }, - { - "id": "RackT5_B9", - "name": "RackT5_B9", - "sample_id": null, - "children": [], - "parent": "RackT5", - "type": "container", - "class": "", - "position": { - "x": 85.224, - "y": 64.084, - "z": 25.49 - }, - "config": { - "type": "TipSpot", - "size_x": 2.312, - "size_y": 2.312, - "size_z": 0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "tip_spot", - "model": null, - "barcode": null, - "prototype_tip": { - "type": "Tip", - "total_tip_length": 39.2, - "has_filter": false, - "maximal_volume": 10.0, - "fitting_depth": 3.29 - } - }, - "data": { - "tip": null, - "tip_state": null, - "pending_tip": null - } - }, - { - "id": "RackT5_C9", - "name": "RackT5_C9", - "sample_id": null, - "children": [], - "parent": "RackT5", - "type": "container", - "class": "", - "position": { - "x": 85.224, - "y": 55.084, - "z": 25.49 - }, - "config": { - "type": "TipSpot", - "size_x": 2.312, - "size_y": 2.312, - "size_z": 0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "tip_spot", - "model": null, - "barcode": null, - "prototype_tip": { - "type": "Tip", - "total_tip_length": 39.2, - "has_filter": false, - "maximal_volume": 10.0, - "fitting_depth": 3.29 - } - }, - "data": { - "tip": null, - "tip_state": null, - "pending_tip": null - } - }, - { - "id": "RackT5_D9", - "name": "RackT5_D9", - "sample_id": null, - "children": [], - "parent": "RackT5", - "type": "container", - "class": "", - "position": { - "x": 85.224, - "y": 46.084, - "z": 25.49 - }, - "config": { - "type": "TipSpot", - "size_x": 2.312, - "size_y": 2.312, - "size_z": 0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "tip_spot", - "model": null, - "barcode": null, - "prototype_tip": { - "type": "Tip", - "total_tip_length": 39.2, - "has_filter": false, - "maximal_volume": 10.0, - "fitting_depth": 3.29 - } - }, - "data": { - "tip": null, - "tip_state": null, - "pending_tip": null - } - }, - { - "id": "RackT5_E9", - "name": "RackT5_E9", - "sample_id": null, - "children": [], - "parent": "RackT5", - "type": "container", - "class": "", - "position": { - "x": 85.224, - "y": 37.084, - "z": 25.49 - }, - "config": { - "type": "TipSpot", - "size_x": 2.312, - "size_y": 2.312, - "size_z": 0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "tip_spot", - "model": null, - "barcode": null, - "prototype_tip": { - "type": "Tip", - "total_tip_length": 39.2, - "has_filter": false, - "maximal_volume": 10.0, - "fitting_depth": 3.29 - } - }, - "data": { - "tip": null, - "tip_state": null, - "pending_tip": null - } - }, - { - "id": "RackT5_F9", - "name": "RackT5_F9", - "sample_id": null, - "children": [], - "parent": "RackT5", - "type": "container", - "class": "", - "position": { - "x": 85.224, - "y": 28.084, - "z": 25.49 - }, - "config": { - "type": "TipSpot", - "size_x": 2.312, - "size_y": 2.312, - "size_z": 0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "tip_spot", - "model": null, - "barcode": null, - "prototype_tip": { - "type": "Tip", - "total_tip_length": 39.2, - "has_filter": false, - "maximal_volume": 10.0, - "fitting_depth": 3.29 - } - }, - "data": { - "tip": null, - "tip_state": null, - "pending_tip": null - } - }, - { - "id": "RackT5_G9", - "name": "RackT5_G9", - "sample_id": null, - "children": [], - "parent": "RackT5", - "type": "container", - "class": "", - "position": { - "x": 85.224, - "y": 19.084, - "z": 25.49 - }, - "config": { - "type": "TipSpot", - "size_x": 2.312, - "size_y": 2.312, - "size_z": 0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "tip_spot", - "model": null, - "barcode": null, - "prototype_tip": { - "type": "Tip", - "total_tip_length": 39.2, - "has_filter": false, - "maximal_volume": 10.0, - "fitting_depth": 3.29 - } - }, - "data": { - "tip": null, - "tip_state": null, - "pending_tip": null - } - }, - { - "id": "RackT5_H9", - "name": "RackT5_H9", - "sample_id": null, - "children": [], - "parent": "RackT5", - "type": "container", - "class": "", - "position": { - "x": 85.224, - "y": 10.084, - "z": 25.49 - }, - "config": { - "type": "TipSpot", - "size_x": 2.312, - "size_y": 2.312, - "size_z": 0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "tip_spot", - "model": null, - "barcode": null, - "prototype_tip": { - "type": "Tip", - "total_tip_length": 39.2, - "has_filter": false, - "maximal_volume": 10.0, - "fitting_depth": 3.29 - } - }, - "data": { - "tip": null, - "tip_state": null, - "pending_tip": null - } - }, - { - "id": "RackT5_A10", - "name": "RackT5_A10", - "sample_id": null, - "children": [], - "parent": "RackT5", - "type": "container", - "class": "", - "position": { - "x": 94.224, - "y": 73.084, - "z": 25.49 - }, - "config": { - "type": "TipSpot", - "size_x": 2.312, - "size_y": 2.312, - "size_z": 0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "tip_spot", - "model": null, - "barcode": null, - "prototype_tip": { - "type": "Tip", - "total_tip_length": 39.2, - "has_filter": false, - "maximal_volume": 10.0, - "fitting_depth": 3.29 - } - }, - "data": { - "tip": null, - "tip_state": null, - "pending_tip": null - } - }, - { - "id": "RackT5_B10", - "name": "RackT5_B10", - "sample_id": null, - "children": [], - "parent": "RackT5", - "type": "container", - "class": "", - "position": { - "x": 94.224, - "y": 64.084, - "z": 25.49 - }, - "config": { - "type": "TipSpot", - "size_x": 2.312, - "size_y": 2.312, - "size_z": 0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "tip_spot", - "model": null, - "barcode": null, - "prototype_tip": { - "type": "Tip", - "total_tip_length": 39.2, - "has_filter": false, - "maximal_volume": 10.0, - "fitting_depth": 3.29 - } - }, - "data": { - "tip": null, - "tip_state": null, - "pending_tip": null - } - }, - { - "id": "RackT5_C10", - "name": "RackT5_C10", - "sample_id": null, - "children": [], - "parent": "RackT5", - "type": "container", - "class": "", - "position": { - "x": 94.224, - "y": 55.084, - "z": 25.49 - }, - "config": { - "type": "TipSpot", - "size_x": 2.312, - "size_y": 2.312, - "size_z": 0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "tip_spot", - "model": null, - "barcode": null, - "prototype_tip": { - "type": "Tip", - "total_tip_length": 39.2, - "has_filter": false, - "maximal_volume": 10.0, - "fitting_depth": 3.29 - } - }, - "data": { - "tip": null, - "tip_state": null, - "pending_tip": null - } - }, - { - "id": "RackT5_D10", - "name": "RackT5_D10", - "sample_id": null, - "children": [], - "parent": "RackT5", - "type": "container", - "class": "", - "position": { - "x": 94.224, - "y": 46.084, - "z": 25.49 - }, - "config": { - "type": "TipSpot", - "size_x": 2.312, - "size_y": 2.312, - "size_z": 0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "tip_spot", - "model": null, - "barcode": null, - "prototype_tip": { - "type": "Tip", - "total_tip_length": 39.2, - "has_filter": false, - "maximal_volume": 10.0, - "fitting_depth": 3.29 - } - }, - "data": { - "tip": null, - "tip_state": null, - "pending_tip": null - } - }, - { - "id": "RackT5_E10", - "name": "RackT5_E10", - "sample_id": null, - "children": [], - "parent": "RackT5", - "type": "container", - "class": "", - "position": { - "x": 94.224, - "y": 37.084, - "z": 25.49 - }, - "config": { - "type": "TipSpot", - "size_x": 2.312, - "size_y": 2.312, - "size_z": 0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "tip_spot", - "model": null, - "barcode": null, - "prototype_tip": { - "type": "Tip", - "total_tip_length": 39.2, - "has_filter": false, - "maximal_volume": 10.0, - "fitting_depth": 3.29 - } - }, - "data": { - "tip": null, - "tip_state": null, - "pending_tip": null - } - }, - { - "id": "RackT5_F10", - "name": "RackT5_F10", - "sample_id": null, - "children": [], - "parent": "RackT5", - "type": "container", - "class": "", - "position": { - "x": 94.224, - "y": 28.084, - "z": 25.49 - }, - "config": { - "type": "TipSpot", - "size_x": 2.312, - "size_y": 2.312, - "size_z": 0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "tip_spot", - "model": null, - "barcode": null, - "prototype_tip": { - "type": "Tip", - "total_tip_length": 39.2, - "has_filter": false, - "maximal_volume": 10.0, - "fitting_depth": 3.29 - } - }, - "data": { - "tip": null, - "tip_state": null, - "pending_tip": null - } - }, - { - "id": "RackT5_G10", - "name": "RackT5_G10", - "sample_id": null, - "children": [], - "parent": "RackT5", - "type": "container", - "class": "", - "position": { - "x": 94.224, - "y": 19.084, - "z": 25.49 - }, - "config": { - "type": "TipSpot", - "size_x": 2.312, - "size_y": 2.312, - "size_z": 0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "tip_spot", - "model": null, - "barcode": null, - "prototype_tip": { - "type": "Tip", - "total_tip_length": 39.2, - "has_filter": false, - "maximal_volume": 10.0, - "fitting_depth": 3.29 - } - }, - "data": { - "tip": null, - "tip_state": null, - "pending_tip": null - } - }, - { - "id": "RackT5_H10", - "name": "RackT5_H10", - "sample_id": null, - "children": [], - "parent": "RackT5", - "type": "container", - "class": "", - "position": { - "x": 94.224, - "y": 10.084, - "z": 25.49 - }, - "config": { - "type": "TipSpot", - "size_x": 2.312, - "size_y": 2.312, - "size_z": 0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "tip_spot", - "model": null, - "barcode": null, - "prototype_tip": { - "type": "Tip", - "total_tip_length": 39.2, - "has_filter": false, - "maximal_volume": 10.0, - "fitting_depth": 3.29 - } - }, - "data": { - "tip": null, - "tip_state": null, - "pending_tip": null - } - }, - { - "id": "RackT5_A11", - "name": "RackT5_A11", - "sample_id": null, - "children": [], - "parent": "RackT5", - "type": "container", - "class": "", - "position": { - "x": 103.224, - "y": 73.084, - "z": 25.49 - }, - "config": { - "type": "TipSpot", - "size_x": 2.312, - "size_y": 2.312, - "size_z": 0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "tip_spot", - "model": null, - "barcode": null, - "prototype_tip": { - "type": "Tip", - "total_tip_length": 39.2, - "has_filter": false, - "maximal_volume": 10.0, - "fitting_depth": 3.29 - } - }, - "data": { - "tip": null, - "tip_state": null, - "pending_tip": null - } - }, - { - "id": "RackT5_B11", - "name": "RackT5_B11", - "sample_id": null, - "children": [], - "parent": "RackT5", - "type": "container", - "class": "", - "position": { - "x": 103.224, - "y": 64.084, - "z": 25.49 - }, - "config": { - "type": "TipSpot", - "size_x": 2.312, - "size_y": 2.312, - "size_z": 0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "tip_spot", - "model": null, - "barcode": null, - "prototype_tip": { - "type": "Tip", - "total_tip_length": 39.2, - "has_filter": false, - "maximal_volume": 10.0, - "fitting_depth": 3.29 - } - }, - "data": { - "tip": null, - "tip_state": null, - "pending_tip": null - } - }, - { - "id": "RackT5_C11", - "name": "RackT5_C11", - "sample_id": null, - "children": [], - "parent": "RackT5", - "type": "container", - "class": "", - "position": { - "x": 103.224, - "y": 55.084, - "z": 25.49 - }, - "config": { - "type": "TipSpot", - "size_x": 2.312, - "size_y": 2.312, - "size_z": 0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "tip_spot", - "model": null, - "barcode": null, - "prototype_tip": { - "type": "Tip", - "total_tip_length": 39.2, - "has_filter": false, - "maximal_volume": 10.0, - "fitting_depth": 3.29 - } - }, - "data": { - "tip": null, - "tip_state": null, - "pending_tip": null - } - }, - { - "id": "RackT5_D11", - "name": "RackT5_D11", - "sample_id": null, - "children": [], - "parent": "RackT5", - "type": "container", - "class": "", - "position": { - "x": 103.224, - "y": 46.084, - "z": 25.49 - }, - "config": { - "type": "TipSpot", - "size_x": 2.312, - "size_y": 2.312, - "size_z": 0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "tip_spot", - "model": null, - "barcode": null, - "prototype_tip": { - "type": "Tip", - "total_tip_length": 39.2, - "has_filter": false, - "maximal_volume": 10.0, - "fitting_depth": 3.29 - } - }, - "data": { - "tip": null, - "tip_state": null, - "pending_tip": null - } - }, - { - "id": "RackT5_E11", - "name": "RackT5_E11", - "sample_id": null, - "children": [], - "parent": "RackT5", - "type": "container", - "class": "", - "position": { - "x": 103.224, - "y": 37.084, - "z": 25.49 - }, - "config": { - "type": "TipSpot", - "size_x": 2.312, - "size_y": 2.312, - "size_z": 0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "tip_spot", - "model": null, - "barcode": null, - "prototype_tip": { - "type": "Tip", - "total_tip_length": 39.2, - "has_filter": false, - "maximal_volume": 10.0, - "fitting_depth": 3.29 - } - }, - "data": { - "tip": null, - "tip_state": null, - "pending_tip": null - } - }, - { - "id": "RackT5_F11", - "name": "RackT5_F11", - "sample_id": null, - "children": [], - "parent": "RackT5", - "type": "container", - "class": "", - "position": { - "x": 103.224, - "y": 28.084, - "z": 25.49 - }, - "config": { - "type": "TipSpot", - "size_x": 2.312, - "size_y": 2.312, - "size_z": 0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "tip_spot", - "model": null, - "barcode": null, - "prototype_tip": { - "type": "Tip", - "total_tip_length": 39.2, - "has_filter": false, - "maximal_volume": 10.0, - "fitting_depth": 3.29 - } - }, - "data": { - "tip": null, - "tip_state": null, - "pending_tip": null - } - }, - { - "id": "RackT5_G11", - "name": "RackT5_G11", - "sample_id": null, - "children": [], - "parent": "RackT5", - "type": "container", - "class": "", - "position": { - "x": 103.224, - "y": 19.084, - "z": 25.49 - }, - "config": { - "type": "TipSpot", - "size_x": 2.312, - "size_y": 2.312, - "size_z": 0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "tip_spot", - "model": null, - "barcode": null, - "prototype_tip": { - "type": "Tip", - "total_tip_length": 39.2, - "has_filter": false, - "maximal_volume": 10.0, - "fitting_depth": 3.29 - } - }, - "data": { - "tip": null, - "tip_state": null, - "pending_tip": null - } - }, - { - "id": "RackT5_H11", - "name": "RackT5_H11", - "sample_id": null, - "children": [], - "parent": "RackT5", - "type": "container", - "class": "", - "position": { - "x": 103.224, - "y": 10.084, - "z": 25.49 - }, - "config": { - "type": "TipSpot", - "size_x": 2.312, - "size_y": 2.312, - "size_z": 0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "tip_spot", - "model": null, - "barcode": null, - "prototype_tip": { - "type": "Tip", - "total_tip_length": 39.2, - "has_filter": false, - "maximal_volume": 10.0, - "fitting_depth": 3.29 - } - }, - "data": { - "tip": null, - "tip_state": null, - "pending_tip": null - } - }, - { - "id": "RackT5_A12", - "name": "RackT5_A12", - "sample_id": null, - "children": [], - "parent": "RackT5", - "type": "container", - "class": "", - "position": { - "x": 112.224, - "y": 73.084, - "z": 25.49 - }, - "config": { - "type": "TipSpot", - "size_x": 2.312, - "size_y": 2.312, - "size_z": 0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "tip_spot", - "model": null, - "barcode": null, - "prototype_tip": { - "type": "Tip", - "total_tip_length": 39.2, - "has_filter": false, - "maximal_volume": 10.0, - "fitting_depth": 3.29 - } - }, - "data": { - "tip": null, - "tip_state": null, - "pending_tip": null - } - }, - { - "id": "RackT5_B12", - "name": "RackT5_B12", - "sample_id": null, - "children": [], - "parent": "RackT5", - "type": "container", - "class": "", - "position": { - "x": 112.224, - "y": 64.084, - "z": 25.49 - }, - "config": { - "type": "TipSpot", - "size_x": 2.312, - "size_y": 2.312, - "size_z": 0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "tip_spot", - "model": null, - "barcode": null, - "prototype_tip": { - "type": "Tip", - "total_tip_length": 39.2, - "has_filter": false, - "maximal_volume": 10.0, - "fitting_depth": 3.29 - } - }, - "data": { - "tip": null, - "tip_state": null, - "pending_tip": null - } - }, - { - "id": "RackT5_C12", - "name": "RackT5_C12", - "sample_id": null, - "children": [], - "parent": "RackT5", - "type": "container", - "class": "", - "position": { - "x": 112.224, - "y": 55.084, - "z": 25.49 - }, - "config": { - "type": "TipSpot", - "size_x": 2.312, - "size_y": 2.312, - "size_z": 0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "tip_spot", - "model": null, - "barcode": null, - "prototype_tip": { - "type": "Tip", - "total_tip_length": 39.2, - "has_filter": false, - "maximal_volume": 10.0, - "fitting_depth": 3.29 - } - }, - "data": { - "tip": null, - "tip_state": null, - "pending_tip": null - } - }, - { - "id": "RackT5_D12", - "name": "RackT5_D12", - "sample_id": null, - "children": [], - "parent": "RackT5", - "type": "container", - "class": "", - "position": { - "x": 112.224, - "y": 46.084, - "z": 25.49 - }, - "config": { - "type": "TipSpot", - "size_x": 2.312, - "size_y": 2.312, - "size_z": 0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "tip_spot", - "model": null, - "barcode": null, - "prototype_tip": { - "type": "Tip", - "total_tip_length": 39.2, - "has_filter": false, - "maximal_volume": 10.0, - "fitting_depth": 3.29 - } - }, - "data": { - "tip": null, - "tip_state": null, - "pending_tip": null - } - }, - { - "id": "RackT5_E12", - "name": "RackT5_E12", - "sample_id": null, - "children": [], - "parent": "RackT5", - "type": "container", - "class": "", - "position": { - "x": 112.224, - "y": 37.084, - "z": 25.49 - }, - "config": { - "type": "TipSpot", - "size_x": 2.312, - "size_y": 2.312, - "size_z": 0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "tip_spot", - "model": null, - "barcode": null, - "prototype_tip": { - "type": "Tip", - "total_tip_length": 39.2, - "has_filter": false, - "maximal_volume": 10.0, - "fitting_depth": 3.29 - } - }, - "data": { - "tip": null, - "tip_state": null, - "pending_tip": null - } - }, - { - "id": "RackT5_F12", - "name": "RackT5_F12", - "sample_id": null, - "children": [], - "parent": "RackT5", - "type": "container", - "class": "", - "position": { - "x": 112.224, - "y": 28.084, - "z": 25.49 - }, - "config": { - "type": "TipSpot", - "size_x": 2.312, - "size_y": 2.312, - "size_z": 0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "tip_spot", - "model": null, - "barcode": null, - "prototype_tip": { - "type": "Tip", - "total_tip_length": 39.2, - "has_filter": false, - "maximal_volume": 10.0, - "fitting_depth": 3.29 - } - }, - "data": { - "tip": null, - "tip_state": null, - "pending_tip": null - } - }, - { - "id": "RackT5_G12", - "name": "RackT5_G12", - "sample_id": null, - "children": [], - "parent": "RackT5", - "type": "container", - "class": "", - "position": { - "x": 112.224, - "y": 19.084, - "z": 25.49 - }, - "config": { - "type": "TipSpot", - "size_x": 2.312, - "size_y": 2.312, - "size_z": 0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "tip_spot", - "model": null, - "barcode": null, - "prototype_tip": { - "type": "Tip", - "total_tip_length": 39.2, - "has_filter": false, - "maximal_volume": 10.0, - "fitting_depth": 3.29 - } - }, - "data": { - "tip": null, - "tip_state": null, - "pending_tip": null - } - }, - { - "id": "RackT5_H12", - "name": "RackT5_H12", - "sample_id": null, - "children": [], - "parent": "RackT5", - "type": "container", - "class": "", - "position": { - "x": 112.224, - "y": 10.084, - "z": 25.49 - }, - "config": { - "type": "TipSpot", - "size_x": 2.312, - "size_y": 2.312, - "size_z": 0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "tip_spot", - "model": null, - "barcode": null, - "prototype_tip": { - "type": "Tip", - "total_tip_length": 39.2, - "has_filter": false, - "maximal_volume": 10.0, - "fitting_depth": 3.29 - } - }, - "data": { - "tip": null, - "tip_state": null, - "pending_tip": null - } - }, - { - "id": "PlateT6", - "name": "PlateT6", - "sample_id": null, - "children": [ - "PlateT6_A1", - "PlateT6_B1", - "PlateT6_C1", - "PlateT6_D1", - "PlateT6_E1", - "PlateT6_F1", - "PlateT6_G1", - "PlateT6_H1", - "PlateT6_A2", - "PlateT6_B2", - "PlateT6_C2", - "PlateT6_D2", - "PlateT6_E2", - "PlateT6_F2", - "PlateT6_G2", - "PlateT6_H2", - "PlateT6_A3", - "PlateT6_B3", - "PlateT6_C3", - "PlateT6_D3", - "PlateT6_E3", - "PlateT6_F3", - "PlateT6_G3", - "PlateT6_H3", - "PlateT6_A4", - "PlateT6_B4", - "PlateT6_C4", - "PlateT6_D4", - "PlateT6_E4", - "PlateT6_F4", - "PlateT6_G4", - "PlateT6_H4", - "PlateT6_A5", - "PlateT6_B5", - "PlateT6_C5", - "PlateT6_D5", - "PlateT6_E5", - "PlateT6_F5", - "PlateT6_G5", - "PlateT6_H5", - "PlateT6_A6", - "PlateT6_B6", - "PlateT6_C6", - "PlateT6_D6", - "PlateT6_E6", - "PlateT6_F6", - "PlateT6_G6", - "PlateT6_H6", - "PlateT6_A7", - "PlateT6_B7", - "PlateT6_C7", - "PlateT6_D7", - "PlateT6_E7", - "PlateT6_F7", - "PlateT6_G7", - "PlateT6_H7", - "PlateT6_A8", - "PlateT6_B8", - "PlateT6_C8", - "PlateT6_D8", - "PlateT6_E8", - "PlateT6_F8", - "PlateT6_G8", - "PlateT6_H8", - "PlateT6_A9", - "PlateT6_B9", - "PlateT6_C9", - "PlateT6_D9", - "PlateT6_E9", - "PlateT6_F9", - "PlateT6_G9", - "PlateT6_H9", - "PlateT6_A10", - "PlateT6_B10", - "PlateT6_C10", - "PlateT6_D10", - "PlateT6_E10", - "PlateT6_F10", - "PlateT6_G10", - "PlateT6_H10", - "PlateT6_A11", - "PlateT6_B11", - "PlateT6_C11", - "PlateT6_D11", - "PlateT6_E11", - "PlateT6_F11", - "PlateT6_G11", - "PlateT6_H11", - "PlateT6_A12", - "PlateT6_B12", - "PlateT6_C12", - "PlateT6_D12", - "PlateT6_E12", - "PlateT6_F12", - "PlateT6_G12", - "PlateT6_H12" - ], - "parent": "PRCXI_Deck", - "type": "plate", - "class": "", - "position": { - "x": 0, - "y": 0, - "z": 0 - }, - "config": { - "type": "PRCXI9300Plate", - "size_x": 50, - "size_y": 50, - "size_z": 10, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "plate", - "model": null, - "barcode": null, - "ordering": { - "A1": "PlateT6_A1", - "B1": "PlateT6_B1", - "C1": "PlateT6_C1", - "D1": "PlateT6_D1", - "E1": "PlateT6_E1", - "F1": "PlateT6_F1", - "G1": "PlateT6_G1", - "H1": "PlateT6_H1", - "A2": "PlateT6_A2", - "B2": "PlateT6_B2", - "C2": "PlateT6_C2", - "D2": "PlateT6_D2", - "E2": "PlateT6_E2", - "F2": "PlateT6_F2", - "G2": "PlateT6_G2", - "H2": "PlateT6_H2", - "A3": "PlateT6_A3", - "B3": "PlateT6_B3", - "C3": "PlateT6_C3", - "D3": "PlateT6_D3", - "E3": "PlateT6_E3", - "F3": "PlateT6_F3", - "G3": "PlateT6_G3", - "H3": "PlateT6_H3", - "A4": "PlateT6_A4", - "B4": "PlateT6_B4", - "C4": "PlateT6_C4", - "D4": "PlateT6_D4", - "E4": "PlateT6_E4", - "F4": "PlateT6_F4", - "G4": "PlateT6_G4", - "H4": "PlateT6_H4", - "A5": "PlateT6_A5", - "B5": "PlateT6_B5", - "C5": "PlateT6_C5", - "D5": "PlateT6_D5", - "E5": "PlateT6_E5", - "F5": "PlateT6_F5", - "G5": "PlateT6_G5", - "H5": "PlateT6_H5", - "A6": "PlateT6_A6", - "B6": "PlateT6_B6", - "C6": "PlateT6_C6", - "D6": "PlateT6_D6", - "E6": "PlateT6_E6", - "F6": "PlateT6_F6", - "G6": "PlateT6_G6", - "H6": "PlateT6_H6", - "A7": "PlateT6_A7", - "B7": "PlateT6_B7", - "C7": "PlateT6_C7", - "D7": "PlateT6_D7", - "E7": "PlateT6_E7", - "F7": "PlateT6_F7", - "G7": "PlateT6_G7", - "H7": "PlateT6_H7", - "A8": "PlateT6_A8", - "B8": "PlateT6_B8", - "C8": "PlateT6_C8", - "D8": "PlateT6_D8", - "E8": "PlateT6_E8", - "F8": "PlateT6_F8", - "G8": "PlateT6_G8", - "H8": "PlateT6_H8", - "A9": "PlateT6_A9", - "B9": "PlateT6_B9", - "C9": "PlateT6_C9", - "D9": "PlateT6_D9", - "E9": "PlateT6_E9", - "F9": "PlateT6_F9", - "G9": "PlateT6_G9", - "H9": "PlateT6_H9", - "A10": "PlateT6_A10", - "B10": "PlateT6_B10", - "C10": "PlateT6_C10", - "D10": "PlateT6_D10", - "E10": "PlateT6_E10", - "F10": "PlateT6_F10", - "G10": "PlateT6_G10", - "H10": "PlateT6_H10", - "A11": "PlateT6_A11", - "B11": "PlateT6_B11", - "C11": "PlateT6_C11", - "D11": "PlateT6_D11", - "E11": "PlateT6_E11", - "F11": "PlateT6_F11", - "G11": "PlateT6_G11", - "H11": "PlateT6_H11", - "A12": "PlateT6_A12", - "B12": "PlateT6_B12", - "C12": "PlateT6_C12", - "D12": "PlateT6_D12", - "E12": "PlateT6_E12", - "F12": "PlateT6_F12", - "G12": "PlateT6_G12", - "H12": "PlateT6_H12" - } - }, - "data": { - "Material": { - "uuid": "e146697c395e4eabb3d6b74f0dd6aaf7", - "Code": "1", - "SupplyType": 1, - "Name": "ep适配器", - "SummaryName": "ep适配器" - } - } - }, - { - "id": "PlateT6_A1", - "name": "PlateT6_A1", - "sample_id": null, - "children": [], - "parent": "PlateT6", - "type": "well", - "class": "", - "position": { - "x": 11.9545, - "y": 71.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT6_B1", - "name": "PlateT6_B1", - "sample_id": null, - "children": [], - "parent": "PlateT6", - "type": "well", - "class": "", - "position": { - "x": 11.9545, - "y": 62.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT6_C1", - "name": "PlateT6_C1", - "sample_id": null, - "children": [], - "parent": "PlateT6", - "type": "well", - "class": "", - "position": { - "x": 11.9545, - "y": 53.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT6_D1", - "name": "PlateT6_D1", - "sample_id": null, - "children": [], - "parent": "PlateT6", - "type": "well", - "class": "", - "position": { - "x": 11.9545, - "y": 44.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT6_E1", - "name": "PlateT6_E1", - "sample_id": null, - "children": [], - "parent": "PlateT6", - "type": "well", - "class": "", - "position": { - "x": 11.9545, - "y": 35.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT6_F1", - "name": "PlateT6_F1", - "sample_id": null, - "children": [], - "parent": "PlateT6", - "type": "well", - "class": "", - "position": { - "x": 11.9545, - "y": 26.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT6_G1", - "name": "PlateT6_G1", - "sample_id": null, - "children": [], - "parent": "PlateT6", - "type": "well", - "class": "", - "position": { - "x": 11.9545, - "y": 17.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT6_H1", - "name": "PlateT6_H1", - "sample_id": null, - "children": [], - "parent": "PlateT6", - "type": "well", - "class": "", - "position": { - "x": 11.9545, - "y": 8.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT6_A2", - "name": "PlateT6_A2", - "sample_id": null, - "children": [], - "parent": "PlateT6", - "type": "well", - "class": "", - "position": { - "x": 20.9545, - "y": 71.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT6_B2", - "name": "PlateT6_B2", - "sample_id": null, - "children": [], - "parent": "PlateT6", - "type": "well", - "class": "", - "position": { - "x": 20.9545, - "y": 62.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT6_C2", - "name": "PlateT6_C2", - "sample_id": null, - "children": [], - "parent": "PlateT6", - "type": "well", - "class": "", - "position": { - "x": 20.9545, - "y": 53.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT6_D2", - "name": "PlateT6_D2", - "sample_id": null, - "children": [], - "parent": "PlateT6", - "type": "well", - "class": "", - "position": { - "x": 20.9545, - "y": 44.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT6_E2", - "name": "PlateT6_E2", - "sample_id": null, - "children": [], - "parent": "PlateT6", - "type": "well", - "class": "", - "position": { - "x": 20.9545, - "y": 35.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT6_F2", - "name": "PlateT6_F2", - "sample_id": null, - "children": [], - "parent": "PlateT6", - "type": "well", - "class": "", - "position": { - "x": 20.9545, - "y": 26.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT6_G2", - "name": "PlateT6_G2", - "sample_id": null, - "children": [], - "parent": "PlateT6", - "type": "well", - "class": "", - "position": { - "x": 20.9545, - "y": 17.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT6_H2", - "name": "PlateT6_H2", - "sample_id": null, - "children": [], - "parent": "PlateT6", - "type": "well", - "class": "", - "position": { - "x": 20.9545, - "y": 8.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT6_A3", - "name": "PlateT6_A3", - "sample_id": null, - "children": [], - "parent": "PlateT6", - "type": "well", - "class": "", - "position": { - "x": 29.9545, - "y": 71.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT6_B3", - "name": "PlateT6_B3", - "sample_id": null, - "children": [], - "parent": "PlateT6", - "type": "well", - "class": "", - "position": { - "x": 29.9545, - "y": 62.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT6_C3", - "name": "PlateT6_C3", - "sample_id": null, - "children": [], - "parent": "PlateT6", - "type": "well", - "class": "", - "position": { - "x": 29.9545, - "y": 53.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT6_D3", - "name": "PlateT6_D3", - "sample_id": null, - "children": [], - "parent": "PlateT6", - "type": "well", - "class": "", - "position": { - "x": 29.9545, - "y": 44.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT6_E3", - "name": "PlateT6_E3", - "sample_id": null, - "children": [], - "parent": "PlateT6", - "type": "well", - "class": "", - "position": { - "x": 29.9545, - "y": 35.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT6_F3", - "name": "PlateT6_F3", - "sample_id": null, - "children": [], - "parent": "PlateT6", - "type": "well", - "class": "", - "position": { - "x": 29.9545, - "y": 26.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT6_G3", - "name": "PlateT6_G3", - "sample_id": null, - "children": [], - "parent": "PlateT6", - "type": "well", - "class": "", - "position": { - "x": 29.9545, - "y": 17.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT6_H3", - "name": "PlateT6_H3", - "sample_id": null, - "children": [], - "parent": "PlateT6", - "type": "well", - "class": "", - "position": { - "x": 29.9545, - "y": 8.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT6_A4", - "name": "PlateT6_A4", - "sample_id": null, - "children": [], - "parent": "PlateT6", - "type": "well", - "class": "", - "position": { - "x": 38.9545, - "y": 71.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT6_B4", - "name": "PlateT6_B4", - "sample_id": null, - "children": [], - "parent": "PlateT6", - "type": "well", - "class": "", - "position": { - "x": 38.9545, - "y": 62.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT6_C4", - "name": "PlateT6_C4", - "sample_id": null, - "children": [], - "parent": "PlateT6", - "type": "well", - "class": "", - "position": { - "x": 38.9545, - "y": 53.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT6_D4", - "name": "PlateT6_D4", - "sample_id": null, - "children": [], - "parent": "PlateT6", - "type": "well", - "class": "", - "position": { - "x": 38.9545, - "y": 44.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT6_E4", - "name": "PlateT6_E4", - "sample_id": null, - "children": [], - "parent": "PlateT6", - "type": "well", - "class": "", - "position": { - "x": 38.9545, - "y": 35.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT6_F4", - "name": "PlateT6_F4", - "sample_id": null, - "children": [], - "parent": "PlateT6", - "type": "well", - "class": "", - "position": { - "x": 38.9545, - "y": 26.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT6_G4", - "name": "PlateT6_G4", - "sample_id": null, - "children": [], - "parent": "PlateT6", - "type": "well", - "class": "", - "position": { - "x": 38.9545, - "y": 17.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT6_H4", - "name": "PlateT6_H4", - "sample_id": null, - "children": [], - "parent": "PlateT6", - "type": "well", - "class": "", - "position": { - "x": 38.9545, - "y": 8.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT6_A5", - "name": "PlateT6_A5", - "sample_id": null, - "children": [], - "parent": "PlateT6", - "type": "well", - "class": "", - "position": { - "x": 47.9545, - "y": 71.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT6_B5", - "name": "PlateT6_B5", - "sample_id": null, - "children": [], - "parent": "PlateT6", - "type": "well", - "class": "", - "position": { - "x": 47.9545, - "y": 62.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT6_C5", - "name": "PlateT6_C5", - "sample_id": null, - "children": [], - "parent": "PlateT6", - "type": "well", - "class": "", - "position": { - "x": 47.9545, - "y": 53.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT6_D5", - "name": "PlateT6_D5", - "sample_id": null, - "children": [], - "parent": "PlateT6", - "type": "well", - "class": "", - "position": { - "x": 47.9545, - "y": 44.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT6_E5", - "name": "PlateT6_E5", - "sample_id": null, - "children": [], - "parent": "PlateT6", - "type": "well", - "class": "", - "position": { - "x": 47.9545, - "y": 35.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT6_F5", - "name": "PlateT6_F5", - "sample_id": null, - "children": [], - "parent": "PlateT6", - "type": "well", - "class": "", - "position": { - "x": 47.9545, - "y": 26.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT6_G5", - "name": "PlateT6_G5", - "sample_id": null, - "children": [], - "parent": "PlateT6", - "type": "well", - "class": "", - "position": { - "x": 47.9545, - "y": 17.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT6_H5", - "name": "PlateT6_H5", - "sample_id": null, - "children": [], - "parent": "PlateT6", - "type": "well", - "class": "", - "position": { - "x": 47.9545, - "y": 8.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT6_A6", - "name": "PlateT6_A6", - "sample_id": null, - "children": [], - "parent": "PlateT6", - "type": "well", - "class": "", - "position": { - "x": 56.9545, - "y": 71.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT6_B6", - "name": "PlateT6_B6", - "sample_id": null, - "children": [], - "parent": "PlateT6", - "type": "well", - "class": "", - "position": { - "x": 56.9545, - "y": 62.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT6_C6", - "name": "PlateT6_C6", - "sample_id": null, - "children": [], - "parent": "PlateT6", - "type": "well", - "class": "", - "position": { - "x": 56.9545, - "y": 53.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT6_D6", - "name": "PlateT6_D6", - "sample_id": null, - "children": [], - "parent": "PlateT6", - "type": "well", - "class": "", - "position": { - "x": 56.9545, - "y": 44.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT6_E6", - "name": "PlateT6_E6", - "sample_id": null, - "children": [], - "parent": "PlateT6", - "type": "well", - "class": "", - "position": { - "x": 56.9545, - "y": 35.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT6_F6", - "name": "PlateT6_F6", - "sample_id": null, - "children": [], - "parent": "PlateT6", - "type": "well", - "class": "", - "position": { - "x": 56.9545, - "y": 26.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT6_G6", - "name": "PlateT6_G6", - "sample_id": null, - "children": [], - "parent": "PlateT6", - "type": "well", - "class": "", - "position": { - "x": 56.9545, - "y": 17.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT6_H6", - "name": "PlateT6_H6", - "sample_id": null, - "children": [], - "parent": "PlateT6", - "type": "well", - "class": "", - "position": { - "x": 56.9545, - "y": 8.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT6_A7", - "name": "PlateT6_A7", - "sample_id": null, - "children": [], - "parent": "PlateT6", - "type": "well", - "class": "", - "position": { - "x": 65.9545, - "y": 71.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT6_B7", - "name": "PlateT6_B7", - "sample_id": null, - "children": [], - "parent": "PlateT6", - "type": "well", - "class": "", - "position": { - "x": 65.9545, - "y": 62.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT6_C7", - "name": "PlateT6_C7", - "sample_id": null, - "children": [], - "parent": "PlateT6", - "type": "well", - "class": "", - "position": { - "x": 65.9545, - "y": 53.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT6_D7", - "name": "PlateT6_D7", - "sample_id": null, - "children": [], - "parent": "PlateT6", - "type": "well", - "class": "", - "position": { - "x": 65.9545, - "y": 44.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT6_E7", - "name": "PlateT6_E7", - "sample_id": null, - "children": [], - "parent": "PlateT6", - "type": "well", - "class": "", - "position": { - "x": 65.9545, - "y": 35.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT6_F7", - "name": "PlateT6_F7", - "sample_id": null, - "children": [], - "parent": "PlateT6", - "type": "well", - "class": "", - "position": { - "x": 65.9545, - "y": 26.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT6_G7", - "name": "PlateT6_G7", - "sample_id": null, - "children": [], - "parent": "PlateT6", - "type": "well", - "class": "", - "position": { - "x": 65.9545, - "y": 17.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT6_H7", - "name": "PlateT6_H7", - "sample_id": null, - "children": [], - "parent": "PlateT6", - "type": "well", - "class": "", - "position": { - "x": 65.9545, - "y": 8.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT6_A8", - "name": "PlateT6_A8", - "sample_id": null, - "children": [], - "parent": "PlateT6", - "type": "well", - "class": "", - "position": { - "x": 74.9545, - "y": 71.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT6_B8", - "name": "PlateT6_B8", - "sample_id": null, - "children": [], - "parent": "PlateT6", - "type": "well", - "class": "", - "position": { - "x": 74.9545, - "y": 62.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT6_C8", - "name": "PlateT6_C8", - "sample_id": null, - "children": [], - "parent": "PlateT6", - "type": "well", - "class": "", - "position": { - "x": 74.9545, - "y": 53.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT6_D8", - "name": "PlateT6_D8", - "sample_id": null, - "children": [], - "parent": "PlateT6", - "type": "well", - "class": "", - "position": { - "x": 74.9545, - "y": 44.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT6_E8", - "name": "PlateT6_E8", - "sample_id": null, - "children": [], - "parent": "PlateT6", - "type": "well", - "class": "", - "position": { - "x": 74.9545, - "y": 35.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT6_F8", - "name": "PlateT6_F8", - "sample_id": null, - "children": [], - "parent": "PlateT6", - "type": "well", - "class": "", - "position": { - "x": 74.9545, - "y": 26.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT6_G8", - "name": "PlateT6_G8", - "sample_id": null, - "children": [], - "parent": "PlateT6", - "type": "well", - "class": "", - "position": { - "x": 74.9545, - "y": 17.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT6_H8", - "name": "PlateT6_H8", - "sample_id": null, - "children": [], - "parent": "PlateT6", - "type": "well", - "class": "", - "position": { - "x": 74.9545, - "y": 8.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT6_A9", - "name": "PlateT6_A9", - "sample_id": null, - "children": [], - "parent": "PlateT6", - "type": "well", - "class": "", - "position": { - "x": 83.9545, - "y": 71.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT6_B9", - "name": "PlateT6_B9", - "sample_id": null, - "children": [], - "parent": "PlateT6", - "type": "well", - "class": "", - "position": { - "x": 83.9545, - "y": 62.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT6_C9", - "name": "PlateT6_C9", - "sample_id": null, - "children": [], - "parent": "PlateT6", - "type": "well", - "class": "", - "position": { - "x": 83.9545, - "y": 53.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT6_D9", - "name": "PlateT6_D9", - "sample_id": null, - "children": [], - "parent": "PlateT6", - "type": "well", - "class": "", - "position": { - "x": 83.9545, - "y": 44.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT6_E9", - "name": "PlateT6_E9", - "sample_id": null, - "children": [], - "parent": "PlateT6", - "type": "well", - "class": "", - "position": { - "x": 83.9545, - "y": 35.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT6_F9", - "name": "PlateT6_F9", - "sample_id": null, - "children": [], - "parent": "PlateT6", - "type": "well", - "class": "", - "position": { - "x": 83.9545, - "y": 26.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT6_G9", - "name": "PlateT6_G9", - "sample_id": null, - "children": [], - "parent": "PlateT6", - "type": "well", - "class": "", - "position": { - "x": 83.9545, - "y": 17.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT6_H9", - "name": "PlateT6_H9", - "sample_id": null, - "children": [], - "parent": "PlateT6", - "type": "well", - "class": "", - "position": { - "x": 83.9545, - "y": 8.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT6_A10", - "name": "PlateT6_A10", - "sample_id": null, - "children": [], - "parent": "PlateT6", - "type": "well", - "class": "", - "position": { - "x": 92.9545, - "y": 71.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT6_B10", - "name": "PlateT6_B10", - "sample_id": null, - "children": [], - "parent": "PlateT6", - "type": "well", - "class": "", - "position": { - "x": 92.9545, - "y": 62.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT6_C10", - "name": "PlateT6_C10", - "sample_id": null, - "children": [], - "parent": "PlateT6", - "type": "well", - "class": "", - "position": { - "x": 92.9545, - "y": 53.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT6_D10", - "name": "PlateT6_D10", - "sample_id": null, - "children": [], - "parent": "PlateT6", - "type": "well", - "class": "", - "position": { - "x": 92.9545, - "y": 44.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT6_E10", - "name": "PlateT6_E10", - "sample_id": null, - "children": [], - "parent": "PlateT6", - "type": "well", - "class": "", - "position": { - "x": 92.9545, - "y": 35.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT6_F10", - "name": "PlateT6_F10", - "sample_id": null, - "children": [], - "parent": "PlateT6", - "type": "well", - "class": "", - "position": { - "x": 92.9545, - "y": 26.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT6_G10", - "name": "PlateT6_G10", - "sample_id": null, - "children": [], - "parent": "PlateT6", - "type": "well", - "class": "", - "position": { - "x": 92.9545, - "y": 17.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT6_H10", - "name": "PlateT6_H10", - "sample_id": null, - "children": [], - "parent": "PlateT6", - "type": "well", - "class": "", - "position": { - "x": 92.9545, - "y": 8.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT6_A11", - "name": "PlateT6_A11", - "sample_id": null, - "children": [], - "parent": "PlateT6", - "type": "well", - "class": "", - "position": { - "x": 101.9545, - "y": 71.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT6_B11", - "name": "PlateT6_B11", - "sample_id": null, - "children": [], - "parent": "PlateT6", - "type": "well", - "class": "", - "position": { - "x": 101.9545, - "y": 62.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT6_C11", - "name": "PlateT6_C11", - "sample_id": null, - "children": [], - "parent": "PlateT6", - "type": "well", - "class": "", - "position": { - "x": 101.9545, - "y": 53.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT6_D11", - "name": "PlateT6_D11", - "sample_id": null, - "children": [], - "parent": "PlateT6", - "type": "well", - "class": "", - "position": { - "x": 101.9545, - "y": 44.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT6_E11", - "name": "PlateT6_E11", - "sample_id": null, - "children": [], - "parent": "PlateT6", - "type": "well", - "class": "", - "position": { - "x": 101.9545, - "y": 35.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT6_F11", - "name": "PlateT6_F11", - "sample_id": null, - "children": [], - "parent": "PlateT6", - "type": "well", - "class": "", - "position": { - "x": 101.9545, - "y": 26.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT6_G11", - "name": "PlateT6_G11", - "sample_id": null, - "children": [], - "parent": "PlateT6", - "type": "well", - "class": "", - "position": { - "x": 101.9545, - "y": 17.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT6_H11", - "name": "PlateT6_H11", - "sample_id": null, - "children": [], - "parent": "PlateT6", - "type": "well", - "class": "", - "position": { - "x": 101.9545, - "y": 8.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT6_A12", - "name": "PlateT6_A12", - "sample_id": null, - "children": [], - "parent": "PlateT6", - "type": "well", - "class": "", - "position": { - "x": 110.9545, - "y": 71.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT6_B12", - "name": "PlateT6_B12", - "sample_id": null, - "children": [], - "parent": "PlateT6", - "type": "well", - "class": "", - "position": { - "x": 110.9545, - "y": 62.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT6_C12", - "name": "PlateT6_C12", - "sample_id": null, - "children": [], - "parent": "PlateT6", - "type": "well", - "class": "", - "position": { - "x": 110.9545, - "y": 53.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT6_D12", - "name": "PlateT6_D12", - "sample_id": null, - "children": [], - "parent": "PlateT6", - "type": "well", - "class": "", - "position": { - "x": 110.9545, - "y": 44.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT6_E12", - "name": "PlateT6_E12", - "sample_id": null, - "children": [], - "parent": "PlateT6", - "type": "well", - "class": "", - "position": { - "x": 110.9545, - "y": 35.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT6_F12", - "name": "PlateT6_F12", - "sample_id": null, - "children": [], - "parent": "PlateT6", - "type": "well", - "class": "", - "position": { - "x": 110.9545, - "y": 26.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT6_G12", - "name": "PlateT6_G12", - "sample_id": null, - "children": [], - "parent": "PlateT6", - "type": "well", - "class": "", - "position": { - "x": 110.9545, - "y": 17.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT6_H12", - "name": "PlateT6_H12", - "sample_id": null, - "children": [], - "parent": "PlateT6", - "type": "well", - "class": "", - "position": { - "x": 110.9545, - "y": 8.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "container_for_nothing7", - "name": "container_for_nothing7", - "sample_id": null, - "children": [], - "parent": "PRCXI_Deck", - "type": "plate", - "class": "", - "position": { - "x": 0, - "y": 0, - "z": 0 - }, - "config": { - "type": "PRCXI9300Plate", - "size_x": 50, - "size_y": 50, - "size_z": 10, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "plate", - "model": null, - "barcode": null, - "ordering": {} - }, - "data": {} - }, - { - "id": "container_for_nothing8", - "name": "container_for_nothing8", - "sample_id": null, - "children": [], - "parent": "PRCXI_Deck", - "type": "plate", - "class": "", - "position": { - "x": 0, - "y": 0, - "z": 0 - }, - "config": { - "type": "PRCXI9300Plate", - "size_x": 50, - "size_y": 50, - "size_z": 10, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "plate", - "model": null, - "barcode": null, - "ordering": {} - }, - "data": {} - }, - { - "id": "PlateT9", - "name": "PlateT9", - "sample_id": null, - "children": [ - "PlateT9_A1", - "PlateT9_B1", - "PlateT9_C1", - "PlateT9_D1", - "PlateT9_E1", - "PlateT9_F1", - "PlateT9_G1", - "PlateT9_H1", - "PlateT9_A2", - "PlateT9_B2", - "PlateT9_C2", - "PlateT9_D2", - "PlateT9_E2", - "PlateT9_F2", - "PlateT9_G2", - "PlateT9_H2", - "PlateT9_A3", - "PlateT9_B3", - "PlateT9_C3", - "PlateT9_D3", - "PlateT9_E3", - "PlateT9_F3", - "PlateT9_G3", - "PlateT9_H3", - "PlateT9_A4", - "PlateT9_B4", - "PlateT9_C4", - "PlateT9_D4", - "PlateT9_E4", - "PlateT9_F4", - "PlateT9_G4", - "PlateT9_H4", - "PlateT9_A5", - "PlateT9_B5", - "PlateT9_C5", - "PlateT9_D5", - "PlateT9_E5", - "PlateT9_F5", - "PlateT9_G5", - "PlateT9_H5", - "PlateT9_A6", - "PlateT9_B6", - "PlateT9_C6", - "PlateT9_D6", - "PlateT9_E6", - "PlateT9_F6", - "PlateT9_G6", - "PlateT9_H6", - "PlateT9_A7", - "PlateT9_B7", - "PlateT9_C7", - "PlateT9_D7", - "PlateT9_E7", - "PlateT9_F7", - "PlateT9_G7", - "PlateT9_H7", - "PlateT9_A8", - "PlateT9_B8", - "PlateT9_C8", - "PlateT9_D8", - "PlateT9_E8", - "PlateT9_F8", - "PlateT9_G8", - "PlateT9_H8", - "PlateT9_A9", - "PlateT9_B9", - "PlateT9_C9", - "PlateT9_D9", - "PlateT9_E9", - "PlateT9_F9", - "PlateT9_G9", - "PlateT9_H9", - "PlateT9_A10", - "PlateT9_B10", - "PlateT9_C10", - "PlateT9_D10", - "PlateT9_E10", - "PlateT9_F10", - "PlateT9_G10", - "PlateT9_H10", - "PlateT9_A11", - "PlateT9_B11", - "PlateT9_C11", - "PlateT9_D11", - "PlateT9_E11", - "PlateT9_F11", - "PlateT9_G11", - "PlateT9_H11", - "PlateT9_A12", - "PlateT9_B12", - "PlateT9_C12", - "PlateT9_D12", - "PlateT9_E12", - "PlateT9_F12", - "PlateT9_G12", - "PlateT9_H12" - ], - "parent": "PRCXI_Deck", - "type": "plate", - "class": "", - "position": { - "x": 0, - "y": 0, - "z": 0 - }, - "config": { - "type": "PRCXI9300Plate", - "size_x": 50, - "size_y": 50, - "size_z": 10, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "plate", - "model": null, - "barcode": null, - "ordering": { - "A1": "PlateT9_A1", - "B1": "PlateT9_B1", - "C1": "PlateT9_C1", - "D1": "PlateT9_D1", - "E1": "PlateT9_E1", - "F1": "PlateT9_F1", - "G1": "PlateT9_G1", - "H1": "PlateT9_H1", - "A2": "PlateT9_A2", - "B2": "PlateT9_B2", - "C2": "PlateT9_C2", - "D2": "PlateT9_D2", - "E2": "PlateT9_E2", - "F2": "PlateT9_F2", - "G2": "PlateT9_G2", - "H2": "PlateT9_H2", - "A3": "PlateT9_A3", - "B3": "PlateT9_B3", - "C3": "PlateT9_C3", - "D3": "PlateT9_D3", - "E3": "PlateT9_E3", - "F3": "PlateT9_F3", - "G3": "PlateT9_G3", - "H3": "PlateT9_H3", - "A4": "PlateT9_A4", - "B4": "PlateT9_B4", - "C4": "PlateT9_C4", - "D4": "PlateT9_D4", - "E4": "PlateT9_E4", - "F4": "PlateT9_F4", - "G4": "PlateT9_G4", - "H4": "PlateT9_H4", - "A5": "PlateT9_A5", - "B5": "PlateT9_B5", - "C5": "PlateT9_C5", - "D5": "PlateT9_D5", - "E5": "PlateT9_E5", - "F5": "PlateT9_F5", - "G5": "PlateT9_G5", - "H5": "PlateT9_H5", - "A6": "PlateT9_A6", - "B6": "PlateT9_B6", - "C6": "PlateT9_C6", - "D6": "PlateT9_D6", - "E6": "PlateT9_E6", - "F6": "PlateT9_F6", - "G6": "PlateT9_G6", - "H6": "PlateT9_H6", - "A7": "PlateT9_A7", - "B7": "PlateT9_B7", - "C7": "PlateT9_C7", - "D7": "PlateT9_D7", - "E7": "PlateT9_E7", - "F7": "PlateT9_F7", - "G7": "PlateT9_G7", - "H7": "PlateT9_H7", - "A8": "PlateT9_A8", - "B8": "PlateT9_B8", - "C8": "PlateT9_C8", - "D8": "PlateT9_D8", - "E8": "PlateT9_E8", - "F8": "PlateT9_F8", - "G8": "PlateT9_G8", - "H8": "PlateT9_H8", - "A9": "PlateT9_A9", - "B9": "PlateT9_B9", - "C9": "PlateT9_C9", - "D9": "PlateT9_D9", - "E9": "PlateT9_E9", - "F9": "PlateT9_F9", - "G9": "PlateT9_G9", - "H9": "PlateT9_H9", - "A10": "PlateT9_A10", - "B10": "PlateT9_B10", - "C10": "PlateT9_C10", - "D10": "PlateT9_D10", - "E10": "PlateT9_E10", - "F10": "PlateT9_F10", - "G10": "PlateT9_G10", - "H10": "PlateT9_H10", - "A11": "PlateT9_A11", - "B11": "PlateT9_B11", - "C11": "PlateT9_C11", - "D11": "PlateT9_D11", - "E11": "PlateT9_E11", - "F11": "PlateT9_F11", - "G11": "PlateT9_G11", - "H11": "PlateT9_H11", - "A12": "PlateT9_A12", - "B12": "PlateT9_B12", - "C12": "PlateT9_C12", - "D12": "PlateT9_D12", - "E12": "PlateT9_E12", - "F12": "PlateT9_F12", - "G12": "PlateT9_G12", - "H12": "PlateT9_H12" - } - }, - "data": { - "Material": { - "uuid": "4a043a07c65a4f9bb97745e1f129b165", - "Code": "ZX-58-0001", - "SupplyType": 2, - "Name": "全裙边 PCR适配器", - "SummaryName": "全裙边 PCR适配器" - } - } - }, - { - "id": "PlateT9_A1", - "name": "PlateT9_A1", - "sample_id": null, - "children": [], - "parent": "PlateT9", - "type": "well", - "class": "", - "position": { - "x": 11.9545, - "y": 71.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT9_B1", - "name": "PlateT9_B1", - "sample_id": null, - "children": [], - "parent": "PlateT9", - "type": "well", - "class": "", - "position": { - "x": 11.9545, - "y": 62.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT9_C1", - "name": "PlateT9_C1", - "sample_id": null, - "children": [], - "parent": "PlateT9", - "type": "well", - "class": "", - "position": { - "x": 11.9545, - "y": 53.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT9_D1", - "name": "PlateT9_D1", - "sample_id": null, - "children": [], - "parent": "PlateT9", - "type": "well", - "class": "", - "position": { - "x": 11.9545, - "y": 44.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT9_E1", - "name": "PlateT9_E1", - "sample_id": null, - "children": [], - "parent": "PlateT9", - "type": "well", - "class": "", - "position": { - "x": 11.9545, - "y": 35.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT9_F1", - "name": "PlateT9_F1", - "sample_id": null, - "children": [], - "parent": "PlateT9", - "type": "well", - "class": "", - "position": { - "x": 11.9545, - "y": 26.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT9_G1", - "name": "PlateT9_G1", - "sample_id": null, - "children": [], - "parent": "PlateT9", - "type": "well", - "class": "", - "position": { - "x": 11.9545, - "y": 17.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT9_H1", - "name": "PlateT9_H1", - "sample_id": null, - "children": [], - "parent": "PlateT9", - "type": "well", - "class": "", - "position": { - "x": 11.9545, - "y": 8.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT9_A2", - "name": "PlateT9_A2", - "sample_id": null, - "children": [], - "parent": "PlateT9", - "type": "well", - "class": "", - "position": { - "x": 20.9545, - "y": 71.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT9_B2", - "name": "PlateT9_B2", - "sample_id": null, - "children": [], - "parent": "PlateT9", - "type": "well", - "class": "", - "position": { - "x": 20.9545, - "y": 62.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT9_C2", - "name": "PlateT9_C2", - "sample_id": null, - "children": [], - "parent": "PlateT9", - "type": "well", - "class": "", - "position": { - "x": 20.9545, - "y": 53.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT9_D2", - "name": "PlateT9_D2", - "sample_id": null, - "children": [], - "parent": "PlateT9", - "type": "well", - "class": "", - "position": { - "x": 20.9545, - "y": 44.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT9_E2", - "name": "PlateT9_E2", - "sample_id": null, - "children": [], - "parent": "PlateT9", - "type": "well", - "class": "", - "position": { - "x": 20.9545, - "y": 35.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT9_F2", - "name": "PlateT9_F2", - "sample_id": null, - "children": [], - "parent": "PlateT9", - "type": "well", - "class": "", - "position": { - "x": 20.9545, - "y": 26.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT9_G2", - "name": "PlateT9_G2", - "sample_id": null, - "children": [], - "parent": "PlateT9", - "type": "well", - "class": "", - "position": { - "x": 20.9545, - "y": 17.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT9_H2", - "name": "PlateT9_H2", - "sample_id": null, - "children": [], - "parent": "PlateT9", - "type": "well", - "class": "", - "position": { - "x": 20.9545, - "y": 8.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT9_A3", - "name": "PlateT9_A3", - "sample_id": null, - "children": [], - "parent": "PlateT9", - "type": "well", - "class": "", - "position": { - "x": 29.9545, - "y": 71.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT9_B3", - "name": "PlateT9_B3", - "sample_id": null, - "children": [], - "parent": "PlateT9", - "type": "well", - "class": "", - "position": { - "x": 29.9545, - "y": 62.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT9_C3", - "name": "PlateT9_C3", - "sample_id": null, - "children": [], - "parent": "PlateT9", - "type": "well", - "class": "", - "position": { - "x": 29.9545, - "y": 53.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT9_D3", - "name": "PlateT9_D3", - "sample_id": null, - "children": [], - "parent": "PlateT9", - "type": "well", - "class": "", - "position": { - "x": 29.9545, - "y": 44.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT9_E3", - "name": "PlateT9_E3", - "sample_id": null, - "children": [], - "parent": "PlateT9", - "type": "well", - "class": "", - "position": { - "x": 29.9545, - "y": 35.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT9_F3", - "name": "PlateT9_F3", - "sample_id": null, - "children": [], - "parent": "PlateT9", - "type": "well", - "class": "", - "position": { - "x": 29.9545, - "y": 26.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT9_G3", - "name": "PlateT9_G3", - "sample_id": null, - "children": [], - "parent": "PlateT9", - "type": "well", - "class": "", - "position": { - "x": 29.9545, - "y": 17.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT9_H3", - "name": "PlateT9_H3", - "sample_id": null, - "children": [], - "parent": "PlateT9", - "type": "well", - "class": "", - "position": { - "x": 29.9545, - "y": 8.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT9_A4", - "name": "PlateT9_A4", - "sample_id": null, - "children": [], - "parent": "PlateT9", - "type": "well", - "class": "", - "position": { - "x": 38.9545, - "y": 71.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT9_B4", - "name": "PlateT9_B4", - "sample_id": null, - "children": [], - "parent": "PlateT9", - "type": "well", - "class": "", - "position": { - "x": 38.9545, - "y": 62.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT9_C4", - "name": "PlateT9_C4", - "sample_id": null, - "children": [], - "parent": "PlateT9", - "type": "well", - "class": "", - "position": { - "x": 38.9545, - "y": 53.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT9_D4", - "name": "PlateT9_D4", - "sample_id": null, - "children": [], - "parent": "PlateT9", - "type": "well", - "class": "", - "position": { - "x": 38.9545, - "y": 44.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT9_E4", - "name": "PlateT9_E4", - "sample_id": null, - "children": [], - "parent": "PlateT9", - "type": "well", - "class": "", - "position": { - "x": 38.9545, - "y": 35.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT9_F4", - "name": "PlateT9_F4", - "sample_id": null, - "children": [], - "parent": "PlateT9", - "type": "well", - "class": "", - "position": { - "x": 38.9545, - "y": 26.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT9_G4", - "name": "PlateT9_G4", - "sample_id": null, - "children": [], - "parent": "PlateT9", - "type": "well", - "class": "", - "position": { - "x": 38.9545, - "y": 17.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT9_H4", - "name": "PlateT9_H4", - "sample_id": null, - "children": [], - "parent": "PlateT9", - "type": "well", - "class": "", - "position": { - "x": 38.9545, - "y": 8.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT9_A5", - "name": "PlateT9_A5", - "sample_id": null, - "children": [], - "parent": "PlateT9", - "type": "well", - "class": "", - "position": { - "x": 47.9545, - "y": 71.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT9_B5", - "name": "PlateT9_B5", - "sample_id": null, - "children": [], - "parent": "PlateT9", - "type": "well", - "class": "", - "position": { - "x": 47.9545, - "y": 62.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT9_C5", - "name": "PlateT9_C5", - "sample_id": null, - "children": [], - "parent": "PlateT9", - "type": "well", - "class": "", - "position": { - "x": 47.9545, - "y": 53.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT9_D5", - "name": "PlateT9_D5", - "sample_id": null, - "children": [], - "parent": "PlateT9", - "type": "well", - "class": "", - "position": { - "x": 47.9545, - "y": 44.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT9_E5", - "name": "PlateT9_E5", - "sample_id": null, - "children": [], - "parent": "PlateT9", - "type": "well", - "class": "", - "position": { - "x": 47.9545, - "y": 35.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT9_F5", - "name": "PlateT9_F5", - "sample_id": null, - "children": [], - "parent": "PlateT9", - "type": "well", - "class": "", - "position": { - "x": 47.9545, - "y": 26.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT9_G5", - "name": "PlateT9_G5", - "sample_id": null, - "children": [], - "parent": "PlateT9", - "type": "well", - "class": "", - "position": { - "x": 47.9545, - "y": 17.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT9_H5", - "name": "PlateT9_H5", - "sample_id": null, - "children": [], - "parent": "PlateT9", - "type": "well", - "class": "", - "position": { - "x": 47.9545, - "y": 8.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT9_A6", - "name": "PlateT9_A6", - "sample_id": null, - "children": [], - "parent": "PlateT9", - "type": "well", - "class": "", - "position": { - "x": 56.9545, - "y": 71.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT9_B6", - "name": "PlateT9_B6", - "sample_id": null, - "children": [], - "parent": "PlateT9", - "type": "well", - "class": "", - "position": { - "x": 56.9545, - "y": 62.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT9_C6", - "name": "PlateT9_C6", - "sample_id": null, - "children": [], - "parent": "PlateT9", - "type": "well", - "class": "", - "position": { - "x": 56.9545, - "y": 53.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT9_D6", - "name": "PlateT9_D6", - "sample_id": null, - "children": [], - "parent": "PlateT9", - "type": "well", - "class": "", - "position": { - "x": 56.9545, - "y": 44.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT9_E6", - "name": "PlateT9_E6", - "sample_id": null, - "children": [], - "parent": "PlateT9", - "type": "well", - "class": "", - "position": { - "x": 56.9545, - "y": 35.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT9_F6", - "name": "PlateT9_F6", - "sample_id": null, - "children": [], - "parent": "PlateT9", - "type": "well", - "class": "", - "position": { - "x": 56.9545, - "y": 26.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT9_G6", - "name": "PlateT9_G6", - "sample_id": null, - "children": [], - "parent": "PlateT9", - "type": "well", - "class": "", - "position": { - "x": 56.9545, - "y": 17.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT9_H6", - "name": "PlateT9_H6", - "sample_id": null, - "children": [], - "parent": "PlateT9", - "type": "well", - "class": "", - "position": { - "x": 56.9545, - "y": 8.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT9_A7", - "name": "PlateT9_A7", - "sample_id": null, - "children": [], - "parent": "PlateT9", - "type": "well", - "class": "", - "position": { - "x": 65.9545, - "y": 71.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT9_B7", - "name": "PlateT9_B7", - "sample_id": null, - "children": [], - "parent": "PlateT9", - "type": "well", - "class": "", - "position": { - "x": 65.9545, - "y": 62.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT9_C7", - "name": "PlateT9_C7", - "sample_id": null, - "children": [], - "parent": "PlateT9", - "type": "well", - "class": "", - "position": { - "x": 65.9545, - "y": 53.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT9_D7", - "name": "PlateT9_D7", - "sample_id": null, - "children": [], - "parent": "PlateT9", - "type": "well", - "class": "", - "position": { - "x": 65.9545, - "y": 44.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT9_E7", - "name": "PlateT9_E7", - "sample_id": null, - "children": [], - "parent": "PlateT9", - "type": "well", - "class": "", - "position": { - "x": 65.9545, - "y": 35.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT9_F7", - "name": "PlateT9_F7", - "sample_id": null, - "children": [], - "parent": "PlateT9", - "type": "well", - "class": "", - "position": { - "x": 65.9545, - "y": 26.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT9_G7", - "name": "PlateT9_G7", - "sample_id": null, - "children": [], - "parent": "PlateT9", - "type": "well", - "class": "", - "position": { - "x": 65.9545, - "y": 17.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT9_H7", - "name": "PlateT9_H7", - "sample_id": null, - "children": [], - "parent": "PlateT9", - "type": "well", - "class": "", - "position": { - "x": 65.9545, - "y": 8.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT9_A8", - "name": "PlateT9_A8", - "sample_id": null, - "children": [], - "parent": "PlateT9", - "type": "well", - "class": "", - "position": { - "x": 74.9545, - "y": 71.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT9_B8", - "name": "PlateT9_B8", - "sample_id": null, - "children": [], - "parent": "PlateT9", - "type": "well", - "class": "", - "position": { - "x": 74.9545, - "y": 62.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT9_C8", - "name": "PlateT9_C8", - "sample_id": null, - "children": [], - "parent": "PlateT9", - "type": "well", - "class": "", - "position": { - "x": 74.9545, - "y": 53.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT9_D8", - "name": "PlateT9_D8", - "sample_id": null, - "children": [], - "parent": "PlateT9", - "type": "well", - "class": "", - "position": { - "x": 74.9545, - "y": 44.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT9_E8", - "name": "PlateT9_E8", - "sample_id": null, - "children": [], - "parent": "PlateT9", - "type": "well", - "class": "", - "position": { - "x": 74.9545, - "y": 35.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT9_F8", - "name": "PlateT9_F8", - "sample_id": null, - "children": [], - "parent": "PlateT9", - "type": "well", - "class": "", - "position": { - "x": 74.9545, - "y": 26.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT9_G8", - "name": "PlateT9_G8", - "sample_id": null, - "children": [], - "parent": "PlateT9", - "type": "well", - "class": "", - "position": { - "x": 74.9545, - "y": 17.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT9_H8", - "name": "PlateT9_H8", - "sample_id": null, - "children": [], - "parent": "PlateT9", - "type": "well", - "class": "", - "position": { - "x": 74.9545, - "y": 8.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT9_A9", - "name": "PlateT9_A9", - "sample_id": null, - "children": [], - "parent": "PlateT9", - "type": "well", - "class": "", - "position": { - "x": 83.9545, - "y": 71.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT9_B9", - "name": "PlateT9_B9", - "sample_id": null, - "children": [], - "parent": "PlateT9", - "type": "well", - "class": "", - "position": { - "x": 83.9545, - "y": 62.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT9_C9", - "name": "PlateT9_C9", - "sample_id": null, - "children": [], - "parent": "PlateT9", - "type": "well", - "class": "", - "position": { - "x": 83.9545, - "y": 53.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT9_D9", - "name": "PlateT9_D9", - "sample_id": null, - "children": [], - "parent": "PlateT9", - "type": "well", - "class": "", - "position": { - "x": 83.9545, - "y": 44.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT9_E9", - "name": "PlateT9_E9", - "sample_id": null, - "children": [], - "parent": "PlateT9", - "type": "well", - "class": "", - "position": { - "x": 83.9545, - "y": 35.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT9_F9", - "name": "PlateT9_F9", - "sample_id": null, - "children": [], - "parent": "PlateT9", - "type": "well", - "class": "", - "position": { - "x": 83.9545, - "y": 26.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT9_G9", - "name": "PlateT9_G9", - "sample_id": null, - "children": [], - "parent": "PlateT9", - "type": "well", - "class": "", - "position": { - "x": 83.9545, - "y": 17.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT9_H9", - "name": "PlateT9_H9", - "sample_id": null, - "children": [], - "parent": "PlateT9", - "type": "well", - "class": "", - "position": { - "x": 83.9545, - "y": 8.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT9_A10", - "name": "PlateT9_A10", - "sample_id": null, - "children": [], - "parent": "PlateT9", - "type": "well", - "class": "", - "position": { - "x": 92.9545, - "y": 71.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT9_B10", - "name": "PlateT9_B10", - "sample_id": null, - "children": [], - "parent": "PlateT9", - "type": "well", - "class": "", - "position": { - "x": 92.9545, - "y": 62.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT9_C10", - "name": "PlateT9_C10", - "sample_id": null, - "children": [], - "parent": "PlateT9", - "type": "well", - "class": "", - "position": { - "x": 92.9545, - "y": 53.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT9_D10", - "name": "PlateT9_D10", - "sample_id": null, - "children": [], - "parent": "PlateT9", - "type": "well", - "class": "", - "position": { - "x": 92.9545, - "y": 44.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT9_E10", - "name": "PlateT9_E10", - "sample_id": null, - "children": [], - "parent": "PlateT9", - "type": "well", - "class": "", - "position": { - "x": 92.9545, - "y": 35.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT9_F10", - "name": "PlateT9_F10", - "sample_id": null, - "children": [], - "parent": "PlateT9", - "type": "well", - "class": "", - "position": { - "x": 92.9545, - "y": 26.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT9_G10", - "name": "PlateT9_G10", - "sample_id": null, - "children": [], - "parent": "PlateT9", - "type": "well", - "class": "", - "position": { - "x": 92.9545, - "y": 17.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT9_H10", - "name": "PlateT9_H10", - "sample_id": null, - "children": [], - "parent": "PlateT9", - "type": "well", - "class": "", - "position": { - "x": 92.9545, - "y": 8.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT9_A11", - "name": "PlateT9_A11", - "sample_id": null, - "children": [], - "parent": "PlateT9", - "type": "well", - "class": "", - "position": { - "x": 101.9545, - "y": 71.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT9_B11", - "name": "PlateT9_B11", - "sample_id": null, - "children": [], - "parent": "PlateT9", - "type": "well", - "class": "", - "position": { - "x": 101.9545, - "y": 62.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT9_C11", - "name": "PlateT9_C11", - "sample_id": null, - "children": [], - "parent": "PlateT9", - "type": "well", - "class": "", - "position": { - "x": 101.9545, - "y": 53.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT9_D11", - "name": "PlateT9_D11", - "sample_id": null, - "children": [], - "parent": "PlateT9", - "type": "well", - "class": "", - "position": { - "x": 101.9545, - "y": 44.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT9_E11", - "name": "PlateT9_E11", - "sample_id": null, - "children": [], - "parent": "PlateT9", - "type": "well", - "class": "", - "position": { - "x": 101.9545, - "y": 35.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT9_F11", - "name": "PlateT9_F11", - "sample_id": null, - "children": [], - "parent": "PlateT9", - "type": "well", - "class": "", - "position": { - "x": 101.9545, - "y": 26.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT9_G11", - "name": "PlateT9_G11", - "sample_id": null, - "children": [], - "parent": "PlateT9", - "type": "well", - "class": "", - "position": { - "x": 101.9545, - "y": 17.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT9_H11", - "name": "PlateT9_H11", - "sample_id": null, - "children": [], - "parent": "PlateT9", - "type": "well", - "class": "", - "position": { - "x": 101.9545, - "y": 8.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT9_A12", - "name": "PlateT9_A12", - "sample_id": null, - "children": [], - "parent": "PlateT9", - "type": "well", - "class": "", - "position": { - "x": 110.9545, - "y": 71.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT9_B12", - "name": "PlateT9_B12", - "sample_id": null, - "children": [], - "parent": "PlateT9", - "type": "well", - "class": "", - "position": { - "x": 110.9545, - "y": 62.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT9_C12", - "name": "PlateT9_C12", - "sample_id": null, - "children": [], - "parent": "PlateT9", - "type": "well", - "class": "", - "position": { - "x": 110.9545, - "y": 53.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT9_D12", - "name": "PlateT9_D12", - "sample_id": null, - "children": [], - "parent": "PlateT9", - "type": "well", - "class": "", - "position": { - "x": 110.9545, - "y": 44.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT9_E12", - "name": "PlateT9_E12", - "sample_id": null, - "children": [], - "parent": "PlateT9", - "type": "well", - "class": "", - "position": { - "x": 110.9545, - "y": 35.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT9_F12", - "name": "PlateT9_F12", - "sample_id": null, - "children": [], - "parent": "PlateT9", - "type": "well", - "class": "", - "position": { - "x": 110.9545, - "y": 26.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT9_G12", - "name": "PlateT9_G12", - "sample_id": null, - "children": [], - "parent": "PlateT9", - "type": "well", - "class": "", - "position": { - "x": 110.9545, - "y": 17.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT9_H12", - "name": "PlateT9_H12", - "sample_id": null, - "children": [], - "parent": "PlateT9", - "type": "well", - "class": "", - "position": { - "x": 110.9545, - "y": 8.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT10", - "name": "PlateT10", - "sample_id": null, - "children": [ - "PlateT10_A1", - "PlateT10_B1", - "PlateT10_C1", - "PlateT10_D1", - "PlateT10_E1", - "PlateT10_F1", - "PlateT10_G1", - "PlateT10_H1", - "PlateT10_A2", - "PlateT10_B2", - "PlateT10_C2", - "PlateT10_D2", - "PlateT10_E2", - "PlateT10_F2", - "PlateT10_G2", - "PlateT10_H2", - "PlateT10_A3", - "PlateT10_B3", - "PlateT10_C3", - "PlateT10_D3", - "PlateT10_E3", - "PlateT10_F3", - "PlateT10_G3", - "PlateT10_H3", - "PlateT10_A4", - "PlateT10_B4", - "PlateT10_C4", - "PlateT10_D4", - "PlateT10_E4", - "PlateT10_F4", - "PlateT10_G4", - "PlateT10_H4", - "PlateT10_A5", - "PlateT10_B5", - "PlateT10_C5", - "PlateT10_D5", - "PlateT10_E5", - "PlateT10_F5", - "PlateT10_G5", - "PlateT10_H5", - "PlateT10_A6", - "PlateT10_B6", - "PlateT10_C6", - "PlateT10_D6", - "PlateT10_E6", - "PlateT10_F6", - "PlateT10_G6", - "PlateT10_H6", - "PlateT10_A7", - "PlateT10_B7", - "PlateT10_C7", - "PlateT10_D7", - "PlateT10_E7", - "PlateT10_F7", - "PlateT10_G7", - "PlateT10_H7", - "PlateT10_A8", - "PlateT10_B8", - "PlateT10_C8", - "PlateT10_D8", - "PlateT10_E8", - "PlateT10_F8", - "PlateT10_G8", - "PlateT10_H8", - "PlateT10_A9", - "PlateT10_B9", - "PlateT10_C9", - "PlateT10_D9", - "PlateT10_E9", - "PlateT10_F9", - "PlateT10_G9", - "PlateT10_H9", - "PlateT10_A10", - "PlateT10_B10", - "PlateT10_C10", - "PlateT10_D10", - "PlateT10_E10", - "PlateT10_F10", - "PlateT10_G10", - "PlateT10_H10", - "PlateT10_A11", - "PlateT10_B11", - "PlateT10_C11", - "PlateT10_D11", - "PlateT10_E11", - "PlateT10_F11", - "PlateT10_G11", - "PlateT10_H11", - "PlateT10_A12", - "PlateT10_B12", - "PlateT10_C12", - "PlateT10_D12", - "PlateT10_E12", - "PlateT10_F12", - "PlateT10_G12", - "PlateT10_H12" - ], - "parent": "PRCXI_Deck", - "type": "plate", - "class": "", - "position": { - "x": 0, - "y": 0, - "z": 0 - }, - "config": { - "type": "PRCXI9300Plate", - "size_x": 50, - "size_y": 50, - "size_z": 10, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "plate", - "model": null, - "barcode": null, - "ordering": { - "A1": "PlateT10_A1", - "B1": "PlateT10_B1", - "C1": "PlateT10_C1", - "D1": "PlateT10_D1", - "E1": "PlateT10_E1", - "F1": "PlateT10_F1", - "G1": "PlateT10_G1", - "H1": "PlateT10_H1", - "A2": "PlateT10_A2", - "B2": "PlateT10_B2", - "C2": "PlateT10_C2", - "D2": "PlateT10_D2", - "E2": "PlateT10_E2", - "F2": "PlateT10_F2", - "G2": "PlateT10_G2", - "H2": "PlateT10_H2", - "A3": "PlateT10_A3", - "B3": "PlateT10_B3", - "C3": "PlateT10_C3", - "D3": "PlateT10_D3", - "E3": "PlateT10_E3", - "F3": "PlateT10_F3", - "G3": "PlateT10_G3", - "H3": "PlateT10_H3", - "A4": "PlateT10_A4", - "B4": "PlateT10_B4", - "C4": "PlateT10_C4", - "D4": "PlateT10_D4", - "E4": "PlateT10_E4", - "F4": "PlateT10_F4", - "G4": "PlateT10_G4", - "H4": "PlateT10_H4", - "A5": "PlateT10_A5", - "B5": "PlateT10_B5", - "C5": "PlateT10_C5", - "D5": "PlateT10_D5", - "E5": "PlateT10_E5", - "F5": "PlateT10_F5", - "G5": "PlateT10_G5", - "H5": "PlateT10_H5", - "A6": "PlateT10_A6", - "B6": "PlateT10_B6", - "C6": "PlateT10_C6", - "D6": "PlateT10_D6", - "E6": "PlateT10_E6", - "F6": "PlateT10_F6", - "G6": "PlateT10_G6", - "H6": "PlateT10_H6", - "A7": "PlateT10_A7", - "B7": "PlateT10_B7", - "C7": "PlateT10_C7", - "D7": "PlateT10_D7", - "E7": "PlateT10_E7", - "F7": "PlateT10_F7", - "G7": "PlateT10_G7", - "H7": "PlateT10_H7", - "A8": "PlateT10_A8", - "B8": "PlateT10_B8", - "C8": "PlateT10_C8", - "D8": "PlateT10_D8", - "E8": "PlateT10_E8", - "F8": "PlateT10_F8", - "G8": "PlateT10_G8", - "H8": "PlateT10_H8", - "A9": "PlateT10_A9", - "B9": "PlateT10_B9", - "C9": "PlateT10_C9", - "D9": "PlateT10_D9", - "E9": "PlateT10_E9", - "F9": "PlateT10_F9", - "G9": "PlateT10_G9", - "H9": "PlateT10_H9", - "A10": "PlateT10_A10", - "B10": "PlateT10_B10", - "C10": "PlateT10_C10", - "D10": "PlateT10_D10", - "E10": "PlateT10_E10", - "F10": "PlateT10_F10", - "G10": "PlateT10_G10", - "H10": "PlateT10_H10", - "A11": "PlateT10_A11", - "B11": "PlateT10_B11", - "C11": "PlateT10_C11", - "D11": "PlateT10_D11", - "E11": "PlateT10_E11", - "F11": "PlateT10_F11", - "G11": "PlateT10_G11", - "H11": "PlateT10_H11", - "A12": "PlateT10_A12", - "B12": "PlateT10_B12", - "C12": "PlateT10_C12", - "D12": "PlateT10_D12", - "E12": "PlateT10_E12", - "F12": "PlateT10_F12", - "G12": "PlateT10_G12", - "H12": "PlateT10_H12" - } - }, - "data": { - "Material": { - "uuid": "4a043a07c65a4f9bb97745e1f129b165", - "Code": "ZX-58-0001", - "SupplyType": 2, - "Name": "全裙边 PCR适配器", - "SummaryName": "全裙边 PCR适配器" - } - } - }, - { - "id": "PlateT10_A1", - "name": "PlateT10_A1", - "sample_id": null, - "children": [], - "parent": "PlateT10", - "type": "well", - "class": "", - "position": { - "x": 11.9545, - "y": 71.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT10_B1", - "name": "PlateT10_B1", - "sample_id": null, - "children": [], - "parent": "PlateT10", - "type": "well", - "class": "", - "position": { - "x": 11.9545, - "y": 62.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT10_C1", - "name": "PlateT10_C1", - "sample_id": null, - "children": [], - "parent": "PlateT10", - "type": "well", - "class": "", - "position": { - "x": 11.9545, - "y": 53.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT10_D1", - "name": "PlateT10_D1", - "sample_id": null, - "children": [], - "parent": "PlateT10", - "type": "well", - "class": "", - "position": { - "x": 11.9545, - "y": 44.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT10_E1", - "name": "PlateT10_E1", - "sample_id": null, - "children": [], - "parent": "PlateT10", - "type": "well", - "class": "", - "position": { - "x": 11.9545, - "y": 35.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT10_F1", - "name": "PlateT10_F1", - "sample_id": null, - "children": [], - "parent": "PlateT10", - "type": "well", - "class": "", - "position": { - "x": 11.9545, - "y": 26.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT10_G1", - "name": "PlateT10_G1", - "sample_id": null, - "children": [], - "parent": "PlateT10", - "type": "well", - "class": "", - "position": { - "x": 11.9545, - "y": 17.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT10_H1", - "name": "PlateT10_H1", - "sample_id": null, - "children": [], - "parent": "PlateT10", - "type": "well", - "class": "", - "position": { - "x": 11.9545, - "y": 8.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT10_A2", - "name": "PlateT10_A2", - "sample_id": null, - "children": [], - "parent": "PlateT10", - "type": "well", - "class": "", - "position": { - "x": 20.9545, - "y": 71.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT10_B2", - "name": "PlateT10_B2", - "sample_id": null, - "children": [], - "parent": "PlateT10", - "type": "well", - "class": "", - "position": { - "x": 20.9545, - "y": 62.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT10_C2", - "name": "PlateT10_C2", - "sample_id": null, - "children": [], - "parent": "PlateT10", - "type": "well", - "class": "", - "position": { - "x": 20.9545, - "y": 53.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT10_D2", - "name": "PlateT10_D2", - "sample_id": null, - "children": [], - "parent": "PlateT10", - "type": "well", - "class": "", - "position": { - "x": 20.9545, - "y": 44.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT10_E2", - "name": "PlateT10_E2", - "sample_id": null, - "children": [], - "parent": "PlateT10", - "type": "well", - "class": "", - "position": { - "x": 20.9545, - "y": 35.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT10_F2", - "name": "PlateT10_F2", - "sample_id": null, - "children": [], - "parent": "PlateT10", - "type": "well", - "class": "", - "position": { - "x": 20.9545, - "y": 26.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT10_G2", - "name": "PlateT10_G2", - "sample_id": null, - "children": [], - "parent": "PlateT10", - "type": "well", - "class": "", - "position": { - "x": 20.9545, - "y": 17.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT10_H2", - "name": "PlateT10_H2", - "sample_id": null, - "children": [], - "parent": "PlateT10", - "type": "well", - "class": "", - "position": { - "x": 20.9545, - "y": 8.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT10_A3", - "name": "PlateT10_A3", - "sample_id": null, - "children": [], - "parent": "PlateT10", - "type": "well", - "class": "", - "position": { - "x": 29.9545, - "y": 71.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT10_B3", - "name": "PlateT10_B3", - "sample_id": null, - "children": [], - "parent": "PlateT10", - "type": "well", - "class": "", - "position": { - "x": 29.9545, - "y": 62.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT10_C3", - "name": "PlateT10_C3", - "sample_id": null, - "children": [], - "parent": "PlateT10", - "type": "well", - "class": "", - "position": { - "x": 29.9545, - "y": 53.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT10_D3", - "name": "PlateT10_D3", - "sample_id": null, - "children": [], - "parent": "PlateT10", - "type": "well", - "class": "", - "position": { - "x": 29.9545, - "y": 44.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT10_E3", - "name": "PlateT10_E3", - "sample_id": null, - "children": [], - "parent": "PlateT10", - "type": "well", - "class": "", - "position": { - "x": 29.9545, - "y": 35.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT10_F3", - "name": "PlateT10_F3", - "sample_id": null, - "children": [], - "parent": "PlateT10", - "type": "well", - "class": "", - "position": { - "x": 29.9545, - "y": 26.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT10_G3", - "name": "PlateT10_G3", - "sample_id": null, - "children": [], - "parent": "PlateT10", - "type": "well", - "class": "", - "position": { - "x": 29.9545, - "y": 17.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT10_H3", - "name": "PlateT10_H3", - "sample_id": null, - "children": [], - "parent": "PlateT10", - "type": "well", - "class": "", - "position": { - "x": 29.9545, - "y": 8.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT10_A4", - "name": "PlateT10_A4", - "sample_id": null, - "children": [], - "parent": "PlateT10", - "type": "well", - "class": "", - "position": { - "x": 38.9545, - "y": 71.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT10_B4", - "name": "PlateT10_B4", - "sample_id": null, - "children": [], - "parent": "PlateT10", - "type": "well", - "class": "", - "position": { - "x": 38.9545, - "y": 62.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT10_C4", - "name": "PlateT10_C4", - "sample_id": null, - "children": [], - "parent": "PlateT10", - "type": "well", - "class": "", - "position": { - "x": 38.9545, - "y": 53.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT10_D4", - "name": "PlateT10_D4", - "sample_id": null, - "children": [], - "parent": "PlateT10", - "type": "well", - "class": "", - "position": { - "x": 38.9545, - "y": 44.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT10_E4", - "name": "PlateT10_E4", - "sample_id": null, - "children": [], - "parent": "PlateT10", - "type": "well", - "class": "", - "position": { - "x": 38.9545, - "y": 35.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT10_F4", - "name": "PlateT10_F4", - "sample_id": null, - "children": [], - "parent": "PlateT10", - "type": "well", - "class": "", - "position": { - "x": 38.9545, - "y": 26.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT10_G4", - "name": "PlateT10_G4", - "sample_id": null, - "children": [], - "parent": "PlateT10", - "type": "well", - "class": "", - "position": { - "x": 38.9545, - "y": 17.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT10_H4", - "name": "PlateT10_H4", - "sample_id": null, - "children": [], - "parent": "PlateT10", - "type": "well", - "class": "", - "position": { - "x": 38.9545, - "y": 8.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT10_A5", - "name": "PlateT10_A5", - "sample_id": null, - "children": [], - "parent": "PlateT10", - "type": "well", - "class": "", - "position": { - "x": 47.9545, - "y": 71.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT10_B5", - "name": "PlateT10_B5", - "sample_id": null, - "children": [], - "parent": "PlateT10", - "type": "well", - "class": "", - "position": { - "x": 47.9545, - "y": 62.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT10_C5", - "name": "PlateT10_C5", - "sample_id": null, - "children": [], - "parent": "PlateT10", - "type": "well", - "class": "", - "position": { - "x": 47.9545, - "y": 53.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT10_D5", - "name": "PlateT10_D5", - "sample_id": null, - "children": [], - "parent": "PlateT10", - "type": "well", - "class": "", - "position": { - "x": 47.9545, - "y": 44.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT10_E5", - "name": "PlateT10_E5", - "sample_id": null, - "children": [], - "parent": "PlateT10", - "type": "well", - "class": "", - "position": { - "x": 47.9545, - "y": 35.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT10_F5", - "name": "PlateT10_F5", - "sample_id": null, - "children": [], - "parent": "PlateT10", - "type": "well", - "class": "", - "position": { - "x": 47.9545, - "y": 26.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT10_G5", - "name": "PlateT10_G5", - "sample_id": null, - "children": [], - "parent": "PlateT10", - "type": "well", - "class": "", - "position": { - "x": 47.9545, - "y": 17.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT10_H5", - "name": "PlateT10_H5", - "sample_id": null, - "children": [], - "parent": "PlateT10", - "type": "well", - "class": "", - "position": { - "x": 47.9545, - "y": 8.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT10_A6", - "name": "PlateT10_A6", - "sample_id": null, - "children": [], - "parent": "PlateT10", - "type": "well", - "class": "", - "position": { - "x": 56.9545, - "y": 71.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT10_B6", - "name": "PlateT10_B6", - "sample_id": null, - "children": [], - "parent": "PlateT10", - "type": "well", - "class": "", - "position": { - "x": 56.9545, - "y": 62.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT10_C6", - "name": "PlateT10_C6", - "sample_id": null, - "children": [], - "parent": "PlateT10", - "type": "well", - "class": "", - "position": { - "x": 56.9545, - "y": 53.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT10_D6", - "name": "PlateT10_D6", - "sample_id": null, - "children": [], - "parent": "PlateT10", - "type": "well", - "class": "", - "position": { - "x": 56.9545, - "y": 44.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT10_E6", - "name": "PlateT10_E6", - "sample_id": null, - "children": [], - "parent": "PlateT10", - "type": "well", - "class": "", - "position": { - "x": 56.9545, - "y": 35.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT10_F6", - "name": "PlateT10_F6", - "sample_id": null, - "children": [], - "parent": "PlateT10", - "type": "well", - "class": "", - "position": { - "x": 56.9545, - "y": 26.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT10_G6", - "name": "PlateT10_G6", - "sample_id": null, - "children": [], - "parent": "PlateT10", - "type": "well", - "class": "", - "position": { - "x": 56.9545, - "y": 17.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT10_H6", - "name": "PlateT10_H6", - "sample_id": null, - "children": [], - "parent": "PlateT10", - "type": "well", - "class": "", - "position": { - "x": 56.9545, - "y": 8.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT10_A7", - "name": "PlateT10_A7", - "sample_id": null, - "children": [], - "parent": "PlateT10", - "type": "well", - "class": "", - "position": { - "x": 65.9545, - "y": 71.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT10_B7", - "name": "PlateT10_B7", - "sample_id": null, - "children": [], - "parent": "PlateT10", - "type": "well", - "class": "", - "position": { - "x": 65.9545, - "y": 62.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT10_C7", - "name": "PlateT10_C7", - "sample_id": null, - "children": [], - "parent": "PlateT10", - "type": "well", - "class": "", - "position": { - "x": 65.9545, - "y": 53.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT10_D7", - "name": "PlateT10_D7", - "sample_id": null, - "children": [], - "parent": "PlateT10", - "type": "well", - "class": "", - "position": { - "x": 65.9545, - "y": 44.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT10_E7", - "name": "PlateT10_E7", - "sample_id": null, - "children": [], - "parent": "PlateT10", - "type": "well", - "class": "", - "position": { - "x": 65.9545, - "y": 35.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT10_F7", - "name": "PlateT10_F7", - "sample_id": null, - "children": [], - "parent": "PlateT10", - "type": "well", - "class": "", - "position": { - "x": 65.9545, - "y": 26.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT10_G7", - "name": "PlateT10_G7", - "sample_id": null, - "children": [], - "parent": "PlateT10", - "type": "well", - "class": "", - "position": { - "x": 65.9545, - "y": 17.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT10_H7", - "name": "PlateT10_H7", - "sample_id": null, - "children": [], - "parent": "PlateT10", - "type": "well", - "class": "", - "position": { - "x": 65.9545, - "y": 8.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT10_A8", - "name": "PlateT10_A8", - "sample_id": null, - "children": [], - "parent": "PlateT10", - "type": "well", - "class": "", - "position": { - "x": 74.9545, - "y": 71.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT10_B8", - "name": "PlateT10_B8", - "sample_id": null, - "children": [], - "parent": "PlateT10", - "type": "well", - "class": "", - "position": { - "x": 74.9545, - "y": 62.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT10_C8", - "name": "PlateT10_C8", - "sample_id": null, - "children": [], - "parent": "PlateT10", - "type": "well", - "class": "", - "position": { - "x": 74.9545, - "y": 53.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT10_D8", - "name": "PlateT10_D8", - "sample_id": null, - "children": [], - "parent": "PlateT10", - "type": "well", - "class": "", - "position": { - "x": 74.9545, - "y": 44.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT10_E8", - "name": "PlateT10_E8", - "sample_id": null, - "children": [], - "parent": "PlateT10", - "type": "well", - "class": "", - "position": { - "x": 74.9545, - "y": 35.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT10_F8", - "name": "PlateT10_F8", - "sample_id": null, - "children": [], - "parent": "PlateT10", - "type": "well", - "class": "", - "position": { - "x": 74.9545, - "y": 26.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT10_G8", - "name": "PlateT10_G8", - "sample_id": null, - "children": [], - "parent": "PlateT10", - "type": "well", - "class": "", - "position": { - "x": 74.9545, - "y": 17.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT10_H8", - "name": "PlateT10_H8", - "sample_id": null, - "children": [], - "parent": "PlateT10", - "type": "well", - "class": "", - "position": { - "x": 74.9545, - "y": 8.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT10_A9", - "name": "PlateT10_A9", - "sample_id": null, - "children": [], - "parent": "PlateT10", - "type": "well", - "class": "", - "position": { - "x": 83.9545, - "y": 71.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT10_B9", - "name": "PlateT10_B9", - "sample_id": null, - "children": [], - "parent": "PlateT10", - "type": "well", - "class": "", - "position": { - "x": 83.9545, - "y": 62.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT10_C9", - "name": "PlateT10_C9", - "sample_id": null, - "children": [], - "parent": "PlateT10", - "type": "well", - "class": "", - "position": { - "x": 83.9545, - "y": 53.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT10_D9", - "name": "PlateT10_D9", - "sample_id": null, - "children": [], - "parent": "PlateT10", - "type": "well", - "class": "", - "position": { - "x": 83.9545, - "y": 44.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT10_E9", - "name": "PlateT10_E9", - "sample_id": null, - "children": [], - "parent": "PlateT10", - "type": "well", - "class": "", - "position": { - "x": 83.9545, - "y": 35.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT10_F9", - "name": "PlateT10_F9", - "sample_id": null, - "children": [], - "parent": "PlateT10", - "type": "well", - "class": "", - "position": { - "x": 83.9545, - "y": 26.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT10_G9", - "name": "PlateT10_G9", - "sample_id": null, - "children": [], - "parent": "PlateT10", - "type": "well", - "class": "", - "position": { - "x": 83.9545, - "y": 17.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT10_H9", - "name": "PlateT10_H9", - "sample_id": null, - "children": [], - "parent": "PlateT10", - "type": "well", - "class": "", - "position": { - "x": 83.9545, - "y": 8.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT10_A10", - "name": "PlateT10_A10", - "sample_id": null, - "children": [], - "parent": "PlateT10", - "type": "well", - "class": "", - "position": { - "x": 92.9545, - "y": 71.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT10_B10", - "name": "PlateT10_B10", - "sample_id": null, - "children": [], - "parent": "PlateT10", - "type": "well", - "class": "", - "position": { - "x": 92.9545, - "y": 62.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT10_C10", - "name": "PlateT10_C10", - "sample_id": null, - "children": [], - "parent": "PlateT10", - "type": "well", - "class": "", - "position": { - "x": 92.9545, - "y": 53.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT10_D10", - "name": "PlateT10_D10", - "sample_id": null, - "children": [], - "parent": "PlateT10", - "type": "well", - "class": "", - "position": { - "x": 92.9545, - "y": 44.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT10_E10", - "name": "PlateT10_E10", - "sample_id": null, - "children": [], - "parent": "PlateT10", - "type": "well", - "class": "", - "position": { - "x": 92.9545, - "y": 35.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT10_F10", - "name": "PlateT10_F10", - "sample_id": null, - "children": [], - "parent": "PlateT10", - "type": "well", - "class": "", - "position": { - "x": 92.9545, - "y": 26.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT10_G10", - "name": "PlateT10_G10", - "sample_id": null, - "children": [], - "parent": "PlateT10", - "type": "well", - "class": "", - "position": { - "x": 92.9545, - "y": 17.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT10_H10", - "name": "PlateT10_H10", - "sample_id": null, - "children": [], - "parent": "PlateT10", - "type": "well", - "class": "", - "position": { - "x": 92.9545, - "y": 8.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT10_A11", - "name": "PlateT10_A11", - "sample_id": null, - "children": [], - "parent": "PlateT10", - "type": "well", - "class": "", - "position": { - "x": 101.9545, - "y": 71.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT10_B11", - "name": "PlateT10_B11", - "sample_id": null, - "children": [], - "parent": "PlateT10", - "type": "well", - "class": "", - "position": { - "x": 101.9545, - "y": 62.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT10_C11", - "name": "PlateT10_C11", - "sample_id": null, - "children": [], - "parent": "PlateT10", - "type": "well", - "class": "", - "position": { - "x": 101.9545, - "y": 53.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT10_D11", - "name": "PlateT10_D11", - "sample_id": null, - "children": [], - "parent": "PlateT10", - "type": "well", - "class": "", - "position": { - "x": 101.9545, - "y": 44.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT10_E11", - "name": "PlateT10_E11", - "sample_id": null, - "children": [], - "parent": "PlateT10", - "type": "well", - "class": "", - "position": { - "x": 101.9545, - "y": 35.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT10_F11", - "name": "PlateT10_F11", - "sample_id": null, - "children": [], - "parent": "PlateT10", - "type": "well", - "class": "", - "position": { - "x": 101.9545, - "y": 26.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT10_G11", - "name": "PlateT10_G11", - "sample_id": null, - "children": [], - "parent": "PlateT10", - "type": "well", - "class": "", - "position": { - "x": 101.9545, - "y": 17.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT10_H11", - "name": "PlateT10_H11", - "sample_id": null, - "children": [], - "parent": "PlateT10", - "type": "well", - "class": "", - "position": { - "x": 101.9545, - "y": 8.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT10_A12", - "name": "PlateT10_A12", - "sample_id": null, - "children": [], - "parent": "PlateT10", - "type": "well", - "class": "", - "position": { - "x": 110.9545, - "y": 71.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT10_B12", - "name": "PlateT10_B12", - "sample_id": null, - "children": [], - "parent": "PlateT10", - "type": "well", - "class": "", - "position": { - "x": 110.9545, - "y": 62.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT10_C12", - "name": "PlateT10_C12", - "sample_id": null, - "children": [], - "parent": "PlateT10", - "type": "well", - "class": "", - "position": { - "x": 110.9545, - "y": 53.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT10_D12", - "name": "PlateT10_D12", - "sample_id": null, - "children": [], - "parent": "PlateT10", - "type": "well", - "class": "", - "position": { - "x": 110.9545, - "y": 44.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT10_E12", - "name": "PlateT10_E12", - "sample_id": null, - "children": [], - "parent": "PlateT10", - "type": "well", - "class": "", - "position": { - "x": 110.9545, - "y": 35.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT10_F12", - "name": "PlateT10_F12", - "sample_id": null, - "children": [], - "parent": "PlateT10", - "type": "well", - "class": "", - "position": { - "x": 110.9545, - "y": 26.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT10_G12", - "name": "PlateT10_G12", - "sample_id": null, - "children": [], - "parent": "PlateT10", - "type": "well", - "class": "", - "position": { - "x": 110.9545, - "y": 17.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT10_H12", - "name": "PlateT10_H12", - "sample_id": null, - "children": [], - "parent": "PlateT10", - "type": "well", - "class": "", - "position": { - "x": 110.9545, - "y": 8.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "container_for_nothing11", - "name": "container_for_nothing11", - "sample_id": null, - "children": [], - "parent": "PRCXI_Deck", - "type": "plate", - "class": "", - "position": { - "x": 0, - "y": 0, - "z": 0 - }, - "config": { - "type": "PRCXI9300Plate", - "size_x": 50, - "size_y": 50, - "size_z": 10, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "plate", - "model": null, - "barcode": null, - "ordering": {} - }, - "data": {} - }, - { - "id": "container_for_nothing12", - "name": "container_for_nothing12", - "sample_id": null, - "children": [], - "parent": "PRCXI_Deck", - "type": "plate", - "class": "", - "position": { - "x": 0, - "y": 0, - "z": 0 - }, - "config": { - "type": "PRCXI9300Plate", - "size_x": 50, - "size_y": 50, - "size_z": 10, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "plate", - "model": null, - "barcode": null, - "ordering": {} - }, - "data": {} - }, - { - "id": "PlateT13", - "name": "PlateT13", - "sample_id": null, - "children": [ - "PlateT13_A1", - "PlateT13_B1", - "PlateT13_C1", - "PlateT13_D1", - "PlateT13_E1", - "PlateT13_F1", - "PlateT13_G1", - "PlateT13_H1", - "PlateT13_A2", - "PlateT13_B2", - "PlateT13_C2", - "PlateT13_D2", - "PlateT13_E2", - "PlateT13_F2", - "PlateT13_G2", - "PlateT13_H2", - "PlateT13_A3", - "PlateT13_B3", - "PlateT13_C3", - "PlateT13_D3", - "PlateT13_E3", - "PlateT13_F3", - "PlateT13_G3", - "PlateT13_H3", - "PlateT13_A4", - "PlateT13_B4", - "PlateT13_C4", - "PlateT13_D4", - "PlateT13_E4", - "PlateT13_F4", - "PlateT13_G4", - "PlateT13_H4", - "PlateT13_A5", - "PlateT13_B5", - "PlateT13_C5", - "PlateT13_D5", - "PlateT13_E5", - "PlateT13_F5", - "PlateT13_G5", - "PlateT13_H5", - "PlateT13_A6", - "PlateT13_B6", - "PlateT13_C6", - "PlateT13_D6", - "PlateT13_E6", - "PlateT13_F6", - "PlateT13_G6", - "PlateT13_H6", - "PlateT13_A7", - "PlateT13_B7", - "PlateT13_C7", - "PlateT13_D7", - "PlateT13_E7", - "PlateT13_F7", - "PlateT13_G7", - "PlateT13_H7", - "PlateT13_A8", - "PlateT13_B8", - "PlateT13_C8", - "PlateT13_D8", - "PlateT13_E8", - "PlateT13_F8", - "PlateT13_G8", - "PlateT13_H8", - "PlateT13_A9", - "PlateT13_B9", - "PlateT13_C9", - "PlateT13_D9", - "PlateT13_E9", - "PlateT13_F9", - "PlateT13_G9", - "PlateT13_H9", - "PlateT13_A10", - "PlateT13_B10", - "PlateT13_C10", - "PlateT13_D10", - "PlateT13_E10", - "PlateT13_F10", - "PlateT13_G10", - "PlateT13_H10", - "PlateT13_A11", - "PlateT13_B11", - "PlateT13_C11", - "PlateT13_D11", - "PlateT13_E11", - "PlateT13_F11", - "PlateT13_G11", - "PlateT13_H11", - "PlateT13_A12", - "PlateT13_B12", - "PlateT13_C12", - "PlateT13_D12", - "PlateT13_E12", - "PlateT13_F12", - "PlateT13_G12", - "PlateT13_H12" - ], - "parent": "PRCXI_Deck", - "type": "plate", - "class": "", - "position": { - "x": 0, - "y": 0, - "z": 0 - }, - "config": { - "type": "PRCXI9300Plate", - "size_x": 50, - "size_y": 50, - "size_z": 10, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "plate", - "model": null, - "barcode": null, - "ordering": { - "A1": "PlateT13_A1", - "B1": "PlateT13_B1", - "C1": "PlateT13_C1", - "D1": "PlateT13_D1", - "E1": "PlateT13_E1", - "F1": "PlateT13_F1", - "G1": "PlateT13_G1", - "H1": "PlateT13_H1", - "A2": "PlateT13_A2", - "B2": "PlateT13_B2", - "C2": "PlateT13_C2", - "D2": "PlateT13_D2", - "E2": "PlateT13_E2", - "F2": "PlateT13_F2", - "G2": "PlateT13_G2", - "H2": "PlateT13_H2", - "A3": "PlateT13_A3", - "B3": "PlateT13_B3", - "C3": "PlateT13_C3", - "D3": "PlateT13_D3", - "E3": "PlateT13_E3", - "F3": "PlateT13_F3", - "G3": "PlateT13_G3", - "H3": "PlateT13_H3", - "A4": "PlateT13_A4", - "B4": "PlateT13_B4", - "C4": "PlateT13_C4", - "D4": "PlateT13_D4", - "E4": "PlateT13_E4", - "F4": "PlateT13_F4", - "G4": "PlateT13_G4", - "H4": "PlateT13_H4", - "A5": "PlateT13_A5", - "B5": "PlateT13_B5", - "C5": "PlateT13_C5", - "D5": "PlateT13_D5", - "E5": "PlateT13_E5", - "F5": "PlateT13_F5", - "G5": "PlateT13_G5", - "H5": "PlateT13_H5", - "A6": "PlateT13_A6", - "B6": "PlateT13_B6", - "C6": "PlateT13_C6", - "D6": "PlateT13_D6", - "E6": "PlateT13_E6", - "F6": "PlateT13_F6", - "G6": "PlateT13_G6", - "H6": "PlateT13_H6", - "A7": "PlateT13_A7", - "B7": "PlateT13_B7", - "C7": "PlateT13_C7", - "D7": "PlateT13_D7", - "E7": "PlateT13_E7", - "F7": "PlateT13_F7", - "G7": "PlateT13_G7", - "H7": "PlateT13_H7", - "A8": "PlateT13_A8", - "B8": "PlateT13_B8", - "C8": "PlateT13_C8", - "D8": "PlateT13_D8", - "E8": "PlateT13_E8", - "F8": "PlateT13_F8", - "G8": "PlateT13_G8", - "H8": "PlateT13_H8", - "A9": "PlateT13_A9", - "B9": "PlateT13_B9", - "C9": "PlateT13_C9", - "D9": "PlateT13_D9", - "E9": "PlateT13_E9", - "F9": "PlateT13_F9", - "G9": "PlateT13_G9", - "H9": "PlateT13_H9", - "A10": "PlateT13_A10", - "B10": "PlateT13_B10", - "C10": "PlateT13_C10", - "D10": "PlateT13_D10", - "E10": "PlateT13_E10", - "F10": "PlateT13_F10", - "G10": "PlateT13_G10", - "H10": "PlateT13_H10", - "A11": "PlateT13_A11", - "B11": "PlateT13_B11", - "C11": "PlateT13_C11", - "D11": "PlateT13_D11", - "E11": "PlateT13_E11", - "F11": "PlateT13_F11", - "G11": "PlateT13_G11", - "H11": "PlateT13_H11", - "A12": "PlateT13_A12", - "B12": "PlateT13_B12", - "C12": "PlateT13_C12", - "D12": "PlateT13_D12", - "E12": "PlateT13_E12", - "F12": "PlateT13_F12", - "G12": "PlateT13_G12", - "H12": "PlateT13_H12" - } - }, - "data": { - "Material": { - "uuid": "4a043a07c65a4f9bb97745e1f129b165", - "Code": "ZX-58-0001", - "SupplyType": 2, - "Name": "全裙边 PCR适配器", - "SummaryName": "全裙边 PCR适配器" - } - } - }, - { - "id": "PlateT13_A1", - "name": "PlateT13_A1", - "sample_id": null, - "children": [], - "parent": "PlateT13", - "type": "well", - "class": "", - "position": { - "x": 11.9545, - "y": 71.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT13_B1", - "name": "PlateT13_B1", - "sample_id": null, - "children": [], - "parent": "PlateT13", - "type": "well", - "class": "", - "position": { - "x": 11.9545, - "y": 62.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT13_C1", - "name": "PlateT13_C1", - "sample_id": null, - "children": [], - "parent": "PlateT13", - "type": "well", - "class": "", - "position": { - "x": 11.9545, - "y": 53.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT13_D1", - "name": "PlateT13_D1", - "sample_id": null, - "children": [], - "parent": "PlateT13", - "type": "well", - "class": "", - "position": { - "x": 11.9545, - "y": 44.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT13_E1", - "name": "PlateT13_E1", - "sample_id": null, - "children": [], - "parent": "PlateT13", - "type": "well", - "class": "", - "position": { - "x": 11.9545, - "y": 35.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT13_F1", - "name": "PlateT13_F1", - "sample_id": null, - "children": [], - "parent": "PlateT13", - "type": "well", - "class": "", - "position": { - "x": 11.9545, - "y": 26.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT13_G1", - "name": "PlateT13_G1", - "sample_id": null, - "children": [], - "parent": "PlateT13", - "type": "well", - "class": "", - "position": { - "x": 11.9545, - "y": 17.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT13_H1", - "name": "PlateT13_H1", - "sample_id": null, - "children": [], - "parent": "PlateT13", - "type": "well", - "class": "", - "position": { - "x": 11.9545, - "y": 8.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT13_A2", - "name": "PlateT13_A2", - "sample_id": null, - "children": [], - "parent": "PlateT13", - "type": "well", - "class": "", - "position": { - "x": 20.9545, - "y": 71.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT13_B2", - "name": "PlateT13_B2", - "sample_id": null, - "children": [], - "parent": "PlateT13", - "type": "well", - "class": "", - "position": { - "x": 20.9545, - "y": 62.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT13_C2", - "name": "PlateT13_C2", - "sample_id": null, - "children": [], - "parent": "PlateT13", - "type": "well", - "class": "", - "position": { - "x": 20.9545, - "y": 53.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT13_D2", - "name": "PlateT13_D2", - "sample_id": null, - "children": [], - "parent": "PlateT13", - "type": "well", - "class": "", - "position": { - "x": 20.9545, - "y": 44.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT13_E2", - "name": "PlateT13_E2", - "sample_id": null, - "children": [], - "parent": "PlateT13", - "type": "well", - "class": "", - "position": { - "x": 20.9545, - "y": 35.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT13_F2", - "name": "PlateT13_F2", - "sample_id": null, - "children": [], - "parent": "PlateT13", - "type": "well", - "class": "", - "position": { - "x": 20.9545, - "y": 26.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT13_G2", - "name": "PlateT13_G2", - "sample_id": null, - "children": [], - "parent": "PlateT13", - "type": "well", - "class": "", - "position": { - "x": 20.9545, - "y": 17.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT13_H2", - "name": "PlateT13_H2", - "sample_id": null, - "children": [], - "parent": "PlateT13", - "type": "well", - "class": "", - "position": { - "x": 20.9545, - "y": 8.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT13_A3", - "name": "PlateT13_A3", - "sample_id": null, - "children": [], - "parent": "PlateT13", - "type": "well", - "class": "", - "position": { - "x": 29.9545, - "y": 71.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT13_B3", - "name": "PlateT13_B3", - "sample_id": null, - "children": [], - "parent": "PlateT13", - "type": "well", - "class": "", - "position": { - "x": 29.9545, - "y": 62.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT13_C3", - "name": "PlateT13_C3", - "sample_id": null, - "children": [], - "parent": "PlateT13", - "type": "well", - "class": "", - "position": { - "x": 29.9545, - "y": 53.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT13_D3", - "name": "PlateT13_D3", - "sample_id": null, - "children": [], - "parent": "PlateT13", - "type": "well", - "class": "", - "position": { - "x": 29.9545, - "y": 44.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT13_E3", - "name": "PlateT13_E3", - "sample_id": null, - "children": [], - "parent": "PlateT13", - "type": "well", - "class": "", - "position": { - "x": 29.9545, - "y": 35.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT13_F3", - "name": "PlateT13_F3", - "sample_id": null, - "children": [], - "parent": "PlateT13", - "type": "well", - "class": "", - "position": { - "x": 29.9545, - "y": 26.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT13_G3", - "name": "PlateT13_G3", - "sample_id": null, - "children": [], - "parent": "PlateT13", - "type": "well", - "class": "", - "position": { - "x": 29.9545, - "y": 17.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT13_H3", - "name": "PlateT13_H3", - "sample_id": null, - "children": [], - "parent": "PlateT13", - "type": "well", - "class": "", - "position": { - "x": 29.9545, - "y": 8.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT13_A4", - "name": "PlateT13_A4", - "sample_id": null, - "children": [], - "parent": "PlateT13", - "type": "well", - "class": "", - "position": { - "x": 38.9545, - "y": 71.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT13_B4", - "name": "PlateT13_B4", - "sample_id": null, - "children": [], - "parent": "PlateT13", - "type": "well", - "class": "", - "position": { - "x": 38.9545, - "y": 62.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT13_C4", - "name": "PlateT13_C4", - "sample_id": null, - "children": [], - "parent": "PlateT13", - "type": "well", - "class": "", - "position": { - "x": 38.9545, - "y": 53.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT13_D4", - "name": "PlateT13_D4", - "sample_id": null, - "children": [], - "parent": "PlateT13", - "type": "well", - "class": "", - "position": { - "x": 38.9545, - "y": 44.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT13_E4", - "name": "PlateT13_E4", - "sample_id": null, - "children": [], - "parent": "PlateT13", - "type": "well", - "class": "", - "position": { - "x": 38.9545, - "y": 35.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT13_F4", - "name": "PlateT13_F4", - "sample_id": null, - "children": [], - "parent": "PlateT13", - "type": "well", - "class": "", - "position": { - "x": 38.9545, - "y": 26.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT13_G4", - "name": "PlateT13_G4", - "sample_id": null, - "children": [], - "parent": "PlateT13", - "type": "well", - "class": "", - "position": { - "x": 38.9545, - "y": 17.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT13_H4", - "name": "PlateT13_H4", - "sample_id": null, - "children": [], - "parent": "PlateT13", - "type": "well", - "class": "", - "position": { - "x": 38.9545, - "y": 8.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT13_A5", - "name": "PlateT13_A5", - "sample_id": null, - "children": [], - "parent": "PlateT13", - "type": "well", - "class": "", - "position": { - "x": 47.9545, - "y": 71.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT13_B5", - "name": "PlateT13_B5", - "sample_id": null, - "children": [], - "parent": "PlateT13", - "type": "well", - "class": "", - "position": { - "x": 47.9545, - "y": 62.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT13_C5", - "name": "PlateT13_C5", - "sample_id": null, - "children": [], - "parent": "PlateT13", - "type": "well", - "class": "", - "position": { - "x": 47.9545, - "y": 53.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT13_D5", - "name": "PlateT13_D5", - "sample_id": null, - "children": [], - "parent": "PlateT13", - "type": "well", - "class": "", - "position": { - "x": 47.9545, - "y": 44.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT13_E5", - "name": "PlateT13_E5", - "sample_id": null, - "children": [], - "parent": "PlateT13", - "type": "well", - "class": "", - "position": { - "x": 47.9545, - "y": 35.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT13_F5", - "name": "PlateT13_F5", - "sample_id": null, - "children": [], - "parent": "PlateT13", - "type": "well", - "class": "", - "position": { - "x": 47.9545, - "y": 26.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT13_G5", - "name": "PlateT13_G5", - "sample_id": null, - "children": [], - "parent": "PlateT13", - "type": "well", - "class": "", - "position": { - "x": 47.9545, - "y": 17.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT13_H5", - "name": "PlateT13_H5", - "sample_id": null, - "children": [], - "parent": "PlateT13", - "type": "well", - "class": "", - "position": { - "x": 47.9545, - "y": 8.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT13_A6", - "name": "PlateT13_A6", - "sample_id": null, - "children": [], - "parent": "PlateT13", - "type": "well", - "class": "", - "position": { - "x": 56.9545, - "y": 71.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT13_B6", - "name": "PlateT13_B6", - "sample_id": null, - "children": [], - "parent": "PlateT13", - "type": "well", - "class": "", - "position": { - "x": 56.9545, - "y": 62.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT13_C6", - "name": "PlateT13_C6", - "sample_id": null, - "children": [], - "parent": "PlateT13", - "type": "well", - "class": "", - "position": { - "x": 56.9545, - "y": 53.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT13_D6", - "name": "PlateT13_D6", - "sample_id": null, - "children": [], - "parent": "PlateT13", - "type": "well", - "class": "", - "position": { - "x": 56.9545, - "y": 44.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT13_E6", - "name": "PlateT13_E6", - "sample_id": null, - "children": [], - "parent": "PlateT13", - "type": "well", - "class": "", - "position": { - "x": 56.9545, - "y": 35.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT13_F6", - "name": "PlateT13_F6", - "sample_id": null, - "children": [], - "parent": "PlateT13", - "type": "well", - "class": "", - "position": { - "x": 56.9545, - "y": 26.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT13_G6", - "name": "PlateT13_G6", - "sample_id": null, - "children": [], - "parent": "PlateT13", - "type": "well", - "class": "", - "position": { - "x": 56.9545, - "y": 17.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT13_H6", - "name": "PlateT13_H6", - "sample_id": null, - "children": [], - "parent": "PlateT13", - "type": "well", - "class": "", - "position": { - "x": 56.9545, - "y": 8.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT13_A7", - "name": "PlateT13_A7", - "sample_id": null, - "children": [], - "parent": "PlateT13", - "type": "well", - "class": "", - "position": { - "x": 65.9545, - "y": 71.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT13_B7", - "name": "PlateT13_B7", - "sample_id": null, - "children": [], - "parent": "PlateT13", - "type": "well", - "class": "", - "position": { - "x": 65.9545, - "y": 62.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT13_C7", - "name": "PlateT13_C7", - "sample_id": null, - "children": [], - "parent": "PlateT13", - "type": "well", - "class": "", - "position": { - "x": 65.9545, - "y": 53.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT13_D7", - "name": "PlateT13_D7", - "sample_id": null, - "children": [], - "parent": "PlateT13", - "type": "well", - "class": "", - "position": { - "x": 65.9545, - "y": 44.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT13_E7", - "name": "PlateT13_E7", - "sample_id": null, - "children": [], - "parent": "PlateT13", - "type": "well", - "class": "", - "position": { - "x": 65.9545, - "y": 35.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT13_F7", - "name": "PlateT13_F7", - "sample_id": null, - "children": [], - "parent": "PlateT13", - "type": "well", - "class": "", - "position": { - "x": 65.9545, - "y": 26.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT13_G7", - "name": "PlateT13_G7", - "sample_id": null, - "children": [], - "parent": "PlateT13", - "type": "well", - "class": "", - "position": { - "x": 65.9545, - "y": 17.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT13_H7", - "name": "PlateT13_H7", - "sample_id": null, - "children": [], - "parent": "PlateT13", - "type": "well", - "class": "", - "position": { - "x": 65.9545, - "y": 8.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT13_A8", - "name": "PlateT13_A8", - "sample_id": null, - "children": [], - "parent": "PlateT13", - "type": "well", - "class": "", - "position": { - "x": 74.9545, - "y": 71.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT13_B8", - "name": "PlateT13_B8", - "sample_id": null, - "children": [], - "parent": "PlateT13", - "type": "well", - "class": "", - "position": { - "x": 74.9545, - "y": 62.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT13_C8", - "name": "PlateT13_C8", - "sample_id": null, - "children": [], - "parent": "PlateT13", - "type": "well", - "class": "", - "position": { - "x": 74.9545, - "y": 53.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT13_D8", - "name": "PlateT13_D8", - "sample_id": null, - "children": [], - "parent": "PlateT13", - "type": "well", - "class": "", - "position": { - "x": 74.9545, - "y": 44.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT13_E8", - "name": "PlateT13_E8", - "sample_id": null, - "children": [], - "parent": "PlateT13", - "type": "well", - "class": "", - "position": { - "x": 74.9545, - "y": 35.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT13_F8", - "name": "PlateT13_F8", - "sample_id": null, - "children": [], - "parent": "PlateT13", - "type": "well", - "class": "", - "position": { - "x": 74.9545, - "y": 26.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT13_G8", - "name": "PlateT13_G8", - "sample_id": null, - "children": [], - "parent": "PlateT13", - "type": "well", - "class": "", - "position": { - "x": 74.9545, - "y": 17.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT13_H8", - "name": "PlateT13_H8", - "sample_id": null, - "children": [], - "parent": "PlateT13", - "type": "well", - "class": "", - "position": { - "x": 74.9545, - "y": 8.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT13_A9", - "name": "PlateT13_A9", - "sample_id": null, - "children": [], - "parent": "PlateT13", - "type": "well", - "class": "", - "position": { - "x": 83.9545, - "y": 71.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT13_B9", - "name": "PlateT13_B9", - "sample_id": null, - "children": [], - "parent": "PlateT13", - "type": "well", - "class": "", - "position": { - "x": 83.9545, - "y": 62.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT13_C9", - "name": "PlateT13_C9", - "sample_id": null, - "children": [], - "parent": "PlateT13", - "type": "well", - "class": "", - "position": { - "x": 83.9545, - "y": 53.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT13_D9", - "name": "PlateT13_D9", - "sample_id": null, - "children": [], - "parent": "PlateT13", - "type": "well", - "class": "", - "position": { - "x": 83.9545, - "y": 44.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT13_E9", - "name": "PlateT13_E9", - "sample_id": null, - "children": [], - "parent": "PlateT13", - "type": "well", - "class": "", - "position": { - "x": 83.9545, - "y": 35.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT13_F9", - "name": "PlateT13_F9", - "sample_id": null, - "children": [], - "parent": "PlateT13", - "type": "well", - "class": "", - "position": { - "x": 83.9545, - "y": 26.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT13_G9", - "name": "PlateT13_G9", - "sample_id": null, - "children": [], - "parent": "PlateT13", - "type": "well", - "class": "", - "position": { - "x": 83.9545, - "y": 17.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT13_H9", - "name": "PlateT13_H9", - "sample_id": null, - "children": [], - "parent": "PlateT13", - "type": "well", - "class": "", - "position": { - "x": 83.9545, - "y": 8.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT13_A10", - "name": "PlateT13_A10", - "sample_id": null, - "children": [], - "parent": "PlateT13", - "type": "well", - "class": "", - "position": { - "x": 92.9545, - "y": 71.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT13_B10", - "name": "PlateT13_B10", - "sample_id": null, - "children": [], - "parent": "PlateT13", - "type": "well", - "class": "", - "position": { - "x": 92.9545, - "y": 62.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT13_C10", - "name": "PlateT13_C10", - "sample_id": null, - "children": [], - "parent": "PlateT13", - "type": "well", - "class": "", - "position": { - "x": 92.9545, - "y": 53.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT13_D10", - "name": "PlateT13_D10", - "sample_id": null, - "children": [], - "parent": "PlateT13", - "type": "well", - "class": "", - "position": { - "x": 92.9545, - "y": 44.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT13_E10", - "name": "PlateT13_E10", - "sample_id": null, - "children": [], - "parent": "PlateT13", - "type": "well", - "class": "", - "position": { - "x": 92.9545, - "y": 35.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT13_F10", - "name": "PlateT13_F10", - "sample_id": null, - "children": [], - "parent": "PlateT13", - "type": "well", - "class": "", - "position": { - "x": 92.9545, - "y": 26.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT13_G10", - "name": "PlateT13_G10", - "sample_id": null, - "children": [], - "parent": "PlateT13", - "type": "well", - "class": "", - "position": { - "x": 92.9545, - "y": 17.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT13_H10", - "name": "PlateT13_H10", - "sample_id": null, - "children": [], - "parent": "PlateT13", - "type": "well", - "class": "", - "position": { - "x": 92.9545, - "y": 8.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT13_A11", - "name": "PlateT13_A11", - "sample_id": null, - "children": [], - "parent": "PlateT13", - "type": "well", - "class": "", - "position": { - "x": 101.9545, - "y": 71.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT13_B11", - "name": "PlateT13_B11", - "sample_id": null, - "children": [], - "parent": "PlateT13", - "type": "well", - "class": "", - "position": { - "x": 101.9545, - "y": 62.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT13_C11", - "name": "PlateT13_C11", - "sample_id": null, - "children": [], - "parent": "PlateT13", - "type": "well", - "class": "", - "position": { - "x": 101.9545, - "y": 53.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT13_D11", - "name": "PlateT13_D11", - "sample_id": null, - "children": [], - "parent": "PlateT13", - "type": "well", - "class": "", - "position": { - "x": 101.9545, - "y": 44.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT13_E11", - "name": "PlateT13_E11", - "sample_id": null, - "children": [], - "parent": "PlateT13", - "type": "well", - "class": "", - "position": { - "x": 101.9545, - "y": 35.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT13_F11", - "name": "PlateT13_F11", - "sample_id": null, - "children": [], - "parent": "PlateT13", - "type": "well", - "class": "", - "position": { - "x": 101.9545, - "y": 26.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT13_G11", - "name": "PlateT13_G11", - "sample_id": null, - "children": [], - "parent": "PlateT13", - "type": "well", - "class": "", - "position": { - "x": 101.9545, - "y": 17.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT13_H11", - "name": "PlateT13_H11", - "sample_id": null, - "children": [], - "parent": "PlateT13", - "type": "well", - "class": "", - "position": { - "x": 101.9545, - "y": 8.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT13_A12", - "name": "PlateT13_A12", - "sample_id": null, - "children": [], - "parent": "PlateT13", - "type": "well", - "class": "", - "position": { - "x": 110.9545, - "y": 71.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT13_B12", - "name": "PlateT13_B12", - "sample_id": null, - "children": [], - "parent": "PlateT13", - "type": "well", - "class": "", - "position": { - "x": 110.9545, - "y": 62.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT13_C12", - "name": "PlateT13_C12", - "sample_id": null, - "children": [], - "parent": "PlateT13", - "type": "well", - "class": "", - "position": { - "x": 110.9545, - "y": 53.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT13_D12", - "name": "PlateT13_D12", - "sample_id": null, - "children": [], - "parent": "PlateT13", - "type": "well", - "class": "", - "position": { - "x": 110.9545, - "y": 44.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT13_E12", - "name": "PlateT13_E12", - "sample_id": null, - "children": [], - "parent": "PlateT13", - "type": "well", - "class": "", - "position": { - "x": 110.9545, - "y": 35.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT13_F12", - "name": "PlateT13_F12", - "sample_id": null, - "children": [], - "parent": "PlateT13", - "type": "well", - "class": "", - "position": { - "x": 110.9545, - "y": 26.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT13_G12", - "name": "PlateT13_G12", - "sample_id": null, - "children": [], - "parent": "PlateT13", - "type": "well", - "class": "", - "position": { - "x": 110.9545, - "y": 17.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT13_H12", - "name": "PlateT13_H12", - "sample_id": null, - "children": [], - "parent": "PlateT13", - "type": "well", - "class": "", - "position": { - "x": 110.9545, - "y": 8.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT14", - "name": "PlateT14", - "sample_id": null, - "children": [ - "PlateT14_A1", - "PlateT14_B1", - "PlateT14_C1", - "PlateT14_D1", - "PlateT14_E1", - "PlateT14_F1", - "PlateT14_G1", - "PlateT14_H1", - "PlateT14_A2", - "PlateT14_B2", - "PlateT14_C2", - "PlateT14_D2", - "PlateT14_E2", - "PlateT14_F2", - "PlateT14_G2", - "PlateT14_H2", - "PlateT14_A3", - "PlateT14_B3", - "PlateT14_C3", - "PlateT14_D3", - "PlateT14_E3", - "PlateT14_F3", - "PlateT14_G3", - "PlateT14_H3", - "PlateT14_A4", - "PlateT14_B4", - "PlateT14_C4", - "PlateT14_D4", - "PlateT14_E4", - "PlateT14_F4", - "PlateT14_G4", - "PlateT14_H4", - "PlateT14_A5", - "PlateT14_B5", - "PlateT14_C5", - "PlateT14_D5", - "PlateT14_E5", - "PlateT14_F5", - "PlateT14_G5", - "PlateT14_H5", - "PlateT14_A6", - "PlateT14_B6", - "PlateT14_C6", - "PlateT14_D6", - "PlateT14_E6", - "PlateT14_F6", - "PlateT14_G6", - "PlateT14_H6", - "PlateT14_A7", - "PlateT14_B7", - "PlateT14_C7", - "PlateT14_D7", - "PlateT14_E7", - "PlateT14_F7", - "PlateT14_G7", - "PlateT14_H7", - "PlateT14_A8", - "PlateT14_B8", - "PlateT14_C8", - "PlateT14_D8", - "PlateT14_E8", - "PlateT14_F8", - "PlateT14_G8", - "PlateT14_H8", - "PlateT14_A9", - "PlateT14_B9", - "PlateT14_C9", - "PlateT14_D9", - "PlateT14_E9", - "PlateT14_F9", - "PlateT14_G9", - "PlateT14_H9", - "PlateT14_A10", - "PlateT14_B10", - "PlateT14_C10", - "PlateT14_D10", - "PlateT14_E10", - "PlateT14_F10", - "PlateT14_G10", - "PlateT14_H10", - "PlateT14_A11", - "PlateT14_B11", - "PlateT14_C11", - "PlateT14_D11", - "PlateT14_E11", - "PlateT14_F11", - "PlateT14_G11", - "PlateT14_H11", - "PlateT14_A12", - "PlateT14_B12", - "PlateT14_C12", - "PlateT14_D12", - "PlateT14_E12", - "PlateT14_F12", - "PlateT14_G12", - "PlateT14_H12" - ], - "parent": "PRCXI_Deck", - "type": "plate", - "class": "", - "position": { - "x": 0, - "y": 0, - "z": 0 - }, - "config": { - "type": "PRCXI9300Plate", - "size_x": 50, - "size_y": 50, - "size_z": 10, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "plate", - "model": null, - "barcode": null, - "ordering": { - "A1": "PlateT14_A1", - "B1": "PlateT14_B1", - "C1": "PlateT14_C1", - "D1": "PlateT14_D1", - "E1": "PlateT14_E1", - "F1": "PlateT14_F1", - "G1": "PlateT14_G1", - "H1": "PlateT14_H1", - "A2": "PlateT14_A2", - "B2": "PlateT14_B2", - "C2": "PlateT14_C2", - "D2": "PlateT14_D2", - "E2": "PlateT14_E2", - "F2": "PlateT14_F2", - "G2": "PlateT14_G2", - "H2": "PlateT14_H2", - "A3": "PlateT14_A3", - "B3": "PlateT14_B3", - "C3": "PlateT14_C3", - "D3": "PlateT14_D3", - "E3": "PlateT14_E3", - "F3": "PlateT14_F3", - "G3": "PlateT14_G3", - "H3": "PlateT14_H3", - "A4": "PlateT14_A4", - "B4": "PlateT14_B4", - "C4": "PlateT14_C4", - "D4": "PlateT14_D4", - "E4": "PlateT14_E4", - "F4": "PlateT14_F4", - "G4": "PlateT14_G4", - "H4": "PlateT14_H4", - "A5": "PlateT14_A5", - "B5": "PlateT14_B5", - "C5": "PlateT14_C5", - "D5": "PlateT14_D5", - "E5": "PlateT14_E5", - "F5": "PlateT14_F5", - "G5": "PlateT14_G5", - "H5": "PlateT14_H5", - "A6": "PlateT14_A6", - "B6": "PlateT14_B6", - "C6": "PlateT14_C6", - "D6": "PlateT14_D6", - "E6": "PlateT14_E6", - "F6": "PlateT14_F6", - "G6": "PlateT14_G6", - "H6": "PlateT14_H6", - "A7": "PlateT14_A7", - "B7": "PlateT14_B7", - "C7": "PlateT14_C7", - "D7": "PlateT14_D7", - "E7": "PlateT14_E7", - "F7": "PlateT14_F7", - "G7": "PlateT14_G7", - "H7": "PlateT14_H7", - "A8": "PlateT14_A8", - "B8": "PlateT14_B8", - "C8": "PlateT14_C8", - "D8": "PlateT14_D8", - "E8": "PlateT14_E8", - "F8": "PlateT14_F8", - "G8": "PlateT14_G8", - "H8": "PlateT14_H8", - "A9": "PlateT14_A9", - "B9": "PlateT14_B9", - "C9": "PlateT14_C9", - "D9": "PlateT14_D9", - "E9": "PlateT14_E9", - "F9": "PlateT14_F9", - "G9": "PlateT14_G9", - "H9": "PlateT14_H9", - "A10": "PlateT14_A10", - "B10": "PlateT14_B10", - "C10": "PlateT14_C10", - "D10": "PlateT14_D10", - "E10": "PlateT14_E10", - "F10": "PlateT14_F10", - "G10": "PlateT14_G10", - "H10": "PlateT14_H10", - "A11": "PlateT14_A11", - "B11": "PlateT14_B11", - "C11": "PlateT14_C11", - "D11": "PlateT14_D11", - "E11": "PlateT14_E11", - "F11": "PlateT14_F11", - "G11": "PlateT14_G11", - "H11": "PlateT14_H11", - "A12": "PlateT14_A12", - "B12": "PlateT14_B12", - "C12": "PlateT14_C12", - "D12": "PlateT14_D12", - "E12": "PlateT14_E12", - "F12": "PlateT14_F12", - "G12": "PlateT14_G12", - "H12": "PlateT14_H12" - } - }, - "data": { - "Material": { - "uuid": "4a043a07c65a4f9bb97745e1f129b165", - "Code": "ZX-58-0001", - "SupplyType": 2, - "Name": "全裙边 PCR适配器", - "SummaryName": "全裙边 PCR适配器" - } - } - }, - { - "id": "PlateT14_A1", - "name": "PlateT14_A1", - "sample_id": null, - "children": [], - "parent": "PlateT14", - "type": "well", - "class": "", - "position": { - "x": 11.9545, - "y": 71.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT14_B1", - "name": "PlateT14_B1", - "sample_id": null, - "children": [], - "parent": "PlateT14", - "type": "well", - "class": "", - "position": { - "x": 11.9545, - "y": 62.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT14_C1", - "name": "PlateT14_C1", - "sample_id": null, - "children": [], - "parent": "PlateT14", - "type": "well", - "class": "", - "position": { - "x": 11.9545, - "y": 53.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT14_D1", - "name": "PlateT14_D1", - "sample_id": null, - "children": [], - "parent": "PlateT14", - "type": "well", - "class": "", - "position": { - "x": 11.9545, - "y": 44.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT14_E1", - "name": "PlateT14_E1", - "sample_id": null, - "children": [], - "parent": "PlateT14", - "type": "well", - "class": "", - "position": { - "x": 11.9545, - "y": 35.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT14_F1", - "name": "PlateT14_F1", - "sample_id": null, - "children": [], - "parent": "PlateT14", - "type": "well", - "class": "", - "position": { - "x": 11.9545, - "y": 26.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT14_G1", - "name": "PlateT14_G1", - "sample_id": null, - "children": [], - "parent": "PlateT14", - "type": "well", - "class": "", - "position": { - "x": 11.9545, - "y": 17.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT14_H1", - "name": "PlateT14_H1", - "sample_id": null, - "children": [], - "parent": "PlateT14", - "type": "well", - "class": "", - "position": { - "x": 11.9545, - "y": 8.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT14_A2", - "name": "PlateT14_A2", - "sample_id": null, - "children": [], - "parent": "PlateT14", - "type": "well", - "class": "", - "position": { - "x": 20.9545, - "y": 71.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT14_B2", - "name": "PlateT14_B2", - "sample_id": null, - "children": [], - "parent": "PlateT14", - "type": "well", - "class": "", - "position": { - "x": 20.9545, - "y": 62.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT14_C2", - "name": "PlateT14_C2", - "sample_id": null, - "children": [], - "parent": "PlateT14", - "type": "well", - "class": "", - "position": { - "x": 20.9545, - "y": 53.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT14_D2", - "name": "PlateT14_D2", - "sample_id": null, - "children": [], - "parent": "PlateT14", - "type": "well", - "class": "", - "position": { - "x": 20.9545, - "y": 44.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT14_E2", - "name": "PlateT14_E2", - "sample_id": null, - "children": [], - "parent": "PlateT14", - "type": "well", - "class": "", - "position": { - "x": 20.9545, - "y": 35.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT14_F2", - "name": "PlateT14_F2", - "sample_id": null, - "children": [], - "parent": "PlateT14", - "type": "well", - "class": "", - "position": { - "x": 20.9545, - "y": 26.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT14_G2", - "name": "PlateT14_G2", - "sample_id": null, - "children": [], - "parent": "PlateT14", - "type": "well", - "class": "", - "position": { - "x": 20.9545, - "y": 17.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT14_H2", - "name": "PlateT14_H2", - "sample_id": null, - "children": [], - "parent": "PlateT14", - "type": "well", - "class": "", - "position": { - "x": 20.9545, - "y": 8.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT14_A3", - "name": "PlateT14_A3", - "sample_id": null, - "children": [], - "parent": "PlateT14", - "type": "well", - "class": "", - "position": { - "x": 29.9545, - "y": 71.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT14_B3", - "name": "PlateT14_B3", - "sample_id": null, - "children": [], - "parent": "PlateT14", - "type": "well", - "class": "", - "position": { - "x": 29.9545, - "y": 62.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT14_C3", - "name": "PlateT14_C3", - "sample_id": null, - "children": [], - "parent": "PlateT14", - "type": "well", - "class": "", - "position": { - "x": 29.9545, - "y": 53.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT14_D3", - "name": "PlateT14_D3", - "sample_id": null, - "children": [], - "parent": "PlateT14", - "type": "well", - "class": "", - "position": { - "x": 29.9545, - "y": 44.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT14_E3", - "name": "PlateT14_E3", - "sample_id": null, - "children": [], - "parent": "PlateT14", - "type": "well", - "class": "", - "position": { - "x": 29.9545, - "y": 35.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT14_F3", - "name": "PlateT14_F3", - "sample_id": null, - "children": [], - "parent": "PlateT14", - "type": "well", - "class": "", - "position": { - "x": 29.9545, - "y": 26.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT14_G3", - "name": "PlateT14_G3", - "sample_id": null, - "children": [], - "parent": "PlateT14", - "type": "well", - "class": "", - "position": { - "x": 29.9545, - "y": 17.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT14_H3", - "name": "PlateT14_H3", - "sample_id": null, - "children": [], - "parent": "PlateT14", - "type": "well", - "class": "", - "position": { - "x": 29.9545, - "y": 8.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT14_A4", - "name": "PlateT14_A4", - "sample_id": null, - "children": [], - "parent": "PlateT14", - "type": "well", - "class": "", - "position": { - "x": 38.9545, - "y": 71.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT14_B4", - "name": "PlateT14_B4", - "sample_id": null, - "children": [], - "parent": "PlateT14", - "type": "well", - "class": "", - "position": { - "x": 38.9545, - "y": 62.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT14_C4", - "name": "PlateT14_C4", - "sample_id": null, - "children": [], - "parent": "PlateT14", - "type": "well", - "class": "", - "position": { - "x": 38.9545, - "y": 53.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT14_D4", - "name": "PlateT14_D4", - "sample_id": null, - "children": [], - "parent": "PlateT14", - "type": "well", - "class": "", - "position": { - "x": 38.9545, - "y": 44.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT14_E4", - "name": "PlateT14_E4", - "sample_id": null, - "children": [], - "parent": "PlateT14", - "type": "well", - "class": "", - "position": { - "x": 38.9545, - "y": 35.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT14_F4", - "name": "PlateT14_F4", - "sample_id": null, - "children": [], - "parent": "PlateT14", - "type": "well", - "class": "", - "position": { - "x": 38.9545, - "y": 26.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT14_G4", - "name": "PlateT14_G4", - "sample_id": null, - "children": [], - "parent": "PlateT14", - "type": "well", - "class": "", - "position": { - "x": 38.9545, - "y": 17.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT14_H4", - "name": "PlateT14_H4", - "sample_id": null, - "children": [], - "parent": "PlateT14", - "type": "well", - "class": "", - "position": { - "x": 38.9545, - "y": 8.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT14_A5", - "name": "PlateT14_A5", - "sample_id": null, - "children": [], - "parent": "PlateT14", - "type": "well", - "class": "", - "position": { - "x": 47.9545, - "y": 71.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT14_B5", - "name": "PlateT14_B5", - "sample_id": null, - "children": [], - "parent": "PlateT14", - "type": "well", - "class": "", - "position": { - "x": 47.9545, - "y": 62.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT14_C5", - "name": "PlateT14_C5", - "sample_id": null, - "children": [], - "parent": "PlateT14", - "type": "well", - "class": "", - "position": { - "x": 47.9545, - "y": 53.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT14_D5", - "name": "PlateT14_D5", - "sample_id": null, - "children": [], - "parent": "PlateT14", - "type": "well", - "class": "", - "position": { - "x": 47.9545, - "y": 44.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT14_E5", - "name": "PlateT14_E5", - "sample_id": null, - "children": [], - "parent": "PlateT14", - "type": "well", - "class": "", - "position": { - "x": 47.9545, - "y": 35.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT14_F5", - "name": "PlateT14_F5", - "sample_id": null, - "children": [], - "parent": "PlateT14", - "type": "well", - "class": "", - "position": { - "x": 47.9545, - "y": 26.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT14_G5", - "name": "PlateT14_G5", - "sample_id": null, - "children": [], - "parent": "PlateT14", - "type": "well", - "class": "", - "position": { - "x": 47.9545, - "y": 17.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT14_H5", - "name": "PlateT14_H5", - "sample_id": null, - "children": [], - "parent": "PlateT14", - "type": "well", - "class": "", - "position": { - "x": 47.9545, - "y": 8.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT14_A6", - "name": "PlateT14_A6", - "sample_id": null, - "children": [], - "parent": "PlateT14", - "type": "well", - "class": "", - "position": { - "x": 56.9545, - "y": 71.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT14_B6", - "name": "PlateT14_B6", - "sample_id": null, - "children": [], - "parent": "PlateT14", - "type": "well", - "class": "", - "position": { - "x": 56.9545, - "y": 62.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT14_C6", - "name": "PlateT14_C6", - "sample_id": null, - "children": [], - "parent": "PlateT14", - "type": "well", - "class": "", - "position": { - "x": 56.9545, - "y": 53.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT14_D6", - "name": "PlateT14_D6", - "sample_id": null, - "children": [], - "parent": "PlateT14", - "type": "well", - "class": "", - "position": { - "x": 56.9545, - "y": 44.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT14_E6", - "name": "PlateT14_E6", - "sample_id": null, - "children": [], - "parent": "PlateT14", - "type": "well", - "class": "", - "position": { - "x": 56.9545, - "y": 35.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT14_F6", - "name": "PlateT14_F6", - "sample_id": null, - "children": [], - "parent": "PlateT14", - "type": "well", - "class": "", - "position": { - "x": 56.9545, - "y": 26.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT14_G6", - "name": "PlateT14_G6", - "sample_id": null, - "children": [], - "parent": "PlateT14", - "type": "well", - "class": "", - "position": { - "x": 56.9545, - "y": 17.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT14_H6", - "name": "PlateT14_H6", - "sample_id": null, - "children": [], - "parent": "PlateT14", - "type": "well", - "class": "", - "position": { - "x": 56.9545, - "y": 8.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT14_A7", - "name": "PlateT14_A7", - "sample_id": null, - "children": [], - "parent": "PlateT14", - "type": "well", - "class": "", - "position": { - "x": 65.9545, - "y": 71.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT14_B7", - "name": "PlateT14_B7", - "sample_id": null, - "children": [], - "parent": "PlateT14", - "type": "well", - "class": "", - "position": { - "x": 65.9545, - "y": 62.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT14_C7", - "name": "PlateT14_C7", - "sample_id": null, - "children": [], - "parent": "PlateT14", - "type": "well", - "class": "", - "position": { - "x": 65.9545, - "y": 53.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT14_D7", - "name": "PlateT14_D7", - "sample_id": null, - "children": [], - "parent": "PlateT14", - "type": "well", - "class": "", - "position": { - "x": 65.9545, - "y": 44.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT14_E7", - "name": "PlateT14_E7", - "sample_id": null, - "children": [], - "parent": "PlateT14", - "type": "well", - "class": "", - "position": { - "x": 65.9545, - "y": 35.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT14_F7", - "name": "PlateT14_F7", - "sample_id": null, - "children": [], - "parent": "PlateT14", - "type": "well", - "class": "", - "position": { - "x": 65.9545, - "y": 26.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT14_G7", - "name": "PlateT14_G7", - "sample_id": null, - "children": [], - "parent": "PlateT14", - "type": "well", - "class": "", - "position": { - "x": 65.9545, - "y": 17.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT14_H7", - "name": "PlateT14_H7", - "sample_id": null, - "children": [], - "parent": "PlateT14", - "type": "well", - "class": "", - "position": { - "x": 65.9545, - "y": 8.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT14_A8", - "name": "PlateT14_A8", - "sample_id": null, - "children": [], - "parent": "PlateT14", - "type": "well", - "class": "", - "position": { - "x": 74.9545, - "y": 71.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT14_B8", - "name": "PlateT14_B8", - "sample_id": null, - "children": [], - "parent": "PlateT14", - "type": "well", - "class": "", - "position": { - "x": 74.9545, - "y": 62.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT14_C8", - "name": "PlateT14_C8", - "sample_id": null, - "children": [], - "parent": "PlateT14", - "type": "well", - "class": "", - "position": { - "x": 74.9545, - "y": 53.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT14_D8", - "name": "PlateT14_D8", - "sample_id": null, - "children": [], - "parent": "PlateT14", - "type": "well", - "class": "", - "position": { - "x": 74.9545, - "y": 44.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT14_E8", - "name": "PlateT14_E8", - "sample_id": null, - "children": [], - "parent": "PlateT14", - "type": "well", - "class": "", - "position": { - "x": 74.9545, - "y": 35.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT14_F8", - "name": "PlateT14_F8", - "sample_id": null, - "children": [], - "parent": "PlateT14", - "type": "well", - "class": "", - "position": { - "x": 74.9545, - "y": 26.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT14_G8", - "name": "PlateT14_G8", - "sample_id": null, - "children": [], - "parent": "PlateT14", - "type": "well", - "class": "", - "position": { - "x": 74.9545, - "y": 17.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT14_H8", - "name": "PlateT14_H8", - "sample_id": null, - "children": [], - "parent": "PlateT14", - "type": "well", - "class": "", - "position": { - "x": 74.9545, - "y": 8.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT14_A9", - "name": "PlateT14_A9", - "sample_id": null, - "children": [], - "parent": "PlateT14", - "type": "well", - "class": "", - "position": { - "x": 83.9545, - "y": 71.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT14_B9", - "name": "PlateT14_B9", - "sample_id": null, - "children": [], - "parent": "PlateT14", - "type": "well", - "class": "", - "position": { - "x": 83.9545, - "y": 62.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT14_C9", - "name": "PlateT14_C9", - "sample_id": null, - "children": [], - "parent": "PlateT14", - "type": "well", - "class": "", - "position": { - "x": 83.9545, - "y": 53.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT14_D9", - "name": "PlateT14_D9", - "sample_id": null, - "children": [], - "parent": "PlateT14", - "type": "well", - "class": "", - "position": { - "x": 83.9545, - "y": 44.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT14_E9", - "name": "PlateT14_E9", - "sample_id": null, - "children": [], - "parent": "PlateT14", - "type": "well", - "class": "", - "position": { - "x": 83.9545, - "y": 35.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT14_F9", - "name": "PlateT14_F9", - "sample_id": null, - "children": [], - "parent": "PlateT14", - "type": "well", - "class": "", - "position": { - "x": 83.9545, - "y": 26.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT14_G9", - "name": "PlateT14_G9", - "sample_id": null, - "children": [], - "parent": "PlateT14", - "type": "well", - "class": "", - "position": { - "x": 83.9545, - "y": 17.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT14_H9", - "name": "PlateT14_H9", - "sample_id": null, - "children": [], - "parent": "PlateT14", - "type": "well", - "class": "", - "position": { - "x": 83.9545, - "y": 8.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT14_A10", - "name": "PlateT14_A10", - "sample_id": null, - "children": [], - "parent": "PlateT14", - "type": "well", - "class": "", - "position": { - "x": 92.9545, - "y": 71.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT14_B10", - "name": "PlateT14_B10", - "sample_id": null, - "children": [], - "parent": "PlateT14", - "type": "well", - "class": "", - "position": { - "x": 92.9545, - "y": 62.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT14_C10", - "name": "PlateT14_C10", - "sample_id": null, - "children": [], - "parent": "PlateT14", - "type": "well", - "class": "", - "position": { - "x": 92.9545, - "y": 53.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT14_D10", - "name": "PlateT14_D10", - "sample_id": null, - "children": [], - "parent": "PlateT14", - "type": "well", - "class": "", - "position": { - "x": 92.9545, - "y": 44.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT14_E10", - "name": "PlateT14_E10", - "sample_id": null, - "children": [], - "parent": "PlateT14", - "type": "well", - "class": "", - "position": { - "x": 92.9545, - "y": 35.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT14_F10", - "name": "PlateT14_F10", - "sample_id": null, - "children": [], - "parent": "PlateT14", - "type": "well", - "class": "", - "position": { - "x": 92.9545, - "y": 26.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT14_G10", - "name": "PlateT14_G10", - "sample_id": null, - "children": [], - "parent": "PlateT14", - "type": "well", - "class": "", - "position": { - "x": 92.9545, - "y": 17.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT14_H10", - "name": "PlateT14_H10", - "sample_id": null, - "children": [], - "parent": "PlateT14", - "type": "well", - "class": "", - "position": { - "x": 92.9545, - "y": 8.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT14_A11", - "name": "PlateT14_A11", - "sample_id": null, - "children": [], - "parent": "PlateT14", - "type": "well", - "class": "", - "position": { - "x": 101.9545, - "y": 71.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT14_B11", - "name": "PlateT14_B11", - "sample_id": null, - "children": [], - "parent": "PlateT14", - "type": "well", - "class": "", - "position": { - "x": 101.9545, - "y": 62.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT14_C11", - "name": "PlateT14_C11", - "sample_id": null, - "children": [], - "parent": "PlateT14", - "type": "well", - "class": "", - "position": { - "x": 101.9545, - "y": 53.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT14_D11", - "name": "PlateT14_D11", - "sample_id": null, - "children": [], - "parent": "PlateT14", - "type": "well", - "class": "", - "position": { - "x": 101.9545, - "y": 44.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT14_E11", - "name": "PlateT14_E11", - "sample_id": null, - "children": [], - "parent": "PlateT14", - "type": "well", - "class": "", - "position": { - "x": 101.9545, - "y": 35.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT14_F11", - "name": "PlateT14_F11", - "sample_id": null, - "children": [], - "parent": "PlateT14", - "type": "well", - "class": "", - "position": { - "x": 101.9545, - "y": 26.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT14_G11", - "name": "PlateT14_G11", - "sample_id": null, - "children": [], - "parent": "PlateT14", - "type": "well", - "class": "", - "position": { - "x": 101.9545, - "y": 17.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT14_H11", - "name": "PlateT14_H11", - "sample_id": null, - "children": [], - "parent": "PlateT14", - "type": "well", - "class": "", - "position": { - "x": 101.9545, - "y": 8.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT14_A12", - "name": "PlateT14_A12", - "sample_id": null, - "children": [], - "parent": "PlateT14", - "type": "well", - "class": "", - "position": { - "x": 110.9545, - "y": 71.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT14_B12", - "name": "PlateT14_B12", - "sample_id": null, - "children": [], - "parent": "PlateT14", - "type": "well", - "class": "", - "position": { - "x": 110.9545, - "y": 62.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT14_C12", - "name": "PlateT14_C12", - "sample_id": null, - "children": [], - "parent": "PlateT14", - "type": "well", - "class": "", - "position": { - "x": 110.9545, - "y": 53.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT14_D12", - "name": "PlateT14_D12", - "sample_id": null, - "children": [], - "parent": "PlateT14", - "type": "well", - "class": "", - "position": { - "x": 110.9545, - "y": 44.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT14_E12", - "name": "PlateT14_E12", - "sample_id": null, - "children": [], - "parent": "PlateT14", - "type": "well", - "class": "", - "position": { - "x": 110.9545, - "y": 35.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT14_F12", - "name": "PlateT14_F12", - "sample_id": null, - "children": [], - "parent": "PlateT14", - "type": "well", - "class": "", - "position": { - "x": 110.9545, - "y": 26.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT14_G12", - "name": "PlateT14_G12", - "sample_id": null, - "children": [], - "parent": "PlateT14", - "type": "well", - "class": "", - "position": { - "x": 110.9545, - "y": 17.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT14_H12", - "name": "PlateT14_H12", - "sample_id": null, - "children": [], - "parent": "PlateT14", - "type": "well", - "class": "", - "position": { - "x": 110.9545, - "y": 8.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT15", - "name": "PlateT15", - "sample_id": null, - "children": [ - "PlateT15_A1", - "PlateT15_B1", - "PlateT15_C1", - "PlateT15_D1", - "PlateT15_E1", - "PlateT15_F1", - "PlateT15_G1", - "PlateT15_H1", - "PlateT15_A2", - "PlateT15_B2", - "PlateT15_C2", - "PlateT15_D2", - "PlateT15_E2", - "PlateT15_F2", - "PlateT15_G2", - "PlateT15_H2", - "PlateT15_A3", - "PlateT15_B3", - "PlateT15_C3", - "PlateT15_D3", - "PlateT15_E3", - "PlateT15_F3", - "PlateT15_G3", - "PlateT15_H3", - "PlateT15_A4", - "PlateT15_B4", - "PlateT15_C4", - "PlateT15_D4", - "PlateT15_E4", - "PlateT15_F4", - "PlateT15_G4", - "PlateT15_H4", - "PlateT15_A5", - "PlateT15_B5", - "PlateT15_C5", - "PlateT15_D5", - "PlateT15_E5", - "PlateT15_F5", - "PlateT15_G5", - "PlateT15_H5", - "PlateT15_A6", - "PlateT15_B6", - "PlateT15_C6", - "PlateT15_D6", - "PlateT15_E6", - "PlateT15_F6", - "PlateT15_G6", - "PlateT15_H6", - "PlateT15_A7", - "PlateT15_B7", - "PlateT15_C7", - "PlateT15_D7", - "PlateT15_E7", - "PlateT15_F7", - "PlateT15_G7", - "PlateT15_H7", - "PlateT15_A8", - "PlateT15_B8", - "PlateT15_C8", - "PlateT15_D8", - "PlateT15_E8", - "PlateT15_F8", - "PlateT15_G8", - "PlateT15_H8", - "PlateT15_A9", - "PlateT15_B9", - "PlateT15_C9", - "PlateT15_D9", - "PlateT15_E9", - "PlateT15_F9", - "PlateT15_G9", - "PlateT15_H9", - "PlateT15_A10", - "PlateT15_B10", - "PlateT15_C10", - "PlateT15_D10", - "PlateT15_E10", - "PlateT15_F10", - "PlateT15_G10", - "PlateT15_H10", - "PlateT15_A11", - "PlateT15_B11", - "PlateT15_C11", - "PlateT15_D11", - "PlateT15_E11", - "PlateT15_F11", - "PlateT15_G11", - "PlateT15_H11", - "PlateT15_A12", - "PlateT15_B12", - "PlateT15_C12", - "PlateT15_D12", - "PlateT15_E12", - "PlateT15_F12", - "PlateT15_G12", - "PlateT15_H12" - ], - "parent": "PRCXI_Deck", - "type": "plate", - "class": "", - "position": { - "x": 0, - "y": 0, - "z": 0 - }, - "config": { - "type": "PRCXI9300Plate", - "size_x": 50, - "size_y": 50, - "size_z": 10, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "plate", - "model": null, - "barcode": null, - "ordering": { - "A1": "PlateT15_A1", - "B1": "PlateT15_B1", - "C1": "PlateT15_C1", - "D1": "PlateT15_D1", - "E1": "PlateT15_E1", - "F1": "PlateT15_F1", - "G1": "PlateT15_G1", - "H1": "PlateT15_H1", - "A2": "PlateT15_A2", - "B2": "PlateT15_B2", - "C2": "PlateT15_C2", - "D2": "PlateT15_D2", - "E2": "PlateT15_E2", - "F2": "PlateT15_F2", - "G2": "PlateT15_G2", - "H2": "PlateT15_H2", - "A3": "PlateT15_A3", - "B3": "PlateT15_B3", - "C3": "PlateT15_C3", - "D3": "PlateT15_D3", - "E3": "PlateT15_E3", - "F3": "PlateT15_F3", - "G3": "PlateT15_G3", - "H3": "PlateT15_H3", - "A4": "PlateT15_A4", - "B4": "PlateT15_B4", - "C4": "PlateT15_C4", - "D4": "PlateT15_D4", - "E4": "PlateT15_E4", - "F4": "PlateT15_F4", - "G4": "PlateT15_G4", - "H4": "PlateT15_H4", - "A5": "PlateT15_A5", - "B5": "PlateT15_B5", - "C5": "PlateT15_C5", - "D5": "PlateT15_D5", - "E5": "PlateT15_E5", - "F5": "PlateT15_F5", - "G5": "PlateT15_G5", - "H5": "PlateT15_H5", - "A6": "PlateT15_A6", - "B6": "PlateT15_B6", - "C6": "PlateT15_C6", - "D6": "PlateT15_D6", - "E6": "PlateT15_E6", - "F6": "PlateT15_F6", - "G6": "PlateT15_G6", - "H6": "PlateT15_H6", - "A7": "PlateT15_A7", - "B7": "PlateT15_B7", - "C7": "PlateT15_C7", - "D7": "PlateT15_D7", - "E7": "PlateT15_E7", - "F7": "PlateT15_F7", - "G7": "PlateT15_G7", - "H7": "PlateT15_H7", - "A8": "PlateT15_A8", - "B8": "PlateT15_B8", - "C8": "PlateT15_C8", - "D8": "PlateT15_D8", - "E8": "PlateT15_E8", - "F8": "PlateT15_F8", - "G8": "PlateT15_G8", - "H8": "PlateT15_H8", - "A9": "PlateT15_A9", - "B9": "PlateT15_B9", - "C9": "PlateT15_C9", - "D9": "PlateT15_D9", - "E9": "PlateT15_E9", - "F9": "PlateT15_F9", - "G9": "PlateT15_G9", - "H9": "PlateT15_H9", - "A10": "PlateT15_A10", - "B10": "PlateT15_B10", - "C10": "PlateT15_C10", - "D10": "PlateT15_D10", - "E10": "PlateT15_E10", - "F10": "PlateT15_F10", - "G10": "PlateT15_G10", - "H10": "PlateT15_H10", - "A11": "PlateT15_A11", - "B11": "PlateT15_B11", - "C11": "PlateT15_C11", - "D11": "PlateT15_D11", - "E11": "PlateT15_E11", - "F11": "PlateT15_F11", - "G11": "PlateT15_G11", - "H11": "PlateT15_H11", - "A12": "PlateT15_A12", - "B12": "PlateT15_B12", - "C12": "PlateT15_C12", - "D12": "PlateT15_D12", - "E12": "PlateT15_E12", - "F12": "PlateT15_F12", - "G12": "PlateT15_G12", - "H12": "PlateT15_H12" - } - }, - "data": { - "Material": { - "uuid": "04211a2dc93547fe9bf6121eac533650" - } - } - }, - { - "id": "PlateT15_A1", - "name": "PlateT15_A1", - "sample_id": null, - "children": [], - "parent": "PlateT15", - "type": "well", - "class": "", - "position": { - "x": 11.9545, - "y": 71.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT15_B1", - "name": "PlateT15_B1", - "sample_id": null, - "children": [], - "parent": "PlateT15", - "type": "well", - "class": "", - "position": { - "x": 11.9545, - "y": 62.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT15_C1", - "name": "PlateT15_C1", - "sample_id": null, - "children": [], - "parent": "PlateT15", - "type": "well", - "class": "", - "position": { - "x": 11.9545, - "y": 53.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT15_D1", - "name": "PlateT15_D1", - "sample_id": null, - "children": [], - "parent": "PlateT15", - "type": "well", - "class": "", - "position": { - "x": 11.9545, - "y": 44.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT15_E1", - "name": "PlateT15_E1", - "sample_id": null, - "children": [], - "parent": "PlateT15", - "type": "well", - "class": "", - "position": { - "x": 11.9545, - "y": 35.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT15_F1", - "name": "PlateT15_F1", - "sample_id": null, - "children": [], - "parent": "PlateT15", - "type": "well", - "class": "", - "position": { - "x": 11.9545, - "y": 26.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT15_G1", - "name": "PlateT15_G1", - "sample_id": null, - "children": [], - "parent": "PlateT15", - "type": "well", - "class": "", - "position": { - "x": 11.9545, - "y": 17.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT15_H1", - "name": "PlateT15_H1", - "sample_id": null, - "children": [], - "parent": "PlateT15", - "type": "well", - "class": "", - "position": { - "x": 11.9545, - "y": 8.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT15_A2", - "name": "PlateT15_A2", - "sample_id": null, - "children": [], - "parent": "PlateT15", - "type": "well", - "class": "", - "position": { - "x": 20.9545, - "y": 71.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT15_B2", - "name": "PlateT15_B2", - "sample_id": null, - "children": [], - "parent": "PlateT15", - "type": "well", - "class": "", - "position": { - "x": 20.9545, - "y": 62.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT15_C2", - "name": "PlateT15_C2", - "sample_id": null, - "children": [], - "parent": "PlateT15", - "type": "well", - "class": "", - "position": { - "x": 20.9545, - "y": 53.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT15_D2", - "name": "PlateT15_D2", - "sample_id": null, - "children": [], - "parent": "PlateT15", - "type": "well", - "class": "", - "position": { - "x": 20.9545, - "y": 44.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT15_E2", - "name": "PlateT15_E2", - "sample_id": null, - "children": [], - "parent": "PlateT15", - "type": "well", - "class": "", - "position": { - "x": 20.9545, - "y": 35.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT15_F2", - "name": "PlateT15_F2", - "sample_id": null, - "children": [], - "parent": "PlateT15", - "type": "well", - "class": "", - "position": { - "x": 20.9545, - "y": 26.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT15_G2", - "name": "PlateT15_G2", - "sample_id": null, - "children": [], - "parent": "PlateT15", - "type": "well", - "class": "", - "position": { - "x": 20.9545, - "y": 17.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT15_H2", - "name": "PlateT15_H2", - "sample_id": null, - "children": [], - "parent": "PlateT15", - "type": "well", - "class": "", - "position": { - "x": 20.9545, - "y": 8.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT15_A3", - "name": "PlateT15_A3", - "sample_id": null, - "children": [], - "parent": "PlateT15", - "type": "well", - "class": "", - "position": { - "x": 29.9545, - "y": 71.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT15_B3", - "name": "PlateT15_B3", - "sample_id": null, - "children": [], - "parent": "PlateT15", - "type": "well", - "class": "", - "position": { - "x": 29.9545, - "y": 62.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT15_C3", - "name": "PlateT15_C3", - "sample_id": null, - "children": [], - "parent": "PlateT15", - "type": "well", - "class": "", - "position": { - "x": 29.9545, - "y": 53.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT15_D3", - "name": "PlateT15_D3", - "sample_id": null, - "children": [], - "parent": "PlateT15", - "type": "well", - "class": "", - "position": { - "x": 29.9545, - "y": 44.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT15_E3", - "name": "PlateT15_E3", - "sample_id": null, - "children": [], - "parent": "PlateT15", - "type": "well", - "class": "", - "position": { - "x": 29.9545, - "y": 35.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT15_F3", - "name": "PlateT15_F3", - "sample_id": null, - "children": [], - "parent": "PlateT15", - "type": "well", - "class": "", - "position": { - "x": 29.9545, - "y": 26.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT15_G3", - "name": "PlateT15_G3", - "sample_id": null, - "children": [], - "parent": "PlateT15", - "type": "well", - "class": "", - "position": { - "x": 29.9545, - "y": 17.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT15_H3", - "name": "PlateT15_H3", - "sample_id": null, - "children": [], - "parent": "PlateT15", - "type": "well", - "class": "", - "position": { - "x": 29.9545, - "y": 8.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT15_A4", - "name": "PlateT15_A4", - "sample_id": null, - "children": [], - "parent": "PlateT15", - "type": "well", - "class": "", - "position": { - "x": 38.9545, - "y": 71.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT15_B4", - "name": "PlateT15_B4", - "sample_id": null, - "children": [], - "parent": "PlateT15", - "type": "well", - "class": "", - "position": { - "x": 38.9545, - "y": 62.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT15_C4", - "name": "PlateT15_C4", - "sample_id": null, - "children": [], - "parent": "PlateT15", - "type": "well", - "class": "", - "position": { - "x": 38.9545, - "y": 53.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT15_D4", - "name": "PlateT15_D4", - "sample_id": null, - "children": [], - "parent": "PlateT15", - "type": "well", - "class": "", - "position": { - "x": 38.9545, - "y": 44.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT15_E4", - "name": "PlateT15_E4", - "sample_id": null, - "children": [], - "parent": "PlateT15", - "type": "well", - "class": "", - "position": { - "x": 38.9545, - "y": 35.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT15_F4", - "name": "PlateT15_F4", - "sample_id": null, - "children": [], - "parent": "PlateT15", - "type": "well", - "class": "", - "position": { - "x": 38.9545, - "y": 26.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT15_G4", - "name": "PlateT15_G4", - "sample_id": null, - "children": [], - "parent": "PlateT15", - "type": "well", - "class": "", - "position": { - "x": 38.9545, - "y": 17.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT15_H4", - "name": "PlateT15_H4", - "sample_id": null, - "children": [], - "parent": "PlateT15", - "type": "well", - "class": "", - "position": { - "x": 38.9545, - "y": 8.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT15_A5", - "name": "PlateT15_A5", - "sample_id": null, - "children": [], - "parent": "PlateT15", - "type": "well", - "class": "", - "position": { - "x": 47.9545, - "y": 71.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT15_B5", - "name": "PlateT15_B5", - "sample_id": null, - "children": [], - "parent": "PlateT15", - "type": "well", - "class": "", - "position": { - "x": 47.9545, - "y": 62.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT15_C5", - "name": "PlateT15_C5", - "sample_id": null, - "children": [], - "parent": "PlateT15", - "type": "well", - "class": "", - "position": { - "x": 47.9545, - "y": 53.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT15_D5", - "name": "PlateT15_D5", - "sample_id": null, - "children": [], - "parent": "PlateT15", - "type": "well", - "class": "", - "position": { - "x": 47.9545, - "y": 44.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT15_E5", - "name": "PlateT15_E5", - "sample_id": null, - "children": [], - "parent": "PlateT15", - "type": "well", - "class": "", - "position": { - "x": 47.9545, - "y": 35.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT15_F5", - "name": "PlateT15_F5", - "sample_id": null, - "children": [], - "parent": "PlateT15", - "type": "well", - "class": "", - "position": { - "x": 47.9545, - "y": 26.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT15_G5", - "name": "PlateT15_G5", - "sample_id": null, - "children": [], - "parent": "PlateT15", - "type": "well", - "class": "", - "position": { - "x": 47.9545, - "y": 17.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT15_H5", - "name": "PlateT15_H5", - "sample_id": null, - "children": [], - "parent": "PlateT15", - "type": "well", - "class": "", - "position": { - "x": 47.9545, - "y": 8.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT15_A6", - "name": "PlateT15_A6", - "sample_id": null, - "children": [], - "parent": "PlateT15", - "type": "well", - "class": "", - "position": { - "x": 56.9545, - "y": 71.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT15_B6", - "name": "PlateT15_B6", - "sample_id": null, - "children": [], - "parent": "PlateT15", - "type": "well", - "class": "", - "position": { - "x": 56.9545, - "y": 62.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT15_C6", - "name": "PlateT15_C6", - "sample_id": null, - "children": [], - "parent": "PlateT15", - "type": "well", - "class": "", - "position": { - "x": 56.9545, - "y": 53.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT15_D6", - "name": "PlateT15_D6", - "sample_id": null, - "children": [], - "parent": "PlateT15", - "type": "well", - "class": "", - "position": { - "x": 56.9545, - "y": 44.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT15_E6", - "name": "PlateT15_E6", - "sample_id": null, - "children": [], - "parent": "PlateT15", - "type": "well", - "class": "", - "position": { - "x": 56.9545, - "y": 35.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT15_F6", - "name": "PlateT15_F6", - "sample_id": null, - "children": [], - "parent": "PlateT15", - "type": "well", - "class": "", - "position": { - "x": 56.9545, - "y": 26.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT15_G6", - "name": "PlateT15_G6", - "sample_id": null, - "children": [], - "parent": "PlateT15", - "type": "well", - "class": "", - "position": { - "x": 56.9545, - "y": 17.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT15_H6", - "name": "PlateT15_H6", - "sample_id": null, - "children": [], - "parent": "PlateT15", - "type": "well", - "class": "", - "position": { - "x": 56.9545, - "y": 8.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT15_A7", - "name": "PlateT15_A7", - "sample_id": null, - "children": [], - "parent": "PlateT15", - "type": "well", - "class": "", - "position": { - "x": 65.9545, - "y": 71.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT15_B7", - "name": "PlateT15_B7", - "sample_id": null, - "children": [], - "parent": "PlateT15", - "type": "well", - "class": "", - "position": { - "x": 65.9545, - "y": 62.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT15_C7", - "name": "PlateT15_C7", - "sample_id": null, - "children": [], - "parent": "PlateT15", - "type": "well", - "class": "", - "position": { - "x": 65.9545, - "y": 53.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT15_D7", - "name": "PlateT15_D7", - "sample_id": null, - "children": [], - "parent": "PlateT15", - "type": "well", - "class": "", - "position": { - "x": 65.9545, - "y": 44.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT15_E7", - "name": "PlateT15_E7", - "sample_id": null, - "children": [], - "parent": "PlateT15", - "type": "well", - "class": "", - "position": { - "x": 65.9545, - "y": 35.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT15_F7", - "name": "PlateT15_F7", - "sample_id": null, - "children": [], - "parent": "PlateT15", - "type": "well", - "class": "", - "position": { - "x": 65.9545, - "y": 26.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT15_G7", - "name": "PlateT15_G7", - "sample_id": null, - "children": [], - "parent": "PlateT15", - "type": "well", - "class": "", - "position": { - "x": 65.9545, - "y": 17.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT15_H7", - "name": "PlateT15_H7", - "sample_id": null, - "children": [], - "parent": "PlateT15", - "type": "well", - "class": "", - "position": { - "x": 65.9545, - "y": 8.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT15_A8", - "name": "PlateT15_A8", - "sample_id": null, - "children": [], - "parent": "PlateT15", - "type": "well", - "class": "", - "position": { - "x": 74.9545, - "y": 71.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT15_B8", - "name": "PlateT15_B8", - "sample_id": null, - "children": [], - "parent": "PlateT15", - "type": "well", - "class": "", - "position": { - "x": 74.9545, - "y": 62.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT15_C8", - "name": "PlateT15_C8", - "sample_id": null, - "children": [], - "parent": "PlateT15", - "type": "well", - "class": "", - "position": { - "x": 74.9545, - "y": 53.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT15_D8", - "name": "PlateT15_D8", - "sample_id": null, - "children": [], - "parent": "PlateT15", - "type": "well", - "class": "", - "position": { - "x": 74.9545, - "y": 44.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT15_E8", - "name": "PlateT15_E8", - "sample_id": null, - "children": [], - "parent": "PlateT15", - "type": "well", - "class": "", - "position": { - "x": 74.9545, - "y": 35.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT15_F8", - "name": "PlateT15_F8", - "sample_id": null, - "children": [], - "parent": "PlateT15", - "type": "well", - "class": "", - "position": { - "x": 74.9545, - "y": 26.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT15_G8", - "name": "PlateT15_G8", - "sample_id": null, - "children": [], - "parent": "PlateT15", - "type": "well", - "class": "", - "position": { - "x": 74.9545, - "y": 17.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT15_H8", - "name": "PlateT15_H8", - "sample_id": null, - "children": [], - "parent": "PlateT15", - "type": "well", - "class": "", - "position": { - "x": 74.9545, - "y": 8.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT15_A9", - "name": "PlateT15_A9", - "sample_id": null, - "children": [], - "parent": "PlateT15", - "type": "well", - "class": "", - "position": { - "x": 83.9545, - "y": 71.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT15_B9", - "name": "PlateT15_B9", - "sample_id": null, - "children": [], - "parent": "PlateT15", - "type": "well", - "class": "", - "position": { - "x": 83.9545, - "y": 62.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT15_C9", - "name": "PlateT15_C9", - "sample_id": null, - "children": [], - "parent": "PlateT15", - "type": "well", - "class": "", - "position": { - "x": 83.9545, - "y": 53.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT15_D9", - "name": "PlateT15_D9", - "sample_id": null, - "children": [], - "parent": "PlateT15", - "type": "well", - "class": "", - "position": { - "x": 83.9545, - "y": 44.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT15_E9", - "name": "PlateT15_E9", - "sample_id": null, - "children": [], - "parent": "PlateT15", - "type": "well", - "class": "", - "position": { - "x": 83.9545, - "y": 35.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT15_F9", - "name": "PlateT15_F9", - "sample_id": null, - "children": [], - "parent": "PlateT15", - "type": "well", - "class": "", - "position": { - "x": 83.9545, - "y": 26.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT15_G9", - "name": "PlateT15_G9", - "sample_id": null, - "children": [], - "parent": "PlateT15", - "type": "well", - "class": "", - "position": { - "x": 83.9545, - "y": 17.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT15_H9", - "name": "PlateT15_H9", - "sample_id": null, - "children": [], - "parent": "PlateT15", - "type": "well", - "class": "", - "position": { - "x": 83.9545, - "y": 8.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT15_A10", - "name": "PlateT15_A10", - "sample_id": null, - "children": [], - "parent": "PlateT15", - "type": "well", - "class": "", - "position": { - "x": 92.9545, - "y": 71.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT15_B10", - "name": "PlateT15_B10", - "sample_id": null, - "children": [], - "parent": "PlateT15", - "type": "well", - "class": "", - "position": { - "x": 92.9545, - "y": 62.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT15_C10", - "name": "PlateT15_C10", - "sample_id": null, - "children": [], - "parent": "PlateT15", - "type": "well", - "class": "", - "position": { - "x": 92.9545, - "y": 53.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT15_D10", - "name": "PlateT15_D10", - "sample_id": null, - "children": [], - "parent": "PlateT15", - "type": "well", - "class": "", - "position": { - "x": 92.9545, - "y": 44.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT15_E10", - "name": "PlateT15_E10", - "sample_id": null, - "children": [], - "parent": "PlateT15", - "type": "well", - "class": "", - "position": { - "x": 92.9545, - "y": 35.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT15_F10", - "name": "PlateT15_F10", - "sample_id": null, - "children": [], - "parent": "PlateT15", - "type": "well", - "class": "", - "position": { - "x": 92.9545, - "y": 26.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT15_G10", - "name": "PlateT15_G10", - "sample_id": null, - "children": [], - "parent": "PlateT15", - "type": "well", - "class": "", - "position": { - "x": 92.9545, - "y": 17.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT15_H10", - "name": "PlateT15_H10", - "sample_id": null, - "children": [], - "parent": "PlateT15", - "type": "well", - "class": "", - "position": { - "x": 92.9545, - "y": 8.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT15_A11", - "name": "PlateT15_A11", - "sample_id": null, - "children": [], - "parent": "PlateT15", - "type": "well", - "class": "", - "position": { - "x": 101.9545, - "y": 71.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT15_B11", - "name": "PlateT15_B11", - "sample_id": null, - "children": [], - "parent": "PlateT15", - "type": "well", - "class": "", - "position": { - "x": 101.9545, - "y": 62.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT15_C11", - "name": "PlateT15_C11", - "sample_id": null, - "children": [], - "parent": "PlateT15", - "type": "well", - "class": "", - "position": { - "x": 101.9545, - "y": 53.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT15_D11", - "name": "PlateT15_D11", - "sample_id": null, - "children": [], - "parent": "PlateT15", - "type": "well", - "class": "", - "position": { - "x": 101.9545, - "y": 44.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT15_E11", - "name": "PlateT15_E11", - "sample_id": null, - "children": [], - "parent": "PlateT15", - "type": "well", - "class": "", - "position": { - "x": 101.9545, - "y": 35.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT15_F11", - "name": "PlateT15_F11", - "sample_id": null, - "children": [], - "parent": "PlateT15", - "type": "well", - "class": "", - "position": { - "x": 101.9545, - "y": 26.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT15_G11", - "name": "PlateT15_G11", - "sample_id": null, - "children": [], - "parent": "PlateT15", - "type": "well", - "class": "", - "position": { - "x": 101.9545, - "y": 17.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT15_H11", - "name": "PlateT15_H11", - "sample_id": null, - "children": [], - "parent": "PlateT15", - "type": "well", - "class": "", - "position": { - "x": 101.9545, - "y": 8.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT15_A12", - "name": "PlateT15_A12", - "sample_id": null, - "children": [], - "parent": "PlateT15", - "type": "well", - "class": "", - "position": { - "x": 110.9545, - "y": 71.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT15_B12", - "name": "PlateT15_B12", - "sample_id": null, - "children": [], - "parent": "PlateT15", - "type": "well", - "class": "", - "position": { - "x": 110.9545, - "y": 62.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT15_C12", - "name": "PlateT15_C12", - "sample_id": null, - "children": [], - "parent": "PlateT15", - "type": "well", - "class": "", - "position": { - "x": 110.9545, - "y": 53.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT15_D12", - "name": "PlateT15_D12", - "sample_id": null, - "children": [], - "parent": "PlateT15", - "type": "well", - "class": "", - "position": { - "x": 110.9545, - "y": 44.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT15_E12", - "name": "PlateT15_E12", - "sample_id": null, - "children": [], - "parent": "PlateT15", - "type": "well", - "class": "", - "position": { - "x": 110.9545, - "y": 35.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT15_F12", - "name": "PlateT15_F12", - "sample_id": null, - "children": [], - "parent": "PlateT15", - "type": "well", - "class": "", - "position": { - "x": 110.9545, - "y": 26.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT15_G12", - "name": "PlateT15_G12", - "sample_id": null, - "children": [], - "parent": "PlateT15", - "type": "well", - "class": "", - "position": { - "x": 110.9545, - "y": 17.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "PlateT15_H12", - "name": "PlateT15_H12", - "sample_id": null, - "children": [], - "parent": "PlateT15", - "type": "well", - "class": "", - "position": { - "x": 110.9545, - "y": 8.8145, - "z": 3.55 - }, - "config": { - "type": "Well", - "size_x": 4.851, - "size_y": 4.851, - "size_z": 10.67, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "well", - "model": null, - "barcode": null, - "max_volume": 360, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null, - "bottom_type": "unknown", - "cross_section_type": "circle" - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - }, - { - "id": "trash", - "name": "trash", - "sample_id": null, - "children": [], - "parent": "PRCXI_Deck", - "type": "container", - "class": "", - "position": { - "x": 0, - "y": 0, - "z": 0 - }, - "config": { - "type": "PRCXI9300Trash", - "size_x": 50, - "size_y": 50, - "size_z": 10, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "trash", - "model": null, - "barcode": null, - "max_volume": "Infinity", - "material_z_thickness": 0, - "compute_volume_from_height": null, - "compute_height_from_volume": null - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [], - "Material": { - "uuid": "730067cf07ae43849ddf4034299030e9" - } - } - } -] \ No newline at end of file diff --git a/unilabos/devices/liquid_handling/prcxi/json_output/CodeDataEntity.json b/unilabos/devices/liquid_handling/prcxi/json_output/CodeDataEntity.json deleted file mode 100644 index 0637a088..00000000 --- a/unilabos/devices/liquid_handling/prcxi/json_output/CodeDataEntity.json +++ /dev/null @@ -1 +0,0 @@ -[] \ No newline at end of file diff --git a/unilabos/devices/liquid_handling/prcxi/json_output/CurveCompensate.json b/unilabos/devices/liquid_handling/prcxi/json_output/CurveCompensate.json deleted file mode 100644 index 4ffd4c4f..00000000 --- a/unilabos/devices/liquid_handling/prcxi/json_output/CurveCompensate.json +++ /dev/null @@ -1,607 +0,0 @@ -[ - { - "Id": "1853794d-8cc1-4268-94b8-fc83e8be3ecc", - "StartDosage": 1.0, - "EndDosage": 55.0, - "Aspiration": 0.0, - "Dispensing": 0.0, - "K": 2126.89990234375, - "B": 2085.300048828125, - "compensateEnum": 7, - "materialVolume": 10 - }, - { - "Id": "37a31398-499c-4df3-9bfe-ff92e6bc1427", - "StartDosage": 1.0, - "EndDosage": 303.0, - "Aspiration": -1.0, - "Dispensing": 0.0, - "K": 2229.6, - "B": 3082.7, - "compensateEnum": 7, - "materialVolume": 1000 - }, - { - "Id": "e602c693-e51c-4485-8788-beb3560e0599", - "StartDosage": 303.0, - "EndDosage": 400.0, - "Aspiration": -0.8, - "Dispensing": 0.0, - "K": 2156.6, - "B": 9582.1, - "compensateEnum": 7, - "materialVolume": 1000 - }, - { - "Id": "d7cdf777-ae58-46ab-b1ec-a5e59496bb8a", - "StartDosage": 400.0, - "EndDosage": 501.0, - "Aspiration": -1.5, - "Dispensing": 0.0, - "K": 2087.9, - "B": 37256.0, - "compensateEnum": 7, - "materialVolume": 1000 - }, - { - "Id": "6149a3a7-98fb-4270-83b4-4f21b5c4e8d8", - "StartDosage": 501.0, - "EndDosage": 600.0, - "Aspiration": -1.5, - "Dispensing": 0.0, - "K": 2185.0, - "B": -12375.0, - "compensateEnum": 7, - "materialVolume": 1000 - }, - { - "Id": "039f5735-a598-482d-b21d-b265d5e7436a", - "StartDosage": 600.0, - "EndDosage": 700.0, - "Aspiration": -6.0, - "Dispensing": 0.0, - "K": 2222.0, - "B": -30370.0, - "compensateEnum": 7, - "materialVolume": 1000 - }, - { - "Id": "80875977-ee0f-49f4-b10d-de429e57c5b8", - "StartDosage": 700.0, - "EndDosage": 800.0, - "Aspiration": -6.0, - "Dispensing": 0.0, - "K": 1705.0, - "B": 324436.0, - "compensateEnum": 7, - "materialVolume": 1000 - }, - { - "Id": "a38afc7c-9c86-4014-a669-a7d159fb0c70", - "StartDosage": 800.0, - "EndDosage": 900.0, - "Aspiration": 0.0, - "Dispensing": 0.0, - "K": 2068.0, - "B": 61331.0, - "compensateEnum": 7, - "materialVolume": 1000 - }, - { - "Id": "a5ce0671-8767-4752-a04c-fdbdc3c7dc91", - "StartDosage": 900.0, - "EndDosage": 1001.0, - "Aspiration": 3.0, - "Dispensing": 0.0, - "K": 2047.2, - "B": 78417.0, - "compensateEnum": 7, - "materialVolume": 1000 - }, - { - "Id": "14daba17-0a35-474f-9f8a-e9ea6c355eb0", - "StartDosage": 1.0, - "EndDosage": 303.0, - "Aspiration": -1.0, - "Dispensing": 0.0, - "K": 2229.6, - "B": 3082.7, - "compensateEnum": 6, - "materialVolume": 1000 - }, - { - "Id": "82c2439c-79f6-4f61-9518-1b1205e44027", - "StartDosage": 303.0, - "EndDosage": 400.0, - "Aspiration": -0.8, - "Dispensing": 0.0, - "K": 2156.6, - "B": 9582.1, - "compensateEnum": 6, - "materialVolume": 1000 - }, - { - "Id": "7981db10-4005-4c62-a22d-fac90875e91c", - "StartDosage": 400.0, - "EndDosage": 501.0, - "Aspiration": -1.5, - "Dispensing": 0.0, - "K": 2087.9, - "B": 37256.0, - "compensateEnum": 6, - "materialVolume": 1000 - }, - { - "Id": "ae7606fd-98fa-4236-bec4-a4d60018dbea", - "StartDosage": 501.0, - "EndDosage": 600.0, - "Aspiration": -1.5, - "Dispensing": 0.0, - "K": 2185.0, - "B": -12375.0, - "compensateEnum": 6, - "materialVolume": 1000 - }, - { - "Id": "ed2a2db0-77b6-4a0a-ac36-7184f0b2c2c8", - "StartDosage": 600.0, - "EndDosage": 700.0, - "Aspiration": -6.0, - "Dispensing": 0.0, - "K": 2222.0, - "B": -30370.0, - "compensateEnum": 6, - "materialVolume": 1000 - }, - { - "Id": "ed639da4-b02f-4d2a-825d-b47cebdfbf1b", - "StartDosage": 700.0, - "EndDosage": 800.0, - "Aspiration": -6.0, - "Dispensing": 0.0, - "K": 1705.0, - "B": 324436.0, - "compensateEnum": 6, - "materialVolume": 1000 - }, - { - "Id": "7e740c8a-1043-4db1-820f-2e6e77386d7f", - "StartDosage": 800.0, - "EndDosage": 900.0, - "Aspiration": 0.0, - "Dispensing": 0.0, - "K": 2068.0, - "B": 61331.0, - "compensateEnum": 6, - "materialVolume": 1000 - }, - { - "Id": "49b6c4fe-e11a-4056-8de7-fd9a2b81bc90", - "StartDosage": 900.0, - "EndDosage": 1001.0, - "Aspiration": 3.0, - "Dispensing": 0.0, - "K": 2047.2, - "B": 78417.0, - "compensateEnum": 6, - "materialVolume": 1000 - }, - { - "Id": "67dee69d-a2a9-4598-8d8d-98b211a58821", - "StartDosage": 1.0, - "EndDosage": 6.0, - "Aspiration": 0.0, - "Dispensing": 0.0, - "K": 20211.0, - "B": 10779.0, - "compensateEnum": 5, - "materialVolume": 50 - }, - { - "Id": "d5c1b2b0-f897-4873-86bf-0ce5f443dfd3", - "StartDosage": 6.0, - "EndDosage": 25.0, - "Aspiration": 0.0, - "Dispensing": 0.0, - "K": 20211.0, - "B": 10779.0, - "compensateEnum": 5, - "materialVolume": 50 - }, - { - "Id": "b2789b53-6e0e-4b83-9932-f41c83d10da8", - "StartDosage": 25.0, - "EndDosage": 50.0, - "Aspiration": 0.0, - "Dispensing": 0.0, - "K": 20015.0, - "B": 17507.0, - "compensateEnum": 5, - "materialVolume": 50 - }, - { - "Id": "1f0d0bbb-6ea2-4d19-8452-6824fa1f474c", - "StartDosage": 0.1, - "EndDosage": 5.0, - "Aspiration": -1.1, - "Dispensing": 0.0, - "K": 1981.1, - "B": 3498.1, - "compensateEnum": 5, - "materialVolume": 300 - }, - { - "Id": "c58111db-dadc-43bd-97b3-a596f441d704", - "StartDosage": 5.0, - "EndDosage": 10.0, - "Aspiration": -1.1, - "Dispensing": 0.0, - "K": 2113.3, - "B": 2810.8, - "compensateEnum": 5, - "materialVolume": 300 - }, - { - "Id": "a15fd33d-28cd-4bca-bd6c-018e3bafcb65", - "StartDosage": 10.0, - "EndDosage": 50.0, - "Aspiration": -0.8, - "Dispensing": 0.0, - "K": 2113.3, - "B": 2810.8, - "compensateEnum": 5, - "materialVolume": 300 - }, - { - "Id": "ab957383-d83d-4fcc-8373-9d8f415c3023", - "StartDosage": 50.0, - "EndDosage": 100.0, - "Aspiration": -0.1, - "Dispensing": 0.0, - "K": 2093.7, - "B": 2969.2, - "compensateEnum": 5, - "materialVolume": 300 - }, - { - "Id": "be6b6f79-222f-4f6f-ae73-e537f397a11e", - "StartDosage": 100.0, - "EndDosage": 150.0, - "Aspiration": 1.7, - "Dispensing": 0.0, - "K": 2093.7, - "B": 2969.2, - "compensateEnum": 5, - "materialVolume": 300 - }, - { - "Id": "0ab3fc05-8f9f-4dc0-a2ce-918ade17810c", - "StartDosage": 150.0, - "EndDosage": 200.0, - "Aspiration": 0.0, - "Dispensing": 0.0, - "K": 2085.0, - "B": 3548.3, - "compensateEnum": 5, - "materialVolume": 300 - }, - { - "Id": "43b82710-37df-4039-9513-aa49bc5bc607", - "StartDosage": 200.0, - "EndDosage": 250.0, - "Aspiration": 4.0, - "Dispensing": 0.0, - "K": 2085.0, - "B": 3548.3, - "compensateEnum": 5, - "materialVolume": 300 - }, - { - "Id": "2f208ffc-808f-4bf9-b443-14dbf0338d83", - "StartDosage": 250.0, - "EndDosage": 310.0, - "Aspiration": 5.3, - "Dispensing": 0.0, - "K": 2085.0, - "B": 3548.3, - "compensateEnum": 5, - "materialVolume": 300 - }, - { - "Id": "84bb5356-481d-41b9-a563-917e64b5e20c", - "StartDosage": 1.0, - "EndDosage": 10.0, - "Aspiration": 0.0, - "Dispensing": 0.0, - "K": 964.19, - "B": 1207.7, - "compensateEnum": 5, - "materialVolume": 1000 - }, - { - "Id": "67463c2c-a520-4d33-831f-e0c3cdcdec60", - "StartDosage": 10.0, - "EndDosage": 50.0, - "Aspiration": 0.5, - "Dispensing": 0.0, - "K": 964.19, - "B": 1207.7, - "compensateEnum": 5, - "materialVolume": 1000 - }, - { - "Id": "a752d77e-7c5d-450a-8b54-e87513facda0", - "StartDosage": 50.0, - "EndDosage": 100.0, - "Aspiration": 0.0, - "Dispensing": 0.0, - "K": 964.19, - "B": 1207.7, - "compensateEnum": 5, - "materialVolume": 1000 - }, - { - "Id": "d30f522a-5992-4be4-984d-0c27b9e8f410", - "StartDosage": 100.0, - "EndDosage": 300.0, - "Aspiration": 1.8, - "Dispensing": 0.0, - "K": 937.8, - "B": 3550.1, - "compensateEnum": 5, - "materialVolume": 1000 - }, - { - "Id": "29914cbe-ad35-4712-80b1-8c4e54f9fc15", - "StartDosage": 300.0, - "EndDosage": 500.0, - "Aspiration": 2.5, - "Dispensing": 0.0, - "K": 937.8, - "B": 3550.1, - "compensateEnum": 5, - "materialVolume": 1000 - }, - { - "Id": "b75b1d6d-9b53-4b5c-b6ab-640cb23491d8", - "StartDosage": 500.0, - "EndDosage": 800.0, - "Aspiration": 50.0, - "Dispensing": 0.0, - "K": 928.69, - "B": 8253.7, - "compensateEnum": 5, - "materialVolume": 1000 - }, - { - "Id": "1658a9de-bb62-4dd6-9715-0e8e71b27f97", - "StartDosage": 800.0, - "EndDosage": 900.0, - "Aspiration": 4.0, - "Dispensing": 0.0, - "K": 928.69, - "B": 8253.7, - "compensateEnum": 5, - "materialVolume": 1000 - }, - { - "Id": "4d0fec65-983d-47f6-82fe-723bb9efd42a", - "StartDosage": 900.0, - "EndDosage": 1050.0, - "Aspiration": 5.0, - "Dispensing": 0.0, - "K": 928.69, - "B": 8253.7, - "compensateEnum": 5, - "materialVolume": 1000 - }, - { - "Id": "f194ad17-3be3-4684-bf21-d458693e640c", - "StartDosage": 1.0, - "EndDosage": 2.0, - "Aspiration": 0.0, - "Dispensing": 0.0, - "K": 62616.0, - "B": 106.49, - "compensateEnum": 5, - "materialVolume": 10 - }, - { - "Id": "fa43155c-8220-4ead-bc8f-6984a25711bf", - "StartDosage": 2.0, - "EndDosage": 7.0, - "Aspiration": -0.1, - "Dispensing": 0.0, - "K": 52421.0, - "B": 20977.0, - "compensateEnum": 5, - "materialVolume": 10 - }, - { - "Id": "9b05eebb-ba5d-427c-bd4f-1b6745bab932", - "StartDosage": 7.0, - "EndDosage": 11.0, - "Aspiration": 0.1, - "Dispensing": 0.0, - "K": 51942.0, - "B": 21434.0, - "compensateEnum": 5, - "materialVolume": 10 - }, - { - "Id": "d4715f09-e24a-4ed2-b784-09256640bcf7", - "StartDosage": 0.5, - "EndDosage": 5.0, - "Aspiration": -1.1, - "Dispensing": 0.0, - "K": 1981.1, - "B": 3498.1, - "compensateEnum": 7, - "materialVolume": 300 - }, - { - "Id": "e37e2fad-954d-4a17-8312-e08bbde00902", - "StartDosage": 5.0, - "EndDosage": 10.0, - "Aspiration": -1.1, - "Dispensing": -0.8, - "K": 2113.3, - "B": 2810.8, - "compensateEnum": 7, - "materialVolume": 300 - }, - { - "Id": "642714bd-22c6-46b5-9a48-2f0bcd91d555", - "StartDosage": 10.0, - "EndDosage": 50.0, - "Aspiration": -0.8, - "Dispensing": -2.0, - "K": 2113.3, - "B": 2810.8, - "compensateEnum": 7, - "materialVolume": 300 - }, - { - "Id": "2fccf79f-52e5-4b6c-be6e-bdac167dd40c", - "StartDosage": 50.0, - "EndDosage": 100.0, - "Aspiration": -0.1, - "Dispensing": 0.0, - "K": 2093.7, - "B": 2969.2, - "compensateEnum": 7, - "materialVolume": 300 - }, - { - "Id": "34555f2c-2e11-4c45-b733-83a8185727da", - "StartDosage": 100.0, - "EndDosage": 150.0, - "Aspiration": 1.7, - "Dispensing": 0.0, - "K": 2093.7, - "B": 2969.2, - "compensateEnum": 7, - "materialVolume": 300 - }, - { - "Id": "9353ac79-b710-49da-a423-4bfe651ac16a", - "StartDosage": 150.0, - "EndDosage": 200.0, - "Aspiration": 0.0, - "Dispensing": 0.0, - "K": 2085.0, - "B": 3548.3, - "compensateEnum": 7, - "materialVolume": 300 - }, - { - "Id": "1628da53-8c86-4eff-b119-07cb7a859bb6", - "StartDosage": 200.0, - "EndDosage": 250.0, - "Aspiration": 4.0, - "Dispensing": 0.0, - "K": 2085.0, - "B": 3548.3, - "compensateEnum": 7, - "materialVolume": 300 - }, - { - "Id": "658913c3-2c3e-4e14-9eb3-0489b5fdee7f", - "StartDosage": 250.0, - "EndDosage": 310.0, - "Aspiration": -11.0, - "Dispensing": 0.0, - "K": 2085.0, - "B": 3548.3, - "compensateEnum": 7, - "materialVolume": 300 - }, - { - "Id": "f736e716-ec13-432c-ac2e-4905753ac6f9", - "StartDosage": 0.1, - "EndDosage": 5.0, - "Aspiration": -1.1, - "Dispensing": 0.0, - "K": 1981.1, - "B": 3498.1, - "compensateEnum": 6, - "materialVolume": 300 - }, - { - "Id": "7595eda8-f2d8-491f-bdac-69d169308ab5", - "StartDosage": 5.0, - "EndDosage": 10.0, - "Aspiration": -1.1, - "Dispensing": 0.0, - "K": 2113.3, - "B": 2810.8, - "compensateEnum": 6, - "materialVolume": 300 - }, - { - "Id": "42eddd0a-8394-4245-8ad3-49573b25286e", - "StartDosage": 10.0, - "EndDosage": 50.0, - "Aspiration": -0.8, - "Dispensing": 0.0, - "K": 2113.3, - "B": 2810.8, - "compensateEnum": 6, - "materialVolume": 300 - }, - { - "Id": "713eadfe-25c0-4ec0-acfd-900df9e12396", - "StartDosage": 50.0, - "EndDosage": 100.0, - "Aspiration": -0.1, - "Dispensing": 0.0, - "K": 2093.7, - "B": 2969.2, - "compensateEnum": 6, - "materialVolume": 300 - }, - { - "Id": "f602c7bd-bdcf-4be0-9d77-a16d409bc64b", - "StartDosage": 100.0, - "EndDosage": 150.0, - "Aspiration": 1.7, - "Dispensing": 0.0, - "K": 2093.7, - "B": 2969.2, - "compensateEnum": 6, - "materialVolume": 300 - }, - { - "Id": "b91867e5-f0a2-4bbe-b37e-aec9837b019e", - "StartDosage": 150.0, - "EndDosage": 200.0, - "Aspiration": 0.0, - "Dispensing": 0.0, - "K": 2085.0, - "B": 3548.3, - "compensateEnum": 6, - "materialVolume": 300 - }, - { - "Id": "bd2e39d7-eb93-4d40-b0b4-2aac6b5678f3", - "StartDosage": 200.0, - "EndDosage": 250.0, - "Aspiration": 4.0, - "Dispensing": 0.0, - "K": 2085.0, - "B": 3548.3, - "compensateEnum": 6, - "materialVolume": 300 - }, - { - "Id": "52e20b7f-f519-434f-86bb-a48238c290d1", - "StartDosage": 250.0, - "EndDosage": 310.0, - "Aspiration": 5.3, - "Dispensing": 0.0, - "K": 2085.0, - "B": 3548.3, - "compensateEnum": 6, - "materialVolume": 300 - } -] \ No newline at end of file diff --git a/unilabos/devices/liquid_handling/prcxi/json_output/_base_material_old_20240226.json b/unilabos/devices/liquid_handling/prcxi/json_output/_base_material_old_20240226.json deleted file mode 100644 index cbd51fb9..00000000 --- a/unilabos/devices/liquid_handling/prcxi/json_output/_base_material_old_20240226.json +++ /dev/null @@ -1,794 +0,0 @@ -[ - { - "uuid": "3b6f33ffbf734014bcc20e3c63e124d4", - "Code": "ZX-58-1250", - "Name": "Tip头适配器 1250uL", - "SummaryName": "Tip头适配器 1250uL", - "SupplyType": 2, - "Factory": "宁静致远", - "LengthNum": 128, - "WidthNum": 85, - "HeightNum": 20, - "DepthNum": 4, - "StandardHeight": 0, - "PipetteHeight": null, - "HoleColum": 1, - "HoleRow": 1, - "ChannelNum": 1, - "HoleDiameter": 0, - "Volume": 1250, - "ImagePath": "/images/20220624015044.jpg", - "QRCode": null, - "Qty": 10, - "CreateName": null, - "CreateTime": "2021-12-30 16:03:52.6583727", - "UpdateName": null, - "UpdateTime": "2022-06-24 13:50:44.8123474", - "IsStright": 0, - "IsGeneral": 0, - "IsControl": 1, - "ArmCode": null, - "XSpacing": null, - "YSpacing": null, - "materialEnum": null - }, - { - "uuid": "7c822592b360451fb59690e49ac6b181", - "Code": "ZX-58-300", - "Name": "ZHONGXI 适配器 300uL", - "SummaryName": "ZHONGXI 适配器 300uL", - "SupplyType": 2, - "Factory": "宁静致远", - "LengthNum": 127, - "WidthNum": 85, - "HeightNum": 81, - "DepthNum": 4, - "StandardHeight": 0, - "PipetteHeight": null, - "HoleColum": 1, - "HoleRow": 1, - "ChannelNum": 1, - "HoleDiameter": 0, - "Volume": 300, - "ImagePath": "/images/20220623102838.jpg", - "QRCode": null, - "Qty": 10, - "CreateName": null, - "CreateTime": "2021-12-30 16:07:53.7453351", - "UpdateName": null, - "UpdateTime": "2022-06-23 10:28:38.6190575", - "IsStright": 0, - "IsGeneral": 0, - "IsControl": 1, - "ArmCode": null, - "XSpacing": null, - "YSpacing": null, - "materialEnum": null - }, - { - "uuid": "8cc3dce884ac41c09f4570d0bcbfb01c", - "Code": "ZX-58-10", - "Name": "吸头10ul 适配器", - "SummaryName": "吸头10ul 适配器", - "SupplyType": 2, - "Factory": "宁静致远", - "LengthNum": 128, - "WidthNum": 85, - "HeightNum": 81, - "DepthNum": 4, - "StandardHeight": 0, - "PipetteHeight": null, - "HoleColum": 1, - "HoleRow": 1, - "ChannelNum": 1, - "HoleDiameter": 127, - "Volume": 1000, - "ImagePath": "/images/20221115010348.jpg", - "QRCode": null, - "Qty": 10, - "CreateName": null, - "CreateTime": "2021-12-30 16:37:40.7073733", - "UpdateName": null, - "UpdateTime": "2022-11-15 13:03:48.1679642", - "IsStright": 0, - "IsGeneral": 1, - "IsControl": 1, - "ArmCode": null, - "XSpacing": null, - "YSpacing": null, - "materialEnum": null - }, - { - "uuid": "7960f49ddfe9448abadda89bd1556936", - "Code": "ZX-001-1250", - "Name": "1250μL Tip头", - "SummaryName": "1250μL Tip头", - "SupplyType": 1, - "Factory": "宁静致远", - "LengthNum": 118.09, - "WidthNum": 80.7, - "HeightNum": 107.67, - "DepthNum": 100, - "StandardHeight": 0, - "PipetteHeight": null, - "HoleColum": 12, - "HoleRow": 8, - "ChannelNum": 8, - "HoleDiameter": 7.95, - "Volume": 1250, - "ImagePath": "/images/20220623102536.jpg", - "QRCode": null, - "Qty": 96, - "CreateName": null, - "CreateTime": "2021-12-30 20:53:27.8591195", - "UpdateName": null, - "UpdateTime": "2022-06-23 10:25:36.2592442", - "IsStright": 0, - "IsGeneral": 0, - "IsControl": 1, - "ArmCode": null, - "XSpacing": null, - "YSpacing": null, - "materialEnum": null - }, - { - "uuid": "45f2ed3ad925484d96463d675a0ebf66", - "Code": "ZX-001-10", - "Name": "10μL Tip头", - "SummaryName": "10μL Tip头", - "SupplyType": 1, - "Factory": "宁静致远", - "LengthNum": 120.98, - "WidthNum": 82.12, - "HeightNum": 67, - "DepthNum": 39.1, - "StandardHeight": 0, - "PipetteHeight": null, - "HoleColum": 12, - "HoleRow": 8, - "ChannelNum": 8, - "HoleDiameter": 5, - "Volume": 1000, - "ImagePath": "/images/20221119041031.jpg", - "QRCode": null, - "Qty": -21, - "CreateName": null, - "CreateTime": "2021-12-30 20:56:53.462015", - "UpdateName": null, - "UpdateTime": "2022-11-19 16:10:31.126801", - "IsStright": 0, - "IsGeneral": 1, - "IsControl": 1, - "ArmCode": null, - "XSpacing": null, - "YSpacing": null, - "materialEnum": null - }, - { - "uuid": "068b3815e36b4a72a59bae017011b29f", - "Code": "ZX-001-10+", - "Name": "10μL加长 Tip头", - "SummaryName": "10μL加长 Tip头", - "SupplyType": 1, - "Factory": "宁静致远", - "LengthNum": 120.98, - "WidthNum": 82.12, - "HeightNum": 50.3, - "DepthNum": 45.8, - "StandardHeight": 0, - "PipetteHeight": null, - "HoleColum": 12, - "HoleRow": 8, - "ChannelNum": 8, - "HoleDiameter": 5, - "Volume": 20, - "ImagePath": "/images/20220718120113.jpg", - "QRCode": null, - "Qty": 42, - "CreateName": null, - "CreateTime": "2021-12-30 20:57:57.331211", - "UpdateName": null, - "UpdateTime": "2022-07-18 12:01:13.2131453", - "IsStright": 0, - "IsGeneral": 0, - "IsControl": 1, - "ArmCode": null, - "XSpacing": null, - "YSpacing": null, - "materialEnum": null - }, - { - "uuid": "80652665f6a54402b2408d50b40398df", - "Code": "ZX-001-1000", - "Name": "1000μL Tip头", - "SummaryName": "1000μL Tip头", - "SupplyType": 1, - "Factory": "宁静致远", - "LengthNum": 118.09, - "WidthNum": 80.7, - "HeightNum": 107.67, - "DepthNum": 88, - "StandardHeight": 0, - "PipetteHeight": null, - "HoleColum": 12, - "HoleRow": 8, - "ChannelNum": 8, - "HoleDiameter": 7.95, - "Volume": 1000, - "ImagePath": "", - "QRCode": null, - "Qty": 47, - "CreateName": null, - "CreateTime": "2021-12-30 20:59:20.5534915", - "UpdateName": null, - "UpdateTime": "2023-08-12 13:11:44.8670189", - "IsStright": 0, - "IsGeneral": 0, - "IsControl": 1, - "ArmCode": null, - "XSpacing": 9, - "YSpacing": 9, - "materialEnum": null - }, - { - "uuid": "076250742950465b9d6ea29a225dfb00", - "Code": "ZX-001-300", - "Name": "300μL Tip头", - "SummaryName": "300μL Tip头", - "SupplyType": 1, - "Factory": "宁静致远", - "LengthNum": 120.98, - "WidthNum": 82.12, - "HeightNum": 40, - "DepthNum": 59.3, - "StandardHeight": 0, - "PipetteHeight": null, - "HoleColum": 12, - "HoleRow": 8, - "ChannelNum": 8, - "HoleDiameter": 5.5, - "Volume": 300, - "ImagePath": "", - "QRCode": null, - "Qty": 11, - "CreateName": null, - "CreateTime": "2021-12-30 21:00:24.7266192", - "UpdateName": null, - "UpdateTime": "2024-02-01 15:48:02.1562734", - "IsStright": 0, - "IsGeneral": 0, - "IsControl": 1, - "ArmCode": null, - "XSpacing": 9, - "YSpacing": 9, - "materialEnum": null - }, - { - "uuid": "7a73bb9e5c264515a8fcbe88aed0e6f7", - "Code": "ZX-001-200", - "Name": "200μL Tip头", - "SummaryName": "200μL Tip头", - "SupplyType": 1, - "Factory": "宁静致远", - "LengthNum": 120.98, - "WidthNum": 82.12, - "HeightNum": 66.9, - "DepthNum": 52, - "StandardHeight": 0, - "PipetteHeight": null, - "HoleColum": 12, - "HoleRow": 8, - "ChannelNum": 8, - "HoleDiameter": 5.5, - "Volume": 200, - "ImagePath": "", - "QRCode": null, - "Qty": 19, - "CreateName": null, - "CreateTime": "2021-12-30 21:01:17.626704", - "UpdateName": null, - "UpdateTime": "2023-10-14 13:44:41.5428946", - "IsStright": 0, - "IsGeneral": 0, - "IsControl": 1, - "ArmCode": null, - "XSpacing": 9, - "YSpacing": 9, - "materialEnum": null - }, - { - "uuid": "73bb9b10bc394978b70e027bf45ce2d3", - "Code": "ZX-023-0.2", - "Name": "0.2ml PCR板", - "SummaryName": "0.2ml PCR板", - "SupplyType": 1, - "Factory": "中析", - "LengthNum": 126, - "WidthNum": 86, - "HeightNum": 21.2, - "DepthNum": 15.17, - "StandardHeight": 0, - "PipetteHeight": null, - "HoleColum": 12, - "HoleRow": 8, - "ChannelNum": 96, - "HoleDiameter": 6, - "Volume": 1000, - "ImagePath": "", - "QRCode": null, - "Qty": -12, - "CreateName": null, - "CreateTime": "2021-12-30 21:06:02.7746392", - "UpdateName": null, - "UpdateTime": "2024-02-20 16:17:16.7921748", - "IsStright": 0, - "IsGeneral": 1, - "IsControl": 1, - "ArmCode": null, - "XSpacing": 9, - "YSpacing": 9, - "materialEnum": null - }, - { - "uuid": "ca877b8b114a4310b429d1de4aae96ee", - "Code": "ZX-019-2.2", - "Name": "2.2ml 深孔板", - "SummaryName": "2.2ml 深孔板", - "SupplyType": 1, - "Factory": "宁静致远", - "LengthNum": 127.3, - "WidthNum": 85.35, - "HeightNum": 44, - "DepthNum": 42, - "StandardHeight": 0, - "PipetteHeight": null, - "HoleColum": 12, - "HoleRow": 8, - "ChannelNum": 8, - "HoleDiameter": 8.2, - "Volume": 2200, - "ImagePath": "", - "QRCode": null, - "Qty": 34, - "CreateName": null, - "CreateTime": "2021-12-30 21:07:16.4538022", - "UpdateName": null, - "UpdateTime": "2023-08-12 13:11:26.3993472", - "IsStright": 0, - "IsGeneral": 1, - "IsControl": 1, - "ArmCode": null, - "XSpacing": 9, - "YSpacing": 9, - "materialEnum": null - }, - { - "uuid": "04211a2dc93547fe9bf6121eac533650", - "Code": "ZX-58-10000", - "Name": "储液槽", - "SummaryName": "储液槽", - "SupplyType": 1, - "Factory": "宁静致远", - "LengthNum": 127, - "WidthNum": 85, - "HeightNum": 31.2, - "DepthNum": 24, - "StandardHeight": 0, - "PipetteHeight": null, - "HoleColum": 1, - "HoleRow": 1, - "ChannelNum": 1, - "HoleDiameter": 127, - "Volume": 1250, - "ImagePath": "/images/20220623103134.jpg", - "QRCode": null, - "Qty": -172, - "CreateName": null, - "CreateTime": "2021-12-31 18:37:56.7949909", - "UpdateName": null, - "UpdateTime": "2022-06-23 10:31:34.4261358", - "IsStright": 0, - "IsGeneral": 0, - "IsControl": 1, - "ArmCode": null, - "XSpacing": null, - "YSpacing": null, - "materialEnum": null - }, - { - "uuid": "4a043a07c65a4f9bb97745e1f129b165", - "Code": "ZX-58-0001", - "Name": "半裙边 PCR适配器", - "SummaryName": "半裙边 PCR适配器", - "SupplyType": 2, - "Factory": "宁静致远", - "LengthNum": 127, - "WidthNum": 85, - "HeightNum": 88, - "DepthNum": 5, - "StandardHeight": 0, - "PipetteHeight": null, - "HoleColum": 12, - "HoleRow": 8, - "ChannelNum": 96, - "HoleDiameter": 9, - "Volume": 1250, - "ImagePath": "/images/20221123051800.jpg", - "QRCode": null, - "Qty": 100, - "CreateName": null, - "CreateTime": "2022-01-02 19:21:35.8664843", - "UpdateName": null, - "UpdateTime": "2022-11-23 17:18:00.8826719", - "IsStright": 1, - "IsGeneral": 1, - "IsControl": 1, - "ArmCode": null, - "XSpacing": null, - "YSpacing": null, - "materialEnum": null - }, - { - "uuid": "6bdfdd7069df453896b0806df50f2f4d", - "Code": "ZX-ADP-001", - "Name": "储液槽 适配器", - "SummaryName": "储液槽 适配器", - "SupplyType": 2, - "Factory": "宁静致远", - "LengthNum": 133, - "WidthNum": 91.8, - "HeightNum": 70, - "DepthNum": 4, - "StandardHeight": 0, - "PipetteHeight": null, - "HoleColum": 1, - "HoleRow": 1, - "ChannelNum": 8, - "HoleDiameter": 1, - "Volume": 1250, - "ImagePath": "", - "QRCode": null, - "Qty": null, - "CreateName": null, - "CreateTime": "2022-02-16 17:31:26.413594", - "UpdateName": null, - "UpdateTime": "2023-08-12 13:10:58.786996", - "IsStright": 0, - "IsGeneral": 1, - "IsControl": 0, - "ArmCode": null, - "XSpacing": 0, - "YSpacing": 0, - "materialEnum": null - }, - { - "uuid": "9a439bed8f3344549643d6b3bc5a5eb4", - "Code": "ZX-002-300", - "Name": "300ul深孔板适配器", - "SummaryName": "300ul深孔板适配器", - "SupplyType": 2, - "Factory": "宁静致远", - "LengthNum": 136.4, - "WidthNum": 93.8, - "HeightNum": 96, - "DepthNum": 7, - "StandardHeight": 0, - "PipetteHeight": null, - "HoleColum": 12, - "HoleRow": 8, - "ChannelNum": 96, - "HoleDiameter": 8.1, - "Volume": 300, - "ImagePath": "", - "QRCode": null, - "Qty": null, - "CreateName": null, - "CreateTime": "2022-06-18 15:17:42.7917763", - "UpdateName": null, - "UpdateTime": "2023-08-12 13:10:46.1526635", - "IsStright": 0, - "IsGeneral": 1, - "IsControl": 0, - "ArmCode": null, - "XSpacing": 9, - "YSpacing": 9, - "materialEnum": null - }, - { - "uuid": "4dc8d6ecfd0449549683b8ef815a861b", - "Code": "ZX-002-10", - "Name": "10ul专用深孔板适配器", - "SummaryName": "10ul专用深孔板适配器", - "SupplyType": 2, - "Factory": "宁静致远", - "LengthNum": 136.5, - "WidthNum": 93.8, - "HeightNum": 121.5, - "DepthNum": 7, - "StandardHeight": 0, - "PipetteHeight": null, - "HoleColum": 12, - "HoleRow": 8, - "ChannelNum": 96, - "HoleDiameter": 8.1, - "Volume": 10, - "ImagePath": "", - "QRCode": null, - "Qty": null, - "CreateName": null, - "CreateTime": "2022-06-30 09:37:31.0451435", - "UpdateName": null, - "UpdateTime": "2023-08-12 13:10:38.5409878", - "IsStright": 0, - "IsGeneral": 0, - "IsControl": 0, - "ArmCode": null, - "XSpacing": 9, - "YSpacing": 9, - "materialEnum": null - }, - { - "uuid": "b01627718d3341aba649baa81c2c083c", - "Code": "Sd155", - "Name": "爱津", - "SummaryName": "爱津", - "SupplyType": 1, - "Factory": "中析", - "LengthNum": 125, - "WidthNum": 85, - "HeightNum": 64, - "DepthNum": 45.5, - "StandardHeight": 0, - "PipetteHeight": null, - "HoleColum": 12, - "HoleRow": 8, - "ChannelNum": 1, - "HoleDiameter": 4, - "Volume": 20, - "ImagePath": "", - "QRCode": null, - "Qty": null, - "CreateName": null, - "CreateTime": "2022-11-07 08:56:30.1794274", - "UpdateName": null, - "UpdateTime": "2022-11-07 09:00:29.5496845", - "IsStright": 0, - "IsGeneral": 1, - "IsControl": 0, - "ArmCode": null, - "XSpacing": null, - "YSpacing": null, - "materialEnum": null - }, - { - "uuid": "adfabfffa8f24af5abfbba67b8d0f973", - "Code": "Fhh478", - "Name": "适配器", - "SummaryName": "适配器", - "SupplyType": 2, - "Factory": "中析", - "LengthNum": 120, - "WidthNum": 90, - "HeightNum": 86, - "DepthNum": 4, - "StandardHeight": 0, - "PipetteHeight": null, - "HoleColum": 1, - "HoleRow": 1, - "ChannelNum": 1, - "HoleDiameter": 4, - "Volume": 1000, - "ImagePath": null, - "QRCode": null, - "Qty": null, - "CreateName": null, - "CreateTime": "2022-11-07 09:00:10.7579131", - "UpdateName": null, - "UpdateTime": "2022-11-07 09:00:10.7579134", - "IsStright": 0, - "IsGeneral": 1, - "IsControl": 0, - "ArmCode": null, - "XSpacing": null, - "YSpacing": null, - "materialEnum": null - }, - { - "uuid": "1592e84a07f74668af155588867f2da7", - "Code": "12", - "Name": "12", - "SummaryName": "12", - "SupplyType": 1, - "Factory": "12", - "LengthNum": 1, - "WidthNum": 1, - "HeightNum": 1, - "DepthNum": 100, - "StandardHeight": 0, - "PipetteHeight": null, - "HoleColum": 8, - "HoleRow": 12, - "ChannelNum": 12, - "HoleDiameter": 7, - "Volume": 12, - "ImagePath": null, - "QRCode": null, - "Qty": null, - "CreateName": null, - "CreateTime": "2023-10-08 09:35:19.281766", - "UpdateName": null, - "UpdateTime": "2023-10-08 09:35:19.2817667", - "IsStright": 0, - "IsGeneral": 0, - "IsControl": 0, - "ArmCode": null, - "XSpacing": 9, - "YSpacing": 9, - "materialEnum": null - }, - { - "uuid": "730067cf07ae43849ddf4034299030e9", - "Code": "q1", - "Name": "废弃槽", - "SummaryName": "废弃槽", - "SupplyType": 1, - "Factory": "中析", - "LengthNum": 190, - "WidthNum": 135, - "HeightNum": 75, - "DepthNum": 1, - "StandardHeight": 0, - "PipetteHeight": null, - "HoleColum": 1, - "HoleRow": 1, - "ChannelNum": 1, - "HoleDiameter": 1, - "Volume": 1250, - "ImagePath": null, - "QRCode": null, - "Qty": null, - "CreateName": null, - "CreateTime": "2023-10-14 13:15:45.8172852", - "UpdateName": null, - "UpdateTime": "2023-10-14 13:15:45.8172869", - "IsStright": 0, - "IsGeneral": 1, - "IsControl": 0, - "ArmCode": null, - "XSpacing": 1, - "YSpacing": 1, - "materialEnum": null - }, - { - "uuid": "57b1e4711e9e4a32b529f3132fc5931f", - "Code": "q2", - "Name": "96深孔板", - "SummaryName": "96深孔板", - "SupplyType": 1, - "Factory": "中析", - "LengthNum": 126.5, - "WidthNum": 84.5, - "HeightNum": 41.4, - "DepthNum": 38.4, - "StandardHeight": 0, - "PipetteHeight": null, - "HoleColum": 12, - "HoleRow": 8, - "ChannelNum": 96, - "HoleDiameter": 8.3, - "Volume": 1250, - "ImagePath": null, - "QRCode": null, - "Qty": null, - "CreateName": null, - "CreateTime": "2023-10-14 13:19:55.7225524", - "UpdateName": null, - "UpdateTime": "2023-10-14 13:19:55.7225525", - "IsStright": 0, - "IsGeneral": 1, - "IsControl": 0, - "ArmCode": null, - "XSpacing": 9, - "YSpacing": 9, - "materialEnum": null - }, - { - "uuid": "853dcfb6226f476e8b23c250217dc7da", - "Code": "q3", - "Name": "384板", - "SummaryName": "384板", - "SupplyType": 1, - "Factory": "中析", - "LengthNum": 126.6, - "WidthNum": 84, - "HeightNum": 9.4, - "DepthNum": 8, - "StandardHeight": 0, - "PipetteHeight": null, - "HoleColum": 24, - "HoleRow": 16, - "ChannelNum": 384, - "HoleDiameter": 3, - "Volume": 1250, - "ImagePath": null, - "QRCode": null, - "Qty": null, - "CreateName": null, - "CreateTime": "2023-10-14 13:22:34.779818", - "UpdateName": null, - "UpdateTime": "2023-10-14 13:22:34.7798181", - "IsStright": 0, - "IsGeneral": 1, - "IsControl": 0, - "ArmCode": null, - "XSpacing": 4.5, - "YSpacing": 4.5, - "materialEnum": null - }, - { - "uuid": "e201e206fcfc4e8ab51946a22e8cd1bc", - "Code": "1", - "Name": "ep", - "SummaryName": "ep", - "SupplyType": 1, - "Factory": "中析", - "LengthNum": 504, - "WidthNum": 337, - "HeightNum": 160, - "DepthNum": 163, - "StandardHeight": 0, - "PipetteHeight": null, - "HoleColum": 6, - "HoleRow": 4, - "ChannelNum": 24, - "HoleDiameter": 41.2, - "Volume": 1, - "ImagePath": "", - "QRCode": null, - "Qty": null, - "CreateName": null, - "CreateTime": "2024-01-20 13:14:38.0308919", - "UpdateName": null, - "UpdateTime": "2024-02-05 16:27:07.2582693", - "IsStright": 0, - "IsGeneral": 1, - "IsControl": 0, - "ArmCode": null, - "XSpacing": 21, - "YSpacing": 18, - "materialEnum": null - }, - { - "uuid": "01953864f6f140ccaa8ddffd4f3e46f5", - "Code": "sdfrth654", - "Name": "4道储液槽", - "SummaryName": "4道储液槽", - "SupplyType": 1, - "Factory": "中析", - "LengthNum": 100, - "WidthNum": 40, - "HeightNum": 30, - "DepthNum": 10, - "StandardHeight": 0, - "PipetteHeight": null, - "HoleColum": 4, - "HoleRow": 8, - "ChannelNum": 4, - "HoleDiameter": 4, - "Volume": 1000, - "ImagePath": "", - "QRCode": null, - "Qty": null, - "CreateName": null, - "CreateTime": "2024-02-20 14:44:25.0021372", - "UpdateName": null, - "UpdateTime": "2024-02-20 15:28:21.3881302", - "IsStright": 0, - "IsGeneral": 1, - "IsControl": 0, - "ArmCode": null, - "XSpacing": 27, - "YSpacing": 9, - "materialEnum": null - } -] \ No newline at end of file diff --git a/unilabos/devices/liquid_handling/prcxi/json_output/_base_plan_detail_old_20240416.json b/unilabos/devices/liquid_handling/prcxi/json_output/_base_plan_detail_old_20240416.json deleted file mode 100644 index 89ff6222..00000000 --- a/unilabos/devices/liquid_handling/prcxi/json_output/_base_plan_detail_old_20240416.json +++ /dev/null @@ -1,34346 +0,0 @@ -[ - { - "uuid": "e5febaad7fe9416dad9059fb6ab89e74", - "uuidPlanMaster": "5500c3a9d8504922b4f71474b12a5040", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1 - 8, T3", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 3, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": "", - "AdapterName": "", - "ConsumablesCode": "", - "ConsumablesName": "" - }, - { - "uuid": "ffd58a04becf4b469d07993448b52d66", - "uuidPlanMaster": "5500c3a9d8504922b4f71474b12a5040", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H9 - 16, T3", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 3, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 2, - "HoleCollective": "9,10,11,12,13,14,15,16", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": "", - "AdapterName": "", - "ConsumablesCode": "", - "ConsumablesName": "" - }, - { - "uuid": "30b6d0c1eb594a01aa1adf7d15bd2054", - "uuidPlanMaster": "dd5102d94bef415ca169578d4e1d2a4f", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1 - 8, T3", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12" - }, - { - "uuid": "031fcc7a8bf34b8e9ddd3592d92f108b", - "uuidPlanMaster": "87ea11eeb24b43648ce294654b561fe7", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1 - 8, T3", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12" - }, - { - "uuid": "25e80760bbca4942b935a23d1b2c58ea", - "uuidPlanMaster": "87ea11eeb24b43648ce294654b561fe7", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H1 - 8, T2", - "Dosage": 250, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12" - }, - { - "uuid": "dbb546a964f042778d2cd5830287a000", - "uuidPlanMaster": "87ea11eeb24b43648ce294654b561fe7", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1 - 8, T1", - "Dosage": 250, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12" - }, - { - "uuid": "413e6ce924cc4998a03d7886a78da792", - "uuidPlanMaster": "87ea11eeb24b43648ce294654b561fe7", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H1 - 8, T3", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12" - }, - { - "uuid": "faf0f5c896744001bfcbc3927515f9a3", - "uuidPlanMaster": "87ea11eeb24b43648ce294654b561fe7", - "Axis": "Left", - "ActOn": "Load", - "Place": "H9 - 16, T3", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 2, - "HoleCollective": "9,10,11,12,13,14,15,16", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12" - }, - { - "uuid": "adccf44655f24fd1b9fcb5a4f1af4b12", - "uuidPlanMaster": "87ea11eeb24b43648ce294654b561fe7", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H9 - 16, T2", - "Dosage": 250, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 2, - "HoleCollective": "9,10,11,12,13,14,15,16", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12" - }, - { - "uuid": "450cd28e83194d1bb796a6093fbd58af", - "uuidPlanMaster": "87ea11eeb24b43648ce294654b561fe7", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H9 - 16, T1", - "Dosage": 250, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 2, - "HoleCollective": "9,10,11,12,13,14,15,16", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12" - }, - { - "uuid": "a82a05ef46ba48659c3103e1102a68be", - "uuidPlanMaster": "87ea11eeb24b43648ce294654b561fe7", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H9 - 16, T3", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 2, - "HoleCollective": "9,10,11,12,13,14,15,16", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12" - }, - { - "uuid": "3c19c934ab694405a0e74bcde220c7f0", - "uuidPlanMaster": "87ea11eeb24b43648ce294654b561fe7", - "Axis": "Left", - "ActOn": "Load", - "Place": "H17 - 24, T3", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "17,18,19,20,21,22,23,24", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12" - }, - { - "uuid": "d3ce739564bf44a5a36d33dc8eb186a6", - "uuidPlanMaster": "87ea11eeb24b43648ce294654b561fe7", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H17 - 24, T2", - "Dosage": 250, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "17,18,19,20,21,22,23,24", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12" - }, - { - "uuid": "784b4585fe5545858c9745c9ee96d260", - "uuidPlanMaster": "87ea11eeb24b43648ce294654b561fe7", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H17 - 24, T1", - "Dosage": 250, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "17,18,19,20,21,22,23,24", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12" - }, - { - "uuid": "6aac0c78ddd74ce6be6772de6c881e11", - "uuidPlanMaster": "87ea11eeb24b43648ce294654b561fe7", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H17 - 24, T3", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "17,18,19,20,21,22,23,24", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12" - }, - { - "uuid": "84c8187f05a54197b14d11f47e6989f5", - "uuidPlanMaster": "87ea11eeb24b43648ce294654b561fe7", - "Axis": "Left", - "ActOn": "Load", - "Place": "H25 - 32, T3", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 4, - "HoleCollective": "25,26,27,28,29,30,31,32", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12" - }, - { - "uuid": "a5244a3520bf486581270019bc8cd732", - "uuidPlanMaster": "87ea11eeb24b43648ce294654b561fe7", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H25 - 32, T2", - "Dosage": 250, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 4, - "HoleCollective": "25,26,27,28,29,30,31,32", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12" - }, - { - "uuid": "1e64a44bcbb64fd59e10b0ef856a920e", - "uuidPlanMaster": "87ea11eeb24b43648ce294654b561fe7", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H25 - 32, T1", - "Dosage": 250, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 4, - "HoleCollective": "25,26,27,28,29,30,31,32", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12" - }, - { - "uuid": "d674d0e267cd4987948973c4a8dc4e73", - "uuidPlanMaster": "87ea11eeb24b43648ce294654b561fe7", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H25 - 32, T3", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 4, - "HoleCollective": "25,26,27,28,29,30,31,32", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12" - }, - { - "uuid": "e00d19ff3c9c483d8a34a8805891e3ad", - "uuidPlanMaster": "87ea11eeb24b43648ce294654b561fe7", - "Axis": "Left", - "ActOn": "Load", - "Place": "H33 - 40, T3", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 5, - "HoleCollective": "33,34,35,36,37,38,39,40", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12" - }, - { - "uuid": "6b4c7de16bf54d75b92a0048c1a273cf", - "uuidPlanMaster": "87ea11eeb24b43648ce294654b561fe7", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H33 - 40, T2", - "Dosage": 250, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 5, - "HoleCollective": "33,34,35,36,37,38,39,40", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12" - }, - { - "uuid": "280ec84bd994406e9efc1ad2639d9365", - "uuidPlanMaster": "87ea11eeb24b43648ce294654b561fe7", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H33 - 40, T1", - "Dosage": 250, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 5, - "HoleCollective": "33,34,35,36,37,38,39,40", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12" - }, - { - "uuid": "fde824dae3af4606b6a7d93e292f23dd", - "uuidPlanMaster": "87ea11eeb24b43648ce294654b561fe7", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H33 - 40, T3", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 5, - "HoleCollective": "33,34,35,36,37,38,39,40", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12" - }, - { - "uuid": "dda88f921a764c89b1a05d910930c8a0", - "uuidPlanMaster": "87ea11eeb24b43648ce294654b561fe7", - "Axis": "Left", - "ActOn": "Load", - "Place": "H41 - 48, T3", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 6, - "HoleCollective": "41,42,43,44,45,46,47,48", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12" - }, - { - "uuid": "07cf701d6979415182a60898525822b5", - "uuidPlanMaster": "87ea11eeb24b43648ce294654b561fe7", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H41 - 48, T2", - "Dosage": 250, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 6, - "HoleCollective": "41,42,43,44,45,46,47,48", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12" - }, - { - "uuid": "cd7705e6d77047e8aaf9df8e443d2b9a", - "uuidPlanMaster": "87ea11eeb24b43648ce294654b561fe7", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H41 - 48, T1", - "Dosage": 250, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 6, - "HoleCollective": "41,42,43,44,45,46,47,48", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12" - }, - { - "uuid": "d86f4f9c9c2d4b3ea98dadb23030f8db", - "uuidPlanMaster": "87ea11eeb24b43648ce294654b561fe7", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H41 - 48, T3", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 6, - "HoleCollective": "41,42,43,44,45,46,47,48", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12" - }, - { - "uuid": "359ad674eebd45d8bd0938bdab83d7de", - "uuidPlanMaster": "87ea11eeb24b43648ce294654b561fe7", - "Axis": "Left", - "ActOn": "Load", - "Place": "H49 - 56, T3", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 7, - "HoleCollective": "49,50,51,52,53,54,55,56", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12" - }, - { - "uuid": "7abecfa8372942cbbe1b741e5d76eaf3", - "uuidPlanMaster": "87ea11eeb24b43648ce294654b561fe7", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H49 - 56, T2", - "Dosage": 250, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 7, - "HoleCollective": "49,50,51,52,53,54,55,56", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12" - }, - { - "uuid": "652bfed00d4643c8b48c21a71d9c6b43", - "uuidPlanMaster": "87ea11eeb24b43648ce294654b561fe7", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H49 - 56, T1", - "Dosage": 250, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 7, - "HoleCollective": "49,50,51,52,53,54,55,56", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12" - }, - { - "uuid": "52e30fc420eb4069aaf76e6e9ba575ac", - "uuidPlanMaster": "87ea11eeb24b43648ce294654b561fe7", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H49 - 56, T3", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 7, - "HoleCollective": "49,50,51,52,53,54,55,56", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12" - }, - { - "uuid": "10b88677b4c34757a430dc824a4bd824", - "uuidPlanMaster": "87ea11eeb24b43648ce294654b561fe7", - "Axis": "Left", - "ActOn": "Load", - "Place": "H57 - 64, T3", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 8, - "HoleCollective": "57,58,59,60,61,62,63,64", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12" - }, - { - "uuid": "64cfa45ba4094518a881545cf63c01d6", - "uuidPlanMaster": "87ea11eeb24b43648ce294654b561fe7", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H57 - 64, T2", - "Dosage": 250, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 8, - "HoleCollective": "57,58,59,60,61,62,63,64", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12" - }, - { - "uuid": "f11d92785ccd45488c61c8234ed6c879", - "uuidPlanMaster": "87ea11eeb24b43648ce294654b561fe7", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H57 - 64, T1", - "Dosage": 250, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 8, - "HoleCollective": "57,58,59,60,61,62,63,64", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12" - }, - { - "uuid": "80f3bb81fef44cf5badb292f6ccdf938", - "uuidPlanMaster": "87ea11eeb24b43648ce294654b561fe7", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H57 - 64, T3", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 8, - "HoleCollective": "57,58,59,60,61,62,63,64", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12" - }, - { - "uuid": "689a5e5364164c28805e7312f70c8390", - "uuidPlanMaster": "87ea11eeb24b43648ce294654b561fe7", - "Axis": "Left", - "ActOn": "Load", - "Place": "H65 - 72, T3", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 9, - "HoleCollective": "65,66,67,68,69,70,71,72", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12" - }, - { - "uuid": "566040720a924abaa177abae9f6d2fbb", - "uuidPlanMaster": "87ea11eeb24b43648ce294654b561fe7", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H65 - 72, T2", - "Dosage": 250, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 9, - "HoleCollective": "65,66,67,68,69,70,71,72", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12" - }, - { - "uuid": "1117d8e2eca048c088a29a84858d587f", - "uuidPlanMaster": "87ea11eeb24b43648ce294654b561fe7", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H65 - 72, T1", - "Dosage": 250, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 9, - "HoleCollective": "65,66,67,68,69,70,71,72", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12" - }, - { - "uuid": "0d9e1a108aec411b826ac4ad49a00ef0", - "uuidPlanMaster": "87ea11eeb24b43648ce294654b561fe7", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H65 - 72, T3", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 9, - "HoleCollective": "65,66,67,68,69,70,71,72", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12" - }, - { - "uuid": "87d08cce80d744d380b44d192c49ecb9", - "uuidPlanMaster": "87ea11eeb24b43648ce294654b561fe7", - "Axis": "Left", - "ActOn": "Load", - "Place": "H73 - 80, T3", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 10, - "HoleCollective": "73,74,75,76,77,78,79,80", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12" - }, - { - "uuid": "a299aa8118f349c0aea61e39f8ccf936", - "uuidPlanMaster": "87ea11eeb24b43648ce294654b561fe7", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H73 - 80, T2", - "Dosage": 250, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 10, - "HoleCollective": "73,74,75,76,77,78,79,80", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12" - }, - { - "uuid": "69a0497dc7f34d8da7ccbf0cb8034dc8", - "uuidPlanMaster": "87ea11eeb24b43648ce294654b561fe7", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H73 - 80, T1", - "Dosage": 250, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 10, - "HoleCollective": "73,74,75,76,77,78,79,80", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12" - }, - { - "uuid": "dcb9d39e1c65417e894dc122bde7df8e", - "uuidPlanMaster": "87ea11eeb24b43648ce294654b561fe7", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H73 - 80, T3", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 10, - "HoleCollective": "73,74,75,76,77,78,79,80", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12" - }, - { - "uuid": "99df7a8284024eecad3f2aebcb95a735", - "uuidPlanMaster": "87ea11eeb24b43648ce294654b561fe7", - "Axis": "Left", - "ActOn": "Load", - "Place": "H81 - 88, T3", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 11, - "HoleCollective": "81,82,83,84,85,86,87,88", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12" - }, - { - "uuid": "f8eee1950a9043f4a61f2ff5fe8709e7", - "uuidPlanMaster": "87ea11eeb24b43648ce294654b561fe7", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H81 - 88, T2", - "Dosage": 250, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 11, - "HoleCollective": "81,82,83,84,85,86,87,88", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12" - }, - { - "uuid": "cfb6a48011a34df5b5e24c5ba02fa8cd", - "uuidPlanMaster": "87ea11eeb24b43648ce294654b561fe7", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H81 - 88, T1", - "Dosage": 250, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 11, - "HoleCollective": "81,82,83,84,85,86,87,88", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12" - }, - { - "uuid": "7babfec62c224814bed0d8d248c88ccc", - "uuidPlanMaster": "87ea11eeb24b43648ce294654b561fe7", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H81 - 88, T3", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 11, - "HoleCollective": "81,82,83,84,85,86,87,88", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12" - }, - { - "uuid": "1a87159f4a694123a733323c21bf3eb3", - "uuidPlanMaster": "87ea11eeb24b43648ce294654b561fe7", - "Axis": "Left", - "ActOn": "Load", - "Place": "H89 - 96, T3", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 12, - "HoleCollective": "89,90,91,92,93,94,95,96", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12" - }, - { - "uuid": "22f904209f974bcd83bfeeb8a49a94e7", - "uuidPlanMaster": "87ea11eeb24b43648ce294654b561fe7", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H89 - 96, T2", - "Dosage": 250, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 12, - "HoleCollective": "89,90,91,92,93,94,95,96", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12" - }, - { - "uuid": "52525794f2ca4f54b3bff870a3166f19", - "uuidPlanMaster": "87ea11eeb24b43648ce294654b561fe7", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H89 - 96, T1", - "Dosage": 250, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 12, - "HoleCollective": "89,90,91,92,93,94,95,96", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12" - }, - { - "uuid": "1e4cd967cb3b48f297c7d172f9a9b14b", - "uuidPlanMaster": "87ea11eeb24b43648ce294654b561fe7", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H89 - 96, T3", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 12, - "HoleCollective": "89,90,91,92,93,94,95,96", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12" - }, - { - "uuid": "1707c0e6e2964edb9e1d32530e6b80c3", - "uuidPlanMaster": "0a977d6ebc4244739793b0b6f8b3f815", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1 - 8, T3", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12" - }, - { - "uuid": "4715a76d398e4e78920a8e6e811b36c6", - "uuidPlanMaster": "0a977d6ebc4244739793b0b6f8b3f815", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H1 - 8, T4", - "Dosage": 100, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12" - }, - { - "uuid": "602be9ceae344c1fb617d2330ccec91c", - "uuidPlanMaster": "0a977d6ebc4244739793b0b6f8b3f815", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1 - 15, T1", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,3,5,7,9,11,13,15", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "384", - "ConsumablesName": "16 x 24" - }, - { - "uuid": "9cf21f5fe6424048bd214dd5e5911c0a", - "uuidPlanMaster": "0a977d6ebc4244739793b0b6f8b3f815", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H2 - 16, T1", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 1, - "HoleCollective": "2,4,6,8,10,12,14,16", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "384", - "ConsumablesName": "16 x 24" - }, - { - "uuid": "620611166e1d43fc9e2dbd9a41f87597", - "uuidPlanMaster": "0a977d6ebc4244739793b0b6f8b3f815", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H17 - 31, T1", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 2, - "HoleCollective": "17,19,21,23,25,27,29,31", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "384", - "ConsumablesName": "16 x 24" - }, - { - "uuid": "d3a82b3e46374bf4a9b1d1920c2e7e12", - "uuidPlanMaster": "0a977d6ebc4244739793b0b6f8b3f815", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H18 - 32, T1", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 2, - "HoleCollective": "18,20,22,24,26,28,30,32", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "384", - "ConsumablesName": "16 x 24" - }, - { - "uuid": "7b74cbc9da7d4022b04c65415e21b6ca", - "uuidPlanMaster": "0a977d6ebc4244739793b0b6f8b3f815", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T5", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "废液槽", - "ConsumablesName": "1 x 1" - }, - { - "uuid": "31733b1f188346eeae114c26d696e268", - "uuidPlanMaster": "0a977d6ebc4244739793b0b6f8b3f815", - "Axis": "Left", - "ActOn": "Load", - "Place": "H9 - 16, T3", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 2, - "HoleCollective": "9,10,11,12,13,14,15,16", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12" - }, - { - "uuid": "8008c9f9c81240d0847d962557903047", - "uuidPlanMaster": "0a977d6ebc4244739793b0b6f8b3f815", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H9 - 16, T4", - "Dosage": 100, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 2, - "HoleCollective": "9,10,11,12,13,14,15,16", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12" - }, - { - "uuid": "61accab2866e43509dc99ad770fde120", - "uuidPlanMaster": "0a977d6ebc4244739793b0b6f8b3f815", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H33 - 47, T1", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "33,35,37,39,41,43,45,47", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "384", - "ConsumablesName": "16 x 24" - }, - { - "uuid": "792484152dad46bfb4179937cbdd7466", - "uuidPlanMaster": "0a977d6ebc4244739793b0b6f8b3f815", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H34 - 48, T1", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 3, - "HoleCollective": "34,36,38,40,42,44,46,48", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "384", - "ConsumablesName": "16 x 24" - }, - { - "uuid": "a2b06022b49649458b6a16903dff5faf", - "uuidPlanMaster": "0a977d6ebc4244739793b0b6f8b3f815", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H49 - 63, T1", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 4, - "HoleCollective": "49,51,53,55,57,59,61,63", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "384", - "ConsumablesName": "16 x 24" - }, - { - "uuid": "b2e5a83a173644f29bedb3897750b8f4", - "uuidPlanMaster": "0a977d6ebc4244739793b0b6f8b3f815", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H50 - 64, T1", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 4, - "HoleCollective": "50,52,54,56,58,60,62,64", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "384", - "ConsumablesName": "16 x 24" - }, - { - "uuid": "565b1f9e0c2e4c48b2743b49b36582d3", - "uuidPlanMaster": "0a977d6ebc4244739793b0b6f8b3f815", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T5", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "废液槽", - "ConsumablesName": "1 x 1" - }, - { - "uuid": "b835d670f6de42878ee67220d43ac8f4", - "uuidPlanMaster": "0a977d6ebc4244739793b0b6f8b3f815", - "Axis": "Left", - "ActOn": "Load", - "Place": "H17 - 24, T3", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "17,18,19,20,21,22,23,24", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12" - }, - { - "uuid": "6be4bddbe49f45898f54371cd5eb8d76", - "uuidPlanMaster": "0a977d6ebc4244739793b0b6f8b3f815", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H17 - 24, T4", - "Dosage": 100, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "17,18,19,20,21,22,23,24", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12" - }, - { - "uuid": "6f2195787cc047ef9739240fcd0290e9", - "uuidPlanMaster": "0a977d6ebc4244739793b0b6f8b3f815", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H65 - 79, T1", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 5, - "HoleCollective": "65,67,69,71,73,75,77,79", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "384", - "ConsumablesName": "16 x 24" - }, - { - "uuid": "cf4ba74a677441a0b02aad7573abfda4", - "uuidPlanMaster": "0a977d6ebc4244739793b0b6f8b3f815", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H66 - 80, T1", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 5, - "HoleCollective": "66,68,70,72,74,76,78,80", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "384", - "ConsumablesName": "16 x 24" - }, - { - "uuid": "7cd81cbd5914422a9bbeb4fd5cf43dda", - "uuidPlanMaster": "0a977d6ebc4244739793b0b6f8b3f815", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H81 - 95, T1", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 6, - "HoleCollective": "81,83,85,87,89,91,93,95", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "384", - "ConsumablesName": "16 x 24" - }, - { - "uuid": "348c96369092411a94448694300bbe05", - "uuidPlanMaster": "0a977d6ebc4244739793b0b6f8b3f815", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H82 - 96, T1", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 6, - "HoleCollective": "82,84,86,88,90,92,94,96", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "384", - "ConsumablesName": "16 x 24" - }, - { - "uuid": "0a883406116448f399c541aa0a0dcdb6", - "uuidPlanMaster": "0a977d6ebc4244739793b0b6f8b3f815", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T5", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "废液槽", - "ConsumablesName": "1 x 1" - }, - { - "uuid": "c6ad3211c1ca4106a9ae182f23287b40", - "uuidPlanMaster": "0a977d6ebc4244739793b0b6f8b3f815", - "Axis": "Left", - "ActOn": "Load", - "Place": "H25 - 32, T3", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 4, - "HoleCollective": "25,26,27,28,29,30,31,32", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12" - }, - { - "uuid": "fabcd0e34f0541048c4eba308bb3f468", - "uuidPlanMaster": "0a977d6ebc4244739793b0b6f8b3f815", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H25 - 32, T4", - "Dosage": 100, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 4, - "HoleCollective": "25,26,27,28,29,30,31,32", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12" - }, - { - "uuid": "8df53b13aeb448079ee345999852f361", - "uuidPlanMaster": "0a977d6ebc4244739793b0b6f8b3f815", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H97 - 111, T1", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 7, - "HoleCollective": "97,99,101,103,105,107,109,111", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "384", - "ConsumablesName": "16 x 24" - }, - { - "uuid": "4dfa8e969802465bbc688d3964fbe90c", - "uuidPlanMaster": "0a977d6ebc4244739793b0b6f8b3f815", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H98 - 112, T1", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 7, - "HoleCollective": "98,100,102,104,106,108,110,112", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "384", - "ConsumablesName": "16 x 24" - }, - { - "uuid": "3b5659462eee40ab8e7792d7dbc5f7ad", - "uuidPlanMaster": "0a977d6ebc4244739793b0b6f8b3f815", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H113 - 127, T1", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 8, - "HoleCollective": "113,115,117,119,121,123,125,127", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "384", - "ConsumablesName": "16 x 24" - }, - { - "uuid": "2fa0cfff847f409ea5f7f73f5b22674b", - "uuidPlanMaster": "0a977d6ebc4244739793b0b6f8b3f815", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H114 - 128, T1", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 8, - "HoleCollective": "114,116,118,120,122,124,126,128", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "384", - "ConsumablesName": "16 x 24" - }, - { - "uuid": "e09f38a7e6c846c6a202da04094c9bd6", - "uuidPlanMaster": "0a977d6ebc4244739793b0b6f8b3f815", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T5", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "废液槽", - "ConsumablesName": "1 x 1" - }, - { - "uuid": "c1761686652d40fca3a5488354776381", - "uuidPlanMaster": "0a977d6ebc4244739793b0b6f8b3f815", - "Axis": "Left", - "ActOn": "Load", - "Place": "H33 - 40, T3", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 5, - "HoleCollective": "33,34,35,36,37,38,39,40", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12" - }, - { - "uuid": "8e6754658c5b423d820de2dfa53bd144", - "uuidPlanMaster": "0a977d6ebc4244739793b0b6f8b3f815", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H33 - 40, T4", - "Dosage": 100, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 5, - "HoleCollective": "33,34,35,36,37,38,39,40", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12" - }, - { - "uuid": "5902296acefa4a8183894f5ebbdfd713", - "uuidPlanMaster": "0a977d6ebc4244739793b0b6f8b3f815", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H129 - 143, T1", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 9, - "HoleCollective": "129,131,133,135,137,139,141,143", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "384", - "ConsumablesName": "16 x 24" - }, - { - "uuid": "353ab78d26354184b04a36d18a93967b", - "uuidPlanMaster": "0a977d6ebc4244739793b0b6f8b3f815", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H130 - 144, T1", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 9, - "HoleCollective": "130,132,134,136,138,140,142,144", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "384", - "ConsumablesName": "16 x 24" - }, - { - "uuid": "e6dde68c68b1466fb66beee32b5b9804", - "uuidPlanMaster": "0a977d6ebc4244739793b0b6f8b3f815", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H145 - 159, T1", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 10, - "HoleCollective": "145,147,149,151,153,155,157,159", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "384", - "ConsumablesName": "16 x 24" - }, - { - "uuid": "059a89cfb3134fe3a97b5a6d3797f080", - "uuidPlanMaster": "0a977d6ebc4244739793b0b6f8b3f815", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H146 - 160, T1", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 10, - "HoleCollective": "146,148,150,152,154,156,158,160", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "384", - "ConsumablesName": "16 x 24" - }, - { - "uuid": "5c829629669c4f1c9d4ec8a4a39fad2b", - "uuidPlanMaster": "0a977d6ebc4244739793b0b6f8b3f815", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T5", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "废液槽", - "ConsumablesName": "1 x 1" - }, - { - "uuid": "6f1d6326809043849feae30af64955fe", - "uuidPlanMaster": "0a977d6ebc4244739793b0b6f8b3f815", - "Axis": "Left", - "ActOn": "Load", - "Place": "H41 - 48, T3", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 6, - "HoleCollective": "41,42,43,44,45,46,47,48", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12" - }, - { - "uuid": "37595dd8abc3454ca2bc6d040772b509", - "uuidPlanMaster": "0a977d6ebc4244739793b0b6f8b3f815", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H41 - 48, T4", - "Dosage": 100, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 6, - "HoleCollective": "41,42,43,44,45,46,47,48", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12" - }, - { - "uuid": "7aead7f11f3b4180a208cc433d72e60f", - "uuidPlanMaster": "0a977d6ebc4244739793b0b6f8b3f815", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H161 - 175, T1", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 11, - "HoleCollective": "161,163,165,167,169,171,173,175", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "384", - "ConsumablesName": "16 x 24" - }, - { - "uuid": "afe1d66dca7c42d9abf0a43bc6ba70e9", - "uuidPlanMaster": "0a977d6ebc4244739793b0b6f8b3f815", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H162 - 176, T1", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 11, - "HoleCollective": "162,164,166,168,170,172,174,176", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "384", - "ConsumablesName": "16 x 24" - }, - { - "uuid": "ff33bfcc94984410a3d273686a1cbc1d", - "uuidPlanMaster": "0a977d6ebc4244739793b0b6f8b3f815", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H177 - 191, T1", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 12, - "HoleCollective": "177,179,181,183,185,187,189,191", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "384", - "ConsumablesName": "16 x 24" - }, - { - "uuid": "4de6aca4a5c146138be76bb48b177f66", - "uuidPlanMaster": "0a977d6ebc4244739793b0b6f8b3f815", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H178 - 192, T1", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 12, - "HoleCollective": "178,180,182,184,186,188,190,192", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "384", - "ConsumablesName": "16 x 24" - }, - { - "uuid": "69ef0200dc42410fad490cff98b8bf58", - "uuidPlanMaster": "0a977d6ebc4244739793b0b6f8b3f815", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T5", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "废液槽", - "ConsumablesName": "1 x 1" - }, - { - "uuid": "530e465adc804a4e81cffe6dcf7c5c0a", - "uuidPlanMaster": "0a977d6ebc4244739793b0b6f8b3f815", - "Axis": "Left", - "ActOn": "Load", - "Place": "H49 - 56, T3", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 7, - "HoleCollective": "49,50,51,52,53,54,55,56", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12" - }, - { - "uuid": "f21bea7f1e0a4b9aa053fa069c683115", - "uuidPlanMaster": "0a977d6ebc4244739793b0b6f8b3f815", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H49 - 56, T4", - "Dosage": 100, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 7, - "HoleCollective": "49,50,51,52,53,54,55,56", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12" - }, - { - "uuid": "34bda57ee4e94d3397eb7bdd8410cd27", - "uuidPlanMaster": "0a977d6ebc4244739793b0b6f8b3f815", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H193 - 207, T1", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 13, - "HoleCollective": "193,195,197,199,201,203,205,207", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "384", - "ConsumablesName": "16 x 24" - }, - { - "uuid": "1a9907449eb14718895765efa5db4710", - "uuidPlanMaster": "0a977d6ebc4244739793b0b6f8b3f815", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H194 - 208, T1", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 13, - "HoleCollective": "194,196,198,200,202,204,206,208", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "384", - "ConsumablesName": "16 x 24" - }, - { - "uuid": "7a4a6468eb814394bdc2f34ab42d56e0", - "uuidPlanMaster": "0a977d6ebc4244739793b0b6f8b3f815", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H209 - 223, T1", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 14, - "HoleCollective": "209,211,213,215,217,219,221,223", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "384", - "ConsumablesName": "16 x 24" - }, - { - "uuid": "95f4bcfbbfb444028f04ae49b3fc0082", - "uuidPlanMaster": "0a977d6ebc4244739793b0b6f8b3f815", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H210 - 224, T1", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 14, - "HoleCollective": "210,212,214,216,218,220,222,224", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "384", - "ConsumablesName": "16 x 24" - }, - { - "uuid": "5e5ede313cd049ec9d8bc65162169564", - "uuidPlanMaster": "0a977d6ebc4244739793b0b6f8b3f815", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T5", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "废液槽", - "ConsumablesName": "1 x 1" - }, - { - "uuid": "4562604fa30c4fcd9c2478baa59ddb5d", - "uuidPlanMaster": "0a977d6ebc4244739793b0b6f8b3f815", - "Axis": "Left", - "ActOn": "Load", - "Place": "H57 - 64, T3", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 8, - "HoleCollective": "57,58,59,60,61,62,63,64", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12" - }, - { - "uuid": "7df7508d65c14d458de87c94eb91248e", - "uuidPlanMaster": "0a977d6ebc4244739793b0b6f8b3f815", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H57 - 64, T4", - "Dosage": 100, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 8, - "HoleCollective": "57,58,59,60,61,62,63,64", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12" - }, - { - "uuid": "89890ce0f9bc4fac87154cd5960c5c52", - "uuidPlanMaster": "0a977d6ebc4244739793b0b6f8b3f815", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H225 - 239, T1", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 15, - "HoleCollective": "225,227,229,231,233,235,237,239", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "384", - "ConsumablesName": "16 x 24" - }, - { - "uuid": "9f56316cc8ff44fc9ad98a345740861b", - "uuidPlanMaster": "0a977d6ebc4244739793b0b6f8b3f815", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H226 - 240, T1", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 15, - "HoleCollective": "226,228,230,232,234,236,238,240", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "384", - "ConsumablesName": "16 x 24" - }, - { - "uuid": "b0e4e37ae9664044a02526887dda9caf", - "uuidPlanMaster": "0a977d6ebc4244739793b0b6f8b3f815", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H241 - 255, T1", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 16, - "HoleCollective": "241,243,245,247,249,251,253,255", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "384", - "ConsumablesName": "16 x 24" - }, - { - "uuid": "54b7ca214efe47a4bdac36105d0ec46e", - "uuidPlanMaster": "0a977d6ebc4244739793b0b6f8b3f815", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H242 - 256, T1", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 16, - "HoleCollective": "242,244,246,248,250,252,254,256", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "384", - "ConsumablesName": "16 x 24" - }, - { - "uuid": "99e9968173754511918d01b59d3029d0", - "uuidPlanMaster": "0a977d6ebc4244739793b0b6f8b3f815", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T5", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "废液槽", - "ConsumablesName": "1 x 1" - }, - { - "uuid": "18b3e91082604757b9c78e88927bacf9", - "uuidPlanMaster": "0a977d6ebc4244739793b0b6f8b3f815", - "Axis": "Left", - "ActOn": "Load", - "Place": "H65 - 72, T3", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 9, - "HoleCollective": "65,66,67,68,69,70,71,72", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12" - }, - { - "uuid": "ade173abf44e4521a779c314ae90258e", - "uuidPlanMaster": "0a977d6ebc4244739793b0b6f8b3f815", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H65 - 72, T4", - "Dosage": 100, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 9, - "HoleCollective": "65,66,67,68,69,70,71,72", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12" - }, - { - "uuid": "d6af8987431247cb944f3b224df12c15", - "uuidPlanMaster": "0a977d6ebc4244739793b0b6f8b3f815", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H257 - 271, T1", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 17, - "HoleCollective": "257,259,261,263,265,267,269,271", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "384", - "ConsumablesName": "16 x 24" - }, - { - "uuid": "7414bc14ac6b4492bf4d63b11bf7117d", - "uuidPlanMaster": "0a977d6ebc4244739793b0b6f8b3f815", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H258 - 272, T1", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 17, - "HoleCollective": "258,260,262,264,266,268,270,272", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "384", - "ConsumablesName": "16 x 24" - }, - { - "uuid": "481179da0054432d8ec87e60434df988", - "uuidPlanMaster": "0a977d6ebc4244739793b0b6f8b3f815", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H273 - 287, T1", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 18, - "HoleCollective": "273,275,277,279,281,283,285,287", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "384", - "ConsumablesName": "16 x 24" - }, - { - "uuid": "bbe272428f6544979b6a834f5b5a2fec", - "uuidPlanMaster": "0a977d6ebc4244739793b0b6f8b3f815", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H274 - 288, T1", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 18, - "HoleCollective": "274,276,278,280,282,284,286,288", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "384", - "ConsumablesName": "16 x 24" - }, - { - "uuid": "1b0c0d4e516445ff9deaddeeb2c1ebc1", - "uuidPlanMaster": "0a977d6ebc4244739793b0b6f8b3f815", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T5", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "废液槽", - "ConsumablesName": "1 x 1" - }, - { - "uuid": "ed8a905ca6a140b0afc357e7fd9550e5", - "uuidPlanMaster": "0a977d6ebc4244739793b0b6f8b3f815", - "Axis": "Left", - "ActOn": "Load", - "Place": "H73 - 80, T3", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 10, - "HoleCollective": "73,74,75,76,77,78,79,80", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12" - }, - { - "uuid": "e24951ae4c0a417caf39d077b2950cf9", - "uuidPlanMaster": "0a977d6ebc4244739793b0b6f8b3f815", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H73 - 80, T4", - "Dosage": 100, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 10, - "HoleCollective": "73,74,75,76,77,78,79,80", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12" - }, - { - "uuid": "be3dff272c8446a889033a1bd0cb8314", - "uuidPlanMaster": "0a977d6ebc4244739793b0b6f8b3f815", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H289 - 303, T1", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 19, - "HoleCollective": "289,291,293,295,297,299,301,303", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "384", - "ConsumablesName": "16 x 24" - }, - { - "uuid": "d62eef83996b40c88af538f77b9061ff", - "uuidPlanMaster": "0a977d6ebc4244739793b0b6f8b3f815", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H290 - 304, T1", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 19, - "HoleCollective": "290,292,294,296,298,300,302,304", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "384", - "ConsumablesName": "16 x 24" - }, - { - "uuid": "b2879156c3a747c48e3b707076e06de3", - "uuidPlanMaster": "0a977d6ebc4244739793b0b6f8b3f815", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H305 - 319, T1", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 20, - "HoleCollective": "305,307,309,311,313,315,317,319", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "384", - "ConsumablesName": "16 x 24" - }, - { - "uuid": "0f18197169eb40dbadd03bde8dc57378", - "uuidPlanMaster": "0a977d6ebc4244739793b0b6f8b3f815", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H306 - 320, T1", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 20, - "HoleCollective": "306,308,310,312,314,316,318,320", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "384", - "ConsumablesName": "16 x 24" - }, - { - "uuid": "0da753320d134311a79812dabb3c97ed", - "uuidPlanMaster": "0a977d6ebc4244739793b0b6f8b3f815", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T5", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "废液槽", - "ConsumablesName": "1 x 1" - }, - { - "uuid": "f40bee032c76438fa635b4cc6fcec9c4", - "uuidPlanMaster": "0a977d6ebc4244739793b0b6f8b3f815", - "Axis": "Left", - "ActOn": "Load", - "Place": "H81 - 88, T3", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 11, - "HoleCollective": "81,82,83,84,85,86,87,88", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12" - }, - { - "uuid": "e5d65266a85f49929a820fe5d0561e1d", - "uuidPlanMaster": "0a977d6ebc4244739793b0b6f8b3f815", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H81 - 88, T4", - "Dosage": 100, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 11, - "HoleCollective": "81,82,83,84,85,86,87,88", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12" - }, - { - "uuid": "b196d1518f1e40d7b664b73aed1a0e59", - "uuidPlanMaster": "0a977d6ebc4244739793b0b6f8b3f815", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H321 - 335, T1", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 21, - "HoleCollective": "321,323,325,327,329,331,333,335", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "384", - "ConsumablesName": "16 x 24" - }, - { - "uuid": "fb949982b0114e2db67b6259316a9d5a", - "uuidPlanMaster": "0a977d6ebc4244739793b0b6f8b3f815", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H322 - 336, T1", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 21, - "HoleCollective": "322,324,326,328,330,332,334,336", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "384", - "ConsumablesName": "16 x 24" - }, - { - "uuid": "72815961efc843f2b701cf1afba70c17", - "uuidPlanMaster": "0a977d6ebc4244739793b0b6f8b3f815", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H337 - 351, T1", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 22, - "HoleCollective": "337,339,341,343,345,347,349,351", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "384", - "ConsumablesName": "16 x 24" - }, - { - "uuid": "4a2b70009d844ba3a81c3f54372c5969", - "uuidPlanMaster": "0a977d6ebc4244739793b0b6f8b3f815", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H338 - 352, T1", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 22, - "HoleCollective": "338,340,342,344,346,348,350,352", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "384", - "ConsumablesName": "16 x 24" - }, - { - "uuid": "fcaefcf5fcfa41e3b00730f440023957", - "uuidPlanMaster": "0a977d6ebc4244739793b0b6f8b3f815", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T5", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "废液槽", - "ConsumablesName": "1 x 1" - }, - { - "uuid": "4f3b0f756c924122a9bb3d6c62e80c75", - "uuidPlanMaster": "0a977d6ebc4244739793b0b6f8b3f815", - "Axis": "Left", - "ActOn": "Load", - "Place": "H89 - 96, T3", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 12, - "HoleCollective": "89,90,91,92,93,94,95,96", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12" - }, - { - "uuid": "a5dd4b8263e04be1bd8e14852f8e718b", - "uuidPlanMaster": "0a977d6ebc4244739793b0b6f8b3f815", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H89 - 96, T4", - "Dosage": 100, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 12, - "HoleCollective": "89,90,91,92,93,94,95,96", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12" - }, - { - "uuid": "c216c4a2f46e49d49b348db9e6cca074", - "uuidPlanMaster": "0a977d6ebc4244739793b0b6f8b3f815", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H353 - 367, T1", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 23, - "HoleCollective": "353,355,357,359,361,363,365,367", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "384", - "ConsumablesName": "16 x 24" - }, - { - "uuid": "facb746e1ba44f06b07761caf1d3237d", - "uuidPlanMaster": "0a977d6ebc4244739793b0b6f8b3f815", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H354 - 368, T1", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 23, - "HoleCollective": "354,356,358,360,362,364,366,368", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "384", - "ConsumablesName": "16 x 24" - }, - { - "uuid": "a4f5b081bb9040108587084db9926a91", - "uuidPlanMaster": "0a977d6ebc4244739793b0b6f8b3f815", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H369 - 383, T1", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 24, - "HoleCollective": "369,371,373,375,377,379,381,383", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "384", - "ConsumablesName": "16 x 24" - }, - { - "uuid": "f0962a29174149f5a322a0736d91bf84", - "uuidPlanMaster": "0a977d6ebc4244739793b0b6f8b3f815", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H370 - 384, T1", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 24, - "HoleCollective": "370,372,374,376,378,380,382,384", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "384", - "ConsumablesName": "16 x 24" - }, - { - "uuid": "f2f1a3e5cc7a4b53b2ac2d97f4684e07", - "uuidPlanMaster": "0a977d6ebc4244739793b0b6f8b3f815", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T5", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "废液槽", - "ConsumablesName": "1 x 1" - }, - { - "uuid": "68a347119760443da9c79ff997cdedd6", - "uuidPlanMaster": "aff2cd213ad34072b370f44acb5ab658", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1 - 8, T3", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12" - }, - { - "uuid": "099524f7fdb04b62b052ebab977d2bf3", - "uuidPlanMaster": "aff2cd213ad34072b370f44acb5ab658", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H1 - 8, T4", - "Dosage": 300, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12" - }, - { - "uuid": "e2d2f9c4cee345c78f57303ab1508cfb", - "uuidPlanMaster": "aff2cd213ad34072b370f44acb5ab658", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1 - 8, T2", - "Dosage": 300, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12" - }, - { - "uuid": "231757ddbe1b4fb2bf1a5df2998da2c1", - "uuidPlanMaster": "aff2cd213ad34072b370f44acb5ab658", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H1 - 8, T2", - "Dosage": 300, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12" - }, - { - "uuid": "077b08ea64044effb4db80e8c1da3735", - "uuidPlanMaster": "aff2cd213ad34072b370f44acb5ab658", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1 - 8, T1", - "Dosage": 300, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12" - }, - { - "uuid": "235b2ace29b74b089fde5741a77e1fb3", - "uuidPlanMaster": "aff2cd213ad34072b370f44acb5ab658", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T5", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "废液槽", - "ConsumablesName": "1 x 1" - }, - { - "uuid": "6c3092cbddce48d48595b8fe55b735c9", - "uuidPlanMaster": "aff2cd213ad34072b370f44acb5ab658", - "Axis": "Left", - "ActOn": "Load", - "Place": "H9 - 16, T3", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 2, - "HoleCollective": "9,10,11,12,13,14,15,16", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12" - }, - { - "uuid": "97b3ee8eae644b04ab29ac299a549cf2", - "uuidPlanMaster": "aff2cd213ad34072b370f44acb5ab658", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H9 - 16, T4", - "Dosage": 300, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 2, - "HoleCollective": "9,10,11,12,13,14,15,16", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12" - }, - { - "uuid": "542a1f0bae444fc8adfbfca3a32232df", - "uuidPlanMaster": "aff2cd213ad34072b370f44acb5ab658", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H9 - 16, T2", - "Dosage": 300, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 2, - "HoleCollective": "9,10,11,12,13,14,15,16", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12" - }, - { - "uuid": "636e66d9d4bd407ca86f386c7f9069dd", - "uuidPlanMaster": "aff2cd213ad34072b370f44acb5ab658", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H9 - 16, T2", - "Dosage": 300, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 2, - "HoleCollective": "9,10,11,12,13,14,15,16", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12" - }, - { - "uuid": "9f8f5ac96de64e6194225f902abd7a30", - "uuidPlanMaster": "aff2cd213ad34072b370f44acb5ab658", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H9 - 16, T1", - "Dosage": 300, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 2, - "HoleCollective": "9,10,11,12,13,14,15,16", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12" - }, - { - "uuid": "2b124dd3aab8471a8d807233b45de273", - "uuidPlanMaster": "aff2cd213ad34072b370f44acb5ab658", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T5", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 2, - "HoleCollective": "9", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "废液槽", - "ConsumablesName": "1 x 1" - }, - { - "uuid": "2b04cb24eb4e469c957de592130866dc", - "uuidPlanMaster": "aff2cd213ad34072b370f44acb5ab658", - "Axis": "Left", - "ActOn": "Load", - "Place": "H17 - 24, T3", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "17,18,19,20,21,22,23,24", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12" - }, - { - "uuid": "c29e0417912a449f847d3eaeeadd38f3", - "uuidPlanMaster": "aff2cd213ad34072b370f44acb5ab658", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H17 - 24, T4", - "Dosage": 300, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "17,18,19,20,21,22,23,24", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12" - }, - { - "uuid": "1f6acae1f17843c2b194cabdae087be2", - "uuidPlanMaster": "aff2cd213ad34072b370f44acb5ab658", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H17 - 24, T2", - "Dosage": 300, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "17,18,19,20,21,22,23,24", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12" - }, - { - "uuid": "762cb15f00ff4cbfb09dfef356c6fa6d", - "uuidPlanMaster": "aff2cd213ad34072b370f44acb5ab658", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H17 - 24, T2", - "Dosage": 300, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "17,18,19,20,21,22,23,24", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12" - }, - { - "uuid": "a6d56c9e626f48458c3ede3bfd8d7165", - "uuidPlanMaster": "aff2cd213ad34072b370f44acb5ab658", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H17 - 24, T1", - "Dosage": 300, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "17,18,19,20,21,22,23,24", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12" - }, - { - "uuid": "efc8e606a26a40d3ab22559ad432d35b", - "uuidPlanMaster": "aff2cd213ad34072b370f44acb5ab658", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T5", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "17", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "废液槽", - "ConsumablesName": "1 x 1" - }, - { - "uuid": "f296f0da7ea941c38fa3faae135c96c8", - "uuidPlanMaster": "aff2cd213ad34072b370f44acb5ab658", - "Axis": "Left", - "ActOn": "Load", - "Place": "H25 - 32, T3", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 4, - "HoleCollective": "25,26,27,28,29,30,31,32", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12" - }, - { - "uuid": "198dccf8ef934e20a1b4227524d746aa", - "uuidPlanMaster": "aff2cd213ad34072b370f44acb5ab658", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H25 - 32, T4", - "Dosage": 300, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 4, - "HoleCollective": "25,26,27,28,29,30,31,32", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12" - }, - { - "uuid": "c3dd92b3f5a34b159affb1a5ab725973", - "uuidPlanMaster": "aff2cd213ad34072b370f44acb5ab658", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H25 - 32, T2", - "Dosage": 300, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 4, - "HoleCollective": "25,26,27,28,29,30,31,32", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12" - }, - { - "uuid": "b2c4fe0d6ab3427e9683705f065c88d6", - "uuidPlanMaster": "aff2cd213ad34072b370f44acb5ab658", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H25 - 32, T2", - "Dosage": 300, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 4, - "HoleCollective": "25,26,27,28,29,30,31,32", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12" - }, - { - "uuid": "94284b0b958943af84c3c88ba82b7cfe", - "uuidPlanMaster": "aff2cd213ad34072b370f44acb5ab658", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H25 - 32, T1", - "Dosage": 300, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 4, - "HoleCollective": "25,26,27,28,29,30,31,32", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12" - }, - { - "uuid": "3fac7a836c41432cb3f03d1efb3960c3", - "uuidPlanMaster": "aff2cd213ad34072b370f44acb5ab658", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T5", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 4, - "HoleCollective": "25", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "废液槽", - "ConsumablesName": "1 x 1" - }, - { - "uuid": "12dab1b9bfde431da44eab9e4581281f", - "uuidPlanMaster": "aff2cd213ad34072b370f44acb5ab658", - "Axis": "Left", - "ActOn": "Load", - "Place": "H33 - 40, T3", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 5, - "HoleCollective": "33,34,35,36,37,38,39,40", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12" - }, - { - "uuid": "cdc270db4fbf4e5e82e13e09a423a5b7", - "uuidPlanMaster": "aff2cd213ad34072b370f44acb5ab658", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H33 - 40, T4", - "Dosage": 300, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 5, - "HoleCollective": "33,34,35,36,37,38,39,40", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12" - }, - { - "uuid": "dc3dbea735574f8bba2b1f9d3942e466", - "uuidPlanMaster": "aff2cd213ad34072b370f44acb5ab658", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H33 - 40, T2", - "Dosage": 300, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 5, - "HoleCollective": "33,34,35,36,37,38,39,40", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12" - }, - { - "uuid": "d445d1d8fac24d869842f99dfcc9b546", - "uuidPlanMaster": "aff2cd213ad34072b370f44acb5ab658", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H33 - 40, T2", - "Dosage": 300, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 5, - "HoleCollective": "33,34,35,36,37,38,39,40", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12" - }, - { - "uuid": "1de8de82333d4580b730aa8c59059fc6", - "uuidPlanMaster": "aff2cd213ad34072b370f44acb5ab658", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H33 - 40, T1", - "Dosage": 300, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 5, - "HoleCollective": "33,34,35,36,37,38,39,40", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12" - }, - { - "uuid": "ad56abcf10514ec6aef8dedb33878d98", - "uuidPlanMaster": "aff2cd213ad34072b370f44acb5ab658", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T5", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 5, - "HoleCollective": "33", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "废液槽", - "ConsumablesName": "1 x 1" - }, - { - "uuid": "005ad2841dd74fc685c16af9cef9ca53", - "uuidPlanMaster": "aff2cd213ad34072b370f44acb5ab658", - "Axis": "Left", - "ActOn": "Load", - "Place": "H41 - 48, T3", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 6, - "HoleCollective": "41,42,43,44,45,46,47,48", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12" - }, - { - "uuid": "91ef993709b04005ac92e64150a0dc01", - "uuidPlanMaster": "aff2cd213ad34072b370f44acb5ab658", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H41 - 48, T4", - "Dosage": 300, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 6, - "HoleCollective": "41,42,43,44,45,46,47,48", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12" - }, - { - "uuid": "e40c034653904d3888dfacd52d01172b", - "uuidPlanMaster": "aff2cd213ad34072b370f44acb5ab658", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H41 - 48, T2", - "Dosage": 300, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 6, - "HoleCollective": "41,42,43,44,45,46,47,48", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12" - }, - { - "uuid": "f37cc9fac56146e4911f340ffe1a98e6", - "uuidPlanMaster": "aff2cd213ad34072b370f44acb5ab658", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H41 - 48, T2", - "Dosage": 300, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 6, - "HoleCollective": "41,42,43,44,45,46,47,48", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12" - }, - { - "uuid": "7f350cf8fcab4abf90556180d7f298f7", - "uuidPlanMaster": "aff2cd213ad34072b370f44acb5ab658", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H41 - 48, T1", - "Dosage": 300, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 6, - "HoleCollective": "41,42,43,44,45,46,47,48", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12" - }, - { - "uuid": "53c19cef883c44f38f65bc716f30ce9b", - "uuidPlanMaster": "aff2cd213ad34072b370f44acb5ab658", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T5", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 6, - "HoleCollective": "41", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "废液槽", - "ConsumablesName": "1 x 1" - }, - { - "uuid": "c5b9ce4800d84aba994c786f59224dea", - "uuidPlanMaster": "aff2cd213ad34072b370f44acb5ab658", - "Axis": "Left", - "ActOn": "Load", - "Place": "H49 - 56, T3", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 7, - "HoleCollective": "49,50,51,52,53,54,55,56", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12" - }, - { - "uuid": "df3e42d17a8b45f5ad5bc22d883db116", - "uuidPlanMaster": "aff2cd213ad34072b370f44acb5ab658", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H49 - 56, T4", - "Dosage": 300, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 7, - "HoleCollective": "49,50,51,52,53,54,55,56", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12" - }, - { - "uuid": "00883fd023104503ab425536c89eb894", - "uuidPlanMaster": "aff2cd213ad34072b370f44acb5ab658", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H49 - 56, T2", - "Dosage": 300, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 7, - "HoleCollective": "49,50,51,52,53,54,55,56", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12" - }, - { - "uuid": "edefe24ac2c3421ba631235f732b2838", - "uuidPlanMaster": "aff2cd213ad34072b370f44acb5ab658", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H49 - 56, T2", - "Dosage": 300, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 7, - "HoleCollective": "49,50,51,52,53,54,55,56", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12" - }, - { - "uuid": "93e7553dd7d34ffcb38211ed00a8477b", - "uuidPlanMaster": "aff2cd213ad34072b370f44acb5ab658", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H49 - 56, T1", - "Dosage": 300, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 7, - "HoleCollective": "49,50,51,52,53,54,55,56", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12" - }, - { - "uuid": "3fa8e6688f8343c28d4f4d62a0d15e62", - "uuidPlanMaster": "aff2cd213ad34072b370f44acb5ab658", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T5", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 7, - "HoleCollective": "49", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "废液槽", - "ConsumablesName": "1 x 1" - }, - { - "uuid": "a5495a41ec444b32a27599a27ef56dcc", - "uuidPlanMaster": "aff2cd213ad34072b370f44acb5ab658", - "Axis": "Left", - "ActOn": "Load", - "Place": "H57 - 64, T3", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 8, - "HoleCollective": "57,58,59,60,61,62,63,64", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12" - }, - { - "uuid": "6390502840be43249f96a0075d0490c5", - "uuidPlanMaster": "aff2cd213ad34072b370f44acb5ab658", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H57 - 64, T4", - "Dosage": 300, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 8, - "HoleCollective": "57,58,59,60,61,62,63,64", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12" - }, - { - "uuid": "8863618ad906433aa11dc9b3c52d506e", - "uuidPlanMaster": "aff2cd213ad34072b370f44acb5ab658", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H57 - 64, T2", - "Dosage": 300, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 8, - "HoleCollective": "57,58,59,60,61,62,63,64", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12" - }, - { - "uuid": "b2e14eb9ae1b49728daca658022f832e", - "uuidPlanMaster": "aff2cd213ad34072b370f44acb5ab658", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H57 - 64, T2", - "Dosage": 300, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 8, - "HoleCollective": "57,58,59,60,61,62,63,64", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12" - }, - { - "uuid": "8a4bfb5b1cda4ea49b2ee60b09619060", - "uuidPlanMaster": "aff2cd213ad34072b370f44acb5ab658", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H57 - 64, T1", - "Dosage": 300, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 8, - "HoleCollective": "57,58,59,60,61,62,63,64", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12" - }, - { - "uuid": "a33168bc052d4fa4a5d7f69b012a532a", - "uuidPlanMaster": "aff2cd213ad34072b370f44acb5ab658", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T5", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 8, - "HoleCollective": "57", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "废液槽", - "ConsumablesName": "1 x 1" - }, - { - "uuid": "a672cf9a7e5449d9b793bb226e4d4e3d", - "uuidPlanMaster": "aff2cd213ad34072b370f44acb5ab658", - "Axis": "Left", - "ActOn": "Load", - "Place": "H65 - 72, T3", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 9, - "HoleCollective": "65,66,67,68,69,70,71,72", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12" - }, - { - "uuid": "c05c8d125d764a50ada5202ea4399c48", - "uuidPlanMaster": "aff2cd213ad34072b370f44acb5ab658", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H65 - 72, T4", - "Dosage": 300, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 9, - "HoleCollective": "65,66,67,68,69,70,71,72", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12" - }, - { - "uuid": "61c3e33d9f6244ef9e90757ad0218343", - "uuidPlanMaster": "aff2cd213ad34072b370f44acb5ab658", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H65 - 72, T2", - "Dosage": 300, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 9, - "HoleCollective": "65,66,67,68,69,70,71,72", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12" - }, - { - "uuid": "630d4f953c4e4ea6b6cd9ef702b6f816", - "uuidPlanMaster": "aff2cd213ad34072b370f44acb5ab658", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H65 - 72, T2", - "Dosage": 300, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 9, - "HoleCollective": "65,66,67,68,69,70,71,72", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12" - }, - { - "uuid": "bdc5e3be588243808c66e2f0aa3b63c4", - "uuidPlanMaster": "aff2cd213ad34072b370f44acb5ab658", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H65 - 72, T1", - "Dosage": 300, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 9, - "HoleCollective": "65,66,67,68,69,70,71,72", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12" - }, - { - "uuid": "e83c5c83404c47a7a4abba5e6d6bcfeb", - "uuidPlanMaster": "aff2cd213ad34072b370f44acb5ab658", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T5", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 9, - "HoleCollective": "65", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "废液槽", - "ConsumablesName": "1 x 1" - }, - { - "uuid": "2c49dceafb9d452fb8d15fe9bb5da274", - "uuidPlanMaster": "aff2cd213ad34072b370f44acb5ab658", - "Axis": "Left", - "ActOn": "Load", - "Place": "H73 - 80, T3", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 10, - "HoleCollective": "73,74,75,76,77,78,79,80", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12" - }, - { - "uuid": "17e779c2479b4bd5a7bcf23fc15519b2", - "uuidPlanMaster": "aff2cd213ad34072b370f44acb5ab658", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H73 - 80, T4", - "Dosage": 300, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 10, - "HoleCollective": "73,74,75,76,77,78,79,80", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12" - }, - { - "uuid": "c511efd0557347d08269ab97a90d842f", - "uuidPlanMaster": "aff2cd213ad34072b370f44acb5ab658", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H73 - 80, T2", - "Dosage": 300, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 10, - "HoleCollective": "73,74,75,76,77,78,79,80", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12" - }, - { - "uuid": "de6c0fa716f54c41a26946e32d7bd6d5", - "uuidPlanMaster": "aff2cd213ad34072b370f44acb5ab658", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H73 - 80, T2", - "Dosage": 300, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 10, - "HoleCollective": "73,74,75,76,77,78,79,80", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12" - }, - { - "uuid": "bb4eddf83bf7452986d35721ffc54873", - "uuidPlanMaster": "aff2cd213ad34072b370f44acb5ab658", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H73 - 80, T1", - "Dosage": 300, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 10, - "HoleCollective": "73,74,75,76,77,78,79,80", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12" - }, - { - "uuid": "a4970d3b3cf94dc8a31f57a49414413d", - "uuidPlanMaster": "aff2cd213ad34072b370f44acb5ab658", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T5", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 10, - "HoleCollective": "73", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "废液槽", - "ConsumablesName": "1 x 1" - }, - { - "uuid": "626e2b28a3b24dfb880dd4faf9786055", - "uuidPlanMaster": "aff2cd213ad34072b370f44acb5ab658", - "Axis": "Left", - "ActOn": "Load", - "Place": "H81 - 88, T3", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 11, - "HoleCollective": "81,82,83,84,85,86,87,88", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12" - }, - { - "uuid": "6842ecd2b977451eb738493d04e1244e", - "uuidPlanMaster": "aff2cd213ad34072b370f44acb5ab658", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H81 - 88, T4", - "Dosage": 300, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 11, - "HoleCollective": "81,82,83,84,85,86,87,88", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12" - }, - { - "uuid": "4348aef29d774394adc620c210f2cda7", - "uuidPlanMaster": "aff2cd213ad34072b370f44acb5ab658", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H81 - 88, T2", - "Dosage": 300, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 11, - "HoleCollective": "81,82,83,84,85,86,87,88", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12" - }, - { - "uuid": "217a62596374475ebb4eb3e1082f7436", - "uuidPlanMaster": "aff2cd213ad34072b370f44acb5ab658", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H81 - 88, T2", - "Dosage": 300, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 11, - "HoleCollective": "81,82,83,84,85,86,87,88", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12" - }, - { - "uuid": "3f312be41bc146b9aa9a7c3ad44b80a7", - "uuidPlanMaster": "aff2cd213ad34072b370f44acb5ab658", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H81 - 88, T1", - "Dosage": 300, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 11, - "HoleCollective": "81,82,83,84,85,86,87,88", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12" - }, - { - "uuid": "9afd99189f4c42cd89d8d48e9e0cdfcf", - "uuidPlanMaster": "aff2cd213ad34072b370f44acb5ab658", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T5", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 11, - "HoleCollective": "81", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "废液槽", - "ConsumablesName": "1 x 1" - }, - { - "uuid": "3ddc5ea55d0a428e89c1fe6feff5b8b3", - "uuidPlanMaster": "aff2cd213ad34072b370f44acb5ab658", - "Axis": "Left", - "ActOn": "Load", - "Place": "H89 - 96, T3", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 12, - "HoleCollective": "89,90,91,92,93,94,95,96", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12" - }, - { - "uuid": "769f5991d1064f01a8847ea2e4afe592", - "uuidPlanMaster": "aff2cd213ad34072b370f44acb5ab658", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H89 - 96, T4", - "Dosage": 300, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 12, - "HoleCollective": "89,90,91,92,93,94,95,96", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12" - }, - { - "uuid": "b946e89b366c4ccaad339fa35350e7bd", - "uuidPlanMaster": "aff2cd213ad34072b370f44acb5ab658", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H89 - 96, T2", - "Dosage": 300, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 12, - "HoleCollective": "89,90,91,92,93,94,95,96", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12" - }, - { - "uuid": "18e2aae702fd48f4abd1e69c61dcb535", - "uuidPlanMaster": "aff2cd213ad34072b370f44acb5ab658", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H89 - 96, T2", - "Dosage": 300, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 12, - "HoleCollective": "89,90,91,92,93,94,95,96", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12" - }, - { - "uuid": "9083222f9eaa407581775d5fed715d07", - "uuidPlanMaster": "aff2cd213ad34072b370f44acb5ab658", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H89 - 96, T1", - "Dosage": 300, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 12, - "HoleCollective": "89,90,91,92,93,94,95,96", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12" - }, - { - "uuid": "e38b67c82ca6484399fe0a59a681bfae", - "uuidPlanMaster": "aff2cd213ad34072b370f44acb5ab658", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T5", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 12, - "HoleCollective": "89", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "废液槽", - "ConsumablesName": "1 x 1" - }, - { - "uuid": "be728285210645e4ae321e7bafddc820", - "uuidPlanMaster": "97816d94f99a48409379013d19f0ab66", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1 - 8, T3", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12" - }, - { - "uuid": "3a42ac19d5c44a3a929bc83580335c77", - "uuidPlanMaster": "97816d94f99a48409379013d19f0ab66", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H1 - 8, T4", - "Dosage": 40, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12" - }, - { - "uuid": "d76feabebcf94d86be4db75b8d856431", - "uuidPlanMaster": "97816d94f99a48409379013d19f0ab66", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1 - 15, T1", - "Dosage": 10, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,3,5,7,9,11,13,15", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "384", - "ConsumablesName": "16 x 24" - }, - { - "uuid": "878f1715a97642aea44f10339c73afe4", - "uuidPlanMaster": "97816d94f99a48409379013d19f0ab66", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H2 - 16, T1", - "Dosage": 10, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 1, - "HoleCollective": "2,4,6,8,10,12,14,16", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "384", - "ConsumablesName": "16 x 24" - }, - { - "uuid": "edf4736152ea46719093db032770a5b6", - "uuidPlanMaster": "97816d94f99a48409379013d19f0ab66", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H17 - 31, T1", - "Dosage": 10, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 2, - "HoleCollective": "17,19,21,23,25,27,29,31", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "384", - "ConsumablesName": "16 x 24" - }, - { - "uuid": "30fc2f4bda0c4df488b025b123cd6e28", - "uuidPlanMaster": "97816d94f99a48409379013d19f0ab66", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H18 - 32, T1", - "Dosage": 10, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 2, - "HoleCollective": "18,20,22,24,26,28,30,32", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "384", - "ConsumablesName": "16 x 24" - }, - { - "uuid": "7bcdfa43d68b481e8096fb4311482922", - "uuidPlanMaster": "97816d94f99a48409379013d19f0ab66", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T5", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "废液槽", - "ConsumablesName": "1 x 1" - }, - { - "uuid": "c634b4f41ca34acdac4b08154ce3d6f9", - "uuidPlanMaster": "97816d94f99a48409379013d19f0ab66", - "Axis": "Left", - "ActOn": "Load", - "Place": "H9 - 16, T3", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 2, - "HoleCollective": "9,10,11,12,13,14,15,16", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12" - }, - { - "uuid": "805be11a28264afa8b70947194066de1", - "uuidPlanMaster": "97816d94f99a48409379013d19f0ab66", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H9 - 16, T4", - "Dosage": 40, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 2, - "HoleCollective": "9,10,11,12,13,14,15,16", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12" - }, - { - "uuid": "2efdc4ed8d3a46688f7a675016379f7e", - "uuidPlanMaster": "97816d94f99a48409379013d19f0ab66", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H33 - 47, T1", - "Dosage": 10, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "33,35,37,39,41,43,45,47", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "384", - "ConsumablesName": "16 x 24" - }, - { - "uuid": "a127da9ffd034b1fb5fcf6d739e0023d", - "uuidPlanMaster": "97816d94f99a48409379013d19f0ab66", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H34 - 48, T1", - "Dosage": 10, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 3, - "HoleCollective": "34,36,38,40,42,44,46,48", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "384", - "ConsumablesName": "16 x 24" - }, - { - "uuid": "fcd89f16f2ce4cd993efa300b8cb4e14", - "uuidPlanMaster": "97816d94f99a48409379013d19f0ab66", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H49 - 63, T1", - "Dosage": 10, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 4, - "HoleCollective": "49,51,53,55,57,59,61,63", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "384", - "ConsumablesName": "16 x 24" - }, - { - "uuid": "ca76eec5efb04e82b013a59df64dfc99", - "uuidPlanMaster": "97816d94f99a48409379013d19f0ab66", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H50 - 64, T1", - "Dosage": 10, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 4, - "HoleCollective": "50,52,54,56,58,60,62,64", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "384", - "ConsumablesName": "16 x 24" - }, - { - "uuid": "9f2f213efe3b4259be829535d28b50d2", - "uuidPlanMaster": "97816d94f99a48409379013d19f0ab66", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T5", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "废液槽", - "ConsumablesName": "1 x 1" - }, - { - "uuid": "14af2fcb50294f93b2fc2e5fc65fcfc8", - "uuidPlanMaster": "97816d94f99a48409379013d19f0ab66", - "Axis": "Left", - "ActOn": "Load", - "Place": "H17 - 24, T3", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "17,18,19,20,21,22,23,24", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12" - }, - { - "uuid": "a665138caa2842b78043e1ffee2592b3", - "uuidPlanMaster": "97816d94f99a48409379013d19f0ab66", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H17 - 24, T4", - "Dosage": 40, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "17,18,19,20,21,22,23,24", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12" - }, - { - "uuid": "81a16d273b1942d1bd8404f28b687a49", - "uuidPlanMaster": "97816d94f99a48409379013d19f0ab66", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H65 - 79, T1", - "Dosage": 10, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 5, - "HoleCollective": "65,67,69,71,73,75,77,79", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "384", - "ConsumablesName": "16 x 24" - }, - { - "uuid": "3b65e959b58e4797b95748275d769c4f", - "uuidPlanMaster": "97816d94f99a48409379013d19f0ab66", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H66 - 80, T1", - "Dosage": 10, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 5, - "HoleCollective": "66,68,70,72,74,76,78,80", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "384", - "ConsumablesName": "16 x 24" - }, - { - "uuid": "c66f2d2a075f4456b61e5fff4063e48b", - "uuidPlanMaster": "97816d94f99a48409379013d19f0ab66", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H81 - 95, T1", - "Dosage": 10, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 6, - "HoleCollective": "81,83,85,87,89,91,93,95", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "384", - "ConsumablesName": "16 x 24" - }, - { - "uuid": "cd9afb2707e547c88ddbc0cf5a62022e", - "uuidPlanMaster": "97816d94f99a48409379013d19f0ab66", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H82 - 96, T1", - "Dosage": 10, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 6, - "HoleCollective": "82,84,86,88,90,92,94,96", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "384", - "ConsumablesName": "16 x 24" - }, - { - "uuid": "5007e568f4a048459c557b3ed5681564", - "uuidPlanMaster": "97816d94f99a48409379013d19f0ab66", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T5", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "废液槽", - "ConsumablesName": "1 x 1" - }, - { - "uuid": "943120ec42c941a5958b627f1c209345", - "uuidPlanMaster": "97816d94f99a48409379013d19f0ab66", - "Axis": "Left", - "ActOn": "Load", - "Place": "H25 - 32, T3", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 4, - "HoleCollective": "25,26,27,28,29,30,31,32", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12" - }, - { - "uuid": "142f1dbf9bcc403d80563e1444e63422", - "uuidPlanMaster": "97816d94f99a48409379013d19f0ab66", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H25 - 32, T4", - "Dosage": 40, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 4, - "HoleCollective": "25,26,27,28,29,30,31,32", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12" - }, - { - "uuid": "dcba89da210d4b7b8b6eacd445865b94", - "uuidPlanMaster": "97816d94f99a48409379013d19f0ab66", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H97 - 111, T1", - "Dosage": 10, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 7, - "HoleCollective": "97,99,101,103,105,107,109,111", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "384", - "ConsumablesName": "16 x 24" - }, - { - "uuid": "119760f040cc48c88e016b20cbf047a0", - "uuidPlanMaster": "97816d94f99a48409379013d19f0ab66", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H98 - 112, T1", - "Dosage": 10, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 7, - "HoleCollective": "98,100,102,104,106,108,110,112", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "384", - "ConsumablesName": "16 x 24" - }, - { - "uuid": "c54e34b6b4124f8ab9b0baf076ad3740", - "uuidPlanMaster": "97816d94f99a48409379013d19f0ab66", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H113 - 127, T1", - "Dosage": 10, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 8, - "HoleCollective": "113,115,117,119,121,123,125,127", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "384", - "ConsumablesName": "16 x 24" - }, - { - "uuid": "dbe954675b4749db9e387a16731a1e3d", - "uuidPlanMaster": "97816d94f99a48409379013d19f0ab66", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H114 - 128, T1", - "Dosage": 10, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 8, - "HoleCollective": "114,116,118,120,122,124,126,128", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "384", - "ConsumablesName": "16 x 24" - }, - { - "uuid": "ef0d53986ee949adb6c9e85a75c916ae", - "uuidPlanMaster": "97816d94f99a48409379013d19f0ab66", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T5", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "废液槽", - "ConsumablesName": "1 x 1" - }, - { - "uuid": "9d4888b1544e4424b12bd74810e5293a", - "uuidPlanMaster": "97816d94f99a48409379013d19f0ab66", - "Axis": "Left", - "ActOn": "Load", - "Place": "H33 - 40, T3", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 5, - "HoleCollective": "33,34,35,36,37,38,39,40", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12" - }, - { - "uuid": "f0cc4984620e482eb9665b8dd1867c21", - "uuidPlanMaster": "97816d94f99a48409379013d19f0ab66", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H33 - 40, T4", - "Dosage": 40, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 5, - "HoleCollective": "33,34,35,36,37,38,39,40", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12" - }, - { - "uuid": "160f342d63af4e0c923d2c04b14a0d10", - "uuidPlanMaster": "97816d94f99a48409379013d19f0ab66", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H129 - 143, T1", - "Dosage": 10, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 9, - "HoleCollective": "129,131,133,135,137,139,141,143", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "384", - "ConsumablesName": "16 x 24" - }, - { - "uuid": "30c68dcf28b64c75b72b98945097b724", - "uuidPlanMaster": "97816d94f99a48409379013d19f0ab66", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H130 - 144, T1", - "Dosage": 10, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 9, - "HoleCollective": "130,132,134,136,138,140,142,144", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "384", - "ConsumablesName": "16 x 24" - }, - { - "uuid": "c3b1616dd3f347bf8946cdc46538a988", - "uuidPlanMaster": "97816d94f99a48409379013d19f0ab66", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H145 - 159, T1", - "Dosage": 10, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 10, - "HoleCollective": "145,147,149,151,153,155,157,159", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "384", - "ConsumablesName": "16 x 24" - }, - { - "uuid": "2b82c6a8bdbc41549a8c8fe1c169f66e", - "uuidPlanMaster": "97816d94f99a48409379013d19f0ab66", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H146 - 160, T1", - "Dosage": 10, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 10, - "HoleCollective": "146,148,150,152,154,156,158,160", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "384", - "ConsumablesName": "16 x 24" - }, - { - "uuid": "103ced0de147460d8d24f341e56d9ecd", - "uuidPlanMaster": "97816d94f99a48409379013d19f0ab66", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T5", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "废液槽", - "ConsumablesName": "1 x 1" - }, - { - "uuid": "9d52948faf754c7eb693e69ff0dbec1f", - "uuidPlanMaster": "97816d94f99a48409379013d19f0ab66", - "Axis": "Left", - "ActOn": "Load", - "Place": "H41 - 48, T3", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 6, - "HoleCollective": "41,42,43,44,45,46,47,48", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12" - }, - { - "uuid": "9372a2ba0ef5446e8917cfc88508ad45", - "uuidPlanMaster": "97816d94f99a48409379013d19f0ab66", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H41 - 48, T4", - "Dosage": 40, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 6, - "HoleCollective": "41,42,43,44,45,46,47,48", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12" - }, - { - "uuid": "9f4e49a0a1654e988987d39c2938f947", - "uuidPlanMaster": "97816d94f99a48409379013d19f0ab66", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H161 - 175, T1", - "Dosage": 10, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 11, - "HoleCollective": "161,163,165,167,169,171,173,175", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "384", - "ConsumablesName": "16 x 24" - }, - { - "uuid": "8a4d415173e74e099a51b155a77c5481", - "uuidPlanMaster": "97816d94f99a48409379013d19f0ab66", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H162 - 176, T1", - "Dosage": 10, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 11, - "HoleCollective": "162,164,166,168,170,172,174,176", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "384", - "ConsumablesName": "16 x 24" - }, - { - "uuid": "103790acfd6d4a1e9d369ac846634d66", - "uuidPlanMaster": "97816d94f99a48409379013d19f0ab66", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H177 - 191, T1", - "Dosage": 10, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 12, - "HoleCollective": "177,179,181,183,185,187,189,191", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "384", - "ConsumablesName": "16 x 24" - }, - { - "uuid": "dcdedb98609e45979752e2f14ce75942", - "uuidPlanMaster": "97816d94f99a48409379013d19f0ab66", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H178 - 192, T1", - "Dosage": 10, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 12, - "HoleCollective": "178,180,182,184,186,188,190,192", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "384", - "ConsumablesName": "16 x 24" - }, - { - "uuid": "5803056c466842dc80b94d6172e8e07a", - "uuidPlanMaster": "97816d94f99a48409379013d19f0ab66", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T5", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "废液槽", - "ConsumablesName": "1 x 1" - }, - { - "uuid": "0fab86861e8e40d3bb1047f3b4eb7dc4", - "uuidPlanMaster": "97816d94f99a48409379013d19f0ab66", - "Axis": "Left", - "ActOn": "Load", - "Place": "H49 - 56, T3", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 7, - "HoleCollective": "49,50,51,52,53,54,55,56", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12" - }, - { - "uuid": "0080f5ce4f4748db93da9da3fc2f9507", - "uuidPlanMaster": "97816d94f99a48409379013d19f0ab66", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H49 - 56, T4", - "Dosage": 40, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 7, - "HoleCollective": "49,50,51,52,53,54,55,56", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12" - }, - { - "uuid": "d6f7ea046ba8449eaf27d0e11c3ba6b2", - "uuidPlanMaster": "97816d94f99a48409379013d19f0ab66", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H193 - 207, T1", - "Dosage": 10, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 13, - "HoleCollective": "193,195,197,199,201,203,205,207", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "384", - "ConsumablesName": "16 x 24" - }, - { - "uuid": "8f24ecd8227b44669d327e397142c8a0", - "uuidPlanMaster": "97816d94f99a48409379013d19f0ab66", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H194 - 208, T1", - "Dosage": 10, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 13, - "HoleCollective": "194,196,198,200,202,204,206,208", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "384", - "ConsumablesName": "16 x 24" - }, - { - "uuid": "8ae2b861f7ff40fbb3c6263c6074a14a", - "uuidPlanMaster": "97816d94f99a48409379013d19f0ab66", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H209 - 223, T1", - "Dosage": 10, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 14, - "HoleCollective": "209,211,213,215,217,219,221,223", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "384", - "ConsumablesName": "16 x 24" - }, - { - "uuid": "7ae5bbc7b7334641bb43e9743bdf3af6", - "uuidPlanMaster": "97816d94f99a48409379013d19f0ab66", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H210 - 224, T1", - "Dosage": 10, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 14, - "HoleCollective": "210,212,214,216,218,220,222,224", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "384", - "ConsumablesName": "16 x 24" - }, - { - "uuid": "4a67a5ed6f5d438788c2d5253634ed3a", - "uuidPlanMaster": "97816d94f99a48409379013d19f0ab66", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T5", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "废液槽", - "ConsumablesName": "1 x 1" - }, - { - "uuid": "53bfd75591a04887a12395554a675cd7", - "uuidPlanMaster": "97816d94f99a48409379013d19f0ab66", - "Axis": "Left", - "ActOn": "Load", - "Place": "H57 - 64, T3", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 8, - "HoleCollective": "57,58,59,60,61,62,63,64", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12" - }, - { - "uuid": "8222f65ab73044b787861cacd028fd80", - "uuidPlanMaster": "97816d94f99a48409379013d19f0ab66", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H57 - 64, T4", - "Dosage": 40, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 8, - "HoleCollective": "57,58,59,60,61,62,63,64", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12" - }, - { - "uuid": "bf9238becec54ee79e834480675a8421", - "uuidPlanMaster": "97816d94f99a48409379013d19f0ab66", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H225 - 239, T1", - "Dosage": 10, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 15, - "HoleCollective": "225,227,229,231,233,235,237,239", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "384", - "ConsumablesName": "16 x 24" - }, - { - "uuid": "9cca48d3bf6a4b0f8e279904837a0dbd", - "uuidPlanMaster": "97816d94f99a48409379013d19f0ab66", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H226 - 240, T1", - "Dosage": 10, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 15, - "HoleCollective": "226,228,230,232,234,236,238,240", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "384", - "ConsumablesName": "16 x 24" - }, - { - "uuid": "2024f5d1178f4e8eb1a9dd7aca49449a", - "uuidPlanMaster": "97816d94f99a48409379013d19f0ab66", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H241 - 255, T1", - "Dosage": 10, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 16, - "HoleCollective": "241,243,245,247,249,251,253,255", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "384", - "ConsumablesName": "16 x 24" - }, - { - "uuid": "a72e3a1888f745d29902262d965dc4a3", - "uuidPlanMaster": "97816d94f99a48409379013d19f0ab66", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H242 - 256, T1", - "Dosage": 10, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 16, - "HoleCollective": "242,244,246,248,250,252,254,256", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "384", - "ConsumablesName": "16 x 24" - }, - { - "uuid": "dcd458902528475a95bdec92043efdd1", - "uuidPlanMaster": "97816d94f99a48409379013d19f0ab66", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T5", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "废液槽", - "ConsumablesName": "1 x 1" - }, - { - "uuid": "8af78ab42ed24481a0a5fdafdb6240d1", - "uuidPlanMaster": "97816d94f99a48409379013d19f0ab66", - "Axis": "Left", - "ActOn": "Load", - "Place": "H65 - 72, T3", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 9, - "HoleCollective": "65,66,67,68,69,70,71,72", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12" - }, - { - "uuid": "e4b909e5474e484fb10ee16593d783d2", - "uuidPlanMaster": "97816d94f99a48409379013d19f0ab66", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H65 - 72, T4", - "Dosage": 40, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 9, - "HoleCollective": "65,66,67,68,69,70,71,72", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12" - }, - { - "uuid": "dcaddd0b3706462ebbb1f83724d6cb94", - "uuidPlanMaster": "97816d94f99a48409379013d19f0ab66", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H257 - 271, T1", - "Dosage": 10, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 17, - "HoleCollective": "257,259,261,263,265,267,269,271", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "384", - "ConsumablesName": "16 x 24" - }, - { - "uuid": "45dea56b3e624d0d83e2a6cda40d16ac", - "uuidPlanMaster": "97816d94f99a48409379013d19f0ab66", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H258 - 272, T1", - "Dosage": 10, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 17, - "HoleCollective": "258,260,262,264,266,268,270,272", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "384", - "ConsumablesName": "16 x 24" - }, - { - "uuid": "6c4c96e29fba4a94b85f5f9baa823cf0", - "uuidPlanMaster": "97816d94f99a48409379013d19f0ab66", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H273 - 287, T1", - "Dosage": 10, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 18, - "HoleCollective": "273,275,277,279,281,283,285,287", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "384", - "ConsumablesName": "16 x 24" - }, - { - "uuid": "f41c9a14d98341cf8e281c812d2a6007", - "uuidPlanMaster": "97816d94f99a48409379013d19f0ab66", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H274 - 288, T1", - "Dosage": 10, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 18, - "HoleCollective": "274,276,278,280,282,284,286,288", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "384", - "ConsumablesName": "16 x 24" - }, - { - "uuid": "62e5adaefe3a40edb7d15abeacc9f196", - "uuidPlanMaster": "97816d94f99a48409379013d19f0ab66", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T5", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "废液槽", - "ConsumablesName": "1 x 1" - }, - { - "uuid": "f3387ed97e6a4dd89eb6aa6d5210db26", - "uuidPlanMaster": "97816d94f99a48409379013d19f0ab66", - "Axis": "Left", - "ActOn": "Load", - "Place": "H73 - 80, T3", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 10, - "HoleCollective": "73,74,75,76,77,78,79,80", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12" - }, - { - "uuid": "738393744c6747b58121a54db9939086", - "uuidPlanMaster": "97816d94f99a48409379013d19f0ab66", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H73 - 80, T4", - "Dosage": 40, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 10, - "HoleCollective": "73,74,75,76,77,78,79,80", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12" - }, - { - "uuid": "e88fa079b88f41c9bb55cf663e3183d7", - "uuidPlanMaster": "97816d94f99a48409379013d19f0ab66", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H289 - 303, T1", - "Dosage": 10, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 19, - "HoleCollective": "289,291,293,295,297,299,301,303", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "384", - "ConsumablesName": "16 x 24" - }, - { - "uuid": "32451c28d1524e8d8c42d4176cd921ad", - "uuidPlanMaster": "97816d94f99a48409379013d19f0ab66", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H290 - 304, T1", - "Dosage": 10, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 19, - "HoleCollective": "290,292,294,296,298,300,302,304", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "384", - "ConsumablesName": "16 x 24" - }, - { - "uuid": "adfec14ba5a6406b8199f7a0bf6bc207", - "uuidPlanMaster": "97816d94f99a48409379013d19f0ab66", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H305 - 319, T1", - "Dosage": 10, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 20, - "HoleCollective": "305,307,309,311,313,315,317,319", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "384", - "ConsumablesName": "16 x 24" - }, - { - "uuid": "934418b43e1642e09453bc57f7e589ac", - "uuidPlanMaster": "97816d94f99a48409379013d19f0ab66", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H306 - 320, T1", - "Dosage": 10, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 20, - "HoleCollective": "306,308,310,312,314,316,318,320", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "384", - "ConsumablesName": "16 x 24" - }, - { - "uuid": "6c5607f5137a4bcfb24cde4f3a50e87d", - "uuidPlanMaster": "97816d94f99a48409379013d19f0ab66", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T5", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "废液槽", - "ConsumablesName": "1 x 1" - }, - { - "uuid": "456ae109e3d54f08b0e0a60d4a65c0cb", - "uuidPlanMaster": "97816d94f99a48409379013d19f0ab66", - "Axis": "Left", - "ActOn": "Load", - "Place": "H81 - 88, T3", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 11, - "HoleCollective": "81,82,83,84,85,86,87,88", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12" - }, - { - "uuid": "c15f2c1e7cb745ce82fb7b6736a03040", - "uuidPlanMaster": "97816d94f99a48409379013d19f0ab66", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H81 - 88, T4", - "Dosage": 40, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 11, - "HoleCollective": "81,82,83,84,85,86,87,88", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12" - }, - { - "uuid": "ed859e18282540ffb1af7d7e6f24d6c4", - "uuidPlanMaster": "97816d94f99a48409379013d19f0ab66", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H321 - 335, T1", - "Dosage": 10, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 21, - "HoleCollective": "321,323,325,327,329,331,333,335", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "384", - "ConsumablesName": "16 x 24" - }, - { - "uuid": "d9915c57c4f64c37b6e0ba6ef4e21cf4", - "uuidPlanMaster": "97816d94f99a48409379013d19f0ab66", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H322 - 336, T1", - "Dosage": 10, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 21, - "HoleCollective": "322,324,326,328,330,332,334,336", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "384", - "ConsumablesName": "16 x 24" - }, - { - "uuid": "46d7647ce99649af9e7f994404f65611", - "uuidPlanMaster": "97816d94f99a48409379013d19f0ab66", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H337 - 351, T1", - "Dosage": 10, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 22, - "HoleCollective": "337,339,341,343,345,347,349,351", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "384", - "ConsumablesName": "16 x 24" - }, - { - "uuid": "3614059bddf14207939f5bc6343f9964", - "uuidPlanMaster": "97816d94f99a48409379013d19f0ab66", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H338 - 352, T1", - "Dosage": 10, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 22, - "HoleCollective": "338,340,342,344,346,348,350,352", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "384", - "ConsumablesName": "16 x 24" - }, - { - "uuid": "b0e29c2ee8c44f7e8d54023ac8ebadee", - "uuidPlanMaster": "97816d94f99a48409379013d19f0ab66", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T5", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "废液槽", - "ConsumablesName": "1 x 1" - }, - { - "uuid": "7f14b3d200c04d1bbc9edcd78616df1f", - "uuidPlanMaster": "97816d94f99a48409379013d19f0ab66", - "Axis": "Left", - "ActOn": "Load", - "Place": "H89 - 96, T3", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 12, - "HoleCollective": "89,90,91,92,93,94,95,96", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12" - }, - { - "uuid": "0ea5c7b42f9142f3b82ee7cfaa4c086d", - "uuidPlanMaster": "97816d94f99a48409379013d19f0ab66", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H89 - 96, T4", - "Dosage": 40, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 12, - "HoleCollective": "89,90,91,92,93,94,95,96", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12" - }, - { - "uuid": "7ac1a13f2b4746829ba6ebc01b916a3a", - "uuidPlanMaster": "97816d94f99a48409379013d19f0ab66", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H353 - 367, T1", - "Dosage": 10, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 23, - "HoleCollective": "353,355,357,359,361,363,365,367", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "384", - "ConsumablesName": "16 x 24" - }, - { - "uuid": "0f73e681383b4e6dbc9dbcbc03dfbe8d", - "uuidPlanMaster": "97816d94f99a48409379013d19f0ab66", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H354 - 368, T1", - "Dosage": 10, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 23, - "HoleCollective": "354,356,358,360,362,364,366,368", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "384", - "ConsumablesName": "16 x 24" - }, - { - "uuid": "cd961f3844bd42469c7a8cd047371071", - "uuidPlanMaster": "97816d94f99a48409379013d19f0ab66", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H369 - 383, T1", - "Dosage": 10, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 24, - "HoleCollective": "369,371,373,375,377,379,381,383", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "384", - "ConsumablesName": "16 x 24" - }, - { - "uuid": "003491f54fac49eda5d228483f70fe05", - "uuidPlanMaster": "97816d94f99a48409379013d19f0ab66", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H370 - 384, T1", - "Dosage": 10, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 24, - "HoleCollective": "370,372,374,376,378,380,382,384", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "384", - "ConsumablesName": "16 x 24" - }, - { - "uuid": "fb782e3b0635474c879061a537fe41de", - "uuidPlanMaster": "97816d94f99a48409379013d19f0ab66", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T5", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "废液槽", - "ConsumablesName": "1 x 1" - }, - { - "uuid": "10959901935f4461a6aa812a20a80718", - "uuidPlanMaster": "c3d86e9d7eed4ddb8c32e9234da659de", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1 - 7, T3", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,3,5,7", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12" - }, - { - "uuid": "9bab8cd7f9fd4a7c880d68ec06f8d1ca", - "uuidPlanMaster": "c3d86e9d7eed4ddb8c32e9234da659de", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H2 - 8, T1", - "Dosage": 10, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 1, - "HoleCollective": "2,4,6,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12" - }, - { - "uuid": "cc2893be07d44bb3865d69c753bb9087", - "uuidPlanMaster": "59a97f77718d4bbba6bed1ddbf959772", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1 - 12, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8,9,10,11,12", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-001-300", - "ConsumablesName": "300μL Tip头" - }, - { - "uuid": "1a8d2052632c4404ad719827de16d853", - "uuidPlanMaster": "84d50e4cf3034aa6a3de505a92b30812", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1 - 8, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-001-300", - "ConsumablesName": "300μL Tip头" - }, - { - "uuid": "6c0af767ab0a4a25b013bc59b3bd907f", - "uuidPlanMaster": "84d50e4cf3034aa6a3de505a92b30812", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H1 - 8, T5", - "Dosage": 1, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-001-300", - "ConsumablesName": "300μL Tip头" - }, - { - "uuid": "93d83457a62e41c9b0653635dc11a529", - "uuidPlanMaster": "d052b893c6324ae38d301a58614a5663", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1 - 8, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12" - }, - { - "uuid": "c4028b30ab6c4e4f82ac0660b2f924cd", - "uuidPlanMaster": "d052b893c6324ae38d301a58614a5663", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H1 - 8, T2", - "Dosage": 50, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12" - }, - { - "uuid": "4f12079517a546bc984f7919c37ce037", - "uuidPlanMaster": "d052b893c6324ae38d301a58614a5663", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1 - 8, T4", - "Dosage": 50, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12" - }, - { - "uuid": "3d9f89c6257f4c1fa93985857af993f5", - "uuidPlanMaster": "d052b893c6324ae38d301a58614a5663", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H9 - 16, T4", - "Dosage": 50, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 2, - "HoleCollective": "9,10,11,12,13,14,15,16", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12" - }, - { - "uuid": "9b813cb84ffc4a9690120dd32f65a9ca", - "uuidPlanMaster": "d052b893c6324ae38d301a58614a5663", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H17 - 24, T4", - "Dosage": 50, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "17,18,19,20,21,22,23,24", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12" - }, - { - "uuid": "db58e5a8bd574f558923a0df368ca9fe", - "uuidPlanMaster": "d052b893c6324ae38d301a58614a5663", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H25 - 32, T4", - "Dosage": 50, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 4, - "HoleCollective": "25,26,27,28,29,30,31,32", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12" - }, - { - "uuid": "107c7b35c2e5404cae5c78b790dc95bc", - "uuidPlanMaster": "d052b893c6324ae38d301a58614a5663", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H33 - 40, T4", - "Dosage": 50, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 5, - "HoleCollective": "33,34,35,36,37,38,39,40", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12" - }, - { - "uuid": "f4d51d32a18a49a78e725d4c7189428a", - "uuidPlanMaster": "875a6eaa00e548b99318fd0be310e879", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1 - 8, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12" - }, - { - "uuid": "7c9d5998aa66407bb5122c7e5ee03133", - "uuidPlanMaster": "875a6eaa00e548b99318fd0be310e879", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H1 - 8, T2", - "Dosage": 50, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12" - }, - { - "uuid": "03a9c59a17d64a20831cf1abb372b1dd", - "uuidPlanMaster": "875a6eaa00e548b99318fd0be310e879", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1 - 8, T4", - "Dosage": 50, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12" - }, - { - "uuid": "c5a5b11569f645f2a4c7c54828b5f61a", - "uuidPlanMaster": "875a6eaa00e548b99318fd0be310e879", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H9 - 16, T4", - "Dosage": 50, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 2, - "HoleCollective": "9,10,11,12,13,14,15,16", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12" - }, - { - "uuid": "3a7bcee346ed4697bce3fb4bb973eee6", - "uuidPlanMaster": "875a6eaa00e548b99318fd0be310e879", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H17 - 24, T4", - "Dosage": 50, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "17,18,19,20,21,22,23,24", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12" - }, - { - "uuid": "712b1e3a32d44e7f863ff22c2cc18519", - "uuidPlanMaster": "875a6eaa00e548b99318fd0be310e879", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H25 - 32, T4", - "Dosage": 50, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 4, - "HoleCollective": "25,26,27,28,29,30,31,32", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12" - }, - { - "uuid": "ffed2cc7bfdc48ba8ca6e59726b7852c", - "uuidPlanMaster": "875a6eaa00e548b99318fd0be310e879", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H33 - 40, T4", - "Dosage": 50, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 5, - "HoleCollective": "33,34,35,36,37,38,39,40", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12" - }, - { - "uuid": "39d9cbc8855f43028639474c94b9cfcc", - "uuidPlanMaster": "875a6eaa00e548b99318fd0be310e879", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H9 - 16, T2", - "Dosage": 50, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 2, - "HoleCollective": "9,10,11,12,13,14,15,16", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-001-300", - "ConsumablesName": "300μL Tip头" - }, - { - "uuid": "aeba4442a06343cfb523aa5cacaebe83", - "uuidPlanMaster": "875a6eaa00e548b99318fd0be310e879", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H41 - 48, T4", - "Dosage": 10, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 6, - "HoleCollective": "41,42,43,44,45,46,47,48", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-001-300", - "ConsumablesName": "300μL Tip头" - }, - { - "uuid": "94aaf6fe8418450abaf044fc9053fe3a", - "uuidPlanMaster": "875a6eaa00e548b99318fd0be310e879", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H49 - 56, T4", - "Dosage": 10, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 7, - "HoleCollective": "49,50,51,52,53,54,55,56", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-001-300", - "ConsumablesName": "300μL Tip头" - }, - { - "uuid": "3ace90a3a4054f3daa85337d7b991905", - "uuidPlanMaster": "875a6eaa00e548b99318fd0be310e879", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H57 - 64, T4", - "Dosage": 10, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 8, - "HoleCollective": "57,58,59,60,61,62,63,64", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-001-300", - "ConsumablesName": "300μL Tip头" - }, - { - "uuid": "19fef1b7bba74c2b9dafc2f70aa8bff9", - "uuidPlanMaster": "875a6eaa00e548b99318fd0be310e879", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H65 - 72, T4", - "Dosage": 10, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 9, - "HoleCollective": "65,66,67,68,69,70,71,72", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-001-300", - "ConsumablesName": "300μL Tip头" - }, - { - "uuid": "30d1c87471c14d01bdbfc7bc38dde551", - "uuidPlanMaster": "875a6eaa00e548b99318fd0be310e879", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H73 - 80, T4", - "Dosage": 10, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 10, - "HoleCollective": "73,74,75,76,77,78,79,80", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-001-300", - "ConsumablesName": "300μL Tip头" - }, - { - "uuid": "f9410822b30f44829dbc190afaf57435", - "uuidPlanMaster": "ecb3cb37f603495d95a93522a6b611e3", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1 - 8, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12" - }, - { - "uuid": "598011d8a235426f99d6a4839627a792", - "uuidPlanMaster": "ecb3cb37f603495d95a93522a6b611e3", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H1 - 8, T2", - "Dosage": 50, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12" - }, - { - "uuid": "ecefa05d7713460fb97e83f83f30a720", - "uuidPlanMaster": "ecb3cb37f603495d95a93522a6b611e3", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1 - 8, T4", - "Dosage": 50, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12" - }, - { - "uuid": "44c67a52abed4353b49be31ee4c3be09", - "uuidPlanMaster": "ecb3cb37f603495d95a93522a6b611e3", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H9 - 16, T4", - "Dosage": 50, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 2, - "HoleCollective": "9,10,11,12,13,14,15,16", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12" - }, - { - "uuid": "86b71043e2314b4183ea27ba09bc9803", - "uuidPlanMaster": "ecb3cb37f603495d95a93522a6b611e3", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H17 - 24, T4", - "Dosage": 50, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "17,18,19,20,21,22,23,24", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12" - }, - { - "uuid": "412ead158b5645a8b3e7b1db5dad128e", - "uuidPlanMaster": "ecb3cb37f603495d95a93522a6b611e3", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H25 - 32, T4", - "Dosage": 50, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 4, - "HoleCollective": "25,26,27,28,29,30,31,32", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12" - }, - { - "uuid": "dd405f43abad4298a9a2d0963941a3f1", - "uuidPlanMaster": "ecb3cb37f603495d95a93522a6b611e3", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H33 - 40, T4", - "Dosage": 50, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 5, - "HoleCollective": "33,34,35,36,37,38,39,40", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12" - }, - { - "uuid": "253208adc6494ac4ab492f209238bb82", - "uuidPlanMaster": "ecb3cb37f603495d95a93522a6b611e3", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H9 - 16, T2", - "Dosage": 50, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 2, - "HoleCollective": "9,10,11,12,13,14,15,16", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-001-300", - "ConsumablesName": "300μL Tip头" - }, - { - "uuid": "259ba567646044d1acffc10f96c50f85", - "uuidPlanMaster": "ecb3cb37f603495d95a93522a6b611e3", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H41 - 48, T4", - "Dosage": 10, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 6, - "HoleCollective": "41,42,43,44,45,46,47,48", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-001-300", - "ConsumablesName": "300μL Tip头" - }, - { - "uuid": "39bfee6f19da48eeb13e4ac8d295836f", - "uuidPlanMaster": "ecb3cb37f603495d95a93522a6b611e3", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H49 - 56, T4", - "Dosage": 10, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 7, - "HoleCollective": "49,50,51,52,53,54,55,56", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-001-300", - "ConsumablesName": "300μL Tip头" - }, - { - "uuid": "4d073ab4dc544a478327435f75269bed", - "uuidPlanMaster": "ecb3cb37f603495d95a93522a6b611e3", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H57 - 64, T4", - "Dosage": 10, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 8, - "HoleCollective": "57,58,59,60,61,62,63,64", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-001-300", - "ConsumablesName": "300μL Tip头" - }, - { - "uuid": "cfdecbbd4ac8420bae4158314f40a1d3", - "uuidPlanMaster": "ecb3cb37f603495d95a93522a6b611e3", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H65 - 72, T4", - "Dosage": 10, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 9, - "HoleCollective": "65,66,67,68,69,70,71,72", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-001-300", - "ConsumablesName": "300μL Tip头" - }, - { - "uuid": "7d1b417a83e745dfa58fdd22d7b86796", - "uuidPlanMaster": "ecb3cb37f603495d95a93522a6b611e3", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H73 - 80, T4", - "Dosage": 10, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 10, - "HoleCollective": "73,74,75,76,77,78,79,80", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-001-300", - "ConsumablesName": "300μL Tip头" - }, - { - "uuid": "eba55ed1e9424496a0150ae806111486", - "uuidPlanMaster": "705edabbcbd645d0925e4e581643247c", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1 - 8, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-001-300", - "ConsumablesName": "300μL Tip头" - }, - { - "uuid": "aa320f433cab499daaa4285b401deec0", - "uuidPlanMaster": "705edabbcbd645d0925e4e581643247c", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "T2", - "Dosage": 50, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-58-10000", - "ConsumablesName": "储液槽" - }, - { - "uuid": "f853c397f3894b8b860e95b98e2ffebc", - "uuidPlanMaster": "705edabbcbd645d0925e4e581643247c", - "Axis": "Left", - "ActOn": "Blending", - "Place": "H1 - 8, T5", - "Dosage": 30, - "AssistA": " 加样(50ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 5, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-001-300", - "ConsumablesName": "300μL Tip头" - }, - { - "uuid": "64752faa493842f6962c7133630fae5c", - "uuidPlanMaster": "705edabbcbd645d0925e4e581643247c", - "Axis": "Left", - "ActOn": "Blending", - "Place": "H1 - 8, T6", - "Dosage": 30, - "AssistA": " 加样(50ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 6, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 5, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-001-300", - "ConsumablesName": "300μL Tip头" - }, - { - "uuid": "0dbcbae1fdc74c7e9566df77796c2f62", - "uuidPlanMaster": "705edabbcbd645d0925e4e581643247c", - "Axis": "Left", - "ActOn": "Blending", - "Place": "H9 - 16, T5", - "Dosage": 30, - "AssistA": " 加样(50ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 2, - "HoleCollective": "9,10,11,12,13,14,15,16", - "MixCount": 5, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-001-300", - "ConsumablesName": "300μL Tip头" - }, - { - "uuid": "55c75f922fd44b82bc93d35d2c88a03f", - "uuidPlanMaster": "705edabbcbd645d0925e4e581643247c", - "Axis": "Left", - "ActOn": "Blending", - "Place": "H1 - 8, T6", - "Dosage": 30, - "AssistA": " 加样(50ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 6, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 5, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-001-300", - "ConsumablesName": "300μL Tip头" - }, - { - "uuid": "17a9b5f5cc40485cb5ec2f7644d1770c", - "uuidPlanMaster": "705edabbcbd645d0925e4e581643247c", - "Axis": "Left", - "ActOn": "Blending", - "Place": "H17 - 24, T5", - "Dosage": 30, - "AssistA": " 加样(50ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "17,18,19,20,21,22,23,24", - "MixCount": 5, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-001-300", - "ConsumablesName": "300μL Tip头" - }, - { - "uuid": "708dbe637f5b47328cbe9f465610a86a", - "uuidPlanMaster": "705edabbcbd645d0925e4e581643247c", - "Axis": "Left", - "ActOn": "Blending", - "Place": "H1 - 8, T6", - "Dosage": 30, - "AssistA": " 加样(50ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 6, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 5, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-001-300", - "ConsumablesName": "300μL Tip头" - }, - { - "uuid": "983914b2ac56476ba9e8e766320a2041", - "uuidPlanMaster": "705edabbcbd645d0925e4e581643247c", - "Axis": "Left", - "ActOn": "Blending", - "Place": "H25 - 32, T5", - "Dosage": 30, - "AssistA": " 加样(50ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 4, - "HoleCollective": "25,26,27,28,29,30,31,32", - "MixCount": 5, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-001-300", - "ConsumablesName": "300μL Tip头" - }, - { - "uuid": "47427b2865df4e39bf919697875ef0d1", - "uuidPlanMaster": "705edabbcbd645d0925e4e581643247c", - "Axis": "Left", - "ActOn": "Blending", - "Place": "H1 - 8, T6", - "Dosage": 30, - "AssistA": " 加样(50ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 6, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 5, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-001-300", - "ConsumablesName": "300μL Tip头" - }, - { - "uuid": "0758e33a39374666b0c85a3a27a68fb9", - "uuidPlanMaster": "705edabbcbd645d0925e4e581643247c", - "Axis": "Left", - "ActOn": "Blending", - "Place": "H33 - 40, T5", - "Dosage": 30, - "AssistA": " 加样(50ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 5, - "HoleCollective": "33,34,35,36,37,38,39,40", - "MixCount": 5, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-001-300", - "ConsumablesName": "300μL Tip头" - }, - { - "uuid": "418536a62e3f46c3903ac28617e66829", - "uuidPlanMaster": "705edabbcbd645d0925e4e581643247c", - "Axis": "Left", - "ActOn": "Blending", - "Place": "H1 - 8, T6", - "Dosage": 30, - "AssistA": " 加样(50ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 6, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 5, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-001-300", - "ConsumablesName": "300μL Tip头" - }, - { - "uuid": "c5d2d1dbcdcd487ab7f6d6e12ddbae02", - "uuidPlanMaster": "705edabbcbd645d0925e4e581643247c", - "Axis": "Left", - "ActOn": "Blending", - "Place": "H41 - 48, T5", - "Dosage": 30, - "AssistA": " 加样(50ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 6, - "HoleCollective": "41,42,43,44,45,46,47,48", - "MixCount": 5, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-001-300", - "ConsumablesName": "300μL Tip头" - }, - { - "uuid": "1762db9cd23447749f9905300fd9d49f", - "uuidPlanMaster": "705edabbcbd645d0925e4e581643247c", - "Axis": "Left", - "ActOn": "Blending", - "Place": "H1 - 8, T6", - "Dosage": 30, - "AssistA": " 加样(50ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 6, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 5, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-001-300", - "ConsumablesName": "300μL Tip头" - }, - { - "uuid": "3fc192a32f4444eebaf3878bf23deb5a", - "uuidPlanMaster": "705edabbcbd645d0925e4e581643247c", - "Axis": "Left", - "ActOn": "Blending", - "Place": "H49 - 56, T5", - "Dosage": 30, - "AssistA": " 加样(50ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 7, - "HoleCollective": "49,50,51,52,53,54,55,56", - "MixCount": 5, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-001-300", - "ConsumablesName": "300μL Tip头" - }, - { - "uuid": "04f3ed53188f46c19171db907db2fcde", - "uuidPlanMaster": "705edabbcbd645d0925e4e581643247c", - "Axis": "Left", - "ActOn": "Blending", - "Place": "H1 - 8, T6", - "Dosage": 30, - "AssistA": " 加样(50ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 6, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 5, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-001-300", - "ConsumablesName": "300μL Tip头" - }, - { - "uuid": "8ead2ed082324c6181a4938cb680670a", - "uuidPlanMaster": "705edabbcbd645d0925e4e581643247c", - "Axis": "Left", - "ActOn": "Blending", - "Place": "H57 - 64, T5", - "Dosage": 30, - "AssistA": " 加样(50ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 8, - "HoleCollective": "57,58,59,60,61,62,63,64", - "MixCount": 5, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-001-300", - "ConsumablesName": "300μL Tip头" - }, - { - "uuid": "63212ca61902428dbee761fd14ab1b10", - "uuidPlanMaster": "705edabbcbd645d0925e4e581643247c", - "Axis": "Left", - "ActOn": "Blending", - "Place": "H1 - 8, T6", - "Dosage": 30, - "AssistA": " 加样(50ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 6, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 5, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-001-300", - "ConsumablesName": "300μL Tip头" - }, - { - "uuid": "56f0338ffc694281a2de678ba5b03fa2", - "uuidPlanMaster": "705edabbcbd645d0925e4e581643247c", - "Axis": "Left", - "ActOn": "Blending", - "Place": "H65 - 72, T5", - "Dosage": 30, - "AssistA": " 加样(50ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 9, - "HoleCollective": "65,66,67,68,69,70,71,72", - "MixCount": 5, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-001-300", - "ConsumablesName": "300μL Tip头" - }, - { - "uuid": "b6213b9a933e4e08bd21b10f725d09c0", - "uuidPlanMaster": "705edabbcbd645d0925e4e581643247c", - "Axis": "Left", - "ActOn": "Blending", - "Place": "H1 - 8, T6", - "Dosage": 30, - "AssistA": " 加样(50ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 6, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 5, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-001-300", - "ConsumablesName": "300μL Tip头" - }, - { - "uuid": "140d0cfec9754f4f9edb882966e1753f", - "uuidPlanMaster": "705edabbcbd645d0925e4e581643247c", - "Axis": "Left", - "ActOn": "Blending", - "Place": "H73 - 80, T5", - "Dosage": 30, - "AssistA": " 加样(50ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 10, - "HoleCollective": "73,74,75,76,77,78,79,80", - "MixCount": 5, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-001-300", - "ConsumablesName": "300μL Tip头" - }, - { - "uuid": "80f9dbb31c9546669a491a6d1cab6f14", - "uuidPlanMaster": "705edabbcbd645d0925e4e581643247c", - "Axis": "Left", - "ActOn": "Blending", - "Place": "H1 - 8, T6", - "Dosage": 30, - "AssistA": " 加样(50ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 6, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 5, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-001-300", - "ConsumablesName": "300μL Tip头" - }, - { - "uuid": "3223fac38dee4406afbfd6e774d6a480", - "uuidPlanMaster": "705edabbcbd645d0925e4e581643247c", - "Axis": "Left", - "ActOn": "Blending", - "Place": "H81 - 88, T5", - "Dosage": 30, - "AssistA": " 加样(50ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 11, - "HoleCollective": "81,82,83,84,85,86,87,88", - "MixCount": 5, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-001-300", - "ConsumablesName": "300μL Tip头" - }, - { - "uuid": "ea0d989ce25d4dfca41ef43e2a2ef1de", - "uuidPlanMaster": "705edabbcbd645d0925e4e581643247c", - "Axis": "Left", - "ActOn": "Blending", - "Place": "H1 - 8, T6", - "Dosage": 30, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 6, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 5, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-001-300", - "ConsumablesName": "300μL Tip头" - }, - { - "uuid": "50fcb006ed45400985be7dd55905719d", - "uuidPlanMaster": "705edabbcbd645d0925e4e581643247c", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T4", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-58-10000", - "ConsumablesName": "储液槽" - }, - { - "uuid": "a31c4f28bb654c5b93c026b94bd5f883", - "uuidPlanMaster": "6c58136d7de54a6abb7b51e6327eacac", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1 - 8, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-001-300", - "ConsumablesName": "300μL Tip头" - }, - { - "uuid": "6292e97dccb5482ab070382b7ad1cff7", - "uuidPlanMaster": "6c58136d7de54a6abb7b51e6327eacac", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "T2", - "Dosage": 50, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-58-10000", - "ConsumablesName": "储液槽" - }, - { - "uuid": "a86958b6c7354bbea3218992ab33cb03", - "uuidPlanMaster": "6c58136d7de54a6abb7b51e6327eacac", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1 - 8, T5", - "Dosage": 10, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-001-300", - "ConsumablesName": "300μL Tip头" - }, - { - "uuid": "4d8ad647b91b4d46adec9b270ae65b32", - "uuidPlanMaster": "6c58136d7de54a6abb7b51e6327eacac", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H9 - 16, T5", - "Dosage": 10, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 2, - "HoleCollective": "9,10,11,12,13,14,15,16", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-001-300", - "ConsumablesName": "300μL Tip头" - }, - { - "uuid": "9cf3368a50e346f0854806551377e4f8", - "uuidPlanMaster": "6c58136d7de54a6abb7b51e6327eacac", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H17 - 24, T5", - "Dosage": 10, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "17,18,19,20,21,22,23,24", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-001-300", - "ConsumablesName": "300μL Tip头" - }, - { - "uuid": "bb67be49e8c14b918df938f56cd5b9bc", - "uuidPlanMaster": "6c58136d7de54a6abb7b51e6327eacac", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H25 - 32, T5", - "Dosage": 10, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 4, - "HoleCollective": "25,26,27,28,29,30,31,32", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-001-300", - "ConsumablesName": "300μL Tip头" - }, - { - "uuid": "34c65c541499441d93e38214c08f3dea", - "uuidPlanMaster": "6c58136d7de54a6abb7b51e6327eacac", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H33 - 40, T5", - "Dosage": 10, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 5, - "HoleCollective": "33,34,35,36,37,38,39,40", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-001-300", - "ConsumablesName": "300μL Tip头" - }, - { - "uuid": "b56f9678d9404913b449bd14dd6a9179", - "uuidPlanMaster": "6c58136d7de54a6abb7b51e6327eacac", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "T2", - "Dosage": 50, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-58-10000", - "ConsumablesName": "储液槽" - }, - { - "uuid": "f918f49bf3ec4e0da32b6b95c863514b", - "uuidPlanMaster": "6c58136d7de54a6abb7b51e6327eacac", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H41 - 48, T5", - "Dosage": 10, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 6, - "HoleCollective": "41,42,43,44,45,46,47,48", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-001-300", - "ConsumablesName": "300μL Tip头" - }, - { - "uuid": "798dc68cbf23441f94bd4bfee3ce225d", - "uuidPlanMaster": "6c58136d7de54a6abb7b51e6327eacac", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H49 - 56, T5", - "Dosage": 10, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 7, - "HoleCollective": "49,50,51,52,53,54,55,56", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-001-300", - "ConsumablesName": "300μL Tip头" - }, - { - "uuid": "cd8f02ce401e4148b64dc436960607bc", - "uuidPlanMaster": "6c58136d7de54a6abb7b51e6327eacac", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H57 - 64, T5", - "Dosage": 10, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 8, - "HoleCollective": "57,58,59,60,61,62,63,64", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-001-300", - "ConsumablesName": "300μL Tip头" - }, - { - "uuid": "22cb0327edc04f6fb8ea5d5c62ffa6ee", - "uuidPlanMaster": "6c58136d7de54a6abb7b51e6327eacac", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H65 - 72, T5", - "Dosage": 10, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 9, - "HoleCollective": "65,66,67,68,69,70,71,72", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-001-300", - "ConsumablesName": "300μL Tip头" - }, - { - "uuid": "01ddb2f1a5864336998f7f532126bc6e", - "uuidPlanMaster": "6c58136d7de54a6abb7b51e6327eacac", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H73 - 80, T5", - "Dosage": 10, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 10, - "HoleCollective": "73,74,75,76,77,78,79,80", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-001-300", - "ConsumablesName": "300μL Tip头" - }, - { - "uuid": "15a5f70baa3c4e289951c1fc8f06e33d", - "uuidPlanMaster": "208f00a911b846d9922b2e72bdda978c", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1 - 8, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-001-300", - "ConsumablesName": "300μL Tip头" - }, - { - "uuid": "cf60687488c0454598ed2b8dd657ada1", - "uuidPlanMaster": "208f00a911b846d9922b2e72bdda978c", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "T2", - "Dosage": 50, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-58-10000", - "ConsumablesName": "储液槽" - }, - { - "uuid": "0ab82da3a5154b96aa273d13442be10b", - "uuidPlanMaster": "208f00a911b846d9922b2e72bdda978c", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1 - 8, T4", - "Dosage": 50, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "q2", - "ConsumablesName": "96深孔板" - }, - { - "uuid": "971d32279cd84c08ba15516c9f7f1825", - "uuidPlanMaster": "208f00a911b846d9922b2e72bdda978c", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H1 - 8, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-001-300", - "ConsumablesName": "300μL Tip头" - }, - { - "uuid": "46445a32a23a42fa95f62607be83b9c7", - "uuidPlanMaster": "208f00a911b846d9922b2e72bdda978c", - "Axis": "Left", - "ActOn": "Load", - "Place": "H9 - 16, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 2, - "HoleCollective": "9,10,11,12,13,14,15,16", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-001-300", - "ConsumablesName": "300μL Tip头" - }, - { - "uuid": "8cf9f503af774feca05bfa9a6168900b", - "uuidPlanMaster": "208f00a911b846d9922b2e72bdda978c", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "T2", - "Dosage": 50, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-58-10000", - "ConsumablesName": "储液槽" - }, - { - "uuid": "21d63fd607e1442583476d3ee037707c", - "uuidPlanMaster": "208f00a911b846d9922b2e72bdda978c", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H9 - 16, T4", - "Dosage": 50, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 2, - "HoleCollective": "9,10,11,12,13,14,15,16", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "q2", - "ConsumablesName": "96深孔板" - }, - { - "uuid": "7538b8f4743f4d54827c5174bcaf9f5e", - "uuidPlanMaster": "208f00a911b846d9922b2e72bdda978c", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H9 - 16, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 2, - "HoleCollective": "9,10,11,12,13,14,15,16", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-001-300", - "ConsumablesName": "300μL Tip头" - }, - { - "uuid": "5c09e480cc3c4951a3718e4638a0fb1e", - "uuidPlanMaster": "208f00a911b846d9922b2e72bdda978c", - "Axis": "Left", - "ActOn": "Load", - "Place": "H17 - 24, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "17,18,19,20,21,22,23,24", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-001-300", - "ConsumablesName": "300μL Tip头" - }, - { - "uuid": "ed131eb1976b48619ea6496c8c1e6b14", - "uuidPlanMaster": "208f00a911b846d9922b2e72bdda978c", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "T2", - "Dosage": 50, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-58-10000", - "ConsumablesName": "储液槽" - }, - { - "uuid": "4bf3140447154a2b919f0a2d4a556016", - "uuidPlanMaster": "208f00a911b846d9922b2e72bdda978c", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H17 - 24, T4", - "Dosage": 50, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "17,18,19,20,21,22,23,24", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "q2", - "ConsumablesName": "96深孔板" - }, - { - "uuid": "a0f68785a6a04dc1bfb76d2260e6764a", - "uuidPlanMaster": "208f00a911b846d9922b2e72bdda978c", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H17 - 24, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "17,18,19,20,21,22,23,24", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-001-300", - "ConsumablesName": "300μL Tip头" - }, - { - "uuid": "db0ba526169848adbd10f0706a55197c", - "uuidPlanMaster": "208f00a911b846d9922b2e72bdda978c", - "Axis": "Left", - "ActOn": "Load", - "Place": "H25 - 32, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 4, - "HoleCollective": "25,26,27,28,29,30,31,32", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-001-300", - "ConsumablesName": "300μL Tip头" - }, - { - "uuid": "a1a487ae10184340a21195e752518207", - "uuidPlanMaster": "208f00a911b846d9922b2e72bdda978c", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "T2", - "Dosage": 50, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-58-10000", - "ConsumablesName": "储液槽" - }, - { - "uuid": "5dd206c0ae5d40cdb6709583a0ebad3e", - "uuidPlanMaster": "208f00a911b846d9922b2e72bdda978c", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H25 - 32, T4", - "Dosage": 50, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 4, - "HoleCollective": "25,26,27,28,29,30,31,32", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "q2", - "ConsumablesName": "96深孔板" - }, - { - "uuid": "dcf61439446c4d5093f699d59956b815", - "uuidPlanMaster": "208f00a911b846d9922b2e72bdda978c", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H25 - 32, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 4, - "HoleCollective": "25,26,27,28,29,30,31,32", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-001-300", - "ConsumablesName": "300μL Tip头" - }, - { - "uuid": "1a676dcbc3f849ac9ad60de4f3161253", - "uuidPlanMaster": "208f00a911b846d9922b2e72bdda978c", - "Axis": "Left", - "ActOn": "Load", - "Place": "H33 - 40, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 5, - "HoleCollective": "33,34,35,36,37,38,39,40", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-001-300", - "ConsumablesName": "300μL Tip头" - }, - { - "uuid": "38f64605bc5a4c229cd50a5623299793", - "uuidPlanMaster": "208f00a911b846d9922b2e72bdda978c", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "T2", - "Dosage": 50, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-58-10000", - "ConsumablesName": "储液槽" - }, - { - "uuid": "57a7d932cf474595a37014fc318c692c", - "uuidPlanMaster": "208f00a911b846d9922b2e72bdda978c", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H33 - 40, T4", - "Dosage": 50, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 5, - "HoleCollective": "33,34,35,36,37,38,39,40", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "q2", - "ConsumablesName": "96深孔板" - }, - { - "uuid": "16a3f7fa8e64439bbdafee48cbb3e8c1", - "uuidPlanMaster": "208f00a911b846d9922b2e72bdda978c", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H33 - 40, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 5, - "HoleCollective": "33,34,35,36,37,38,39,40", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-001-300", - "ConsumablesName": "300μL Tip头" - }, - { - "uuid": "3b84a7930a1d496dbfa2b04be755a1e3", - "uuidPlanMaster": "208f00a911b846d9922b2e72bdda978c", - "Axis": "Left", - "ActOn": "Load", - "Place": "H41 - 48, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 6, - "HoleCollective": "41,42,43,44,45,46,47,48", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-001-300", - "ConsumablesName": "300μL Tip头" - }, - { - "uuid": "b2cb417250644975827adfb5e945d645", - "uuidPlanMaster": "208f00a911b846d9922b2e72bdda978c", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "T2", - "Dosage": 50, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-58-10000", - "ConsumablesName": "储液槽" - }, - { - "uuid": "31dc835ea63e401c8829e3194fc54cdb", - "uuidPlanMaster": "208f00a911b846d9922b2e72bdda978c", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H41 - 48, T4", - "Dosage": 50, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 6, - "HoleCollective": "41,42,43,44,45,46,47,48", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "q2", - "ConsumablesName": "96深孔板" - }, - { - "uuid": "e07e0b60de1d452b83d3e99ab92121e7", - "uuidPlanMaster": "208f00a911b846d9922b2e72bdda978c", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H41 - 48, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 6, - "HoleCollective": "41,42,43,44,45,46,47,48", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-001-300", - "ConsumablesName": "300μL Tip头" - }, - { - "uuid": "9d0967356f7a4db2b6c82e505d6236ed", - "uuidPlanMaster": "208f00a911b846d9922b2e72bdda978c", - "Axis": "Left", - "ActOn": "Load", - "Place": "H49 - 56, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 7, - "HoleCollective": "49,50,51,52,53,54,55,56", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-001-300", - "ConsumablesName": "300μL Tip头" - }, - { - "uuid": "652ce001241445278a6133033f1cc124", - "uuidPlanMaster": "208f00a911b846d9922b2e72bdda978c", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "T2", - "Dosage": 50, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-58-10000", - "ConsumablesName": "储液槽" - }, - { - "uuid": "c922780b808147a8adf057b3331350de", - "uuidPlanMaster": "208f00a911b846d9922b2e72bdda978c", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H49 - 56, T4", - "Dosage": 50, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 7, - "HoleCollective": "49,50,51,52,53,54,55,56", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "q2", - "ConsumablesName": "96深孔板" - }, - { - "uuid": "70e7c4c87514428fb248d9403db8d60d", - "uuidPlanMaster": "208f00a911b846d9922b2e72bdda978c", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H49 - 56, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 7, - "HoleCollective": "49,50,51,52,53,54,55,56", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-001-300", - "ConsumablesName": "300μL Tip头" - }, - { - "uuid": "9f6c7c8eaabd4f598e4c5ee4d095fea1", - "uuidPlanMaster": "208f00a911b846d9922b2e72bdda978c", - "Axis": "Left", - "ActOn": "Load", - "Place": "H57 - 64, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 8, - "HoleCollective": "57,58,59,60,61,62,63,64", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-001-300", - "ConsumablesName": "300μL Tip头" - }, - { - "uuid": "72dc6967cf0942cb950bca849e843366", - "uuidPlanMaster": "208f00a911b846d9922b2e72bdda978c", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "T2", - "Dosage": 50, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-58-10000", - "ConsumablesName": "储液槽" - }, - { - "uuid": "f64334566bc04a9a9ac8e5b6cdbedfc9", - "uuidPlanMaster": "208f00a911b846d9922b2e72bdda978c", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H57 - 64, T4", - "Dosage": 50, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 8, - "HoleCollective": "57,58,59,60,61,62,63,64", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "q2", - "ConsumablesName": "96深孔板" - }, - { - "uuid": "cbad128d4c364b9fb57235bec175870c", - "uuidPlanMaster": "208f00a911b846d9922b2e72bdda978c", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H57 - 64, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 8, - "HoleCollective": "57,58,59,60,61,62,63,64", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-001-300", - "ConsumablesName": "300μL Tip头" - }, - { - "uuid": "44ae4502ff8e4f32918030671cb34fa8", - "uuidPlanMaster": "208f00a911b846d9922b2e72bdda978c", - "Axis": "Left", - "ActOn": "Load", - "Place": "H65 - 72, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 9, - "HoleCollective": "65,66,67,68,69,70,71,72", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-001-300", - "ConsumablesName": "300μL Tip头" - }, - { - "uuid": "ddf34da1687e4fec991aba48e5c0619d", - "uuidPlanMaster": "208f00a911b846d9922b2e72bdda978c", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "T2", - "Dosage": 50, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-58-10000", - "ConsumablesName": "储液槽" - }, - { - "uuid": "08f80646d1344350b65fd2af41c18746", - "uuidPlanMaster": "208f00a911b846d9922b2e72bdda978c", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H65 - 72, T4", - "Dosage": 50, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 9, - "HoleCollective": "65,66,67,68,69,70,71,72", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "q2", - "ConsumablesName": "96深孔板" - }, - { - "uuid": "7d34da268ee84dc3b80dad8543657a91", - "uuidPlanMaster": "208f00a911b846d9922b2e72bdda978c", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H65 - 72, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 9, - "HoleCollective": "65,66,67,68,69,70,71,72", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-001-300", - "ConsumablesName": "300μL Tip头" - }, - { - "uuid": "5a4ee28362e746e888f1c0c02672e653", - "uuidPlanMaster": "208f00a911b846d9922b2e72bdda978c", - "Axis": "Left", - "ActOn": "Load", - "Place": "H73 - 80, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 10, - "HoleCollective": "73,74,75,76,77,78,79,80", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-001-300", - "ConsumablesName": "300μL Tip头" - }, - { - "uuid": "e619656a44cd42bc8290832dae84a96c", - "uuidPlanMaster": "208f00a911b846d9922b2e72bdda978c", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "T2", - "Dosage": 50, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-58-10000", - "ConsumablesName": "储液槽" - }, - { - "uuid": "62df369b18cc4357bf4b03d84be11d1e", - "uuidPlanMaster": "208f00a911b846d9922b2e72bdda978c", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H73 - 80, T4", - "Dosage": 50, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 10, - "HoleCollective": "73,74,75,76,77,78,79,80", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "q2", - "ConsumablesName": "96深孔板" - }, - { - "uuid": "6ec4fd68d52f41e9a50a4aae8fbf6926", - "uuidPlanMaster": "208f00a911b846d9922b2e72bdda978c", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H73 - 80, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 10, - "HoleCollective": "73,74,75,76,77,78,79,80", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-001-300", - "ConsumablesName": "300μL Tip头" - }, - { - "uuid": "a59813ecdbe7471a960b33e7d4960c29", - "uuidPlanMaster": "208f00a911b846d9922b2e72bdda978c", - "Axis": "Left", - "ActOn": "Load", - "Place": "H81 - 88, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 11, - "HoleCollective": "81,82,83,84,85,86,87,88", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-001-300", - "ConsumablesName": "300μL Tip头" - }, - { - "uuid": "a4bfba48152747129ea97dbb1d239fb2", - "uuidPlanMaster": "208f00a911b846d9922b2e72bdda978c", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "T2", - "Dosage": 50, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-58-10000", - "ConsumablesName": "储液槽" - }, - { - "uuid": "26e6235eca6b440c9a1a6ba6863adfc6", - "uuidPlanMaster": "208f00a911b846d9922b2e72bdda978c", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H81 - 88, T4", - "Dosage": 50, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 11, - "HoleCollective": "81,82,83,84,85,86,87,88", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "q2", - "ConsumablesName": "96深孔板" - }, - { - "uuid": "3a98f483b96e4484897fd79f624dbbd2", - "uuidPlanMaster": "208f00a911b846d9922b2e72bdda978c", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H81 - 88, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 11, - "HoleCollective": "81,82,83,84,85,86,87,88", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-001-300", - "ConsumablesName": "300μL Tip头" - }, - { - "uuid": "51df55f2e2f04d4395ceef7742b43fcd", - "uuidPlanMaster": "208f00a911b846d9922b2e72bdda978c", - "Axis": "Left", - "ActOn": "Load", - "Place": "H89 - 96, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 12, - "HoleCollective": "89,90,91,92,93,94,95,96", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-001-300", - "ConsumablesName": "300μL Tip头" - }, - { - "uuid": "e11ea22237b64da48c38b1fa69c827d0", - "uuidPlanMaster": "208f00a911b846d9922b2e72bdda978c", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "T2", - "Dosage": 50, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-58-10000", - "ConsumablesName": "储液槽" - }, - { - "uuid": "333c04c74a3f494bb74beb412c761e1c", - "uuidPlanMaster": "208f00a911b846d9922b2e72bdda978c", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H89 - 96, T4", - "Dosage": 50, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 12, - "HoleCollective": "89,90,91,92,93,94,95,96", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "q2", - "ConsumablesName": "96深孔板" - }, - { - "uuid": "065e08c9b2d54892bb9d23bc0429a901", - "uuidPlanMaster": "208f00a911b846d9922b2e72bdda978c", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H89 - 96, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 12, - "HoleCollective": "89,90,91,92,93,94,95,96", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-001-300", - "ConsumablesName": "300μL Tip头" - }, - { - "uuid": "46fb3678fbab4dc9b14ead3b8cff1576", - "uuidPlanMaster": "40bd0ca25ffb4be6b246353db6ebefc9", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1 - 8, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-001-300", - "ConsumablesName": "300μL Tip头" - }, - { - "uuid": "59ea16127b564952bdd65127b5998541", - "uuidPlanMaster": "40bd0ca25ffb4be6b246353db6ebefc9", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "T2", - "Dosage": 300, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-58-10000", - "ConsumablesName": "储液槽" - }, - { - "uuid": "89a509276a8d4c1fb4996b41e3d00e7d", - "uuidPlanMaster": "40bd0ca25ffb4be6b246353db6ebefc9", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1 - 8, T4", - "Dosage": 300, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "q2", - "ConsumablesName": "96深孔板" - }, - { - "uuid": "30883a9d4273401cb22d34262679a51d", - "uuidPlanMaster": "40bd0ca25ffb4be6b246353db6ebefc9", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H1 - 8, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-001-300", - "ConsumablesName": "300μL Tip头" - }, - { - "uuid": "283a8fe02bcf4b8caae44b7b24ae50d1", - "uuidPlanMaster": "40bd0ca25ffb4be6b246353db6ebefc9", - "Axis": "Left", - "ActOn": "Load", - "Place": "H9 - 16, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 2, - "HoleCollective": "9,10,11,12,13,14,15,16", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-001-300", - "ConsumablesName": "300μL Tip头" - }, - { - "uuid": "1a545588b27b4c468e29b0b75688a2b3", - "uuidPlanMaster": "40bd0ca25ffb4be6b246353db6ebefc9", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "T2", - "Dosage": 300, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-58-10000", - "ConsumablesName": "储液槽" - }, - { - "uuid": "387c77cdbdbc4c11bd5e90ee8415befe", - "uuidPlanMaster": "40bd0ca25ffb4be6b246353db6ebefc9", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H9 - 16, T4", - "Dosage": 300, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 2, - "HoleCollective": "9,10,11,12,13,14,15,16", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "q2", - "ConsumablesName": "96深孔板" - }, - { - "uuid": "326ad6342d0443cabbf6f70ba5c35151", - "uuidPlanMaster": "40bd0ca25ffb4be6b246353db6ebefc9", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H9 - 16, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 2, - "HoleCollective": "9,10,11,12,13,14,15,16", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-001-300", - "ConsumablesName": "300μL Tip头" - }, - { - "uuid": "6862071ef39944fd857b6fb59cb1d580", - "uuidPlanMaster": "40bd0ca25ffb4be6b246353db6ebefc9", - "Axis": "Left", - "ActOn": "Load", - "Place": "H17 - 24, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "17,18,19,20,21,22,23,24", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-001-300", - "ConsumablesName": "300μL Tip头" - }, - { - "uuid": "06a7ac3f3e514b3c8e1079b9323dd5dc", - "uuidPlanMaster": "40bd0ca25ffb4be6b246353db6ebefc9", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "T2", - "Dosage": 300, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-58-10000", - "ConsumablesName": "储液槽" - }, - { - "uuid": "7076d3c982f34e648bd875903a288c71", - "uuidPlanMaster": "40bd0ca25ffb4be6b246353db6ebefc9", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H17 - 24, T4", - "Dosage": 300, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "17,18,19,20,21,22,23,24", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "q2", - "ConsumablesName": "96深孔板" - }, - { - "uuid": "8134bfcc32284d69b00c2c8b589bf418", - "uuidPlanMaster": "40bd0ca25ffb4be6b246353db6ebefc9", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H17 - 24, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "17,18,19,20,21,22,23,24", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-001-300", - "ConsumablesName": "300μL Tip头" - }, - { - "uuid": "f574d7387eaf4f89bbecf04a75111a8e", - "uuidPlanMaster": "40bd0ca25ffb4be6b246353db6ebefc9", - "Axis": "Left", - "ActOn": "Load", - "Place": "H25 - 32, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 4, - "HoleCollective": "25,26,27,28,29,30,31,32", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-001-300", - "ConsumablesName": "300μL Tip头" - }, - { - "uuid": "54c963eae8e54c13956264a6f2707cea", - "uuidPlanMaster": "40bd0ca25ffb4be6b246353db6ebefc9", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "T2", - "Dosage": 300, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-58-10000", - "ConsumablesName": "储液槽" - }, - { - "uuid": "9c6987c1c2f44651ab9743d1e0aa25ac", - "uuidPlanMaster": "40bd0ca25ffb4be6b246353db6ebefc9", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H25 - 32, T4", - "Dosage": 300, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 4, - "HoleCollective": "25,26,27,28,29,30,31,32", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "q2", - "ConsumablesName": "96深孔板" - }, - { - "uuid": "6a797c2f28e44055a61285f413340f82", - "uuidPlanMaster": "40bd0ca25ffb4be6b246353db6ebefc9", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H25 - 32, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 4, - "HoleCollective": "25,26,27,28,29,30,31,32", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-001-300", - "ConsumablesName": "300μL Tip头" - }, - { - "uuid": "7016bdc69a9c4707baf40d934b0c3d54", - "uuidPlanMaster": "40bd0ca25ffb4be6b246353db6ebefc9", - "Axis": "Left", - "ActOn": "Load", - "Place": "H33 - 40, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 5, - "HoleCollective": "33,34,35,36,37,38,39,40", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-001-300", - "ConsumablesName": "300μL Tip头" - }, - { - "uuid": "8bf80de48aaf46c5a0bfbbcd69ef9b8e", - "uuidPlanMaster": "40bd0ca25ffb4be6b246353db6ebefc9", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "T2", - "Dosage": 300, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-58-10000", - "ConsumablesName": "储液槽" - }, - { - "uuid": "c66931bf8c1a4b318cffad264311bdaf", - "uuidPlanMaster": "40bd0ca25ffb4be6b246353db6ebefc9", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H33 - 40, T4", - "Dosage": 300, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 5, - "HoleCollective": "33,34,35,36,37,38,39,40", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "q2", - "ConsumablesName": "96深孔板" - }, - { - "uuid": "b378e5c2770b44da847dff49df4605ab", - "uuidPlanMaster": "40bd0ca25ffb4be6b246353db6ebefc9", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H33 - 40, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 5, - "HoleCollective": "33,34,35,36,37,38,39,40", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-001-300", - "ConsumablesName": "300μL Tip头" - }, - { - "uuid": "343e83fdb2974cd9922e9842704adef2", - "uuidPlanMaster": "40bd0ca25ffb4be6b246353db6ebefc9", - "Axis": "Left", - "ActOn": "Load", - "Place": "H41 - 48, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 6, - "HoleCollective": "41,42,43,44,45,46,47,48", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-001-300", - "ConsumablesName": "300μL Tip头" - }, - { - "uuid": "edc69dec66c244a58b04743e17f7bb0b", - "uuidPlanMaster": "40bd0ca25ffb4be6b246353db6ebefc9", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "T2", - "Dosage": 300, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-58-10000", - "ConsumablesName": "储液槽" - }, - { - "uuid": "70f76a7f1b014060a6c66f0b6030e9c3", - "uuidPlanMaster": "40bd0ca25ffb4be6b246353db6ebefc9", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H41 - 48, T4", - "Dosage": 300, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 6, - "HoleCollective": "41,42,43,44,45,46,47,48", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "q2", - "ConsumablesName": "96深孔板" - }, - { - "uuid": "5894537715e84b57aee7ee3b0a5f7e91", - "uuidPlanMaster": "40bd0ca25ffb4be6b246353db6ebefc9", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H41 - 48, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 6, - "HoleCollective": "41,42,43,44,45,46,47,48", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-001-300", - "ConsumablesName": "300μL Tip头" - }, - { - "uuid": "d8921a438e6d47d38ee42e92f1c0e2c1", - "uuidPlanMaster": "40bd0ca25ffb4be6b246353db6ebefc9", - "Axis": "Left", - "ActOn": "Load", - "Place": "H49 - 56, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 7, - "HoleCollective": "49,50,51,52,53,54,55,56", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-001-300", - "ConsumablesName": "300μL Tip头" - }, - { - "uuid": "a39f76e3fcfd4d48a9d25495b4f17d42", - "uuidPlanMaster": "40bd0ca25ffb4be6b246353db6ebefc9", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "T2", - "Dosage": 300, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-58-10000", - "ConsumablesName": "储液槽" - }, - { - "uuid": "fa8ef533acf94694a0621d9b650f5977", - "uuidPlanMaster": "40bd0ca25ffb4be6b246353db6ebefc9", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H49 - 56, T4", - "Dosage": 300, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 7, - "HoleCollective": "49,50,51,52,53,54,55,56", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "q2", - "ConsumablesName": "96深孔板" - }, - { - "uuid": "c10edba4035e42d0a580619f02c5df4c", - "uuidPlanMaster": "40bd0ca25ffb4be6b246353db6ebefc9", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H49 - 56, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 7, - "HoleCollective": "49,50,51,52,53,54,55,56", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-001-300", - "ConsumablesName": "300μL Tip头" - }, - { - "uuid": "c0f4ec5e640544f88df091d079912f8f", - "uuidPlanMaster": "40bd0ca25ffb4be6b246353db6ebefc9", - "Axis": "Left", - "ActOn": "Load", - "Place": "H57 - 64, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 8, - "HoleCollective": "57,58,59,60,61,62,63,64", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-001-300", - "ConsumablesName": "300μL Tip头" - }, - { - "uuid": "0efd8d1cd35447b293d7ba2e32ccc776", - "uuidPlanMaster": "40bd0ca25ffb4be6b246353db6ebefc9", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "T2", - "Dosage": 300, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-58-10000", - "ConsumablesName": "储液槽" - }, - { - "uuid": "810f90ac7dc0468ca2ce79a5d00e6296", - "uuidPlanMaster": "40bd0ca25ffb4be6b246353db6ebefc9", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H57 - 64, T4", - "Dosage": 300, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 8, - "HoleCollective": "57,58,59,60,61,62,63,64", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "q2", - "ConsumablesName": "96深孔板" - }, - { - "uuid": "12b565ef190042428b71ca4541d72655", - "uuidPlanMaster": "40bd0ca25ffb4be6b246353db6ebefc9", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H57 - 64, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 8, - "HoleCollective": "57,58,59,60,61,62,63,64", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-001-300", - "ConsumablesName": "300μL Tip头" - }, - { - "uuid": "2d3ccabc34f7457d8dab22218f7d595f", - "uuidPlanMaster": "40bd0ca25ffb4be6b246353db6ebefc9", - "Axis": "Left", - "ActOn": "Load", - "Place": "H65 - 72, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 9, - "HoleCollective": "65,66,67,68,69,70,71,72", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-001-300", - "ConsumablesName": "300μL Tip头" - }, - { - "uuid": "60d2707c866e4f26a1198faafb0c7bd8", - "uuidPlanMaster": "40bd0ca25ffb4be6b246353db6ebefc9", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "T2", - "Dosage": 300, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-58-10000", - "ConsumablesName": "储液槽" - }, - { - "uuid": "5fd9491ca51b47dca6f230096a4f2e90", - "uuidPlanMaster": "40bd0ca25ffb4be6b246353db6ebefc9", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H65 - 72, T4", - "Dosage": 300, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 9, - "HoleCollective": "65,66,67,68,69,70,71,72", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "q2", - "ConsumablesName": "96深孔板" - }, - { - "uuid": "d5b658eba2734252ba0cf657c58f522e", - "uuidPlanMaster": "40bd0ca25ffb4be6b246353db6ebefc9", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H65 - 72, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 9, - "HoleCollective": "65,66,67,68,69,70,71,72", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-001-300", - "ConsumablesName": "300μL Tip头" - }, - { - "uuid": "4edb7994fad24f1e9c9f46009ef5bd4b", - "uuidPlanMaster": "40bd0ca25ffb4be6b246353db6ebefc9", - "Axis": "Left", - "ActOn": "Load", - "Place": "H73 - 80, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 10, - "HoleCollective": "73,74,75,76,77,78,79,80", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-001-300", - "ConsumablesName": "300μL Tip头" - }, - { - "uuid": "2540e3e5000c48788a43b16da773baa6", - "uuidPlanMaster": "40bd0ca25ffb4be6b246353db6ebefc9", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "T2", - "Dosage": 300, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-58-10000", - "ConsumablesName": "储液槽" - }, - { - "uuid": "83186a6a7e244ddfb7c33910a0d2998a", - "uuidPlanMaster": "40bd0ca25ffb4be6b246353db6ebefc9", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H73 - 80, T4", - "Dosage": 300, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 10, - "HoleCollective": "73,74,75,76,77,78,79,80", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "q2", - "ConsumablesName": "96深孔板" - }, - { - "uuid": "3286dd6a21ac4071b51ed9ff6c93796e", - "uuidPlanMaster": "40bd0ca25ffb4be6b246353db6ebefc9", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H73 - 80, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 10, - "HoleCollective": "73,74,75,76,77,78,79,80", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-001-300", - "ConsumablesName": "300μL Tip头" - }, - { - "uuid": "7b27ac1b44de4ce9b54309f0ad60e3e5", - "uuidPlanMaster": "40bd0ca25ffb4be6b246353db6ebefc9", - "Axis": "Left", - "ActOn": "Load", - "Place": "H81 - 88, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 11, - "HoleCollective": "81,82,83,84,85,86,87,88", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-001-300", - "ConsumablesName": "300μL Tip头" - }, - { - "uuid": "7be607f7b31440a39094deb7c17a3cc5", - "uuidPlanMaster": "40bd0ca25ffb4be6b246353db6ebefc9", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "T2", - "Dosage": 300, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-58-10000", - "ConsumablesName": "储液槽" - }, - { - "uuid": "5975028fe4e9486792470c41242f3f9b", - "uuidPlanMaster": "40bd0ca25ffb4be6b246353db6ebefc9", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H81 - 88, T4", - "Dosage": 300, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 11, - "HoleCollective": "81,82,83,84,85,86,87,88", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "q2", - "ConsumablesName": "96深孔板" - }, - { - "uuid": "7e6bdc0d152044fd87d13c98af9901d8", - "uuidPlanMaster": "40bd0ca25ffb4be6b246353db6ebefc9", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H81 - 88, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 11, - "HoleCollective": "81,82,83,84,85,86,87,88", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-001-300", - "ConsumablesName": "300μL Tip头" - }, - { - "uuid": "a2542582f8f44ee2a42478aad23d7ef1", - "uuidPlanMaster": "40bd0ca25ffb4be6b246353db6ebefc9", - "Axis": "Left", - "ActOn": "Load", - "Place": "H89 - 96, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 12, - "HoleCollective": "89,90,91,92,93,94,95,96", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-001-300", - "ConsumablesName": "300μL Tip头" - }, - { - "uuid": "26f00d06d366435dbbb3bf00726bf5a7", - "uuidPlanMaster": "40bd0ca25ffb4be6b246353db6ebefc9", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "T2", - "Dosage": 300, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-58-10000", - "ConsumablesName": "储液槽" - }, - { - "uuid": "127b3b85a9274adcb04881325a473ee8", - "uuidPlanMaster": "40bd0ca25ffb4be6b246353db6ebefc9", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H89 - 96, T4", - "Dosage": 300, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 12, - "HoleCollective": "89,90,91,92,93,94,95,96", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "q2", - "ConsumablesName": "96深孔板" - }, - { - "uuid": "99413a2c1ed248288e9de11635245f52", - "uuidPlanMaster": "40bd0ca25ffb4be6b246353db6ebefc9", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H89 - 96, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 12, - "HoleCollective": "89,90,91,92,93,94,95,96", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-001-300", - "ConsumablesName": "300μL Tip头" - }, - { - "uuid": "675137581c444f1c96366b61cc494027", - "uuidPlanMaster": "30b838bb7d124ec885b506df29ee7860", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1 - 8, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-001-300", - "ConsumablesName": "300μL Tip头" - }, - { - "uuid": "0042a12ff5b64c7188afd74c15089c98", - "uuidPlanMaster": "30b838bb7d124ec885b506df29ee7860", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "T2", - "Dosage": 48, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-58-10000", - "ConsumablesName": "储液槽" - }, - { - "uuid": "1383ad24c03d4378a0c7c35326c52c61", - "uuidPlanMaster": "30b838bb7d124ec885b506df29ee7860", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1 - 15, T4", - "Dosage": 12, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,3,5,7,9,11,13,15", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "q3", - "ConsumablesName": "384板" - }, - { - "uuid": "96ef2aa928704b468e5d358625c1ec5c", - "uuidPlanMaster": "30b838bb7d124ec885b506df29ee7860", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H2 - 16, T4", - "Dosage": 12, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 1, - "HoleCollective": "2,4,6,8,10,12,14,16", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "q3", - "ConsumablesName": "384板" - }, - { - "uuid": "69e29768a0084fa3a04bdbdc5481d995", - "uuidPlanMaster": "30b838bb7d124ec885b506df29ee7860", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H17 - 31, T4", - "Dosage": 12, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 2, - "HoleCollective": "17,19,21,23,25,27,29,31", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "q3", - "ConsumablesName": "384板" - }, - { - "uuid": "4ddba51df8db431e9d0e16cb1d7d8f2a", - "uuidPlanMaster": "30b838bb7d124ec885b506df29ee7860", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H18 - 32, T4", - "Dosage": 12, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 2, - "HoleCollective": "18,20,22,24,26,28,30,32", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "q3", - "ConsumablesName": "384板" - }, - { - "uuid": "861e91acc0cf4fd7b13227beba0813f5", - "uuidPlanMaster": "30b838bb7d124ec885b506df29ee7860", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H1 - 8, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-001-300", - "ConsumablesName": "300μL Tip头" - }, - { - "uuid": "6fd6643a61d641f4bafad31cb22e7e23", - "uuidPlanMaster": "30b838bb7d124ec885b506df29ee7860", - "Axis": "Left", - "ActOn": "Load", - "Place": "H9 - 16, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 2, - "HoleCollective": "9,10,11,12,13,14,15,16", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-001-300", - "ConsumablesName": "300μL Tip头" - }, - { - "uuid": "05cf4fed46354a069e45ae88b0c062ea", - "uuidPlanMaster": "30b838bb7d124ec885b506df29ee7860", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "T2", - "Dosage": 48, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-58-10000", - "ConsumablesName": "储液槽" - }, - { - "uuid": "d05d7aa4c74348b5826753df5f7705d4", - "uuidPlanMaster": "30b838bb7d124ec885b506df29ee7860", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H33 - 47, T4", - "Dosage": 12, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "33,35,37,39,41,43,45,47", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "q3", - "ConsumablesName": "384板" - }, - { - "uuid": "e3c8be5f3dab4ffa9c760f3fd4f48846", - "uuidPlanMaster": "30b838bb7d124ec885b506df29ee7860", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H34 - 48, T4", - "Dosage": 12, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 3, - "HoleCollective": "34,36,38,40,42,44,46,48", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "q3", - "ConsumablesName": "384板" - }, - { - "uuid": "3d0021a0af6649e1b63a837aa79e35e5", - "uuidPlanMaster": "30b838bb7d124ec885b506df29ee7860", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H49 - 63, T4", - "Dosage": 12, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 4, - "HoleCollective": "49,51,53,55,57,59,61,63", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "q3", - "ConsumablesName": "384板" - }, - { - "uuid": "e2680d8e06014c51894b1b38bd3bac64", - "uuidPlanMaster": "30b838bb7d124ec885b506df29ee7860", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H50 - 64, T4", - "Dosage": 12, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 4, - "HoleCollective": "50,52,54,56,58,60,62,64", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "q3", - "ConsumablesName": "384板" - }, - { - "uuid": "7f63272970ba4f4f8a8a616634adbc04", - "uuidPlanMaster": "30b838bb7d124ec885b506df29ee7860", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H9 - 16, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 2, - "HoleCollective": "9,10,11,12,13,14,15,16", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-001-300", - "ConsumablesName": "300μL Tip头" - }, - { - "uuid": "0fc6807d61a0401ebd702510f9fb40e6", - "uuidPlanMaster": "30b838bb7d124ec885b506df29ee7860", - "Axis": "Left", - "ActOn": "Load", - "Place": "H17 - 24, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "17,18,19,20,21,22,23,24", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-001-300", - "ConsumablesName": "300μL Tip头" - }, - { - "uuid": "1aea75b791e04206bbc0122305617182", - "uuidPlanMaster": "30b838bb7d124ec885b506df29ee7860", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "T2", - "Dosage": 48, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-58-10000", - "ConsumablesName": "储液槽" - }, - { - "uuid": "1f19ee2ed3e54609abe83e111b4f1be1", - "uuidPlanMaster": "30b838bb7d124ec885b506df29ee7860", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H65 - 79, T4", - "Dosage": 12, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 5, - "HoleCollective": "65,67,69,71,73,75,77,79", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "q3", - "ConsumablesName": "384板" - }, - { - "uuid": "9059f71742ef4ad0b2e6a817892adcdd", - "uuidPlanMaster": "30b838bb7d124ec885b506df29ee7860", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H66 - 80, T4", - "Dosage": 12, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 5, - "HoleCollective": "66,68,70,72,74,76,78,80", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "q3", - "ConsumablesName": "384板" - }, - { - "uuid": "094e1dbb0ad649099f933a8dacceb20e", - "uuidPlanMaster": "30b838bb7d124ec885b506df29ee7860", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H81 - 95, T4", - "Dosage": 12, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 6, - "HoleCollective": "81,83,85,87,89,91,93,95", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "q3", - "ConsumablesName": "384板" - }, - { - "uuid": "19615fd04f9d4ec887cd17450abd2b34", - "uuidPlanMaster": "30b838bb7d124ec885b506df29ee7860", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H82 - 96, T4", - "Dosage": 12, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 6, - "HoleCollective": "82,84,86,88,90,92,94,96", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "q3", - "ConsumablesName": "384板" - }, - { - "uuid": "8df63c410fef42329031405465f645d8", - "uuidPlanMaster": "30b838bb7d124ec885b506df29ee7860", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H17 - 24, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "17,18,19,20,21,22,23,24", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-001-300", - "ConsumablesName": "300μL Tip头" - }, - { - "uuid": "238a424a0e384cebade008237582b226", - "uuidPlanMaster": "30b838bb7d124ec885b506df29ee7860", - "Axis": "Left", - "ActOn": "Load", - "Place": "H25 - 32, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 4, - "HoleCollective": "25,26,27,28,29,30,31,32", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-001-300", - "ConsumablesName": "300μL Tip头" - }, - { - "uuid": "cc730c24ff6246c9ac8029cc38229110", - "uuidPlanMaster": "30b838bb7d124ec885b506df29ee7860", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "T2", - "Dosage": 48, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-58-10000", - "ConsumablesName": "储液槽" - }, - { - "uuid": "6351bc0c2e8540ca88b4b755cb2c4ed4", - "uuidPlanMaster": "30b838bb7d124ec885b506df29ee7860", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H97 - 111, T4", - "Dosage": 12, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 7, - "HoleCollective": "97,99,101,103,105,107,109,111", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "q3", - "ConsumablesName": "384板" - }, - { - "uuid": "d4d0d821c95f442b9d342f12974fb44e", - "uuidPlanMaster": "30b838bb7d124ec885b506df29ee7860", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H98 - 112, T4", - "Dosage": 12, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 7, - "HoleCollective": "98,100,102,104,106,108,110,112", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "q3", - "ConsumablesName": "384板" - }, - { - "uuid": "49c214abc0aa45638e5363c1ec4feb03", - "uuidPlanMaster": "30b838bb7d124ec885b506df29ee7860", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H113 - 127, T4", - "Dosage": 12, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 8, - "HoleCollective": "113,115,117,119,121,123,125,127", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "q3", - "ConsumablesName": "384板" - }, - { - "uuid": "cceb42bc9f334dec8c81193b4d8c44da", - "uuidPlanMaster": "30b838bb7d124ec885b506df29ee7860", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H114 - 128, T4", - "Dosage": 12, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 8, - "HoleCollective": "114,116,118,120,122,124,126,128", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "q3", - "ConsumablesName": "384板" - }, - { - "uuid": "8f0b6c888b2841e7af46e1618cbb30c3", - "uuidPlanMaster": "30b838bb7d124ec885b506df29ee7860", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H25 - 32, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 4, - "HoleCollective": "25,26,27,28,29,30,31,32", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-001-300", - "ConsumablesName": "300μL Tip头" - }, - { - "uuid": "086e3a04a44b4df2b2a6c5bb6b78f998", - "uuidPlanMaster": "30b838bb7d124ec885b506df29ee7860", - "Axis": "Left", - "ActOn": "Load", - "Place": "H33 - 40, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 5, - "HoleCollective": "33,34,35,36,37,38,39,40", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-001-300", - "ConsumablesName": "300μL Tip头" - }, - { - "uuid": "387d34b0cc3a4e78af89dc59cc05e2cd", - "uuidPlanMaster": "30b838bb7d124ec885b506df29ee7860", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "T2", - "Dosage": 48, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-58-10000", - "ConsumablesName": "储液槽" - }, - { - "uuid": "8417b4b60a2e46b59c8559a66e135a60", - "uuidPlanMaster": "30b838bb7d124ec885b506df29ee7860", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H129 - 143, T4", - "Dosage": 12, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 9, - "HoleCollective": "129,131,133,135,137,139,141,143", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "q3", - "ConsumablesName": "384板" - }, - { - "uuid": "2b57c1fe66f4450483b6767a01b705af", - "uuidPlanMaster": "30b838bb7d124ec885b506df29ee7860", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H130 - 144, T4", - "Dosage": 12, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 9, - "HoleCollective": "130,132,134,136,138,140,142,144", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "q3", - "ConsumablesName": "384板" - }, - { - "uuid": "86c8ccc18bfa48bd83667052ba1b6809", - "uuidPlanMaster": "30b838bb7d124ec885b506df29ee7860", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H145 - 159, T4", - "Dosage": 12, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 10, - "HoleCollective": "145,147,149,151,153,155,157,159", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "q3", - "ConsumablesName": "384板" - }, - { - "uuid": "8da1e0fce8ce4432b51926638556bed3", - "uuidPlanMaster": "30b838bb7d124ec885b506df29ee7860", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H146 - 160, T4", - "Dosage": 12, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 10, - "HoleCollective": "146,148,150,152,154,156,158,160", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "q3", - "ConsumablesName": "384板" - }, - { - "uuid": "2fab954c9ea14539b38cde4b314d68c5", - "uuidPlanMaster": "30b838bb7d124ec885b506df29ee7860", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H33 - 40, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 5, - "HoleCollective": "33,34,35,36,37,38,39,40", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-001-300", - "ConsumablesName": "300μL Tip头" - }, - { - "uuid": "9795754070cf4dbe9ecd6d177a67a3c9", - "uuidPlanMaster": "30b838bb7d124ec885b506df29ee7860", - "Axis": "Left", - "ActOn": "Load", - "Place": "H41 - 48, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 6, - "HoleCollective": "41,42,43,44,45,46,47,48", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-001-300", - "ConsumablesName": "300μL Tip头" - }, - { - "uuid": "7a203c61cb3041928c9f61ef1bebe9a2", - "uuidPlanMaster": "30b838bb7d124ec885b506df29ee7860", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "T2", - "Dosage": 48, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-58-10000", - "ConsumablesName": "储液槽" - }, - { - "uuid": "509e8e6f4155455b882c5ec343f84d74", - "uuidPlanMaster": "30b838bb7d124ec885b506df29ee7860", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H161 - 175, T4", - "Dosage": 12, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 11, - "HoleCollective": "161,163,165,167,169,171,173,175", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "q3", - "ConsumablesName": "384板" - }, - { - "uuid": "325a915fc78c4e409b152ab7f7291eb4", - "uuidPlanMaster": "30b838bb7d124ec885b506df29ee7860", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H162 - 176, T4", - "Dosage": 12, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 11, - "HoleCollective": "162,164,166,168,170,172,174,176", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "q3", - "ConsumablesName": "384板" - }, - { - "uuid": "07985bab428c468b801daf8c976394ee", - "uuidPlanMaster": "30b838bb7d124ec885b506df29ee7860", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H177 - 191, T4", - "Dosage": 12, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 12, - "HoleCollective": "177,179,181,183,185,187,189,191", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "q3", - "ConsumablesName": "384板" - }, - { - "uuid": "ea22fb2712d4498fb5a31987f2394843", - "uuidPlanMaster": "30b838bb7d124ec885b506df29ee7860", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H178 - 192, T4", - "Dosage": 12, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 12, - "HoleCollective": "178,180,182,184,186,188,190,192", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "q3", - "ConsumablesName": "384板" - }, - { - "uuid": "13b12674fc7a4bc7a285248925086002", - "uuidPlanMaster": "30b838bb7d124ec885b506df29ee7860", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H41 - 48, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 6, - "HoleCollective": "41,42,43,44,45,46,47,48", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-001-300", - "ConsumablesName": "300μL Tip头" - }, - { - "uuid": "7045fcfc599948269f7812ed1226581e", - "uuidPlanMaster": "30b838bb7d124ec885b506df29ee7860", - "Axis": "Left", - "ActOn": "Load", - "Place": "H49 - 56, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 7, - "HoleCollective": "49,50,51,52,53,54,55,56", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-001-300", - "ConsumablesName": "300μL Tip头" - }, - { - "uuid": "dc7789c52d874e60893832d89a41770b", - "uuidPlanMaster": "30b838bb7d124ec885b506df29ee7860", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "T2", - "Dosage": 48, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-58-10000", - "ConsumablesName": "储液槽" - }, - { - "uuid": "0e7c1a19a13c449384d99dad15149109", - "uuidPlanMaster": "30b838bb7d124ec885b506df29ee7860", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H193 - 207, T4", - "Dosage": 12, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 13, - "HoleCollective": "193,195,197,199,201,203,205,207", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "q3", - "ConsumablesName": "384板" - }, - { - "uuid": "0cf4d8a05c9d41449f9dfd220b1fbc56", - "uuidPlanMaster": "30b838bb7d124ec885b506df29ee7860", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H194 - 208, T4", - "Dosage": 12, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 13, - "HoleCollective": "194,196,198,200,202,204,206,208", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "q3", - "ConsumablesName": "384板" - }, - { - "uuid": "cb59d1df729f495ab09c29ca6ffceb33", - "uuidPlanMaster": "30b838bb7d124ec885b506df29ee7860", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H209 - 223, T4", - "Dosage": 12, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 14, - "HoleCollective": "209,211,213,215,217,219,221,223", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "q3", - "ConsumablesName": "384板" - }, - { - "uuid": "15a80f80e3504ad8afbd37892e24c7b0", - "uuidPlanMaster": "30b838bb7d124ec885b506df29ee7860", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H210 - 224, T4", - "Dosage": 12, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 14, - "HoleCollective": "210,212,214,216,218,220,222,224", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "q3", - "ConsumablesName": "384板" - }, - { - "uuid": "7a25defa786e43d1a672e9a169945f16", - "uuidPlanMaster": "30b838bb7d124ec885b506df29ee7860", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H49 - 56, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 7, - "HoleCollective": "49,50,51,52,53,54,55,56", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-001-300", - "ConsumablesName": "300μL Tip头" - }, - { - "uuid": "0424a1e032294ab5a3793e09b3831f5f", - "uuidPlanMaster": "30b838bb7d124ec885b506df29ee7860", - "Axis": "Left", - "ActOn": "Load", - "Place": "H57 - 64, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 8, - "HoleCollective": "57,58,59,60,61,62,63,64", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-001-300", - "ConsumablesName": "300μL Tip头" - }, - { - "uuid": "0dc505643523435dbd809ecbf7598f20", - "uuidPlanMaster": "30b838bb7d124ec885b506df29ee7860", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "T2", - "Dosage": 48, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-58-10000", - "ConsumablesName": "储液槽" - }, - { - "uuid": "986f51392d5648168cb710f1c0dff540", - "uuidPlanMaster": "30b838bb7d124ec885b506df29ee7860", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H225 - 239, T4", - "Dosage": 12, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 15, - "HoleCollective": "225,227,229,231,233,235,237,239", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "q3", - "ConsumablesName": "384板" - }, - { - "uuid": "4224906856c94bc98c8eef155fbae63c", - "uuidPlanMaster": "30b838bb7d124ec885b506df29ee7860", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H226 - 240, T4", - "Dosage": 12, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 15, - "HoleCollective": "226,228,230,232,234,236,238,240", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "q3", - "ConsumablesName": "384板" - }, - { - "uuid": "e09d2947f1a04ba2a5fe6250096a3f23", - "uuidPlanMaster": "30b838bb7d124ec885b506df29ee7860", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H241 - 255, T4", - "Dosage": 12, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 16, - "HoleCollective": "241,243,245,247,249,251,253,255", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "q3", - "ConsumablesName": "384板" - }, - { - "uuid": "302792640b33432990eef72a7d3d85be", - "uuidPlanMaster": "30b838bb7d124ec885b506df29ee7860", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H242 - 256, T4", - "Dosage": 12, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 16, - "HoleCollective": "242,244,246,248,250,252,254,256", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "q3", - "ConsumablesName": "384板" - }, - { - "uuid": "261ae38ff10f4ce5bb861fca94d32be8", - "uuidPlanMaster": "30b838bb7d124ec885b506df29ee7860", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H57 - 64, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 8, - "HoleCollective": "57,58,59,60,61,62,63,64", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-001-300", - "ConsumablesName": "300μL Tip头" - }, - { - "uuid": "befd6455b06e4e3da31677958b74f87f", - "uuidPlanMaster": "30b838bb7d124ec885b506df29ee7860", - "Axis": "Left", - "ActOn": "Load", - "Place": "H65 - 72, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 9, - "HoleCollective": "65,66,67,68,69,70,71,72", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-001-300", - "ConsumablesName": "300μL Tip头" - }, - { - "uuid": "ea48827bd4334706a3408636d0da1ca1", - "uuidPlanMaster": "30b838bb7d124ec885b506df29ee7860", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "T2", - "Dosage": 48, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-58-10000", - "ConsumablesName": "储液槽" - }, - { - "uuid": "ab0f83d4be92488595927a10694f6409", - "uuidPlanMaster": "30b838bb7d124ec885b506df29ee7860", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H257 - 271, T4", - "Dosage": 12, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 17, - "HoleCollective": "257,259,261,263,265,267,269,271", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "q3", - "ConsumablesName": "384板" - }, - { - "uuid": "3568d70d0c664e6bb65517012cb1f0fe", - "uuidPlanMaster": "30b838bb7d124ec885b506df29ee7860", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H258 - 272, T4", - "Dosage": 12, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 17, - "HoleCollective": "258,260,262,264,266,268,270,272", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "q3", - "ConsumablesName": "384板" - }, - { - "uuid": "dc253d0ba66f4e1482f04b3e043ea8e6", - "uuidPlanMaster": "30b838bb7d124ec885b506df29ee7860", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H273 - 287, T4", - "Dosage": 12, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 18, - "HoleCollective": "273,275,277,279,281,283,285,287", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "q3", - "ConsumablesName": "384板" - }, - { - "uuid": "a193b2c6716c485391ac6681f426eb81", - "uuidPlanMaster": "30b838bb7d124ec885b506df29ee7860", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H274 - 288, T4", - "Dosage": 12, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 18, - "HoleCollective": "274,276,278,280,282,284,286,288", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "q3", - "ConsumablesName": "384板" - }, - { - "uuid": "ece8f1b27d3f48caa110cce3e4bfdc09", - "uuidPlanMaster": "30b838bb7d124ec885b506df29ee7860", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H65 - 72, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 9, - "HoleCollective": "65,66,67,68,69,70,71,72", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-001-300", - "ConsumablesName": "300μL Tip头" - }, - { - "uuid": "a7553ac11f294b8dadf2d0078519eaca", - "uuidPlanMaster": "30b838bb7d124ec885b506df29ee7860", - "Axis": "Left", - "ActOn": "Load", - "Place": "H73 - 80, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 10, - "HoleCollective": "73,74,75,76,77,78,79,80", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-001-300", - "ConsumablesName": "300μL Tip头" - }, - { - "uuid": "d0fde02ecf074e76a0baf5a0d74d8a34", - "uuidPlanMaster": "30b838bb7d124ec885b506df29ee7860", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "T2", - "Dosage": 48, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-58-10000", - "ConsumablesName": "储液槽" - }, - { - "uuid": "5472d4855ed84014ba70a636757730e4", - "uuidPlanMaster": "30b838bb7d124ec885b506df29ee7860", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H289 - 303, T4", - "Dosage": 12, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 19, - "HoleCollective": "289,291,293,295,297,299,301,303", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "q3", - "ConsumablesName": "384板" - }, - { - "uuid": "79434d220f7745b1a1784776121b0c3f", - "uuidPlanMaster": "30b838bb7d124ec885b506df29ee7860", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H290 - 304, T4", - "Dosage": 12, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 19, - "HoleCollective": "290,292,294,296,298,300,302,304", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "q3", - "ConsumablesName": "384板" - }, - { - "uuid": "3c7a893a837e47e9811b2b7e4978f4d5", - "uuidPlanMaster": "30b838bb7d124ec885b506df29ee7860", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H305 - 319, T4", - "Dosage": 12, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 20, - "HoleCollective": "305,307,309,311,313,315,317,319", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "q3", - "ConsumablesName": "384板" - }, - { - "uuid": "6eeac96ac8214282a7cfce43c343b070", - "uuidPlanMaster": "30b838bb7d124ec885b506df29ee7860", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H306 - 320, T4", - "Dosage": 12, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 20, - "HoleCollective": "306,308,310,312,314,316,318,320", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "q3", - "ConsumablesName": "384板" - }, - { - "uuid": "12397ed038774294ad26de8aa3938d3c", - "uuidPlanMaster": "30b838bb7d124ec885b506df29ee7860", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H73 - 80, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 10, - "HoleCollective": "73,74,75,76,77,78,79,80", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-001-300", - "ConsumablesName": "300μL Tip头" - }, - { - "uuid": "ba9873651e5b4699868a9f1d85d0e77f", - "uuidPlanMaster": "30b838bb7d124ec885b506df29ee7860", - "Axis": "Left", - "ActOn": "Load", - "Place": "H81 - 88, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 11, - "HoleCollective": "81,82,83,84,85,86,87,88", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-001-300", - "ConsumablesName": "300μL Tip头" - }, - { - "uuid": "887e6604bbd748d496631fbf2ae028e5", - "uuidPlanMaster": "30b838bb7d124ec885b506df29ee7860", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "T2", - "Dosage": 48, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-58-10000", - "ConsumablesName": "储液槽" - }, - { - "uuid": "a3ae5076eecb49c5944b97e9ce984ffb", - "uuidPlanMaster": "30b838bb7d124ec885b506df29ee7860", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H321 - 335, T4", - "Dosage": 12, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 21, - "HoleCollective": "321,323,325,327,329,331,333,335", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "q3", - "ConsumablesName": "384板" - }, - { - "uuid": "989269ba24a44bd19a3b9fc67a331528", - "uuidPlanMaster": "30b838bb7d124ec885b506df29ee7860", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H322 - 336, T4", - "Dosage": 12, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 21, - "HoleCollective": "322,324,326,328,330,332,334,336", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "q3", - "ConsumablesName": "384板" - }, - { - "uuid": "5d631daa870c4bf0b40473278f9129ca", - "uuidPlanMaster": "30b838bb7d124ec885b506df29ee7860", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H337 - 351, T4", - "Dosage": 12, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 22, - "HoleCollective": "337,339,341,343,345,347,349,351", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "q3", - "ConsumablesName": "384板" - }, - { - "uuid": "37deff08f41648cebefe76425edca687", - "uuidPlanMaster": "30b838bb7d124ec885b506df29ee7860", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H338 - 352, T4", - "Dosage": 12, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 22, - "HoleCollective": "338,340,342,344,346,348,350,352", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "q3", - "ConsumablesName": "384板" - }, - { - "uuid": "b34cf28125674991b3d9406e4f944191", - "uuidPlanMaster": "30b838bb7d124ec885b506df29ee7860", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H81 - 88, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 11, - "HoleCollective": "81,82,83,84,85,86,87,88", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-001-300", - "ConsumablesName": "300μL Tip头" - }, - { - "uuid": "450d617b7c984412abc5f13674c7973a", - "uuidPlanMaster": "30b838bb7d124ec885b506df29ee7860", - "Axis": "Left", - "ActOn": "Load", - "Place": "H89 - 96, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 12, - "HoleCollective": "89,90,91,92,93,94,95,96", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-001-300", - "ConsumablesName": "300μL Tip头" - }, - { - "uuid": "7588bcd672ca40c8b9e74700be34e046", - "uuidPlanMaster": "30b838bb7d124ec885b506df29ee7860", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "T2", - "Dosage": 48, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-58-10000", - "ConsumablesName": "储液槽" - }, - { - "uuid": "4af80727348a433f97a380539bd79ae1", - "uuidPlanMaster": "30b838bb7d124ec885b506df29ee7860", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H353 - 367, T4", - "Dosage": 12, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 23, - "HoleCollective": "353,355,357,359,361,363,365,367", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "q3", - "ConsumablesName": "384板" - }, - { - "uuid": "569e09c8e84b434ab0dd2f38ab9edd5e", - "uuidPlanMaster": "30b838bb7d124ec885b506df29ee7860", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H354 - 368, T4", - "Dosage": 12, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 23, - "HoleCollective": "354,356,358,360,362,364,366,368", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "q3", - "ConsumablesName": "384板" - }, - { - "uuid": "360755fb742c4ab0a8b2300a46c72d89", - "uuidPlanMaster": "30b838bb7d124ec885b506df29ee7860", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H369 - 383, T4", - "Dosage": 12, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 24, - "HoleCollective": "369,371,373,375,377,379,381,383", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "q3", - "ConsumablesName": "384板" - }, - { - "uuid": "e5b2c54fed444802a2b176f1a94fa747", - "uuidPlanMaster": "30b838bb7d124ec885b506df29ee7860", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H370 - 384, T4", - "Dosage": 12, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 24, - "HoleCollective": "370,372,374,376,378,380,382,384", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "q3", - "ConsumablesName": "384板" - }, - { - "uuid": "338371e4db3a4905b0c68ce3d4b19e59", - "uuidPlanMaster": "30b838bb7d124ec885b506df29ee7860", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H89 - 96, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 12, - "HoleCollective": "89,90,91,92,93,94,95,96", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-001-300", - "ConsumablesName": "300μL Tip头" - }, - { - "uuid": "14733fef27604fed941b4514847e6923", - "uuidPlanMaster": "e53c591c86334c6f92d3b1afa107bcf8", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1 - 8, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-001-300", - "ConsumablesName": "300μL Tip头" - }, - { - "uuid": "44fc34484f634d2f9a8597d60a87411c", - "uuidPlanMaster": "e53c591c86334c6f92d3b1afa107bcf8", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "T2", - "Dosage": 240, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-58-10000", - "ConsumablesName": "储液槽" - }, - { - "uuid": "ec956dd30f464f0196e4fdc47777dec7", - "uuidPlanMaster": "e53c591c86334c6f92d3b1afa107bcf8", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1 - 15, T4", - "Dosage": 60, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,3,5,7,9,11,13,15", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "q3", - "ConsumablesName": "384板" - }, - { - "uuid": "dbc18ddf37ed4b7696d1148c99b45b96", - "uuidPlanMaster": "e53c591c86334c6f92d3b1afa107bcf8", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H2 - 16, T4", - "Dosage": 60, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 1, - "HoleCollective": "2,4,6,8,10,12,14,16", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "q3", - "ConsumablesName": "384板" - }, - { - "uuid": "f5d9803c39094c8eb6a444f4aec420e0", - "uuidPlanMaster": "e53c591c86334c6f92d3b1afa107bcf8", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H17 - 31, T4", - "Dosage": 60, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 2, - "HoleCollective": "17,19,21,23,25,27,29,31", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "q3", - "ConsumablesName": "384板" - }, - { - "uuid": "b7383d33f8534a528aa7090133aefbd8", - "uuidPlanMaster": "e53c591c86334c6f92d3b1afa107bcf8", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H18 - 32, T4", - "Dosage": 60, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 2, - "HoleCollective": "18,20,22,24,26,28,30,32", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "q3", - "ConsumablesName": "384板" - }, - { - "uuid": "64a843dff5f94f2ab544d266cb323824", - "uuidPlanMaster": "e53c591c86334c6f92d3b1afa107bcf8", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H1 - 8, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-001-300", - "ConsumablesName": "300μL Tip头" - }, - { - "uuid": "c1b87ca9060b457b849c3126c164f807", - "uuidPlanMaster": "e53c591c86334c6f92d3b1afa107bcf8", - "Axis": "Left", - "ActOn": "Load", - "Place": "H9 - 16, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 2, - "HoleCollective": "9,10,11,12,13,14,15,16", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-001-300", - "ConsumablesName": "300μL Tip头" - }, - { - "uuid": "8d585599a909417a96f29aa71bed1431", - "uuidPlanMaster": "e53c591c86334c6f92d3b1afa107bcf8", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "T2", - "Dosage": 240, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-58-10000", - "ConsumablesName": "储液槽" - }, - { - "uuid": "a9add001b3c14f2c9b8ca805e9118f9e", - "uuidPlanMaster": "e53c591c86334c6f92d3b1afa107bcf8", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H33 - 47, T4", - "Dosage": 60, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "33,35,37,39,41,43,45,47", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "q3", - "ConsumablesName": "384板" - }, - { - "uuid": "e7af30357f844cc2b4a22df56ae46538", - "uuidPlanMaster": "e53c591c86334c6f92d3b1afa107bcf8", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H34 - 48, T4", - "Dosage": 60, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 3, - "HoleCollective": "34,36,38,40,42,44,46,48", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "q3", - "ConsumablesName": "384板" - }, - { - "uuid": "c67bbc371ad449d490a8b87661d9174c", - "uuidPlanMaster": "e53c591c86334c6f92d3b1afa107bcf8", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H49 - 63, T4", - "Dosage": 60, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 4, - "HoleCollective": "49,51,53,55,57,59,61,63", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "q3", - "ConsumablesName": "384板" - }, - { - "uuid": "9429a7174d8d472f910e498e4c513c3b", - "uuidPlanMaster": "e53c591c86334c6f92d3b1afa107bcf8", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H50 - 64, T4", - "Dosage": 60, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 4, - "HoleCollective": "50,52,54,56,58,60,62,64", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "q3", - "ConsumablesName": "384板" - }, - { - "uuid": "e71c076345ff49a09ec157b0eb73fd28", - "uuidPlanMaster": "e53c591c86334c6f92d3b1afa107bcf8", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H9 - 16, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 2, - "HoleCollective": "9,10,11,12,13,14,15,16", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-001-300", - "ConsumablesName": "300μL Tip头" - }, - { - "uuid": "d1efa8460fab48cfa36d506a037c5d55", - "uuidPlanMaster": "e53c591c86334c6f92d3b1afa107bcf8", - "Axis": "Left", - "ActOn": "Load", - "Place": "H17 - 24, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "17,18,19,20,21,22,23,24", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-001-300", - "ConsumablesName": "300μL Tip头" - }, - { - "uuid": "da9ffc32830a4707885e59b629b37bd7", - "uuidPlanMaster": "e53c591c86334c6f92d3b1afa107bcf8", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "T2", - "Dosage": 240, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-58-10000", - "ConsumablesName": "储液槽" - }, - { - "uuid": "00b0bd6e053f4ad498a286a57950506a", - "uuidPlanMaster": "e53c591c86334c6f92d3b1afa107bcf8", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H65 - 79, T4", - "Dosage": 60, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 5, - "HoleCollective": "65,67,69,71,73,75,77,79", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "q3", - "ConsumablesName": "384板" - }, - { - "uuid": "2205eb8729d44e07b271c22d5aef4e2a", - "uuidPlanMaster": "e53c591c86334c6f92d3b1afa107bcf8", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H66 - 80, T4", - "Dosage": 60, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 5, - "HoleCollective": "66,68,70,72,74,76,78,80", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "q3", - "ConsumablesName": "384板" - }, - { - "uuid": "3968dcd66a8c425aa4b1fee610627bb6", - "uuidPlanMaster": "e53c591c86334c6f92d3b1afa107bcf8", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H81 - 95, T4", - "Dosage": 60, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 6, - "HoleCollective": "81,83,85,87,89,91,93,95", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "q3", - "ConsumablesName": "384板" - }, - { - "uuid": "d106bbc59ee54b8faada745c8b8f5d0a", - "uuidPlanMaster": "e53c591c86334c6f92d3b1afa107bcf8", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H82 - 96, T4", - "Dosage": 60, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 6, - "HoleCollective": "82,84,86,88,90,92,94,96", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "q3", - "ConsumablesName": "384板" - }, - { - "uuid": "b5d2c65defc14ddaa46e701158247ca6", - "uuidPlanMaster": "e53c591c86334c6f92d3b1afa107bcf8", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H17 - 24, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "17,18,19,20,21,22,23,24", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-001-300", - "ConsumablesName": "300μL Tip头" - }, - { - "uuid": "18f2f647a6524d96b7470a22d0bc9315", - "uuidPlanMaster": "e53c591c86334c6f92d3b1afa107bcf8", - "Axis": "Left", - "ActOn": "Load", - "Place": "H25 - 32, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 4, - "HoleCollective": "25,26,27,28,29,30,31,32", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-001-300", - "ConsumablesName": "300μL Tip头" - }, - { - "uuid": "fb8b7ab43b224231b8cca8fa568deccc", - "uuidPlanMaster": "e53c591c86334c6f92d3b1afa107bcf8", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "T2", - "Dosage": 240, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-58-10000", - "ConsumablesName": "储液槽" - }, - { - "uuid": "7c8bb300f6774bc88d821a7c1bc04c3f", - "uuidPlanMaster": "e53c591c86334c6f92d3b1afa107bcf8", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H97 - 111, T4", - "Dosage": 60, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 7, - "HoleCollective": "97,99,101,103,105,107,109,111", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "q3", - "ConsumablesName": "384板" - }, - { - "uuid": "ebece551e3764bd980a09d66110e532d", - "uuidPlanMaster": "e53c591c86334c6f92d3b1afa107bcf8", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H98 - 112, T4", - "Dosage": 60, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 7, - "HoleCollective": "98,100,102,104,106,108,110,112", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "q3", - "ConsumablesName": "384板" - }, - { - "uuid": "d270aa850fd84d02882ef4331b56919e", - "uuidPlanMaster": "e53c591c86334c6f92d3b1afa107bcf8", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H113 - 127, T4", - "Dosage": 60, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 8, - "HoleCollective": "113,115,117,119,121,123,125,127", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "q3", - "ConsumablesName": "384板" - }, - { - "uuid": "faad190794e1466db439d3b3aeb36402", - "uuidPlanMaster": "e53c591c86334c6f92d3b1afa107bcf8", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H114 - 128, T4", - "Dosage": 60, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 8, - "HoleCollective": "114,116,118,120,122,124,126,128", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "q3", - "ConsumablesName": "384板" - }, - { - "uuid": "4478656a0f8c422f9fd9b4c94d9053e0", - "uuidPlanMaster": "e53c591c86334c6f92d3b1afa107bcf8", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H25 - 32, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 4, - "HoleCollective": "25,26,27,28,29,30,31,32", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-001-300", - "ConsumablesName": "300μL Tip头" - }, - { - "uuid": "26722e2e1b0b4dfe9902b78851890f26", - "uuidPlanMaster": "e53c591c86334c6f92d3b1afa107bcf8", - "Axis": "Left", - "ActOn": "Load", - "Place": "H33 - 40, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 5, - "HoleCollective": "33,34,35,36,37,38,39,40", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-001-300", - "ConsumablesName": "300μL Tip头" - }, - { - "uuid": "f1492b333eca40a4a9bc0198f157f502", - "uuidPlanMaster": "e53c591c86334c6f92d3b1afa107bcf8", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "T2", - "Dosage": 240, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-58-10000", - "ConsumablesName": "储液槽" - }, - { - "uuid": "80a7364a47e94aeea2d2a128996ae499", - "uuidPlanMaster": "e53c591c86334c6f92d3b1afa107bcf8", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H129 - 143, T4", - "Dosage": 60, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 9, - "HoleCollective": "129,131,133,135,137,139,141,143", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "q3", - "ConsumablesName": "384板" - }, - { - "uuid": "1587f4ac45414055a24feb3af1f6e00f", - "uuidPlanMaster": "e53c591c86334c6f92d3b1afa107bcf8", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H130 - 144, T4", - "Dosage": 60, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 9, - "HoleCollective": "130,132,134,136,138,140,142,144", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "q3", - "ConsumablesName": "384板" - }, - { - "uuid": "4e8221f161334e64956ed6cb4fa464bd", - "uuidPlanMaster": "e53c591c86334c6f92d3b1afa107bcf8", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H145 - 159, T4", - "Dosage": 60, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 10, - "HoleCollective": "145,147,149,151,153,155,157,159", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "q3", - "ConsumablesName": "384板" - }, - { - "uuid": "8364934954784c1d999a77f197f29fa0", - "uuidPlanMaster": "e53c591c86334c6f92d3b1afa107bcf8", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H146 - 160, T4", - "Dosage": 60, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 10, - "HoleCollective": "146,148,150,152,154,156,158,160", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "q3", - "ConsumablesName": "384板" - }, - { - "uuid": "5c60940353d0454fb4d9bda1417ea1e6", - "uuidPlanMaster": "e53c591c86334c6f92d3b1afa107bcf8", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H33 - 40, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 5, - "HoleCollective": "33,34,35,36,37,38,39,40", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-001-300", - "ConsumablesName": "300μL Tip头" - }, - { - "uuid": "72f25542dfd8460781708a73beeb6153", - "uuidPlanMaster": "e53c591c86334c6f92d3b1afa107bcf8", - "Axis": "Left", - "ActOn": "Load", - "Place": "H41 - 48, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 6, - "HoleCollective": "41,42,43,44,45,46,47,48", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-001-300", - "ConsumablesName": "300μL Tip头" - }, - { - "uuid": "828a99118a1041b7a5fe15fa41714cdd", - "uuidPlanMaster": "e53c591c86334c6f92d3b1afa107bcf8", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "T2", - "Dosage": 240, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-58-10000", - "ConsumablesName": "储液槽" - }, - { - "uuid": "90f68c4f0a26496b8d31fe3ea39604b4", - "uuidPlanMaster": "e53c591c86334c6f92d3b1afa107bcf8", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H161 - 175, T4", - "Dosage": 60, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 11, - "HoleCollective": "161,163,165,167,169,171,173,175", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "q3", - "ConsumablesName": "384板" - }, - { - "uuid": "a0550ff4836d405d8646440bd41ee8d3", - "uuidPlanMaster": "e53c591c86334c6f92d3b1afa107bcf8", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H162 - 176, T4", - "Dosage": 60, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 11, - "HoleCollective": "162,164,166,168,170,172,174,176", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "q3", - "ConsumablesName": "384板" - }, - { - "uuid": "d757bbb1264d413b9fb7b36cc6fd5eea", - "uuidPlanMaster": "e53c591c86334c6f92d3b1afa107bcf8", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H177 - 191, T4", - "Dosage": 60, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 12, - "HoleCollective": "177,179,181,183,185,187,189,191", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "q3", - "ConsumablesName": "384板" - }, - { - "uuid": "7fac2f01f22a40cd9873f7bd3a3ffea8", - "uuidPlanMaster": "e53c591c86334c6f92d3b1afa107bcf8", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H178 - 192, T4", - "Dosage": 60, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 12, - "HoleCollective": "178,180,182,184,186,188,190,192", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "q3", - "ConsumablesName": "384板" - }, - { - "uuid": "6df9043dd93a417eb87766d8ecff1441", - "uuidPlanMaster": "e53c591c86334c6f92d3b1afa107bcf8", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H41 - 48, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 6, - "HoleCollective": "41,42,43,44,45,46,47,48", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-001-300", - "ConsumablesName": "300μL Tip头" - }, - { - "uuid": "e8b73aaae9ed4375a9ca2bc27a817d92", - "uuidPlanMaster": "e53c591c86334c6f92d3b1afa107bcf8", - "Axis": "Left", - "ActOn": "Load", - "Place": "H49 - 56, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 7, - "HoleCollective": "49,50,51,52,53,54,55,56", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-001-300", - "ConsumablesName": "300μL Tip头" - }, - { - "uuid": "6f8f7e7cc3ed4fd1a972838988e6755f", - "uuidPlanMaster": "e53c591c86334c6f92d3b1afa107bcf8", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "T2", - "Dosage": 240, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-58-10000", - "ConsumablesName": "储液槽" - }, - { - "uuid": "91bf24cf5a5a4cdd801354a05a16ad9f", - "uuidPlanMaster": "e53c591c86334c6f92d3b1afa107bcf8", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H193 - 207, T4", - "Dosage": 60, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 13, - "HoleCollective": "193,195,197,199,201,203,205,207", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "q3", - "ConsumablesName": "384板" - }, - { - "uuid": "219ccb6bfe5a435e9cf90986ace7ca2f", - "uuidPlanMaster": "e53c591c86334c6f92d3b1afa107bcf8", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H194 - 208, T4", - "Dosage": 60, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 13, - "HoleCollective": "194,196,198,200,202,204,206,208", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "q3", - "ConsumablesName": "384板" - }, - { - "uuid": "f3d272a570284797832f1b8864a7f1bb", - "uuidPlanMaster": "e53c591c86334c6f92d3b1afa107bcf8", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H209 - 223, T4", - "Dosage": 60, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 14, - "HoleCollective": "209,211,213,215,217,219,221,223", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "q3", - "ConsumablesName": "384板" - }, - { - "uuid": "79d6bedcde3947c1a07c316121aa0934", - "uuidPlanMaster": "e53c591c86334c6f92d3b1afa107bcf8", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H210 - 224, T4", - "Dosage": 60, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 14, - "HoleCollective": "210,212,214,216,218,220,222,224", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "q3", - "ConsumablesName": "384板" - }, - { - "uuid": "396a7890cb654a7d8befac5a1b79cd1c", - "uuidPlanMaster": "e53c591c86334c6f92d3b1afa107bcf8", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H49 - 56, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 7, - "HoleCollective": "49,50,51,52,53,54,55,56", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-001-300", - "ConsumablesName": "300μL Tip头" - }, - { - "uuid": "2a8c80a0ace246b892f3fefb900e34ed", - "uuidPlanMaster": "e53c591c86334c6f92d3b1afa107bcf8", - "Axis": "Left", - "ActOn": "Load", - "Place": "H57 - 64, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 8, - "HoleCollective": "57,58,59,60,61,62,63,64", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-001-300", - "ConsumablesName": "300μL Tip头" - }, - { - "uuid": "f99509a009594cf9bfb7753203d7b68e", - "uuidPlanMaster": "e53c591c86334c6f92d3b1afa107bcf8", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "T2", - "Dosage": 240, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-58-10000", - "ConsumablesName": "储液槽" - }, - { - "uuid": "73783355c12849afbcf11950e64b9b9c", - "uuidPlanMaster": "e53c591c86334c6f92d3b1afa107bcf8", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H225 - 239, T4", - "Dosage": 60, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 15, - "HoleCollective": "225,227,229,231,233,235,237,239", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "q3", - "ConsumablesName": "384板" - }, - { - "uuid": "02d52c29b18d4d4f9f304d7c20fec53b", - "uuidPlanMaster": "e53c591c86334c6f92d3b1afa107bcf8", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H226 - 240, T4", - "Dosage": 60, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 15, - "HoleCollective": "226,228,230,232,234,236,238,240", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "q3", - "ConsumablesName": "384板" - }, - { - "uuid": "6f7bf49e98db45c0bee1bb082bb85bb9", - "uuidPlanMaster": "e53c591c86334c6f92d3b1afa107bcf8", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H241 - 255, T4", - "Dosage": 60, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 16, - "HoleCollective": "241,243,245,247,249,251,253,255", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "q3", - "ConsumablesName": "384板" - }, - { - "uuid": "6adfb7b45e7f4837b57ffeab714801e2", - "uuidPlanMaster": "e53c591c86334c6f92d3b1afa107bcf8", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H242 - 256, T4", - "Dosage": 60, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 16, - "HoleCollective": "242,244,246,248,250,252,254,256", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "q3", - "ConsumablesName": "384板" - }, - { - "uuid": "e678f512522d4db89a7b2348896b4d76", - "uuidPlanMaster": "e53c591c86334c6f92d3b1afa107bcf8", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H57 - 64, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 8, - "HoleCollective": "57,58,59,60,61,62,63,64", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-001-300", - "ConsumablesName": "300μL Tip头" - }, - { - "uuid": "cb098875951f451ba6f65b3d3b4c72db", - "uuidPlanMaster": "e53c591c86334c6f92d3b1afa107bcf8", - "Axis": "Left", - "ActOn": "Load", - "Place": "H65 - 72, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 9, - "HoleCollective": "65,66,67,68,69,70,71,72", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-001-300", - "ConsumablesName": "300μL Tip头" - }, - { - "uuid": "d0b46b2aafcf4810a73b586f65e8f8e3", - "uuidPlanMaster": "e53c591c86334c6f92d3b1afa107bcf8", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "T2", - "Dosage": 240, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-58-10000", - "ConsumablesName": "储液槽" - }, - { - "uuid": "47b19767b5ee4afe83233c17276afadb", - "uuidPlanMaster": "e53c591c86334c6f92d3b1afa107bcf8", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H257 - 271, T4", - "Dosage": 60, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 17, - "HoleCollective": "257,259,261,263,265,267,269,271", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "q3", - "ConsumablesName": "384板" - }, - { - "uuid": "86ff79bd0e0b4acba2899b3a9898e1dd", - "uuidPlanMaster": "e53c591c86334c6f92d3b1afa107bcf8", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H258 - 272, T4", - "Dosage": 60, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 17, - "HoleCollective": "258,260,262,264,266,268,270,272", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "q3", - "ConsumablesName": "384板" - }, - { - "uuid": "33ad319b6e60464f8b58c6b260a39116", - "uuidPlanMaster": "e53c591c86334c6f92d3b1afa107bcf8", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H273 - 287, T4", - "Dosage": 60, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 18, - "HoleCollective": "273,275,277,279,281,283,285,287", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "q3", - "ConsumablesName": "384板" - }, - { - "uuid": "03a37949c9154312993add3fc989ea47", - "uuidPlanMaster": "e53c591c86334c6f92d3b1afa107bcf8", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H274 - 288, T4", - "Dosage": 60, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 18, - "HoleCollective": "274,276,278,280,282,284,286,288", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "q3", - "ConsumablesName": "384板" - }, - { - "uuid": "9980e04709d949509ad35f0cf6a80ad3", - "uuidPlanMaster": "e53c591c86334c6f92d3b1afa107bcf8", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H65 - 72, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 9, - "HoleCollective": "65,66,67,68,69,70,71,72", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-001-300", - "ConsumablesName": "300μL Tip头" - }, - { - "uuid": "68f91c844fbe4226ac09f0ff504684bf", - "uuidPlanMaster": "e53c591c86334c6f92d3b1afa107bcf8", - "Axis": "Left", - "ActOn": "Load", - "Place": "H73 - 80, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 10, - "HoleCollective": "73,74,75,76,77,78,79,80", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-001-300", - "ConsumablesName": "300μL Tip头" - }, - { - "uuid": "115e3936dcbe469494422031c46c16f1", - "uuidPlanMaster": "e53c591c86334c6f92d3b1afa107bcf8", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "T2", - "Dosage": 240, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-58-10000", - "ConsumablesName": "储液槽" - }, - { - "uuid": "b0ceeddc4f1842f7a60d77b9c2c31eac", - "uuidPlanMaster": "e53c591c86334c6f92d3b1afa107bcf8", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H289 - 303, T4", - "Dosage": 60, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 19, - "HoleCollective": "289,291,293,295,297,299,301,303", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "q3", - "ConsumablesName": "384板" - }, - { - "uuid": "b9a5d2cb3075419c90123696947bd60d", - "uuidPlanMaster": "e53c591c86334c6f92d3b1afa107bcf8", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H290 - 304, T4", - "Dosage": 60, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 19, - "HoleCollective": "290,292,294,296,298,300,302,304", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "q3", - "ConsumablesName": "384板" - }, - { - "uuid": "846e1121519b480eaffe21dcf0dd345e", - "uuidPlanMaster": "e53c591c86334c6f92d3b1afa107bcf8", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H305 - 319, T4", - "Dosage": 60, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 20, - "HoleCollective": "305,307,309,311,313,315,317,319", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "q3", - "ConsumablesName": "384板" - }, - { - "uuid": "243d05147746468bba872c0d61ed2792", - "uuidPlanMaster": "e53c591c86334c6f92d3b1afa107bcf8", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H306 - 320, T4", - "Dosage": 60, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 20, - "HoleCollective": "306,308,310,312,314,316,318,320", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "q3", - "ConsumablesName": "384板" - }, - { - "uuid": "c8deb23d1d77475f85428849da741cd7", - "uuidPlanMaster": "e53c591c86334c6f92d3b1afa107bcf8", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H73 - 80, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 10, - "HoleCollective": "73,74,75,76,77,78,79,80", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-001-300", - "ConsumablesName": "300μL Tip头" - }, - { - "uuid": "1ec9cab841434c21b95da55881d8bb70", - "uuidPlanMaster": "e53c591c86334c6f92d3b1afa107bcf8", - "Axis": "Left", - "ActOn": "Load", - "Place": "H81 - 88, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 11, - "HoleCollective": "81,82,83,84,85,86,87,88", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-001-300", - "ConsumablesName": "300μL Tip头" - }, - { - "uuid": "5843a2fccd234739b28b1fde122717a0", - "uuidPlanMaster": "e53c591c86334c6f92d3b1afa107bcf8", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "T2", - "Dosage": 240, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-58-10000", - "ConsumablesName": "储液槽" - }, - { - "uuid": "bbfef4db970e4acb9136a3e861b22247", - "uuidPlanMaster": "e53c591c86334c6f92d3b1afa107bcf8", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H321 - 335, T4", - "Dosage": 60, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 21, - "HoleCollective": "321,323,325,327,329,331,333,335", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "q3", - "ConsumablesName": "384板" - }, - { - "uuid": "bfaeab30046948328dcf3f1c4cc051aa", - "uuidPlanMaster": "e53c591c86334c6f92d3b1afa107bcf8", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H322 - 336, T4", - "Dosage": 60, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 21, - "HoleCollective": "322,324,326,328,330,332,334,336", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "q3", - "ConsumablesName": "384板" - }, - { - "uuid": "1f2db6843f4740b9966535ff4ad81854", - "uuidPlanMaster": "e53c591c86334c6f92d3b1afa107bcf8", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H337 - 351, T4", - "Dosage": 60, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 22, - "HoleCollective": "337,339,341,343,345,347,349,351", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "q3", - "ConsumablesName": "384板" - }, - { - "uuid": "f511f1839e7f4007bfee4682d9bfe950", - "uuidPlanMaster": "e53c591c86334c6f92d3b1afa107bcf8", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H338 - 352, T4", - "Dosage": 60, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 22, - "HoleCollective": "338,340,342,344,346,348,350,352", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "q3", - "ConsumablesName": "384板" - }, - { - "uuid": "87ee9b2a63204675b14f96d68badd808", - "uuidPlanMaster": "e53c591c86334c6f92d3b1afa107bcf8", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H81 - 88, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 11, - "HoleCollective": "81,82,83,84,85,86,87,88", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-001-300", - "ConsumablesName": "300μL Tip头" - }, - { - "uuid": "0faca08af69e48ef92967661331754f0", - "uuidPlanMaster": "e53c591c86334c6f92d3b1afa107bcf8", - "Axis": "Left", - "ActOn": "Load", - "Place": "H89 - 96, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 12, - "HoleCollective": "89,90,91,92,93,94,95,96", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-001-300", - "ConsumablesName": "300μL Tip头" - }, - { - "uuid": "8de9344131a84a69bafbfd8812a9d877", - "uuidPlanMaster": "e53c591c86334c6f92d3b1afa107bcf8", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "T2", - "Dosage": 240, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-58-10000", - "ConsumablesName": "储液槽" - }, - { - "uuid": "33052199610d401a9b227e47142b9646", - "uuidPlanMaster": "e53c591c86334c6f92d3b1afa107bcf8", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H353 - 367, T4", - "Dosage": 60, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 23, - "HoleCollective": "353,355,357,359,361,363,365,367", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "q3", - "ConsumablesName": "384板" - }, - { - "uuid": "50ea5f5ead8340f58709c715826306fb", - "uuidPlanMaster": "e53c591c86334c6f92d3b1afa107bcf8", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H354 - 368, T4", - "Dosage": 60, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 23, - "HoleCollective": "354,356,358,360,362,364,366,368", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "q3", - "ConsumablesName": "384板" - }, - { - "uuid": "2c578ad0799f4ac4a8ee8e772e283eb5", - "uuidPlanMaster": "e53c591c86334c6f92d3b1afa107bcf8", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H369 - 383, T4", - "Dosage": 60, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 24, - "HoleCollective": "369,371,373,375,377,379,381,383", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "q3", - "ConsumablesName": "384板" - }, - { - "uuid": "0aa045f3d3004de086f4954020fe10ed", - "uuidPlanMaster": "e53c591c86334c6f92d3b1afa107bcf8", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H370 - 384, T4", - "Dosage": 60, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 24, - "HoleCollective": "370,372,374,376,378,380,382,384", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "q3", - "ConsumablesName": "384板" - }, - { - "uuid": "5bce3555e692498281a97e51978eaf24", - "uuidPlanMaster": "e53c591c86334c6f92d3b1afa107bcf8", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H89 - 96, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 12, - "HoleCollective": "89,90,91,92,93,94,95,96", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-001-300", - "ConsumablesName": "300μL Tip头" - }, - { - "uuid": "c5dea3b7348e4ad1b2efe13c6caff1f7", - "uuidPlanMaster": "1d26d1ab45c6431990ba0e00cc1f78d2", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1 - 8, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-001-300", - "ConsumablesName": "300μL Tip头" - }, - { - "uuid": "aca8bc5d04d34105ad052185385c5a2a", - "uuidPlanMaster": "1d26d1ab45c6431990ba0e00cc1f78d2", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "T2", - "Dosage": 50, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-58-10000", - "ConsumablesName": "储液槽" - }, - { - "uuid": "3d04a01ff0984bb39ee575b21dfcf5bf", - "uuidPlanMaster": "1d26d1ab45c6431990ba0e00cc1f78d2", - "Axis": "Left", - "ActOn": "Blending", - "Place": "H1 - 8, T4", - "Dosage": 50, - "AssistA": " 加样(50ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 10, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "q2", - "ConsumablesName": "96深孔板" - }, - { - "uuid": "4cc8cb874a7b40069abe1798e90ffb7b", - "uuidPlanMaster": "1d26d1ab45c6431990ba0e00cc1f78d2", - "Axis": "Left", - "ActOn": "Blending", - "Place": "H9 - 16, T4", - "Dosage": 50, - "AssistA": " 加样(50ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 2, - "HoleCollective": "9,10,11,12,13,14,15,16", - "MixCount": 10, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "q2", - "ConsumablesName": "96深孔板" - }, - { - "uuid": "839de052b6b4455b8190d4acaa51012b", - "uuidPlanMaster": "1d26d1ab45c6431990ba0e00cc1f78d2", - "Axis": "Left", - "ActOn": "Blending", - "Place": "H17 - 24, T4", - "Dosage": 50, - "AssistA": " 加样(50ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "17,18,19,20,21,22,23,24", - "MixCount": 10, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "q2", - "ConsumablesName": "96深孔板" - }, - { - "uuid": "2f69140ef0624fa3bfd0e8fa4f04c4de", - "uuidPlanMaster": "1d26d1ab45c6431990ba0e00cc1f78d2", - "Axis": "Left", - "ActOn": "Blending", - "Place": "H25 - 32, T4", - "Dosage": 50, - "AssistA": " 加样(50ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 4, - "HoleCollective": "25,26,27,28,29,30,31,32", - "MixCount": 10, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "q2", - "ConsumablesName": "96深孔板" - }, - { - "uuid": "945357e1966a4057bee8dc98f8dc75cf", - "uuidPlanMaster": "1d26d1ab45c6431990ba0e00cc1f78d2", - "Axis": "Left", - "ActOn": "Blending", - "Place": "H33 - 40, T4", - "Dosage": 50, - "AssistA": " 加样(50ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 5, - "HoleCollective": "33,34,35,36,37,38,39,40", - "MixCount": 10, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "q2", - "ConsumablesName": "96深孔板" - }, - { - "uuid": "17449f7034ad4c7ab0ba7e1cf3f9a73a", - "uuidPlanMaster": "1d26d1ab45c6431990ba0e00cc1f78d2", - "Axis": "Left", - "ActOn": "Blending", - "Place": "H41 - 48, T4", - "Dosage": 50, - "AssistA": " 加样(50ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 6, - "HoleCollective": "41,42,43,44,45,46,47,48", - "MixCount": 10, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "q2", - "ConsumablesName": "96深孔板" - }, - { - "uuid": "a7091a15f5ee4c738e2072a3794d3c90", - "uuidPlanMaster": "1d26d1ab45c6431990ba0e00cc1f78d2", - "Axis": "Left", - "ActOn": "Blending", - "Place": "H49 - 56, T4", - "Dosage": 50, - "AssistA": " 加样(50ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 7, - "HoleCollective": "49,50,51,52,53,54,55,56", - "MixCount": 10, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "q2", - "ConsumablesName": "96深孔板" - }, - { - "uuid": "aa262f3eec1e4240a321b0d85712bd7a", - "uuidPlanMaster": "1d26d1ab45c6431990ba0e00cc1f78d2", - "Axis": "Left", - "ActOn": "Blending", - "Place": "H57 - 64, T4", - "Dosage": 50, - "AssistA": " 加样(50ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 8, - "HoleCollective": "57,58,59,60,61,62,63,64", - "MixCount": 10, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "q2", - "ConsumablesName": "96深孔板" - }, - { - "uuid": "f063ad3a8e684019855d058097832238", - "uuidPlanMaster": "1d26d1ab45c6431990ba0e00cc1f78d2", - "Axis": "Left", - "ActOn": "Blending", - "Place": "H65 - 72, T4", - "Dosage": 50, - "AssistA": " 加样(50ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 9, - "HoleCollective": "65,66,67,68,69,70,71,72", - "MixCount": 10, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "q2", - "ConsumablesName": "96深孔板" - }, - { - "uuid": "69aedcee536748dfa88dbb71cc43100e", - "uuidPlanMaster": "1d26d1ab45c6431990ba0e00cc1f78d2", - "Axis": "Left", - "ActOn": "Blending", - "Place": "H73 - 80, T4", - "Dosage": 50, - "AssistA": " 加样(50ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 10, - "HoleCollective": "73,74,75,76,77,78,79,80", - "MixCount": 10, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "q2", - "ConsumablesName": "96深孔板" - }, - { - "uuid": "b31fe66b9e42435398bf272db9253ef1", - "uuidPlanMaster": "1d26d1ab45c6431990ba0e00cc1f78d2", - "Axis": "Left", - "ActOn": "Blending", - "Place": "H81 - 88, T4", - "Dosage": 50, - "AssistA": " 加样(50ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 11, - "HoleCollective": "81,82,83,84,85,86,87,88", - "MixCount": 10, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "q2", - "ConsumablesName": "96深孔板" - }, - { - "uuid": "f4df57eca7874110a4ba80c825808a17", - "uuidPlanMaster": "1d26d1ab45c6431990ba0e00cc1f78d2", - "Axis": "Left", - "ActOn": "Blending", - "Place": "H89 - 96, T4", - "Dosage": 50, - "AssistA": " 加样(50ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 12, - "HoleCollective": "89,90,91,92,93,94,95,96", - "MixCount": 10, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "q2", - "ConsumablesName": "96深孔板" - }, - { - "uuid": "8b22fefd11984093988e8c2d91c2da02", - "uuidPlanMaster": "1d26d1ab45c6431990ba0e00cc1f78d2", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "T5", - "Dosage": 50, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-58-10000", - "ConsumablesName": "储液槽" - }, - { - "uuid": "bcb450b62e344803bb2bf57a1e362926", - "uuidPlanMaster": "1d26d1ab45c6431990ba0e00cc1f78d2", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H1 - 8, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-001-300", - "ConsumablesName": "300μL Tip头" - }, - { - "uuid": "e17c3523c02d4891b87ddaaf251a626a", - "uuidPlanMaster": "7a0383b4fbb543339723513228365451", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1 - 8, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-001-300", - "ConsumablesName": "300μL Tip头" - }, - { - "uuid": "a9499b83214240dabcb78f150f094da0", - "uuidPlanMaster": "7a0383b4fbb543339723513228365451", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "T2", - "Dosage": 300, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-58-10000", - "ConsumablesName": "储液槽" - }, - { - "uuid": "95c7b46cdd5f48daac6f0855d3900f09", - "uuidPlanMaster": "7a0383b4fbb543339723513228365451", - "Axis": "Left", - "ActOn": "Blending", - "Place": "H1 - 8, T4", - "Dosage": 300, - "AssistA": " 加样(300ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 10, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "q2", - "ConsumablesName": "96深孔板" - }, - { - "uuid": "1ef55f9352934ce0a306e98a6bec24f1", - "uuidPlanMaster": "7a0383b4fbb543339723513228365451", - "Axis": "Left", - "ActOn": "Blending", - "Place": "H9 - 16, T4", - "Dosage": 300, - "AssistA": " 加样(300ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 2, - "HoleCollective": "9,10,11,12,13,14,15,16", - "MixCount": 10, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "q2", - "ConsumablesName": "96深孔板" - }, - { - "uuid": "c604ed1b4d2047dcb5d7f2109f0f5e17", - "uuidPlanMaster": "7a0383b4fbb543339723513228365451", - "Axis": "Left", - "ActOn": "Blending", - "Place": "H17 - 24, T4", - "Dosage": 300, - "AssistA": " 加样(300ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "17,18,19,20,21,22,23,24", - "MixCount": 10, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "q2", - "ConsumablesName": "96深孔板" - }, - { - "uuid": "82b569345363490f946e1661f3582264", - "uuidPlanMaster": "7a0383b4fbb543339723513228365451", - "Axis": "Left", - "ActOn": "Blending", - "Place": "H25 - 32, T4", - "Dosage": 300, - "AssistA": " 加样(300ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 4, - "HoleCollective": "25,26,27,28,29,30,31,32", - "MixCount": 10, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "q2", - "ConsumablesName": "96深孔板" - }, - { - "uuid": "611fa52a5c2d48f687dd34c7baff85a6", - "uuidPlanMaster": "7a0383b4fbb543339723513228365451", - "Axis": "Left", - "ActOn": "Blending", - "Place": "H33 - 40, T4", - "Dosage": 300, - "AssistA": " 加样(300ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 5, - "HoleCollective": "33,34,35,36,37,38,39,40", - "MixCount": 10, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "q2", - "ConsumablesName": "96深孔板" - }, - { - "uuid": "211680236dcb4090969e4f81b7f5bec5", - "uuidPlanMaster": "7a0383b4fbb543339723513228365451", - "Axis": "Left", - "ActOn": "Blending", - "Place": "H41 - 48, T4", - "Dosage": 300, - "AssistA": " 加样(300ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 6, - "HoleCollective": "41,42,43,44,45,46,47,48", - "MixCount": 10, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "q2", - "ConsumablesName": "96深孔板" - }, - { - "uuid": "dfdff44cb91b45f0a1dbc20ada8b96e5", - "uuidPlanMaster": "7a0383b4fbb543339723513228365451", - "Axis": "Left", - "ActOn": "Blending", - "Place": "H49 - 56, T4", - "Dosage": 300, - "AssistA": " 加样(300ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 7, - "HoleCollective": "49,50,51,52,53,54,55,56", - "MixCount": 10, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "q2", - "ConsumablesName": "96深孔板" - }, - { - "uuid": "0c585979e0574a8ba4f87974dbd36176", - "uuidPlanMaster": "7a0383b4fbb543339723513228365451", - "Axis": "Left", - "ActOn": "Blending", - "Place": "H57 - 64, T4", - "Dosage": 300, - "AssistA": " 加样(300ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 8, - "HoleCollective": "57,58,59,60,61,62,63,64", - "MixCount": 10, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "q2", - "ConsumablesName": "96深孔板" - }, - { - "uuid": "5a9aad7522144e0ba5c67773f8ca9a79", - "uuidPlanMaster": "7a0383b4fbb543339723513228365451", - "Axis": "Left", - "ActOn": "Blending", - "Place": "H65 - 72, T4", - "Dosage": 300, - "AssistA": " 加样(300ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 9, - "HoleCollective": "65,66,67,68,69,70,71,72", - "MixCount": 10, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "q2", - "ConsumablesName": "96深孔板" - }, - { - "uuid": "c76ef75cebb44cb8897b415a19503668", - "uuidPlanMaster": "7a0383b4fbb543339723513228365451", - "Axis": "Left", - "ActOn": "Blending", - "Place": "H73 - 80, T4", - "Dosage": 300, - "AssistA": " 加样(300ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 10, - "HoleCollective": "73,74,75,76,77,78,79,80", - "MixCount": 10, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "q2", - "ConsumablesName": "96深孔板" - }, - { - "uuid": "a2e576f8a40f4e759ca4f3ae1b637637", - "uuidPlanMaster": "7a0383b4fbb543339723513228365451", - "Axis": "Left", - "ActOn": "Blending", - "Place": "H81 - 88, T4", - "Dosage": 300, - "AssistA": " 加样(300ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 11, - "HoleCollective": "81,82,83,84,85,86,87,88", - "MixCount": 10, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "q2", - "ConsumablesName": "96深孔板" - }, - { - "uuid": "547ec218fd0c4f9daa15c68f835fcba8", - "uuidPlanMaster": "7a0383b4fbb543339723513228365451", - "Axis": "Left", - "ActOn": "Blending", - "Place": "H89 - 96, T4", - "Dosage": 300, - "AssistA": " 加样(300ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 12, - "HoleCollective": "89,90,91,92,93,94,95,96", - "MixCount": 10, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "q2", - "ConsumablesName": "96深孔板" - }, - { - "uuid": "d750e0e23df5473bba416ab3316d7421", - "uuidPlanMaster": "7a0383b4fbb543339723513228365451", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "T5", - "Dosage": 300, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-58-10000", - "ConsumablesName": "储液槽" - }, - { - "uuid": "3d4f32451993482f9cb981a9d38b628f", - "uuidPlanMaster": "7a0383b4fbb543339723513228365451", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H1 - 8, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-001-300", - "ConsumablesName": "300μL Tip头" - }, - { - "uuid": "416669e71bf744f0a443395ce829cb21", - "uuidPlanMaster": "69d4882f0f024fb5a3b91010f149ff89", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1 - 8, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "6a4d0cc0f8564e2aa68eeab0475b48ac", - "uuidPlanMaster": "69d4882f0f024fb5a3b91010f149ff89", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "T2", - "Dosage": 300, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "9f01027d086b4415b3f4dbe44dd70fe7", - "uuidPlanMaster": "69d4882f0f024fb5a3b91010f149ff89", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1 - 8, T4", - "Dosage": 300, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "7fadb80034ec4a14b479112a8b271b65", - "uuidPlanMaster": "69d4882f0f024fb5a3b91010f149ff89", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H1 - 8, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "55605af9002b4e2d9d7adfbd49783665", - "uuidPlanMaster": "69d4882f0f024fb5a3b91010f149ff89", - "Axis": "Left", - "ActOn": "Load", - "Place": "H9 - 16, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 2, - "HoleCollective": "9,10,11,12,13,14,15,16", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "e656e9e63dd2464c822d2241d971604d", - "uuidPlanMaster": "69d4882f0f024fb5a3b91010f149ff89", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "T2", - "Dosage": 300, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "0bfdf2370ca64df68a53ff2cc456c739", - "uuidPlanMaster": "69d4882f0f024fb5a3b91010f149ff89", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H9 - 16, T4", - "Dosage": 300, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 2, - "HoleCollective": "9,10,11,12,13,14,15,16", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "0101788fff994a319161ffebfcebffc4", - "uuidPlanMaster": "69d4882f0f024fb5a3b91010f149ff89", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H9 - 16, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 2, - "HoleCollective": "9,10,11,12,13,14,15,16", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "8a1adc36f60244c69762c75103649dd7", - "uuidPlanMaster": "69d4882f0f024fb5a3b91010f149ff89", - "Axis": "Left", - "ActOn": "Load", - "Place": "H17 - 24, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "17,18,19,20,21,22,23,24", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "65242ad06a9c4b649d45c6b24f9d17f5", - "uuidPlanMaster": "69d4882f0f024fb5a3b91010f149ff89", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "T2", - "Dosage": 300, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "d1b4f3ee76004ac9b9184feed4bc97d2", - "uuidPlanMaster": "69d4882f0f024fb5a3b91010f149ff89", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H17 - 24, T4", - "Dosage": 300, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "17,18,19,20,21,22,23,24", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "cb10c0722e584d9ab3b15e5711b43168", - "uuidPlanMaster": "69d4882f0f024fb5a3b91010f149ff89", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H17 - 24, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "17,18,19,20,21,22,23,24", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "121867770f7f46668b36867d0fbfbc4c", - "uuidPlanMaster": "69d4882f0f024fb5a3b91010f149ff89", - "Axis": "Left", - "ActOn": "Load", - "Place": "H25 - 32, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 4, - "HoleCollective": "25,26,27,28,29,30,31,32", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "6749d85b42be432f9bac44f09f52e407", - "uuidPlanMaster": "69d4882f0f024fb5a3b91010f149ff89", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "T2", - "Dosage": 300, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "0a9c3f10ec97451db2229029cc0a67ce", - "uuidPlanMaster": "69d4882f0f024fb5a3b91010f149ff89", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H25 - 32, T4", - "Dosage": 300, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 4, - "HoleCollective": "25,26,27,28,29,30,31,32", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "3f39c292e1cf45d0ac2db6c59ba9cdce", - "uuidPlanMaster": "69d4882f0f024fb5a3b91010f149ff89", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H25 - 32, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 4, - "HoleCollective": "25,26,27,28,29,30,31,32", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "5019e5e427024a3e937a2f4096fca5b0", - "uuidPlanMaster": "69d4882f0f024fb5a3b91010f149ff89", - "Axis": "Left", - "ActOn": "Load", - "Place": "H33 - 40, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 5, - "HoleCollective": "33,34,35,36,37,38,39,40", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "f53d1c6e9f534283815c0982fc1d6e44", - "uuidPlanMaster": "69d4882f0f024fb5a3b91010f149ff89", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "T2", - "Dosage": 300, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "805a06e102204b958b086cbd7f530034", - "uuidPlanMaster": "69d4882f0f024fb5a3b91010f149ff89", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H33 - 40, T4", - "Dosage": 300, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 5, - "HoleCollective": "33,34,35,36,37,38,39,40", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "22286e17dccb4388a9adb192f96d1d7b", - "uuidPlanMaster": "69d4882f0f024fb5a3b91010f149ff89", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H33 - 40, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 5, - "HoleCollective": "33,34,35,36,37,38,39,40", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "4905ab594d1142f69bec1fe64ecbbe16", - "uuidPlanMaster": "69d4882f0f024fb5a3b91010f149ff89", - "Axis": "Left", - "ActOn": "Load", - "Place": "H41 - 48, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 6, - "HoleCollective": "41,42,43,44,45,46,47,48", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "5a411c2fb1a64016b883daedad7c3413", - "uuidPlanMaster": "69d4882f0f024fb5a3b91010f149ff89", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "T2", - "Dosage": 300, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "21085b0de976470ea49603ecfc82c66f", - "uuidPlanMaster": "69d4882f0f024fb5a3b91010f149ff89", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H41 - 48, T4", - "Dosage": 300, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 6, - "HoleCollective": "41,42,43,44,45,46,47,48", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "4df2fa72aeea4acc81516bbeaeae69bf", - "uuidPlanMaster": "69d4882f0f024fb5a3b91010f149ff89", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H41 - 48, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 6, - "HoleCollective": "41,42,43,44,45,46,47,48", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "6790745c1223426d81b748797644d572", - "uuidPlanMaster": "69d4882f0f024fb5a3b91010f149ff89", - "Axis": "Left", - "ActOn": "Load", - "Place": "H49 - 56, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 7, - "HoleCollective": "49,50,51,52,53,54,55,56", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "b128ce68496443779d9809a65fafba59", - "uuidPlanMaster": "69d4882f0f024fb5a3b91010f149ff89", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "T2", - "Dosage": 300, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "286f29ffcf434b4095d8392b94a483b7", - "uuidPlanMaster": "69d4882f0f024fb5a3b91010f149ff89", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H49 - 56, T4", - "Dosage": 300, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 7, - "HoleCollective": "49,50,51,52,53,54,55,56", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "7fa5f520262c48489c7522ae4a14e4ed", - "uuidPlanMaster": "69d4882f0f024fb5a3b91010f149ff89", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H49 - 56, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 7, - "HoleCollective": "49,50,51,52,53,54,55,56", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "900cfb1faf67456b85da9a2693afe89a", - "uuidPlanMaster": "69d4882f0f024fb5a3b91010f149ff89", - "Axis": "Left", - "ActOn": "Load", - "Place": "H57 - 64, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 8, - "HoleCollective": "57,58,59,60,61,62,63,64", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "5409261de77845b8af87b24760f5372e", - "uuidPlanMaster": "69d4882f0f024fb5a3b91010f149ff89", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "T2", - "Dosage": 300, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "998c61672f4b4d86849668c328fa84d0", - "uuidPlanMaster": "69d4882f0f024fb5a3b91010f149ff89", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H57 - 64, T4", - "Dosage": 300, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 8, - "HoleCollective": "57,58,59,60,61,62,63,64", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "13c735038ad74b50a1144bd01b28a7e4", - "uuidPlanMaster": "69d4882f0f024fb5a3b91010f149ff89", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H57 - 64, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 8, - "HoleCollective": "57,58,59,60,61,62,63,64", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "c99c601badf941f593b8aa7e4d62a491", - "uuidPlanMaster": "69d4882f0f024fb5a3b91010f149ff89", - "Axis": "Left", - "ActOn": "Load", - "Place": "H65 - 72, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 9, - "HoleCollective": "65,66,67,68,69,70,71,72", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "21b505ed29e24f3481c9aff411d857d8", - "uuidPlanMaster": "69d4882f0f024fb5a3b91010f149ff89", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "T2", - "Dosage": 300, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "abc12c3f3cae4fd4804c92eccfa0fc6b", - "uuidPlanMaster": "69d4882f0f024fb5a3b91010f149ff89", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H65 - 72, T4", - "Dosage": 300, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 9, - "HoleCollective": "65,66,67,68,69,70,71,72", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "ee970ee5438d4c4aa23e43e50d52022c", - "uuidPlanMaster": "69d4882f0f024fb5a3b91010f149ff89", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H65 - 72, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 9, - "HoleCollective": "65,66,67,68,69,70,71,72", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "c263e14d9af54fd1859d2a4a58d20f48", - "uuidPlanMaster": "69d4882f0f024fb5a3b91010f149ff89", - "Axis": "Left", - "ActOn": "Load", - "Place": "H73 - 80, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 10, - "HoleCollective": "73,74,75,76,77,78,79,80", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "31fc3ea2f1d44d01b6e6adafba2017da", - "uuidPlanMaster": "69d4882f0f024fb5a3b91010f149ff89", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "T2", - "Dosage": 300, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "7109a6a479204275948618a69be4b38f", - "uuidPlanMaster": "69d4882f0f024fb5a3b91010f149ff89", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H73 - 80, T4", - "Dosage": 300, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 10, - "HoleCollective": "73,74,75,76,77,78,79,80", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "8378f4cf7e934b10914c9dd70d11c68f", - "uuidPlanMaster": "69d4882f0f024fb5a3b91010f149ff89", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H73 - 80, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 10, - "HoleCollective": "73,74,75,76,77,78,79,80", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "b42ae1123ac34ee195d7fd3da2421db2", - "uuidPlanMaster": "69d4882f0f024fb5a3b91010f149ff89", - "Axis": "Left", - "ActOn": "Load", - "Place": "H81 - 88, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 11, - "HoleCollective": "81,82,83,84,85,86,87,88", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "9f6c0027fa3d4e35845a111cb45402b2", - "uuidPlanMaster": "69d4882f0f024fb5a3b91010f149ff89", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "T2", - "Dosage": 300, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "89ad7f943c3d47829815d37c6ffb6e19", - "uuidPlanMaster": "69d4882f0f024fb5a3b91010f149ff89", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H81 - 88, T4", - "Dosage": 300, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 11, - "HoleCollective": "81,82,83,84,85,86,87,88", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "d1f5488d2d664554aafe9f6ddbedb779", - "uuidPlanMaster": "69d4882f0f024fb5a3b91010f149ff89", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H81 - 88, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 11, - "HoleCollective": "81,82,83,84,85,86,87,88", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "4934093e60d14e40b3b9910f8a158a96", - "uuidPlanMaster": "69d4882f0f024fb5a3b91010f149ff89", - "Axis": "Left", - "ActOn": "Load", - "Place": "H89 - 96, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 12, - "HoleCollective": "89,90,91,92,93,94,95,96", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "d12dbd6cd50f43939cc258eaa5dacd6d", - "uuidPlanMaster": "69d4882f0f024fb5a3b91010f149ff89", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "T2", - "Dosage": 300, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "26aaf3fbe88440978073e43a60028690", - "uuidPlanMaster": "69d4882f0f024fb5a3b91010f149ff89", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H89 - 96, T4", - "Dosage": 300, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 12, - "HoleCollective": "89,90,91,92,93,94,95,96", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "c87fbc3e627e471aa39c1e26e579ce32", - "uuidPlanMaster": "69d4882f0f024fb5a3b91010f149ff89", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H89 - 96, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 12, - "HoleCollective": "89,90,91,92,93,94,95,96", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "3ae26657a9f8443e9949c298c5ee8ac4", - "uuidPlanMaster": "3603f89f4e0945f68353a33e8017ba6e", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1 - 8, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "238bb9e047d34fcdb790e8ce738951a0", - "uuidPlanMaster": "3603f89f4e0945f68353a33e8017ba6e", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "T2", - "Dosage": 35, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "cdd0e6d93a7e44a2b28c7558e02eb0bc", - "uuidPlanMaster": "3603f89f4e0945f68353a33e8017ba6e", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1 - 8, T4", - "Dosage": 35, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "daa228c1a3e1440eb582df5f9eccdd22", - "uuidPlanMaster": "3603f89f4e0945f68353a33e8017ba6e", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T3", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "58f061b8a8734e41974d5db03c940c38", - "uuidPlanMaster": "3603f89f4e0945f68353a33e8017ba6e", - "Axis": "Left", - "ActOn": "Load", - "Place": "H9 - 16, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 2, - "HoleCollective": "9,10,11,12,13,14,15,16", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "828ad9110754492b81930cc6cabef78e", - "uuidPlanMaster": "3603f89f4e0945f68353a33e8017ba6e", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "T2", - "Dosage": 35, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "d77cfe16fa8b4cf3a30fcc98d4924d75", - "uuidPlanMaster": "3603f89f4e0945f68353a33e8017ba6e", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H9 - 16, T4", - "Dosage": 35, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 2, - "HoleCollective": "9,10,11,12,13,14,15,16", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "7fb5c16526ba4945bebfac859ddb1c5f", - "uuidPlanMaster": "3603f89f4e0945f68353a33e8017ba6e", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T3", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "f1b496eb9bc4457bad793cbc858c2860", - "uuidPlanMaster": "3603f89f4e0945f68353a33e8017ba6e", - "Axis": "Left", - "ActOn": "Load", - "Place": "H17 - 24, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "17,18,19,20,21,22,23,24", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "23afc1e61d5847279317b067c050f09f", - "uuidPlanMaster": "3603f89f4e0945f68353a33e8017ba6e", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "T2", - "Dosage": 35, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "713cf1fc687c4f7586c328d87481c3a6", - "uuidPlanMaster": "3603f89f4e0945f68353a33e8017ba6e", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H17 - 24, T4", - "Dosage": 35, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "17,18,19,20,21,22,23,24", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "8dee7e821bb9443ebe46cba4156d09a4", - "uuidPlanMaster": "3603f89f4e0945f68353a33e8017ba6e", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T3", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "169f64d0c3b74c9b8ba8e58eb7abb4ac", - "uuidPlanMaster": "3603f89f4e0945f68353a33e8017ba6e", - "Axis": "Left", - "ActOn": "Load", - "Place": "H25 - 32, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 4, - "HoleCollective": "25,26,27,28,29,30,31,32", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "93d50c5a2d644a50a51371ea15497d32", - "uuidPlanMaster": "3603f89f4e0945f68353a33e8017ba6e", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "T2", - "Dosage": 35, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "b067a44fc7f7401f9f88817c458358d8", - "uuidPlanMaster": "3603f89f4e0945f68353a33e8017ba6e", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H25 - 32, T4", - "Dosage": 35, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 4, - "HoleCollective": "25,26,27,28,29,30,31,32", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "a752604c5d0e4ce59907d17b681095b4", - "uuidPlanMaster": "3603f89f4e0945f68353a33e8017ba6e", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T3", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "31eaf208091942cdbb17931373b7e0e3", - "uuidPlanMaster": "3603f89f4e0945f68353a33e8017ba6e", - "Axis": "Left", - "ActOn": "Load", - "Place": "H33 - 40, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 5, - "HoleCollective": "33,34,35,36,37,38,39,40", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "9c65e3dde76f4f44974e3e2751784a2e", - "uuidPlanMaster": "3603f89f4e0945f68353a33e8017ba6e", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "T2", - "Dosage": 35, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "da00b713421c4be4b30f922920dabb2a", - "uuidPlanMaster": "3603f89f4e0945f68353a33e8017ba6e", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H33 - 40, T4", - "Dosage": 35, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 5, - "HoleCollective": "33,34,35,36,37,38,39,40", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "b6b3a009127649d887369b2a7a90b660", - "uuidPlanMaster": "3603f89f4e0945f68353a33e8017ba6e", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T3", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "20912775cb094fef99650944c21a01e1", - "uuidPlanMaster": "3603f89f4e0945f68353a33e8017ba6e", - "Axis": "Left", - "ActOn": "Load", - "Place": "H41 - 48, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 6, - "HoleCollective": "41,42,43,44,45,46,47,48", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "ab979d4f6a234d26886a86645d6a6d5b", - "uuidPlanMaster": "3603f89f4e0945f68353a33e8017ba6e", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "T2", - "Dosage": 35, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "c4cc4b80c64c426abd37fa57df19349e", - "uuidPlanMaster": "3603f89f4e0945f68353a33e8017ba6e", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H41 - 48, T4", - "Dosage": 35, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 6, - "HoleCollective": "41,42,43,44,45,46,47,48", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "9a281756ac9f4a6f97cc31553f2fa054", - "uuidPlanMaster": "3603f89f4e0945f68353a33e8017ba6e", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T3", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "0e9aaa85ae0c4ff79f9f3fb80e0b7706", - "uuidPlanMaster": "3603f89f4e0945f68353a33e8017ba6e", - "Axis": "Left", - "ActOn": "Load", - "Place": "H49 - 56, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 7, - "HoleCollective": "49,50,51,52,53,54,55,56", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "3eea8c657ec84d9ca16d29ab2b6441c6", - "uuidPlanMaster": "3603f89f4e0945f68353a33e8017ba6e", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "T2", - "Dosage": 35, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "4de50bc7f21c49a3beb016fe9165fba8", - "uuidPlanMaster": "3603f89f4e0945f68353a33e8017ba6e", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H49 - 56, T4", - "Dosage": 35, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 7, - "HoleCollective": "49,50,51,52,53,54,55,56", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "529b7280f0d2407db3b3184dd5de30b3", - "uuidPlanMaster": "3603f89f4e0945f68353a33e8017ba6e", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T3", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "d2638d30506c4929a7015d6fe4dc1d07", - "uuidPlanMaster": "3603f89f4e0945f68353a33e8017ba6e", - "Axis": "Left", - "ActOn": "Load", - "Place": "H57 - 64, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 8, - "HoleCollective": "57,58,59,60,61,62,63,64", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "51a729ad70174f82afa9cc7a4c3b742f", - "uuidPlanMaster": "3603f89f4e0945f68353a33e8017ba6e", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "T2", - "Dosage": 35, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "e60e834aefbb4a6da65635dab26d44ad", - "uuidPlanMaster": "3603f89f4e0945f68353a33e8017ba6e", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H57 - 64, T4", - "Dosage": 35, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 8, - "HoleCollective": "57,58,59,60,61,62,63,64", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "6b9ef916bbd2459a905a17d0ab87d759", - "uuidPlanMaster": "3603f89f4e0945f68353a33e8017ba6e", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T3", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "8c62d956937a491a9383a106b8a42539", - "uuidPlanMaster": "3603f89f4e0945f68353a33e8017ba6e", - "Axis": "Left", - "ActOn": "Load", - "Place": "H65 - 72, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 9, - "HoleCollective": "65,66,67,68,69,70,71,72", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "2ee898d4277c4fbf85a65c9db49ea2e1", - "uuidPlanMaster": "3603f89f4e0945f68353a33e8017ba6e", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "T2", - "Dosage": 35, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "7f66f40c297e43f09659f542aadbd8fd", - "uuidPlanMaster": "3603f89f4e0945f68353a33e8017ba6e", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H65 - 72, T4", - "Dosage": 35, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 9, - "HoleCollective": "65,66,67,68,69,70,71,72", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "fd41e724c3a04954a358c59203f66262", - "uuidPlanMaster": "3603f89f4e0945f68353a33e8017ba6e", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T3", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "d8cd7e3077c74b5c8923d2312f956e2c", - "uuidPlanMaster": "3603f89f4e0945f68353a33e8017ba6e", - "Axis": "Left", - "ActOn": "Load", - "Place": "H73 - 80, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 10, - "HoleCollective": "73,74,75,76,77,78,79,80", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "08b3c54e41294701875d665606560611", - "uuidPlanMaster": "3603f89f4e0945f68353a33e8017ba6e", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "T2", - "Dosage": 35, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "ad9d526432cf44a3b2d39ecdce6f8a08", - "uuidPlanMaster": "3603f89f4e0945f68353a33e8017ba6e", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H73 - 80, T4", - "Dosage": 35, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 10, - "HoleCollective": "73,74,75,76,77,78,79,80", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "31985b0a0e5c46cb94bec5f851a20f00", - "uuidPlanMaster": "3603f89f4e0945f68353a33e8017ba6e", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T3", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "7fedf64afd294c11bce8b3d3f42bebef", - "uuidPlanMaster": "3603f89f4e0945f68353a33e8017ba6e", - "Axis": "Left", - "ActOn": "Load", - "Place": "H81 - 88, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 11, - "HoleCollective": "81,82,83,84,85,86,87,88", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "5e4cc02885a442a1bcc5529c62c68243", - "uuidPlanMaster": "3603f89f4e0945f68353a33e8017ba6e", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "T2", - "Dosage": 35, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "60cbd39d5c484faa990c1d5235042344", - "uuidPlanMaster": "3603f89f4e0945f68353a33e8017ba6e", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H81 - 88, T4", - "Dosage": 35, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 11, - "HoleCollective": "81,82,83,84,85,86,87,88", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "05be55069b4a487d9f75f1e976c6bd4e", - "uuidPlanMaster": "3603f89f4e0945f68353a33e8017ba6e", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T3", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "38b21ca0d88342e0b8bb11ce0e1d3573", - "uuidPlanMaster": "3603f89f4e0945f68353a33e8017ba6e", - "Axis": "Left", - "ActOn": "Load", - "Place": "H89 - 96, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 12, - "HoleCollective": "89,90,91,92,93,94,95,96", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "917827d0276c40df91abcb5970210e92", - "uuidPlanMaster": "3603f89f4e0945f68353a33e8017ba6e", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "T2", - "Dosage": 35, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "f3799a03cd5b4ec1b0096724980fc710", - "uuidPlanMaster": "3603f89f4e0945f68353a33e8017ba6e", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H89 - 96, T4", - "Dosage": 35, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 12, - "HoleCollective": "89,90,91,92,93,94,95,96", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "ea4bcfd7c1294d72a44200f84139cb24", - "uuidPlanMaster": "3603f89f4e0945f68353a33e8017ba6e", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T3", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "56b85a05309e4ecba15d1969b0aa71ee", - "uuidPlanMaster": "b44be8260740460598816c40f13fd6b4", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1 - 8, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "94831cd07de2405b8cb19ba0657903ca", - "uuidPlanMaster": "b44be8260740460598816c40f13fd6b4", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "T2", - "Dosage": 9, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "6dccd44bf3e44560967ab028596cfc2f", - "uuidPlanMaster": "b44be8260740460598816c40f13fd6b4", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1 - 8, T4", - "Dosage": 9, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "2daf489e67e04859b5ad9b5eb52e6572", - "uuidPlanMaster": "f189a50122d54a568f3d39dc1f996167", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1 - 8, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "0ca1bc16ea5c43049f470f880c7d6e44", - "uuidPlanMaster": "f189a50122d54a568f3d39dc1f996167", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "T2", - "Dosage": 0.5, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "67b71710f26e46638c139d2fd748fa36", - "uuidPlanMaster": "f189a50122d54a568f3d39dc1f996167", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1 - 8, T4", - "Dosage": 0.5, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "d7771ddb289f4adc841ab8c91652db07", - "uuidPlanMaster": "b48218c8f2274b108e278d019c9b5126", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1 - 8, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "42e71c3f410d41f78310b3ae442ded6a", - "uuidPlanMaster": "b48218c8f2274b108e278d019c9b5126", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "T2", - "Dosage": 3, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "0bba0bcaf5c348ae8bd103e6e9a77108", - "uuidPlanMaster": "b48218c8f2274b108e278d019c9b5126", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1 - 8, T4", - "Dosage": 3, - "AssistA": " 吹样(2ul)", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "0878ff9f8eac4c3aa621b7927bc8ddb8", - "uuidPlanMaster": "41d2ebc5ab5b4b2da3e203937c5cbe70", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1 - 8, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "5b472959a54a49aab5a68d1fdfa2b1cb", - "uuidPlanMaster": "41d2ebc5ab5b4b2da3e203937c5cbe70", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "T2", - "Dosage": 6, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "91802da5d1ac4ddca966f2fca0992745", - "uuidPlanMaster": "41d2ebc5ab5b4b2da3e203937c5cbe70", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1 - 8, T4", - "Dosage": 6, - "AssistA": " 吹样(2ul)", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "39592b3a2c2540d38f0160ca59c78976", - "uuidPlanMaster": "49ec03499aa646b9b8069a783dbeca1c", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1 - 8, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "b46f2c5c59a2453fadcfbf180d358438", - "uuidPlanMaster": "49ec03499aa646b9b8069a783dbeca1c", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "T2", - "Dosage": 7, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "a7a019278cc44f9792571b0d77e8a737", - "uuidPlanMaster": "49ec03499aa646b9b8069a783dbeca1c", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1 - 8, T4", - "Dosage": 7, - "AssistA": " 吹样(2ul)", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "47f0b80430ec4f16b08ef7cd5304f3ee", - "uuidPlanMaster": "a9c6d149cdf04636ac43cfb7623e4e7f", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1 - 8, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "a964c2d136524c358d26a02eb28d9817", - "uuidPlanMaster": "a9c6d149cdf04636ac43cfb7623e4e7f", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "T2", - "Dosage": 8, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "abe82de867594cc4a594a624627c9c6e", - "uuidPlanMaster": "a9c6d149cdf04636ac43cfb7623e4e7f", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1 - 8, T4", - "Dosage": 8, - "AssistA": " 吹样(2ul)", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "11e055b906cc4393b6b5106f83bb6ebf", - "uuidPlanMaster": "0e3a36cabefa4f5497e35193db48b559", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1 - 8, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "259207a4c16343d38a99e038e4741c34", - "uuidPlanMaster": "0e3a36cabefa4f5497e35193db48b559", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "T2", - "Dosage": 9, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "10bd4b1a2b794b499927cd569795a9ce", - "uuidPlanMaster": "0e3a36cabefa4f5497e35193db48b559", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1 - 8, T4", - "Dosage": 9, - "AssistA": " 吹样(2ul)", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "16c2d4434e8f47e49b824a6916023b97", - "uuidPlanMaster": "d0a0d926e2034abc94b4d883951a78f7", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1 - 8, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "844b5664c88d41259fdf0dea32e55cdf", - "uuidPlanMaster": "d0a0d926e2034abc94b4d883951a78f7", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "T2", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "f54ca6ebe394418db8772824053a6650", - "uuidPlanMaster": "d0a0d926e2034abc94b4d883951a78f7", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1 - 8, T4", - "Dosage": 10, - "AssistA": " 吹样(2ul)", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "1c499dfd89ac401d8ea42444d0ded169", - "uuidPlanMaster": "22ac523a47e7421e80f401baf1526daf", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1 - 8, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "7c0478f050874310af8c64bb8d80428d", - "uuidPlanMaster": "22ac523a47e7421e80f401baf1526daf", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "T2", - "Dosage": 50, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "0009c9277fe14a01baa9073a81c7dc42", - "uuidPlanMaster": "22ac523a47e7421e80f401baf1526daf", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1 - 8, T4", - "Dosage": 50, - "AssistA": " 吹样(2ul)", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "81def708b3794ded94015ef1f163fdf9", - "uuidPlanMaster": "fdea60f535ee4bc39c02c602a64f46bd", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1 - 8, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "a2728515b5874c3a87784e658c9c3200", - "uuidPlanMaster": "fdea60f535ee4bc39c02c602a64f46bd", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "T2", - "Dosage": 11, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "eae08689eb914166b36ab18be05ff9f0", - "uuidPlanMaster": "fdea60f535ee4bc39c02c602a64f46bd", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1 - 8, T4", - "Dosage": 11, - "AssistA": " 吹样(3ul)", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "8cf678ecb8f94a438857274902e61b62", - "uuidPlanMaster": "6650f7df6b8944f98476da92ce81d688", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1 - 8, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "73d67d85f4874705892d10467a03c70f", - "uuidPlanMaster": "6650f7df6b8944f98476da92ce81d688", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "T2", - "Dosage": 12, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "e25ab3e12b3448e4b0e8fbc9507af026", - "uuidPlanMaster": "6650f7df6b8944f98476da92ce81d688", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1 - 8, T4", - "Dosage": 12, - "AssistA": " 吹样(3ul)", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "41e9c25684e248bfac37b558a5828932", - "uuidPlanMaster": "9415a69280c042a09d6836f5eeddf40f", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1 - 8, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "e72c78601ec0447580566f9617c67c6c", - "uuidPlanMaster": "9415a69280c042a09d6836f5eeddf40f", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "T2", - "Dosage": 100, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "e7d292643da54544884cd282aad7700d", - "uuidPlanMaster": "9415a69280c042a09d6836f5eeddf40f", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1 - 8, T4", - "Dosage": 100, - "AssistA": " 吹样(3ul)", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "44b962191f86495bb6e9ceb7f820fa04", - "uuidPlanMaster": "d9740fea94a04c2db44b1364a336b338", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1 - 8, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "575645b14af64adb95e3e11f5c4a37b7", - "uuidPlanMaster": "d9740fea94a04c2db44b1364a336b338", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "T2", - "Dosage": 250, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "b7f9005589924fa0bb4e744b81561122", - "uuidPlanMaster": "d9740fea94a04c2db44b1364a336b338", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1 - 8, T4", - "Dosage": 250, - "AssistA": " 吹样(3ul)", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "d2d0aba326744f76a2f020123e82c57f", - "uuidPlanMaster": "1d80c1fff5af442595c21963e6ca9fee", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1 - 8, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "868aab636b6443efb700f9e6698fe6ae", - "uuidPlanMaster": "1d80c1fff5af442595c21963e6ca9fee", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "T2", - "Dosage": 160, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "a17a02b586bd4549aa7e774bba283a6c", - "uuidPlanMaster": "1d80c1fff5af442595c21963e6ca9fee", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1 - 8, T4", - "Dosage": 160, - "AssistA": " 吹样(3ul)", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "7e6d8a54760c46bab5f2d644b3cb3639", - "uuidPlanMaster": "36889fb926aa480cb42de97700522bbf", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1 - 8, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "da184b1733c243d9a555273f404dd3cb", - "uuidPlanMaster": "36889fb926aa480cb42de97700522bbf", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "T2", - "Dosage": 200, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "3306aaf2de50433895c3a8c2d1c29b4d", - "uuidPlanMaster": "36889fb926aa480cb42de97700522bbf", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1 - 8, T4", - "Dosage": 200, - "AssistA": " 吹样(3ul)", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "e5f8eedf9b21425fa8543adcb94f0f51", - "uuidPlanMaster": "bd90ae2846c14e708854938158fd3443", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1 - 8, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "f069e0c746104c8a8630bd50b9f649c9", - "uuidPlanMaster": "bd90ae2846c14e708854938158fd3443", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "T2", - "Dosage": 300, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "6888a0ee64ba4ed0a42b37eb64426a71", - "uuidPlanMaster": "bd90ae2846c14e708854938158fd3443", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1 - 8, T4", - "Dosage": 300, - "AssistA": " 吹样(3ul)", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "6c691f5e2ae84d72ae8d9c8d0106e3b5", - "uuidPlanMaster": "9df4857d2bef45bcad14cc13055e9f7b", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1 - 8, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "8c547e836d9048e7b848e89ba12fc27e", - "uuidPlanMaster": "9df4857d2bef45bcad14cc13055e9f7b", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "T2", - "Dosage": 500, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "b5303eab755e4e548219cd6d51ff8396", - "uuidPlanMaster": "9df4857d2bef45bcad14cc13055e9f7b", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1 - 8, T4", - "Dosage": 500, - "AssistA": " 吹样(3ul)", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "a018e5b8ded74abb88db09c9197754f8", - "uuidPlanMaster": "d2f6e63cf1ff41a4a8d03f4444a2aeac", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1 - 8, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "4de43ceea01e4633a40a92a1207560b6", - "uuidPlanMaster": "d2f6e63cf1ff41a4a8d03f4444a2aeac", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "T2", - "Dosage": 800, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "ac27eff89b4e48958f21b0786570dd57", - "uuidPlanMaster": "d2f6e63cf1ff41a4a8d03f4444a2aeac", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1 - 8, T4", - "Dosage": 800, - "AssistA": " 吹样(3ul)", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "11646eecf4624d8ab8644d4b3e56c05f", - "uuidPlanMaster": "f40a6f4326a346d39d5a82f6262aba47", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1 - 8, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "2d897e01e28840fe868e646bc635d001", - "uuidPlanMaster": "f40a6f4326a346d39d5a82f6262aba47", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "T2", - "Dosage": 990, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "77d59e96823443189d7d8c3ca06c20c4", - "uuidPlanMaster": "f40a6f4326a346d39d5a82f6262aba47", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1 - 8, T4", - "Dosage": 990, - "AssistA": " 吹样(3ul)", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "2debe2f02cc8407693ca43ebcf779dfe", - "uuidPlanMaster": "4248035f01e943faa6d71697ed386e19", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1 - 8, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "61cb1374510b47fa86bcdc0bc3cc821d", - "uuidPlanMaster": "4248035f01e943faa6d71697ed386e19", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "T2", - "Dosage": 995, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "7ad4d8d084dd44318d3ae31ea6895d89", - "uuidPlanMaster": "4248035f01e943faa6d71697ed386e19", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1 - 8, T4", - "Dosage": 995, - "AssistA": " 吹样(3ul)", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "be3affc8849a4314978d0cadd01ddc37", - "uuidPlanMaster": "a73bc780e4d04099bf54c2b90fa7b974", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1 - 8, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "0beffaad7ccb46f592d5500a2a4108f3", - "uuidPlanMaster": "a73bc780e4d04099bf54c2b90fa7b974", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "T2", - "Dosage": 1000, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "5de6d6bc45ea4c9ebd3b785f132f15a7", - "uuidPlanMaster": "a73bc780e4d04099bf54c2b90fa7b974", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1 - 8, T4", - "Dosage": 1000, - "AssistA": " 吹样(5ul)", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "161ce524c7144ee7a3ecbb6923c40112", - "uuidPlanMaster": "4d97363a0a334094a1ff24494a902d02", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1 - 8, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "3c98af05db2d40629397b5587c58e8c1", - "uuidPlanMaster": "4d97363a0a334094a1ff24494a902d02", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "T2", - "Dosage": 3, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "81a1bc85dc3841a59df66c74d8b5f04d", - "uuidPlanMaster": "4d97363a0a334094a1ff24494a902d02", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1 - 8, T4", - "Dosage": 3, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "fa5eaf603883489aa6843cb48a29e6ee", - "uuidPlanMaster": "4d97363a0a334094a1ff24494a902d02", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T3", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "e14fae0f6a18438ab4c2f05c561b133b", - "uuidPlanMaster": "6eec360c74464769967ebefa43b7aec1", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1 - 8, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "614fa5a9e0d64127a902d157a22a2936", - "uuidPlanMaster": "6eec360c74464769967ebefa43b7aec1", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "T2", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "c9cb2f7023a44412987a279ea7413acd", - "uuidPlanMaster": "6eec360c74464769967ebefa43b7aec1", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1 - 8, T4", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "8aaee93f124a4ef4b6ce5827188e59f2", - "uuidPlanMaster": "6eec360c74464769967ebefa43b7aec1", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T3", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "7267213a215d4fb588d8105810b0d7c2", - "uuidPlanMaster": "986049c83b054171a1b34dd49b3ca9cf", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1 - 8, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "9aea725854f7455b9dc3ce59c341a9a8", - "uuidPlanMaster": "986049c83b054171a1b34dd49b3ca9cf", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "T2", - "Dosage": 9, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "757dc6ef42224155ab86a0fc8965d56d", - "uuidPlanMaster": "986049c83b054171a1b34dd49b3ca9cf", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1 - 8, T4", - "Dosage": 9, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "8b0721637e70439fb6d75f9e2e28abac", - "uuidPlanMaster": "986049c83b054171a1b34dd49b3ca9cf", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T3", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "7a23c04fe093427fb7424ec11b207b6c", - "uuidPlanMaster": "462eed73962142c2bd3b8fe717caceb6", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1 - 8, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "3cb05b507f734e7fb4797b9e2f789f17", - "uuidPlanMaster": "462eed73962142c2bd3b8fe717caceb6", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "T2", - "Dosage": 3, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "75b77b5e180a43758a38e31c64e90535", - "uuidPlanMaster": "462eed73962142c2bd3b8fe717caceb6", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1 - 8, T4", - "Dosage": 3, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "0d446789074b473b93e4255860627cee", - "uuidPlanMaster": "462eed73962142c2bd3b8fe717caceb6", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T3", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "0d4a877a8f49460bbd7f075cf1b498dd", - "uuidPlanMaster": "b2f0c7ab462f4cf1bae56ee59a49a253", - "Axis": "Left", - "ActOn": "Load", - "Place": "H8 - 8, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 1, - "HoleCollective": "8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "8fccd6772c3946dc9e49047df6e286ca", - "uuidPlanMaster": "b2f0c7ab462f4cf1bae56ee59a49a253", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T3", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "c9b45a4790cc49ed8e2c35901031eb41", - "uuidPlanMaster": "b9768a1d91444d4a86b7a013467bee95", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1 - 8, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "e7990e6bede64c748ab0077a461124d4", - "uuidPlanMaster": "b9768a1d91444d4a86b7a013467bee95", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "T2", - "Dosage": 3, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "64ed04d8d7504205adca4bb3fd514ce9", - "uuidPlanMaster": "b9768a1d91444d4a86b7a013467bee95", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1 - 8, T4", - "Dosage": 3, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "3dca771a67ad40d3830bbf56bc81b65f", - "uuidPlanMaster": "98621898cd514bc9a1ac0c92362284f4", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1 - 8, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "a7427aac321047078f32f8106a82b22f", - "uuidPlanMaster": "98621898cd514bc9a1ac0c92362284f4", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "T2", - "Dosage": 2, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "bc42c34f42c7404bae7110159c9cb4cb", - "uuidPlanMaster": "98621898cd514bc9a1ac0c92362284f4", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1 - 8, T4", - "Dosage": 2, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "ef08b90fe1274439b36f5e34bf79372a", - "uuidPlanMaster": "4d03142fd86844db8e23c19061b3d505", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1 - 8, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "f14a3484b4c24de9b3c8ac53ace5ab95", - "uuidPlanMaster": "4d03142fd86844db8e23c19061b3d505", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "T2", - "Dosage": 5, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "7619df38c1bc4754b081b7dc8562eb0f", - "uuidPlanMaster": "4d03142fd86844db8e23c19061b3d505", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1 - 8, T4", - "Dosage": 5, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "646403b766f1428e8d48d98628832222", - "uuidPlanMaster": "c78c3f38a59748c3aef949405e434b05", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1 - 8, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "1aab1a7a8ecd4f21af6cb339b54f28d3", - "uuidPlanMaster": "c78c3f38a59748c3aef949405e434b05", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "T2", - "Dosage": 4, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "26e1a8a1fbc34c1782c790cd744caa4f", - "uuidPlanMaster": "c78c3f38a59748c3aef949405e434b05", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1 - 8, T4", - "Dosage": 4, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "78a84c47720440ecabd3b81f96d12a26", - "uuidPlanMaster": "0fc4ffd86091451db26162af4f7b235e", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1 - 8, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "9a082dc5b0b9420395411b02a1ecb7ea", - "uuidPlanMaster": "0fc4ffd86091451db26162af4f7b235e", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "T2", - "Dosage": 3, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "bac0f1c2292c44f8b93f1ffa400f84c9", - "uuidPlanMaster": "0fc4ffd86091451db26162af4f7b235e", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1 - 8, T4", - "Dosage": 3, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "3703c3aacaf5468cba9411c102ed8412", - "uuidPlanMaster": "a08748982b934daab8752f55796e1b0c", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1 - 8, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "9cffddc06d6d4fffb11abaf9e51223de", - "uuidPlanMaster": "a08748982b934daab8752f55796e1b0c", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "T2", - "Dosage": 6, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "b0952c9ab1bc452f97b0f8feb47cdcf9", - "uuidPlanMaster": "a08748982b934daab8752f55796e1b0c", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1 - 8, T4", - "Dosage": 6, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "820831b4928149dba6fe71adf1422bee", - "uuidPlanMaster": "2317611bdb614e45b61a5118e58e3a2a", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1 - 8, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "688fb42b3e0042fba87c436f7d923365", - "uuidPlanMaster": "2317611bdb614e45b61a5118e58e3a2a", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "T2", - "Dosage": 8, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "513894442cca4f2688ecd16ba9c847e9", - "uuidPlanMaster": "2317611bdb614e45b61a5118e58e3a2a", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1 - 8, T4", - "Dosage": 8, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "fe4920551aca4270950084b0fab98917", - "uuidPlanMaster": "62cb45ac3af64a46aa6d450ba56963e7", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1 - 8, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "35d5e6c0b5104ddc8e5717baebc804bd", - "uuidPlanMaster": "62cb45ac3af64a46aa6d450ba56963e7", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "T2", - "Dosage": 3, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "a11b269c4e744eb2b7bd1a7ecade8db9", - "uuidPlanMaster": "62cb45ac3af64a46aa6d450ba56963e7", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1 - 8, T4", - "Dosage": 3, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "165f02228650412bbd0c123d0259527a", - "uuidPlanMaster": "321f717a3a2640a3bfc9515aee7d1052", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1 - 8, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "d8525bc1cdb54482aaf61fb0332ecb98", - "uuidPlanMaster": "321f717a3a2640a3bfc9515aee7d1052", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "T2", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "0b79f3b6c1bc475e9c127317f4a3d8b0", - "uuidPlanMaster": "321f717a3a2640a3bfc9515aee7d1052", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1 - 8, T4", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "1cafc024b5f840b0b7b4ca6db20a644a", - "uuidPlanMaster": "6c3246ac0f974a6abc24c83bf45e1cf4", - "Axis": "Left", - "ActOn": "Load", - "Place": "H96 - 96, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 12, - "HoleCollective": "96", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "1efa1687e31345d5bd75a80202dd1717", - "uuidPlanMaster": "6c3246ac0f974a6abc24c83bf45e1cf4", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H0 - 4, T3", - "Dosage": 160, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "0,0,0,0,1,2,3,4", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "0d1f1b4c54dd43908aad7a8b92943260", - "uuidPlanMaster": "6c3246ac0f974a6abc24c83bf45e1cf4", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1 - 8, T2", - "Dosage": 20, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "307965b473bd4008b1feb3c735d345d0", - "uuidPlanMaster": "6c3246ac0f974a6abc24c83bf45e1cf4", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 8, T2", - "Dosage": 20, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 1, - "HoleCollective": "0,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "3e7d869f9b1e451f9fdf3a947a1c7a78", - "uuidPlanMaster": "6c3246ac0f974a6abc24c83bf45e1cf4", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 8, T2", - "Dosage": 20, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 1, - "HoleCollective": "0,0,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "013a6dfe8c1d4593aa93105336c4bca2", - "uuidPlanMaster": "6c3246ac0f974a6abc24c83bf45e1cf4", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 8, T2", - "Dosage": 20, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 1, - "HoleCollective": "0,0,0,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "663bdf51539340568d29a7545ade7174", - "uuidPlanMaster": "6c3246ac0f974a6abc24c83bf45e1cf4", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 8, T2", - "Dosage": 20, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 1, - "HoleCollective": "0,0,0,0,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "15e260bf96fe4940908ad83d7a37201d", - "uuidPlanMaster": "6c3246ac0f974a6abc24c83bf45e1cf4", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 8, T2", - "Dosage": 20, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 6, - "HoleColum": 1, - "HoleCollective": "0,0,0,0,0,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "2b44755effd445959dac96b6088113ef", - "uuidPlanMaster": "6c3246ac0f974a6abc24c83bf45e1cf4", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 8, T2", - "Dosage": 20, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 7, - "HoleColum": 1, - "HoleCollective": "0,0,0,0,0,0,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "a4322c230f1744c7b89b6ef2a6d19584", - "uuidPlanMaster": "6c3246ac0f974a6abc24c83bf45e1cf4", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H8 - 8, T2", - "Dosage": 20, - "AssistA": " 吹样(1ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 1, - "HoleCollective": "8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "7f1f8a29bc994a55907f5c89c53c1d75", - "uuidPlanMaster": "6c3246ac0f974a6abc24c83bf45e1cf4", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H0 - 4, T3", - "Dosage": 160, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "0,0,0,0,1,2,3,4", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "83dc2caf46a444e4b0717d63d854dd61", - "uuidPlanMaster": "6c3246ac0f974a6abc24c83bf45e1cf4", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H9 - 16, T2", - "Dosage": 20, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 2, - "HoleCollective": "9,10,11,12,13,14,15,16", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "1a1596d225624696b5e7041cb84bbf8d", - "uuidPlanMaster": "6c3246ac0f974a6abc24c83bf45e1cf4", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 16, T2", - "Dosage": 20, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 2, - "HoleCollective": "0,10,11,12,13,14,15,16", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "11e00c767c55454b84dbfe862a70a975", - "uuidPlanMaster": "6c3246ac0f974a6abc24c83bf45e1cf4", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 16, T2", - "Dosage": 20, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 2, - "HoleCollective": "0,0,11,12,13,14,15,16", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "d28f0220bcd24274b1f9e26c6ccaceeb", - "uuidPlanMaster": "6c3246ac0f974a6abc24c83bf45e1cf4", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 16, T2", - "Dosage": 20, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 2, - "HoleCollective": "0,0,0,12,13,14,15,16", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "6a7ade440a4344398bfc3774a2165a43", - "uuidPlanMaster": "6c3246ac0f974a6abc24c83bf45e1cf4", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 16, T2", - "Dosage": 20, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 2, - "HoleCollective": "0,0,0,0,13,14,15,16", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "1df9595cf94d450ca5a92affadd2e7bf", - "uuidPlanMaster": "6c3246ac0f974a6abc24c83bf45e1cf4", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 16, T2", - "Dosage": 20, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 6, - "HoleColum": 2, - "HoleCollective": "0,0,0,0,0,14,15,16", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "1e6fb943ccab4458ae56f344d3c2acfe", - "uuidPlanMaster": "6c3246ac0f974a6abc24c83bf45e1cf4", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 16, T2", - "Dosage": 20, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 7, - "HoleColum": 2, - "HoleCollective": "0,0,0,0,0,0,15,16", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "3de26fa2501947d2b23b9e229e00c199", - "uuidPlanMaster": "6c3246ac0f974a6abc24c83bf45e1cf4", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H16 - 16, T2", - "Dosage": 20, - "AssistA": " 吹样(1ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 2, - "HoleCollective": "16", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "b06097da94bb4c4290b80ee825f82f6d", - "uuidPlanMaster": "6c3246ac0f974a6abc24c83bf45e1cf4", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H0 - 4, T3", - "Dosage": 160, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "0,0,0,0,1,2,3,4", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "1035566012f54f1e980851dd8ce90e64", - "uuidPlanMaster": "6c3246ac0f974a6abc24c83bf45e1cf4", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H17 - 24, T2", - "Dosage": 20, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "17,18,19,20,21,22,23,24", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "7f15d51e7dfb460d8eb01cf3296b61db", - "uuidPlanMaster": "6c3246ac0f974a6abc24c83bf45e1cf4", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 24, T2", - "Dosage": 20, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 3, - "HoleCollective": "0,18,19,20,21,22,23,24", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "15e6b262a1f8450f81d49dba17dc1336", - "uuidPlanMaster": "6c3246ac0f974a6abc24c83bf45e1cf4", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 24, T2", - "Dosage": 20, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 3, - "HoleCollective": "0,0,19,20,21,22,23,24", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "4d0f40615b4a4d27a38daf11b7b22818", - "uuidPlanMaster": "6c3246ac0f974a6abc24c83bf45e1cf4", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 24, T2", - "Dosage": 20, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 3, - "HoleCollective": "0,0,0,20,21,22,23,24", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "3de36020d55d46b1b8026c7f5d353bbd", - "uuidPlanMaster": "6c3246ac0f974a6abc24c83bf45e1cf4", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 24, T2", - "Dosage": 20, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 3, - "HoleCollective": "0,0,0,0,21,22,23,24", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "f1a45ee39cf54fcd9ca826a28ca51834", - "uuidPlanMaster": "6c3246ac0f974a6abc24c83bf45e1cf4", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 24, T2", - "Dosage": 20, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 6, - "HoleColum": 3, - "HoleCollective": "0,0,0,0,0,22,23,24", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "b6e009e9777d439f85f1a01346a5687a", - "uuidPlanMaster": "6c3246ac0f974a6abc24c83bf45e1cf4", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 24, T2", - "Dosage": 20, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 7, - "HoleColum": 3, - "HoleCollective": "0,0,0,0,0,0,23,24", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "c3e7d72135eb44d1ab6e891f7ceef18b", - "uuidPlanMaster": "6c3246ac0f974a6abc24c83bf45e1cf4", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H24 - 24, T2", - "Dosage": 20, - "AssistA": " 吹样(1ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 3, - "HoleCollective": "24", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "4c0159f843a345d7a2e14c4116081979", - "uuidPlanMaster": "6c3246ac0f974a6abc24c83bf45e1cf4", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T6", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 6, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 10, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "7f46b5c34e234cfc83f9e05e4119a6ce", - "uuidPlanMaster": "6c3246ac0f974a6abc24c83bf45e1cf4", - "Axis": "Left", - "ActOn": "Load", - "Place": "H0 - 96, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 7, - "HoleColum": 12, - "HoleCollective": "0,0,0,0,0,0,95,96", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "af2799388808440b983b24b45060b117", - "uuidPlanMaster": "6c3246ac0f974a6abc24c83bf45e1cf4", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H0 - 4, T3", - "Dosage": 160, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 1, - "HoleCollective": "0,0,0,0,0,2,3,4", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "29945413cebe4d4888498e39eb5f63c5", - "uuidPlanMaster": "6c3246ac0f974a6abc24c83bf45e1cf4", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H25 - 32, T2", - "Dosage": 20, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 4, - "HoleCollective": "25,26,27,28,29,30,31,32", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "41f6cc3fef0f403996fcba0b039a5f51", - "uuidPlanMaster": "6c3246ac0f974a6abc24c83bf45e1cf4", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 32, T2", - "Dosage": 20, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 4, - "HoleCollective": "0,26,27,28,29,30,31,32", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "61fe74bf71694acd8fab90e04423adad", - "uuidPlanMaster": "6c3246ac0f974a6abc24c83bf45e1cf4", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 32, T2", - "Dosage": 20, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 4, - "HoleCollective": "0,0,27,28,29,30,31,32", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "4765a2458a63402f9345ef969a3b36a4", - "uuidPlanMaster": "6c3246ac0f974a6abc24c83bf45e1cf4", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 32, T2", - "Dosage": 20, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 4, - "HoleCollective": "0,0,0,28,29,30,31,32", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "fe38c26ff2c54045bd38ad01a379b2a1", - "uuidPlanMaster": "6c3246ac0f974a6abc24c83bf45e1cf4", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 32, T2", - "Dosage": 20, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 4, - "HoleCollective": "0,0,0,0,29,30,31,32", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "c592282ffb624379a20d869e2fc35c8b", - "uuidPlanMaster": "6c3246ac0f974a6abc24c83bf45e1cf4", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 32, T2", - "Dosage": 20, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 6, - "HoleColum": 4, - "HoleCollective": "0,0,0,0,0,30,31,32", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "7011a727efe742f8b4dd9cf3ef63107a", - "uuidPlanMaster": "6c3246ac0f974a6abc24c83bf45e1cf4", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 32, T2", - "Dosage": 20, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 7, - "HoleColum": 4, - "HoleCollective": "0,0,0,0,0,0,31,32", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "c643e3a591bd4dafbd0914685bc5dce5", - "uuidPlanMaster": "6c3246ac0f974a6abc24c83bf45e1cf4", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H32 - 32, T2", - "Dosage": 20, - "AssistA": " 吹样(1ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 4, - "HoleCollective": "32", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "ef1a9da1b71943ed99ef785f42dbef70", - "uuidPlanMaster": "6c3246ac0f974a6abc24c83bf45e1cf4", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H0 - 4, T3", - "Dosage": 160, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 1, - "HoleCollective": "0,0,0,0,0,2,3,4", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "57b982312b554796a0209711778dfedd", - "uuidPlanMaster": "6c3246ac0f974a6abc24c83bf45e1cf4", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H33 - 40, T2", - "Dosage": 20, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 5, - "HoleCollective": "33,34,35,36,37,38,39,40", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "d4c9041a6b4149768ce42a797570ca99", - "uuidPlanMaster": "6c3246ac0f974a6abc24c83bf45e1cf4", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 40, T2", - "Dosage": 20, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 5, - "HoleCollective": "0,34,35,36,37,38,39,40", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "a5c8c6659871409e80e8296de9c93e0f", - "uuidPlanMaster": "6c3246ac0f974a6abc24c83bf45e1cf4", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 40, T2", - "Dosage": 20, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 5, - "HoleCollective": "0,0,35,36,37,38,39,40", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "89bcab4f22704a4093150a9ac4c8b5c2", - "uuidPlanMaster": "6c3246ac0f974a6abc24c83bf45e1cf4", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 40, T2", - "Dosage": 20, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 5, - "HoleCollective": "0,0,0,36,37,38,39,40", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "4e9935dcdcbf422ab12686daeb11a66f", - "uuidPlanMaster": "6c3246ac0f974a6abc24c83bf45e1cf4", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 40, T2", - "Dosage": 20, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 5, - "HoleCollective": "0,0,0,0,37,38,39,40", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "0194f9c1e265419683d6b84851b7efbf", - "uuidPlanMaster": "6c3246ac0f974a6abc24c83bf45e1cf4", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 40, T2", - "Dosage": 20, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 6, - "HoleColum": 5, - "HoleCollective": "0,0,0,0,0,38,39,40", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "bd602ec810da43b0bbbaae4f4120b88e", - "uuidPlanMaster": "6c3246ac0f974a6abc24c83bf45e1cf4", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 40, T2", - "Dosage": 20, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 7, - "HoleColum": 5, - "HoleCollective": "0,0,0,0,0,0,39,40", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "50885de4d8044b8f972c94bd02002881", - "uuidPlanMaster": "6c3246ac0f974a6abc24c83bf45e1cf4", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H40 - 40, T2", - "Dosage": 20, - "AssistA": " 吹样(1ul)", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 5, - "HoleCollective": "40", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "2ff1e45c955e46318aa8729bb1cc6c9d", - "uuidPlanMaster": "6c3246ac0f974a6abc24c83bf45e1cf4", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H0 - 4, T3", - "Dosage": 160, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 1, - "HoleCollective": "0,0,0,0,0,2,3,4", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "77605f05a30140489c2e0f3b68a151b2", - "uuidPlanMaster": "6c3246ac0f974a6abc24c83bf45e1cf4", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H41 - 48, T2", - "Dosage": 20, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 6, - "HoleCollective": "41,42,43,44,45,46,47,48", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "910419408b0e4874a660f6f9770c93db", - "uuidPlanMaster": "6c3246ac0f974a6abc24c83bf45e1cf4", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 48, T2", - "Dosage": 20, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 6, - "HoleCollective": "0,42,43,44,45,46,47,48", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "f6369de3082240c09d13dff30445e87c", - "uuidPlanMaster": "6c3246ac0f974a6abc24c83bf45e1cf4", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 48, T2", - "Dosage": 20, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 6, - "HoleCollective": "0,0,43,44,45,46,47,48", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "1c83325315094fd591c64d967def9896", - "uuidPlanMaster": "6c3246ac0f974a6abc24c83bf45e1cf4", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 48, T2", - "Dosage": 20, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 6, - "HoleCollective": "0,0,0,44,45,46,47,48", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "d785887f40df4be68c70da42544697f4", - "uuidPlanMaster": "6c3246ac0f974a6abc24c83bf45e1cf4", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 48, T2", - "Dosage": 20, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 6, - "HoleCollective": "0,0,0,0,45,46,47,48", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "1055486dd374440ab9d703192aa16c2a", - "uuidPlanMaster": "6c3246ac0f974a6abc24c83bf45e1cf4", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 48, T2", - "Dosage": 20, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 6, - "HoleColum": 6, - "HoleCollective": "0,0,0,0,0,46,47,48", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "b07bb4c14b514b8bb21a3c3d53632324", - "uuidPlanMaster": "6c3246ac0f974a6abc24c83bf45e1cf4", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 48, T2", - "Dosage": 20, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 7, - "HoleColum": 6, - "HoleCollective": "0,0,0,0,0,0,47,48", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "40b2b12dbf544e04adf5ee05fdd9e72f", - "uuidPlanMaster": "6c3246ac0f974a6abc24c83bf45e1cf4", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H48 - 48, T2", - "Dosage": 20, - "AssistA": " 吹样(1ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 6, - "HoleCollective": "48", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "c77848d4411148579df5bf9cfc860f69", - "uuidPlanMaster": "6c3246ac0f974a6abc24c83bf45e1cf4", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T6", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 6, - "IsFullPage": 1, - "HoleRow": 2, - "HoleColum": 10, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "3b40dfe4a96645479f94b7da3baf60f2", - "uuidPlanMaster": "6c3246ac0f974a6abc24c83bf45e1cf4", - "Axis": "Left", - "ActOn": "Load", - "Place": "H94 - 96, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 6, - "HoleColum": 12, - "HoleCollective": "94,95,96", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "4d1854e898724318be83a5ebdc2c3844", - "uuidPlanMaster": "6c3246ac0f974a6abc24c83bf45e1cf4", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H0 - 4, T3", - "Dosage": 160, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 1, - "HoleCollective": "0,0,0,0,0,0,3,4", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "d9d0a8b9de9049c58d14dcf154e6fec8", - "uuidPlanMaster": "6c3246ac0f974a6abc24c83bf45e1cf4", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H49 - 56, T2", - "Dosage": 20, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 7, - "HoleCollective": "49,50,51,52,53,54,55,56", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "1248f315fecd4891938927a620d13535", - "uuidPlanMaster": "6c3246ac0f974a6abc24c83bf45e1cf4", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 56, T2", - "Dosage": 20, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 7, - "HoleCollective": "0,50,51,52,53,54,55,56", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "52f632197cab40d582572b0f35a4512b", - "uuidPlanMaster": "6c3246ac0f974a6abc24c83bf45e1cf4", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 56, T2", - "Dosage": 20, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 7, - "HoleCollective": "0,0,51,52,53,54,55,56", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "17f82646b8bc40bf8e08afe79c9f65c1", - "uuidPlanMaster": "6c3246ac0f974a6abc24c83bf45e1cf4", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 56, T2", - "Dosage": 20, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 7, - "HoleCollective": "0,0,0,52,53,54,55,56", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "68896a5a9e644be6bcfdd2087e3ecbd2", - "uuidPlanMaster": "6c3246ac0f974a6abc24c83bf45e1cf4", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 56, T2", - "Dosage": 20, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 7, - "HoleCollective": "0,0,0,0,53,54,55,56", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "d6510829686d4e799ce56ad883d55e59", - "uuidPlanMaster": "6c3246ac0f974a6abc24c83bf45e1cf4", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 56, T2", - "Dosage": 20, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 6, - "HoleColum": 7, - "HoleCollective": "0,0,0,0,0,54,55,56", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "cfe9cff7172a4559a78fcac611accb2b", - "uuidPlanMaster": "6c3246ac0f974a6abc24c83bf45e1cf4", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 56, T2", - "Dosage": 20, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 7, - "HoleColum": 7, - "HoleCollective": "0,0,0,0,0,0,55,56", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "41819cf606b24c6986b19e9f1338be72", - "uuidPlanMaster": "6c3246ac0f974a6abc24c83bf45e1cf4", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H56 - 56, T2", - "Dosage": 20, - "AssistA": " 吹样(1ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 7, - "HoleCollective": "56", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "491c3291864b470f9c04a3d98a8ef8a0", - "uuidPlanMaster": "6c3246ac0f974a6abc24c83bf45e1cf4", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H0 - 4, T3", - "Dosage": 160, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 1, - "HoleCollective": "0,0,0,0,0,0,3,4", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "3304fdc7abcb41288ee3c2d63fc19a7e", - "uuidPlanMaster": "6c3246ac0f974a6abc24c83bf45e1cf4", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H57 - 64, T2", - "Dosage": 20, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 8, - "HoleCollective": "57,58,59,60,61,62,63,64", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "c3f94c8172d14687bb9863c61b8f5d90", - "uuidPlanMaster": "6c3246ac0f974a6abc24c83bf45e1cf4", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 64, T2", - "Dosage": 20, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 8, - "HoleCollective": "0,58,59,60,61,62,63,64", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "8639b30c5a9b405db03c8f066cb7820a", - "uuidPlanMaster": "6c3246ac0f974a6abc24c83bf45e1cf4", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 64, T2", - "Dosage": 20, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 8, - "HoleCollective": "0,0,59,60,61,62,63,64", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "1f8b2e32826a4b5792f85585ef66e1ba", - "uuidPlanMaster": "6c3246ac0f974a6abc24c83bf45e1cf4", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 64, T2", - "Dosage": 20, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 8, - "HoleCollective": "0,0,0,60,61,62,63,64", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "e386c16bf7204277ad24843aec833104", - "uuidPlanMaster": "6c3246ac0f974a6abc24c83bf45e1cf4", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 64, T2", - "Dosage": 20, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 8, - "HoleCollective": "0,0,0,0,61,62,63,64", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "2fb316b22b2e462485e453b200809385", - "uuidPlanMaster": "6c3246ac0f974a6abc24c83bf45e1cf4", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 64, T2", - "Dosage": 20, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 6, - "HoleColum": 8, - "HoleCollective": "0,0,0,0,0,62,63,64", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "9208dbdf36a74e68be7660e2239fd34e", - "uuidPlanMaster": "6c3246ac0f974a6abc24c83bf45e1cf4", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 64, T2", - "Dosage": 20, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 7, - "HoleColum": 8, - "HoleCollective": "0,0,0,0,0,0,63,64", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "3f0c7b79c7cf425da360d4e3419285fe", - "uuidPlanMaster": "6c3246ac0f974a6abc24c83bf45e1cf4", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H64 - 64, T2", - "Dosage": 20, - "AssistA": " 吹样(1ul)", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 8, - "HoleCollective": "64", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "e71341350c5746cca8a3faca749c6fa3", - "uuidPlanMaster": "6c3246ac0f974a6abc24c83bf45e1cf4", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H0 - 4, T3", - "Dosage": 160, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 1, - "HoleCollective": "0,0,0,0,0,0,3,4", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "c315ff43005f412b972e17f06e0302a2", - "uuidPlanMaster": "6c3246ac0f974a6abc24c83bf45e1cf4", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H65 - 72, T2", - "Dosage": 20, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 9, - "HoleCollective": "65,66,67,68,69,70,71,72", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "ec276e47bca74893a85fac849ea80bb1", - "uuidPlanMaster": "6c3246ac0f974a6abc24c83bf45e1cf4", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 72, T2", - "Dosage": 20, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 9, - "HoleCollective": "0,66,67,68,69,70,71,72", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "668a7b14d959471cac11f1f92d2e4d2c", - "uuidPlanMaster": "6c3246ac0f974a6abc24c83bf45e1cf4", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 72, T2", - "Dosage": 20, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 9, - "HoleCollective": "0,0,67,68,69,70,71,72", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "5eb0832b895949a0a186040415432da0", - "uuidPlanMaster": "6c3246ac0f974a6abc24c83bf45e1cf4", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 72, T2", - "Dosage": 20, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 9, - "HoleCollective": "0,0,0,68,69,70,71,72", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "a7eeda26b09f4d8da728edf84b7f3681", - "uuidPlanMaster": "6c3246ac0f974a6abc24c83bf45e1cf4", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 72, T2", - "Dosage": 20, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 9, - "HoleCollective": "0,0,0,0,69,70,71,72", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "738bb11c2cca49448ef5adf75383ab25", - "uuidPlanMaster": "6c3246ac0f974a6abc24c83bf45e1cf4", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 72, T2", - "Dosage": 20, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 6, - "HoleColum": 9, - "HoleCollective": "0,0,0,0,0,70,71,72", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "08b0636aef934db9bc81eb6f28872590", - "uuidPlanMaster": "6c3246ac0f974a6abc24c83bf45e1cf4", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 72, T2", - "Dosage": 20, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 7, - "HoleColum": 9, - "HoleCollective": "0,0,0,0,0,0,71,72", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "9952881e7b1c4f6e943db1a1825bb88c", - "uuidPlanMaster": "6c3246ac0f974a6abc24c83bf45e1cf4", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H72 - 72, T2", - "Dosage": 20, - "AssistA": " 吹样(1ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 9, - "HoleCollective": "72", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "19777983fd77481e91a9bd0caf78583e", - "uuidPlanMaster": "6c3246ac0f974a6abc24c83bf45e1cf4", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T6", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 6, - "IsFullPage": 1, - "HoleRow": 3, - "HoleColum": 10, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "e809eec72e7d418ca8cd81494adcc94b", - "uuidPlanMaster": "6c3246ac0f974a6abc24c83bf45e1cf4", - "Axis": "Left", - "ActOn": "Load", - "Place": "H0 - 96, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 12, - "HoleCollective": "0,0,0,0,93,94,95,96", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "84874162dbd84d92b608d9a9bf6637cd", - "uuidPlanMaster": "6c3246ac0f974a6abc24c83bf45e1cf4", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H4 - 4, T3", - "Dosage": 160, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 1, - "HoleCollective": "4", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "e0311855ee7541f5a053fa4b2fdb27d8", - "uuidPlanMaster": "6c3246ac0f974a6abc24c83bf45e1cf4", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H73 - 80, T2", - "Dosage": 20, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 10, - "HoleCollective": "73,74,75,76,77,78,79,80", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "289f6626d528417a83f955d4c748cae1", - "uuidPlanMaster": "6c3246ac0f974a6abc24c83bf45e1cf4", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 80, T2", - "Dosage": 20, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 10, - "HoleCollective": "0,74,75,76,77,78,79,80", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "5021658ac8e1429698ccaf494a69c612", - "uuidPlanMaster": "6c3246ac0f974a6abc24c83bf45e1cf4", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 80, T2", - "Dosage": 20, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 10, - "HoleCollective": "0,0,75,76,77,78,79,80", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "653821693f2440cea311e85c6a70846f", - "uuidPlanMaster": "6c3246ac0f974a6abc24c83bf45e1cf4", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 80, T2", - "Dosage": 20, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 10, - "HoleCollective": "0,0,0,76,77,78,79,80", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "ecfc89eeec6f4a0da79d3672976a004b", - "uuidPlanMaster": "6c3246ac0f974a6abc24c83bf45e1cf4", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 80, T2", - "Dosage": 20, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 10, - "HoleCollective": "0,0,0,0,77,78,79,80", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "3bfe213993f4488f89c165c27381b21e", - "uuidPlanMaster": "6c3246ac0f974a6abc24c83bf45e1cf4", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 80, T2", - "Dosage": 20, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 6, - "HoleColum": 10, - "HoleCollective": "0,0,0,0,0,78,79,80", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "12194884c1e84a15a900dced0cfa7fc9", - "uuidPlanMaster": "6c3246ac0f974a6abc24c83bf45e1cf4", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 80, T2", - "Dosage": 20, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 7, - "HoleColum": 10, - "HoleCollective": "0,0,0,0,0,0,79,80", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "77cda68700f4461ba1c97147d5c2faf0", - "uuidPlanMaster": "6c3246ac0f974a6abc24c83bf45e1cf4", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H80 - 80, T2", - "Dosage": 20, - "AssistA": " 吹样(1ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 10, - "HoleCollective": "80", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "b9afa9727e1d47c08266f03c8e061495", - "uuidPlanMaster": "6c3246ac0f974a6abc24c83bf45e1cf4", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H4 - 4, T3", - "Dosage": 160, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 1, - "HoleCollective": "4", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "5a08ed3ae5b44026acd19896fdd83c69", - "uuidPlanMaster": "6c3246ac0f974a6abc24c83bf45e1cf4", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H81 - 88, T2", - "Dosage": 20, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 11, - "HoleCollective": "81,82,83,84,85,86,87,88", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "3d76b0f37dcf48058c73e9ff0e215a5a", - "uuidPlanMaster": "6c3246ac0f974a6abc24c83bf45e1cf4", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H82 - 88, T2", - "Dosage": 20, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 11, - "HoleCollective": "82,83,84,85,86,87,88", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "81a992a0136d4cb396f521388427bbd3", - "uuidPlanMaster": "6c3246ac0f974a6abc24c83bf45e1cf4", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H83 - 88, T2", - "Dosage": 20, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 11, - "HoleCollective": "83,84,85,86,87,88", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "4968b9259f494bdb856af00863577d89", - "uuidPlanMaster": "6c3246ac0f974a6abc24c83bf45e1cf4", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 88, T2", - "Dosage": 20, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 11, - "HoleCollective": "0,0,0,84,85,86,87,88", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "a0fa540d3c7c47c18a7df348d8cb556f", - "uuidPlanMaster": "6c3246ac0f974a6abc24c83bf45e1cf4", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 88, T2", - "Dosage": 20, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 11, - "HoleCollective": "0,0,0,0,85,86,87,88", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "91236025418249fd981c38af34c47755", - "uuidPlanMaster": "6c3246ac0f974a6abc24c83bf45e1cf4", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 88, T2", - "Dosage": 20, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 6, - "HoleColum": 11, - "HoleCollective": "0,0,0,0,0,86,87,88", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "5a56ec61e450433ab3c3a24e74fd1ab9", - "uuidPlanMaster": "6c3246ac0f974a6abc24c83bf45e1cf4", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 88, T2", - "Dosage": 20, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 7, - "HoleColum": 11, - "HoleCollective": "0,0,0,0,0,0,87,88", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "d55f3a851660446497c8f0a15f13df9a", - "uuidPlanMaster": "6c3246ac0f974a6abc24c83bf45e1cf4", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H88 - 88, T2", - "Dosage": 20, - "AssistA": " 吹样(1ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 11, - "HoleCollective": "88", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "9ee8d51b2a8b4f48bdfcb47285bf5cb5", - "uuidPlanMaster": "6c3246ac0f974a6abc24c83bf45e1cf4", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H4 - 4, T3", - "Dosage": 160, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 1, - "HoleCollective": "4", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "4328c5eed9ce43d6a5c31b1cbd69e056", - "uuidPlanMaster": "6c3246ac0f974a6abc24c83bf45e1cf4", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H89 - 96, T2", - "Dosage": 20, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 12, - "HoleCollective": "89,90,91,92,93,94,95,96", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "4c4e2e7db0be43dabf264431d3f1b6e5", - "uuidPlanMaster": "6c3246ac0f974a6abc24c83bf45e1cf4", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 96, T2", - "Dosage": 20, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 12, - "HoleCollective": "0,90,91,92,93,94,95,96", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "16341941521f4e58883850125792b44a", - "uuidPlanMaster": "6c3246ac0f974a6abc24c83bf45e1cf4", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 96, T2", - "Dosage": 20, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 12, - "HoleCollective": "0,0,91,92,93,94,95,96", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "23c732648d2e4769939ee5d332033e9f", - "uuidPlanMaster": "6c3246ac0f974a6abc24c83bf45e1cf4", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 96, T2", - "Dosage": 20, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 12, - "HoleCollective": "0,0,0,92,93,94,95,96", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "2d5e675793774bde99614866bc8c4c0e", - "uuidPlanMaster": "6c3246ac0f974a6abc24c83bf45e1cf4", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 96, T2", - "Dosage": 20, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 12, - "HoleCollective": "0,0,0,0,93,94,95,96", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "d1578eec24b04d9f90c8038cfa2149d2", - "uuidPlanMaster": "6c3246ac0f974a6abc24c83bf45e1cf4", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 96, T2", - "Dosage": 20, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 6, - "HoleColum": 12, - "HoleCollective": "0,0,0,0,0,94,95,96", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "cdd14c7b756b4e19b8edaab8a43c8a72", - "uuidPlanMaster": "6c3246ac0f974a6abc24c83bf45e1cf4", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 96, T2", - "Dosage": 20, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 7, - "HoleColum": 12, - "HoleCollective": "0,0,0,0,0,0,95,96", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "07f977fcd8f54ad4be9f50d8c77bad93", - "uuidPlanMaster": "6c3246ac0f974a6abc24c83bf45e1cf4", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H96 - 96, T2", - "Dosage": 20, - "AssistA": " 吹样(1ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 12, - "HoleCollective": "96", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "78f3b94dbbe240bdad09950f711eb7d6", - "uuidPlanMaster": "6c3246ac0f974a6abc24c83bf45e1cf4", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T6", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 6, - "IsFullPage": 1, - "HoleRow": 4, - "HoleColum": 10, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "a80a77820f7e4e09a1b3fedc610ad8ad", - "uuidPlanMaster": "6c3246ac0f974a6abc24c83bf45e1cf4", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1 - 8, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "dfe42e4967b140f7823adccc5c04f3e9", - "uuidPlanMaster": "6c3246ac0f974a6abc24c83bf45e1cf4", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H1 - 8, T4", - "Dosage": 12, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "e4dba47b878745d8a54b7bbd10875122", - "uuidPlanMaster": "6c3246ac0f974a6abc24c83bf45e1cf4", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1 - 8, T2", - "Dosage": 4, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "a837abd014af41ac8628fc0eacfa4b1d", - "uuidPlanMaster": "6c3246ac0f974a6abc24c83bf45e1cf4", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H9 - 16, T2", - "Dosage": 4, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 2, - "HoleCollective": "9,10,11,12,13,14,15,16", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "d7d757b5ba104b6a87d58c06bc67ab6f", - "uuidPlanMaster": "6c3246ac0f974a6abc24c83bf45e1cf4", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H17 - 24, T2", - "Dosage": 4, - "AssistA": " 吹样(1ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "17,18,19,20,21,22,23,24", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "fdc8fd74405f4d52bbaca391e80fc919", - "uuidPlanMaster": "6c3246ac0f974a6abc24c83bf45e1cf4", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T6", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 6, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "7fabe54ff916486d8950786be8fe4341", - "uuidPlanMaster": "6c3246ac0f974a6abc24c83bf45e1cf4", - "Axis": "Left", - "ActOn": "Load", - "Place": "H9 - 16, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 2, - "HoleCollective": "9,10,11,12,13,14,15,16", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "d27dfce1467a45f5b279cedf24694793", - "uuidPlanMaster": "6c3246ac0f974a6abc24c83bf45e1cf4", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H9 - 16, T4", - "Dosage": 12, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 2, - "HoleCollective": "9,10,11,12,13,14,15,16", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "cfa63d233f044c228039d7eabd0bd0db", - "uuidPlanMaster": "6c3246ac0f974a6abc24c83bf45e1cf4", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H25 - 32, T2", - "Dosage": 4, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 4, - "HoleCollective": "25,26,27,28,29,30,31,32", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "62b53211cb0242bab1a283337b3ce366", - "uuidPlanMaster": "6c3246ac0f974a6abc24c83bf45e1cf4", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H33 - 40, T2", - "Dosage": 4, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 5, - "HoleCollective": "33,34,35,36,37,38,39,40", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "87e24c40150f4e0eb7bf39d2da2b2c39", - "uuidPlanMaster": "6c3246ac0f974a6abc24c83bf45e1cf4", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H41 - 48, T2", - "Dosage": 4, - "AssistA": " 吹样(1ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 6, - "HoleCollective": "41,42,43,44,45,46,47,48", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "2e170b0c188e449cbacac3592c2d5f33", - "uuidPlanMaster": "6c3246ac0f974a6abc24c83bf45e1cf4", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T6", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 6, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 2, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "b8be3d1b2e1242d6ac533bdb5c2d18b4", - "uuidPlanMaster": "6c3246ac0f974a6abc24c83bf45e1cf4", - "Axis": "Left", - "ActOn": "Load", - "Place": "H17 - 24, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "17,18,19,20,21,22,23,24", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "a0e5ec096ca14d8cb4a7d5af747dc616", - "uuidPlanMaster": "6c3246ac0f974a6abc24c83bf45e1cf4", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H17 - 24, T4", - "Dosage": 12, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "17,18,19,20,21,22,23,24", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "ac41764e5f2845e191c67fa170d57112", - "uuidPlanMaster": "6c3246ac0f974a6abc24c83bf45e1cf4", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H49 - 56, T2", - "Dosage": 4, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 7, - "HoleCollective": "49,50,51,52,53,54,55,56", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "94acae31c3624d9e8392729b9171b5fd", - "uuidPlanMaster": "6c3246ac0f974a6abc24c83bf45e1cf4", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H57 - 64, T2", - "Dosage": 4, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 8, - "HoleCollective": "57,58,59,60,61,62,63,64", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "b859612916994e8ab3a2cbb2b0d13c09", - "uuidPlanMaster": "6c3246ac0f974a6abc24c83bf45e1cf4", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H65 - 72, T2", - "Dosage": 4, - "AssistA": " 吹样(1ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 9, - "HoleCollective": "65,66,67,68,69,70,71,72", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "2a6ceaf4929b43e39bf38d9203d35e89", - "uuidPlanMaster": "6c3246ac0f974a6abc24c83bf45e1cf4", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T6", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 6, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "9d4c12402bea4660945cc6f692c5e426", - "uuidPlanMaster": "6c3246ac0f974a6abc24c83bf45e1cf4", - "Axis": "Left", - "ActOn": "Load", - "Place": "H25 - 32, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 4, - "HoleCollective": "25,26,27,28,29,30,31,32", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "d1bc106c99f74c448806f06f0623997c", - "uuidPlanMaster": "6c3246ac0f974a6abc24c83bf45e1cf4", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H25 - 32, T4", - "Dosage": 12, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 4, - "HoleCollective": "25,26,27,28,29,30,31,32", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "99876fe6409c43079bbb72d3a22411a4", - "uuidPlanMaster": "6c3246ac0f974a6abc24c83bf45e1cf4", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H73 - 80, T2", - "Dosage": 4, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 10, - "HoleCollective": "73,74,75,76,77,78,79,80", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "be416fce3a884fc49eb53ca98d75826e", - "uuidPlanMaster": "6c3246ac0f974a6abc24c83bf45e1cf4", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H81 - 88, T2", - "Dosage": 4, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 11, - "HoleCollective": "81,82,83,84,85,86,87,88", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "f354636287c948d1aee1b9f809981d60", - "uuidPlanMaster": "6c3246ac0f974a6abc24c83bf45e1cf4", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H89 - 96, T2", - "Dosage": 4, - "AssistA": " 吹样(1ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 12, - "HoleCollective": "89,90,91,92,93,94,95,96", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "de339bc45ee94c65a18d76ab21040f4d", - "uuidPlanMaster": "6c3246ac0f974a6abc24c83bf45e1cf4", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T6", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 6, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 4, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "1278b3b1428a4c74a62180152587a274", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Load", - "Place": "H96 - 96, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 12, - "HoleCollective": "96", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "f1896466113e47a4b24a3162ebcbb9e7", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H17 - 24, T3", - "Dosage": 135, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "17,18,19,20,21,22,23,24", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "617427d6f4324c6a84bcaf4d4ba9b579", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1 - 8, T3", - "Dosage": 135, - "AssistA": " 吹样(1ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "8f67dcaa72bb43e78f5ac9afa5f077ee", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H17 - 24, T3", - "Dosage": 135, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "17,18,19,20,21,22,23,24", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "48eccef1b1bd40219a30e7e91ff62cff", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 8, T3", - "Dosage": 135, - "AssistA": " 吹样(1ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 1, - "HoleCollective": "0,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "01c7fd0df5a74543abf67053123873f8", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H17 - 24, T3", - "Dosage": 135, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "17,18,19,20,21,22,23,24", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "4c2002ca767e4cb6ace5d06b60e80f84", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 8, T3", - "Dosage": 135, - "AssistA": " 吹样(1ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 1, - "HoleCollective": "0,0,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "0a2b7519409f4400a2ac90a117803475", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H17 - 24, T3", - "Dosage": 135, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "17,18,19,20,21,22,23,24", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "9d99e982927c4fc08220e92570955295", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 8, T3", - "Dosage": 135, - "AssistA": " 吹样(1ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 1, - "HoleCollective": "0,0,0,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "e859f35719364229b6b182908b7acd97", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H17 - 24, T3", - "Dosage": 135, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "17,18,19,20,21,22,23,24", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "c64dff6c464c488bb295fb8c7b3246e0", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 8, T3", - "Dosage": 135, - "AssistA": " 吹样(1ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 1, - "HoleCollective": "0,0,0,0,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "d99b7d2f18844d87a7ef047de48a5004", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H17 - 24, T3", - "Dosage": 135, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "17,18,19,20,21,22,23,24", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "eed82d5540fc4a78beda9c00896ffa3a", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 8, T3", - "Dosage": 135, - "AssistA": " 吹样(1ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 0, - "HoleRow": 6, - "HoleColum": 1, - "HoleCollective": "0,0,0,0,0,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "ec29d1d1fe974525a2c9fcae35ca5348", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T6", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 6, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "5320c25b09d547abb5ddd3159225e806", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Load", - "Place": "H0 - 96, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 7, - "HoleColum": 12, - "HoleCollective": "0,0,0,0,0,0,95,96", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "7ea91e9ffe0249d8802c297d44c61eef", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H0 - 24, T3", - "Dosage": 15, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 3, - "HoleCollective": "0,18,19,20,21,22,23,24", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "e6f1a8fc38514ab49022c8da93a80be5", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Blending", - "Place": "H1 - 8, T3", - "Dosage": 75, - "AssistA": " 吹样(1ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 10, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "225773c0ce0543a8bf4a45913f47a1d7", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T6", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 6, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "0dff6ebc4550467faf0e3dde85f3cb0f", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Load", - "Place": "H0 - 96, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 6, - "HoleColum": 12, - "HoleCollective": "0,0,0,0,0,94,95,96", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "98aeb25e6ecf4c52b994a3f8a8e1f5a7", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H0 - 8, T3", - "Dosage": 15, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 1, - "HoleCollective": "0,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "27a4d5bffd064a3c9feb05a1eeac6667", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Blending", - "Place": "H0 - 8, T3", - "Dosage": 75, - "AssistA": " 吹样(1ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 1, - "HoleCollective": "0,0,3,4,5,6,7,8", - "MixCount": 10, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "1b970d27ce4e4683a38060183a903bec", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T6", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 6, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "bb3d81d3befe4e2c8ca4eb8db223766b", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Load", - "Place": "H0 - 96, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 12, - "HoleCollective": "0,0,0,0,93,94,95,96", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "7594874c24ff44a79c46a0fd31c09a26", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H0 - 8, T3", - "Dosage": 15, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 1, - "HoleCollective": "0,0,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "09b9cf4d8a9c4eb88a882acbb43ee7a7", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Blending", - "Place": "H0 - 8, T3", - "Dosage": 75, - "AssistA": " 吹样(1ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 1, - "HoleCollective": "0,0,0,4,5,6,7,8", - "MixCount": 10, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "ecfc1f245f8f47eaab7585e23e996d38", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T6", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 6, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "8a5ea9eb2a8345bdbb6dcc233c3532ac", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Load", - "Place": "H0 - 96, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 12, - "HoleCollective": "0,0,0,92,93,94,95,96", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "03ed03231afb4638b5aebb9f4d91dfed", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H0 - 8, T3", - "Dosage": 15, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 1, - "HoleCollective": "0,0,0,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "032762ea8c904bd8bc9d60c9c673161a", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Blending", - "Place": "H0 - 8, T3", - "Dosage": 75, - "AssistA": " 吹样(1ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 1, - "HoleCollective": "0,0,0,0,5,6,7,8", - "MixCount": 10, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "4b30b1e4388a41edbe624535c745606a", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T6", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 6, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "35beabbc203941e699dfb1f09678c97d", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Load", - "Place": "H0 - 96, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 12, - "HoleCollective": "0,0,91,92,93,94,95,96", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "d9b7f2d7e2c24e258bf3b3593911a732", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H0 - 8, T3", - "Dosage": 15, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 1, - "HoleCollective": "0,0,0,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "f0a2a20736b849c782a0ed9fb404b674", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Blending", - "Place": "H0 - 8, T3", - "Dosage": 75, - "AssistA": " 吹样(1ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 1, - "HoleCollective": "0,0,0,0,5,6,7,8", - "MixCount": 10, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "fcb36c715d1c4790a3b41831ae020473", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T6", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 6, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "20684ce52cb04c7c8b01add7fb77f3af", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Load", - "Place": "H0 - 96, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 12, - "HoleCollective": "0,90,91,92,93,94,95,96", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "8ed4ad7ab95b4d7bb5c9918cffd91005", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H0 - 8, T3", - "Dosage": 15, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 1, - "HoleCollective": "0,0,0,0,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "e9fad38b6d024280a7208d2d053237d0", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Blending", - "Place": "H0 - 8, T3", - "Dosage": 75, - "AssistA": " 吹样(1ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 0, - "HoleRow": 6, - "HoleColum": 1, - "HoleCollective": "0,0,0,0,0,6,7,8", - "MixCount": 10, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "f650626e82834ee2a97a9defe50ffb0c", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T6", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 6, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "d492f0be27d74ff288999ee3525b273f", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Load", - "Place": "H88 - 88, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 11, - "HoleCollective": "88", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "20091c4650064227aad5862e4be7947c", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H0 - 24, T3", - "Dosage": 180, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 3, - "HoleCollective": "0,0,19,20,21,22,23,24", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "c2eb920e947d4fb0b9062cc611edb205", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1 - 8, T2", - "Dosage": 18, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "4f085b133b794764a1f31e15ed3fdbf9", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 8, T2", - "Dosage": 18, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 1, - "HoleCollective": "0,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "805164b691c442129baebf34195e0ed6", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 8, T2", - "Dosage": 18, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 1, - "HoleCollective": "0,0,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "93cfbf8d8158473daa1c98f18461595f", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 8, T2", - "Dosage": 18, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 1, - "HoleCollective": "0,0,0,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "f9afda5ddadd42b6ae0f182dbfb0a56e", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 8, T2", - "Dosage": 18, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 1, - "HoleCollective": "0,0,0,0,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "37d73ca7367d4f5d953bf1d464608bf0", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 8, T2", - "Dosage": 18, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 6, - "HoleColum": 1, - "HoleCollective": "0,0,0,0,0,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "9ef5b48b20aa4707af29b090d0e26aa6", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 8, T2", - "Dosage": 18, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 7, - "HoleColum": 1, - "HoleCollective": "0,0,0,0,0,0,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "a6401e0d137e473384aa6875dc5adf32", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H8 - 8, T2", - "Dosage": 18, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 1, - "HoleCollective": "8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "b086fa5215f345bdb866071418df0030", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H9 - 16, T2", - "Dosage": 18, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 2, - "HoleCollective": "9,10,11,12,13,14,15,16", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "3310206bc12b419785e3925468502444", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 16, T2", - "Dosage": 18, - "AssistA": " 吹样(1ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 2, - "HoleCollective": "0,10,11,12,13,14,15,16", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "548f227759384675b4420f19e95ee064", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T6", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 6, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "e2ef1291485d484e8f3e5761a4a0b35d", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Load", - "Place": "H0 - 88, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 7, - "HoleColum": 11, - "HoleCollective": "0,0,0,0,0,0,87,88", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "1a49ab6415254ffbb669069d32a4cf29", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H0 - 24, T3", - "Dosage": 180, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 3, - "HoleCollective": "0,0,19,20,21,22,23,24", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "94ef09d41f934073911cebd67da22ef5", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 16, T2", - "Dosage": 18, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 2, - "HoleCollective": "0,0,11,12,13,14,15,16", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "c6c3a6804e424286980db67c39aeade5", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 16, T2", - "Dosage": 18, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 2, - "HoleCollective": "0,0,0,12,13,14,15,16", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "2920f10aacc4407e86be65259c3292a0", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 16, T2", - "Dosage": 18, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 2, - "HoleCollective": "0,0,0,0,13,14,15,16", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "11cd01028e2a423bb56108c1719eb16f", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 16, T2", - "Dosage": 18, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 6, - "HoleColum": 2, - "HoleCollective": "0,0,0,0,0,14,15,16", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "7d5e3283dc2c49f9ab63c4c474916e43", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 16, T2", - "Dosage": 18, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 7, - "HoleColum": 2, - "HoleCollective": "0,0,0,0,0,0,15,16", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "e33d9f1871f64b03bf458aad95691fb1", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H16 - 16, T2", - "Dosage": 18, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 2, - "HoleCollective": "16", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "68de14ff63d14cb1b41e643a3bafcfd4", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H17 - 24, T2", - "Dosage": 18, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "17,18,19,20,21,22,23,24", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "49c822e6d5b44d559972125eed7b8eb1", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 24, T2", - "Dosage": 18, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 3, - "HoleCollective": "0,18,19,20,21,22,23,24", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "22f55138fd31469b9f238394823987ca", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 24, T2", - "Dosage": 18, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 3, - "HoleCollective": "0,0,19,20,21,22,23,24", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "9a596a23714e4f6d857269433c971aca", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 24, T2", - "Dosage": 18, - "AssistA": " 吹样(1ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 3, - "HoleCollective": "0,0,0,20,21,22,23,24", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "eb4747b06f40489d93308ccb9842d6ca", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T6", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 6, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "6651763383f248f891b5f05c666d223d", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Load", - "Place": "H0 - 88, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 6, - "HoleColum": 11, - "HoleCollective": "0,0,0,0,0,86,87,88", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "85e86c54bacf483083446e5a54a753ca", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H0 - 24, T3", - "Dosage": 180, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 3, - "HoleCollective": "0,0,19,20,21,22,23,24", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "1746254a0f9249fe8ae597cb047305d9", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 24, T2", - "Dosage": 18, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 3, - "HoleCollective": "0,0,0,0,21,22,23,24", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "065b402ab5604c72b5d6e711fe26e9de", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 24, T2", - "Dosage": 18, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 6, - "HoleColum": 3, - "HoleCollective": "0,0,0,0,0,22,23,24", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "23b255032c2f44d3a0ca7d04da8b929d", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 24, T2", - "Dosage": 18, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 7, - "HoleColum": 3, - "HoleCollective": "0,0,0,0,0,0,23,24", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "a3ca711ae6a147009f2fa9b7a790360f", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H24 - 24, T2", - "Dosage": 18, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 3, - "HoleCollective": "24", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "ac44b28eb289447eb86b4db72af71449", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H25 - 32, T2", - "Dosage": 18, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 4, - "HoleCollective": "25,26,27,28,29,30,31,32", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "2697134514f742ee8931afe9a74d7f51", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 32, T2", - "Dosage": 18, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 4, - "HoleCollective": "0,26,27,28,29,30,31,32", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "bc0df95ac36f46788358d3316d249f99", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 32, T2", - "Dosage": 18, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 4, - "HoleCollective": "0,0,27,28,29,30,31,32", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "d7a4a4f90685457c9e8885b3350e0879", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 32, T2", - "Dosage": 18, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 4, - "HoleCollective": "0,0,0,28,29,30,31,32", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "4e28ed5d0c2641d98eaefa95d4cc8c86", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 32, T2", - "Dosage": 18, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 4, - "HoleCollective": "0,0,0,0,29,30,31,32", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "a3e408c74d004bba83d8389dd32cc19c", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 32, T2", - "Dosage": 18, - "AssistA": " 吹样(1ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 6, - "HoleColum": 4, - "HoleCollective": "0,0,0,0,0,30,31,32", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "0b249dc048094641b631423f10e87e15", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T6", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 6, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "a1e262812945419aa42746f1da3e3355", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Load", - "Place": "H0 - 88, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 11, - "HoleCollective": "0,0,0,0,85,86,87,88", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "c1352a09b08249e2887af0b7fd02c4e1", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H0 - 24, T3", - "Dosage": 180, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 3, - "HoleCollective": "0,0,19,20,21,22,23,24", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "d836b53733c74e4ca4e85a6e50bbcaf0", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 32, T2", - "Dosage": 18, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 7, - "HoleColum": 4, - "HoleCollective": "0,0,0,0,0,0,31,32", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "dc0411895f424ae0bbb38ab196209686", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H32 - 32, T2", - "Dosage": 18, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 4, - "HoleCollective": "32", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "77e1118de0fd48bfb6c5972d8742bd88", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H33 - 40, T2", - "Dosage": 18, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 5, - "HoleCollective": "33,34,35,36,37,38,39,40", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "e875a2fa93cb4e768e77d5f69a1464ac", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 40, T2", - "Dosage": 18, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 5, - "HoleCollective": "0,34,35,36,37,38,39,40", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "2d6765724ff446b18004168948a4992b", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 40, T2", - "Dosage": 18, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 5, - "HoleCollective": "0,0,35,36,37,38,39,40", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "829c2a41197f47d692205fc9307f365a", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 40, T2", - "Dosage": 18, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 5, - "HoleCollective": "0,0,0,36,37,38,39,40", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "cca8bbbf551c448b86c226a3da2f824a", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 40, T2", - "Dosage": 18, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 5, - "HoleCollective": "0,0,0,0,37,38,39,40", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "35125976acf34816932e0779f122da14", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 40, T2", - "Dosage": 18, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 6, - "HoleColum": 5, - "HoleCollective": "0,0,0,0,0,38,39,40", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "c9e309f4fceb4b4c8013778806e1d108", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 40, T2", - "Dosage": 18, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 7, - "HoleColum": 5, - "HoleCollective": "0,0,0,0,0,0,39,40", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "9d699e6b1063408280043da8d8cf9954", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H40 - 40, T2", - "Dosage": 18, - "AssistA": " 吹样(1ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 5, - "HoleCollective": "40", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "a7fd56562dae4ca69e3552fdf56108cb", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T6", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 6, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "21c65f8b1f9048588bed63ccf9ed7416", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Load", - "Place": "H0 - 88, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 11, - "HoleCollective": "0,0,0,84,85,86,87,88", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "3cc684db432b484faeab8703602c600c", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H0 - 24, T3", - "Dosage": 180, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 3, - "HoleCollective": "0,0,19,20,21,22,23,24", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "658e614145f14a7ea746889a5c44039a", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H41 - 48, T2", - "Dosage": 18, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 6, - "HoleCollective": "41,42,43,44,45,46,47,48", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "2554c9a1480e4f0f9bca05518c0a2002", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 48, T2", - "Dosage": 18, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 6, - "HoleCollective": "0,42,43,44,45,46,47,48", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "69891998dab34cc98fa29002a07a5cfb", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 48, T2", - "Dosage": 18, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 6, - "HoleCollective": "0,0,43,44,45,46,47,48", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "c1ef0f5861b14adbbdb7cd4cece40f67", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 48, T2", - "Dosage": 18, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 6, - "HoleCollective": "0,0,0,44,45,46,47,48", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "7a0027c2aceb40a3a826115f9f37602e", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 48, T2", - "Dosage": 18, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 6, - "HoleCollective": "0,0,0,0,45,46,47,48", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "0a4dbde50929499a96eb3fd69eeadfa2", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 48, T2", - "Dosage": 18, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 6, - "HoleColum": 6, - "HoleCollective": "0,0,0,0,0,46,47,48", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "a2cbd91e39c947699907bf4a79ee6d97", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 48, T2", - "Dosage": 18, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 7, - "HoleColum": 6, - "HoleCollective": "0,0,0,0,0,0,47,48", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "d3a9ef15224f4b2da6a48300d739c153", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H48 - 48, T2", - "Dosage": 18, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 6, - "HoleCollective": "48", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "d588a779f75b4b4e818461d198870542", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H49 - 56, T2", - "Dosage": 18, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 7, - "HoleCollective": "49,50,51,52,53,54,55,56", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "7f6f427824c84381ba2abdafd34db680", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 56, T2", - "Dosage": 18, - "AssistA": " 吹样(1ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 7, - "HoleCollective": "0,50,51,52,53,54,55,56", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "2902e952f31c46b2bd3d66b23252ae78", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T6", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 6, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "72186c5cef214b66a48ce803a643984e", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Load", - "Place": "H0 - 88, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 11, - "HoleCollective": "0,0,83,84,85,86,87,88", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "6acb8dbf438b4dcfa4874fbfed1876f9", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H0 - 24, T3", - "Dosage": 180, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 3, - "HoleCollective": "0,0,19,20,21,22,23,24", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "fab5f36ad81b4d5c81c36c1c73c3eaaf", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 56, T2", - "Dosage": 18, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 7, - "HoleCollective": "0,0,51,52,53,54,55,56", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "534470132d384ad0b12b28bd6ce89350", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 56, T2", - "Dosage": 18, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 7, - "HoleCollective": "0,0,0,52,53,54,55,56", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "e1670d020c154f7bb5cf774e448481f2", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 56, T2", - "Dosage": 18, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 7, - "HoleCollective": "0,0,0,0,53,54,55,56", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "c33b0870bd074657afff3c27b6b0a320", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 56, T2", - "Dosage": 18, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 6, - "HoleColum": 7, - "HoleCollective": "0,0,0,0,0,54,55,56", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "8ab95eecc5bf422dba1ba78e5b90f3a1", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 56, T2", - "Dosage": 18, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 7, - "HoleColum": 7, - "HoleCollective": "0,0,0,0,0,0,55,56", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "575e297e1b934bbf963824368eabd164", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H56 - 56, T2", - "Dosage": 18, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 7, - "HoleCollective": "56", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "fe11f20a475c4d3a84e54d6fb6ee2cf0", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H57 - 64, T2", - "Dosage": 18, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 8, - "HoleCollective": "57,58,59,60,61,62,63,64", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "f97fe607935941fd8200afc2fcc0c551", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 64, T2", - "Dosage": 18, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 8, - "HoleCollective": "0,58,59,60,61,62,63,64", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "a69ae24218854dc1955ccc74d408db46", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 64, T2", - "Dosage": 18, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 8, - "HoleCollective": "0,0,59,60,61,62,63,64", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "331e22db8584431a8b4bcf3d289bdba0", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 64, T2", - "Dosage": 18, - "AssistA": " 吹样(1ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 8, - "HoleCollective": "0,0,0,60,61,62,63,64", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "5dc649f54a98414eb3cf43e7dd228790", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T6", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 6, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "90ac1d4b1b49472596adf5723be4e0d1", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Load", - "Place": "H0 - 88, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 11, - "HoleCollective": "0,82,83,84,85,86,87,88", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "07f97ee3b036431fa535bcbc835de241", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H0 - 24, T3", - "Dosage": 180, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 3, - "HoleCollective": "0,0,19,20,21,22,23,24", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "5de1721a4c1e47e5944a809649b69938", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 64, T2", - "Dosage": 18, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 8, - "HoleCollective": "0,0,0,0,61,62,63,64", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "9b89d71a88084cceb3d2aa3b1bd8a5b4", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 64, T2", - "Dosage": 18, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 6, - "HoleColum": 8, - "HoleCollective": "0,0,0,0,0,62,63,64", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "2c740970355b4499bb05da3bddc709f0", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 64, T2", - "Dosage": 18, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 7, - "HoleColum": 8, - "HoleCollective": "0,0,0,0,0,0,63,64", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "d3035d76edd5412fb4778c1d1f3ac95d", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H64 - 64, T2", - "Dosage": 18, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 8, - "HoleCollective": "64", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "70438bbd772946fbb1fb63b0b4a7f2b2", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H65 - 72, T2", - "Dosage": 18, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 9, - "HoleCollective": "65,66,67,68,69,70,71,72", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "d85ef62fde1a4c4aacb5f3bf2d7290fe", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 72, T2", - "Dosage": 18, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 9, - "HoleCollective": "0,66,67,68,69,70,71,72", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "96c4e2e9c7004b64b026a4d0e821f750", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 72, T2", - "Dosage": 18, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 9, - "HoleCollective": "0,0,67,68,69,70,71,72", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "1fef79a611be425791b9efdc6b5770c4", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 72, T2", - "Dosage": 18, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 9, - "HoleCollective": "0,0,0,68,69,70,71,72", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "50f74d92a119446f82c39ac9a2b79443", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 72, T2", - "Dosage": 18, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 9, - "HoleCollective": "0,0,0,0,69,70,71,72", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "94ed31ede2bb44918e8316b654b4e2b3", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 72, T2", - "Dosage": 18, - "AssistA": " 吹样(1ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 6, - "HoleColum": 9, - "HoleCollective": "0,0,0,0,0,70,71,72", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "6d68dbb23b8d4361828578a903f18460", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T6", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 6, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "27d6ea3534ce4db99cd103e3212bda6e", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Load", - "Place": "H81 - 88, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 11, - "HoleCollective": "81,82,83,84,85,86,87,88", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "823e51b43e054c2091a7daa4c3222fdf", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H0 - 24, T3", - "Dosage": 180, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 3, - "HoleCollective": "0,0,19,20,21,22,23,24", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "d4b4fa64198b447ba5ac54bc95d8e6a1", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 72, T2", - "Dosage": 18, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 7, - "HoleColum": 9, - "HoleCollective": "0,0,0,0,0,0,71,72", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "5c3cb72dbcf3441ea213dba49c64d0b9", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H72 - 72, T2", - "Dosage": 18, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 9, - "HoleCollective": "72", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "efc91526ed534a6e8a9ad5bb241cc96c", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H73 - 80, T2", - "Dosage": 18, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 10, - "HoleCollective": "73,74,75,76,77,78,79,80", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "1a57aa58c9a04ccea53d3f63a5e94e21", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 80, T2", - "Dosage": 18, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 10, - "HoleCollective": "0,74,75,76,77,78,79,80", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "7d1677ef466d447fa25db4e1f282b051", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 80, T2", - "Dosage": 18, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 10, - "HoleCollective": "0,0,75,76,77,78,79,80", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "58acbe1979cf47258a64933a0fd8100e", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 80, T2", - "Dosage": 18, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 10, - "HoleCollective": "0,0,0,76,77,78,79,80", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "41a8ac8a5e464a66995ce3459afd77ed", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 80, T2", - "Dosage": 18, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 10, - "HoleCollective": "0,0,0,0,77,78,79,80", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "d02a87258f134748897c7b2da6de482a", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 80, T2", - "Dosage": 18, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 6, - "HoleColum": 10, - "HoleCollective": "0,0,0,0,0,78,79,80", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "b1bb40b8303d47b78017e412247c5b40", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H81 - 88, T2", - "Dosage": 18, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 11, - "HoleCollective": "81,82,83,84,85,86,87,88", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "917a00dbb4d34613bc89684dbf5e5937", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 88, T2", - "Dosage": 18, - "AssistA": " 吹样(1ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 11, - "HoleCollective": "0,82,83,84,85,86,87,88", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "c5f8fae3291941b2bba3468c8f6be2b7", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T6", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 6, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "ba6e497ba6974622923d8f233586bf15", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Load", - "Place": "H80 - 80, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 10, - "HoleCollective": "80", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "f53c2cfa778e4b08847f6aa86aac3052", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H0 - 24, T3", - "Dosage": 180, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 3, - "HoleCollective": "0,0,19,20,21,22,23,24", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "d1132b2194234d7da854cfc62320f3a3", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 88, T2", - "Dosage": 18, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 11, - "HoleCollective": "0,0,83,84,85,86,87,88", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "8e75e2701703477a94825a17913ad8fb", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 88, T2", - "Dosage": 18, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 11, - "HoleCollective": "0,0,0,84,85,86,87,88", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "5445b06e94754ae5813b5075a758551e", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 88, T2", - "Dosage": 18, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 11, - "HoleCollective": "0,0,0,0,85,86,87,88", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "b6cb9f04091a431d9ff439dd321884a3", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 88, T2", - "Dosage": 18, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 6, - "HoleColum": 11, - "HoleCollective": "0,0,0,0,0,86,87,88", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "6f5a47eebf054606b7a90944c0eef3ee", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H89 - 96, T2", - "Dosage": 18, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 12, - "HoleCollective": "89,90,91,92,93,94,95,96", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "551dc89b8b7c4221a084d9f0c7ad9c65", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 96, T2", - "Dosage": 18, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 12, - "HoleCollective": "0,90,91,92,93,94,95,96", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "0e60c974449a4922bac862423a4f9ac0", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 96, T2", - "Dosage": 18, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 12, - "HoleCollective": "0,0,91,92,93,94,95,96", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "09b12c5c80f341c3811909ae3b92c19d", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 96, T2", - "Dosage": 18, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 12, - "HoleCollective": "0,0,0,92,93,94,95,96", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "bca038a4b4764f92a9b0f056015b746f", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 96, T2", - "Dosage": 18, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 12, - "HoleCollective": "0,0,0,0,93,94,95,96", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "949c5c42ae2e4c6fad20c453c90b726a", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 96, T2", - "Dosage": 18, - "AssistA": " 吹样(1ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 6, - "HoleColum": 12, - "HoleCollective": "0,0,0,0,0,94,95,96", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "e8cbf2c05cbc44bbb2fe78eacdecdb9a", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T6", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 6, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "079a20f25a7a460ba857b0b47a2db349", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1 - 8, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "12f112815ded471184fff7663e5c2fd8", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H1 - 8, T5", - "Dosage": 2, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "d3855379be8941bd9435c54964356d1b", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1 - 8, T2", - "Dosage": 2, - "AssistA": " 吹样(1ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "4f7356988b884a2e86044dbf9375d665", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H1 - 8, T5", - "Dosage": 2, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "da0a08eccad84809989c6fef5c863511", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H9 - 16, T2", - "Dosage": 2, - "AssistA": " 吹样(1ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 2, - "HoleCollective": "9,10,11,12,13,14,15,16", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "a26587fea6964f2b8128b07dba1b4077", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H1 - 8, T5", - "Dosage": 2, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "25fa888ad06d4ddd9b19ef0a489f02c3", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H17 - 24, T2", - "Dosage": 2, - "AssistA": " 吹样(1ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "17,18,19,20,21,22,23,24", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "9917c88935524a7cb81d90418e64735b", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T6", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 6, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "b8266870288f4ee5be76f68436012a2b", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Load", - "Place": "H9 - 16, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 2, - "HoleCollective": "9,10,11,12,13,14,15,16", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "7ea955327d9e4c39b417d53507267b55", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H9 - 16, T5", - "Dosage": 2, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 2, - "HoleCollective": "9,10,11,12,13,14,15,16", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "cc72d3465e2a4acbb0e595230561a968", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H25 - 32, T2", - "Dosage": 2, - "AssistA": " 吹样(1ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 4, - "HoleCollective": "25,26,27,28,29,30,31,32", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "63bd077fa4f84bc9a962dd515be9a589", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H9 - 16, T5", - "Dosage": 2, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 2, - "HoleCollective": "9,10,11,12,13,14,15,16", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "fdf03f35171547c79182673ee69160fa", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H33 - 40, T2", - "Dosage": 2, - "AssistA": " 吹样(1ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 5, - "HoleCollective": "33,34,35,36,37,38,39,40", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "13a4dacdaa454f6f82c6d5ba9d70c462", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H9 - 16, T5", - "Dosage": 2, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 2, - "HoleCollective": "9,10,11,12,13,14,15,16", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "2ec8fe36815c4f50aea4e949bb07d4ed", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H41 - 48, T2", - "Dosage": 2, - "AssistA": " 吹样(1ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 6, - "HoleCollective": "41,42,43,44,45,46,47,48", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "6cb5fb98df50443aa1ca50730767f83a", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T6", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 6, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "d8d6c2ccdf3a4c32970520497c470b44", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Load", - "Place": "H17 - 24, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "17,18,19,20,21,22,23,24", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "871707a7ded348118c1a2b791330db2f", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H17 - 24, T5", - "Dosage": 2, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "17,18,19,20,21,22,23,24", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "a78ca69fe8684f57ae288007c03ff382", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H49 - 56, T2", - "Dosage": 2, - "AssistA": " 吹样(1ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 7, - "HoleCollective": "49,50,51,52,53,54,55,56", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "4c1a27a373f3432b90e5ad461581e5f8", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H17 - 24, T5", - "Dosage": 2, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "17,18,19,20,21,22,23,24", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "a8e153df15494020a98f90191f4fb024", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H57 - 64, T2", - "Dosage": 2, - "AssistA": " 吹样(1ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 8, - "HoleCollective": "57,58,59,60,61,62,63,64", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "4e6ff668eb664c278f75625838a560e6", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H17 - 24, T5", - "Dosage": 2, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "17,18,19,20,21,22,23,24", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "87639565c9d94aeba72b192a0bf3ddc6", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H65 - 72, T2", - "Dosage": 2, - "AssistA": " 吹样(1ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 9, - "HoleCollective": "65,66,67,68,69,70,71,72", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "9b4811994a48472dacb91e995b9254ae", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T6", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 6, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "a3cdc5cded2f47359d416a48e20468aa", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Load", - "Place": "H0 - 32, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 4, - "HoleCollective": "0,0,27,28,29,30,31,32", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "d419fdbdf48c4b2db7519c887504fbbc", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H1 - 8, T3", - "Dosage": 2, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "abd35a4f4bd84353b4ab175cc3495772", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H73 - 80, T2", - "Dosage": 2, - "AssistA": " 吹样(1ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 10, - "HoleCollective": "73,74,75,76,77,78,79,80", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "8a3024fdf3c541a8ba2d48202d3868c0", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H1 - 8, T3", - "Dosage": 2, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "2e298fb663874e8d9935edbad8b2f8ae", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H81 - 88, T2", - "Dosage": 2, - "AssistA": " 吹样(1ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 11, - "HoleCollective": "81,82,83,84,85,86,87,88", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "3a2c60f625cb478484d901087919a88f", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H1 - 8, T3", - "Dosage": 2, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "61e71fc2faa34fbb8bad67aaf22b9305", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H89 - 96, T2", - "Dosage": 2, - "AssistA": " 吹样(1ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 12, - "HoleCollective": "89,90,91,92,93,94,95,96", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "89e3188302334745aa4319ad3be4ad16", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T6", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 6, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "094ba4d12de84702a24967cc7d25c2fb", - "uuidPlanMaster": "bbd6dc765867466ca2a415525f5bdbdd", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1 - 8, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "06685f07d5f049f18940e7ce45705138", - "uuidPlanMaster": "bbd6dc765867466ca2a415525f5bdbdd", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H1 - 8, T5", - "Dosage": 300, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "c48153bf0b08423daaf6b77c26cf2c05", - "uuidPlanMaster": "bbd6dc765867466ca2a415525f5bdbdd", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1 - 8, T2", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "2eade7683c594aa2848574082d7f513b", - "uuidPlanMaster": "bbd6dc765867466ca2a415525f5bdbdd", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H9 - 16, T2", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 2, - "HoleCollective": "9,10,11,12,13,14,15,16", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "afd8a3545f264bd38eae382f0f54f5df", - "uuidPlanMaster": "bbd6dc765867466ca2a415525f5bdbdd", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H17 - 24, T2", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "17,18,19,20,21,22,23,24", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "80618dbfaf2f45efa41a99e60a3f1c60", - "uuidPlanMaster": "bbd6dc765867466ca2a415525f5bdbdd", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H25 - 32, T2", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 4, - "HoleCollective": "25,26,27,28,29,30,31,32", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "784df951b6e94693a818ee30c2d15731", - "uuidPlanMaster": "bbd6dc765867466ca2a415525f5bdbdd", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H33 - 40, T2", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 5, - "HoleCollective": "33,34,35,36,37,38,39,40", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "768844dd655e4978a44d2ef70c0827d2", - "uuidPlanMaster": "bbd6dc765867466ca2a415525f5bdbdd", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H41 - 48, T2", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 6, - "HoleCollective": "41,42,43,44,45,46,47,48", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "86610edc34d4429c878e3ce62234911f", - "uuidPlanMaster": "bbd6dc765867466ca2a415525f5bdbdd", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H49 - 56, T2", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 7, - "HoleCollective": "49,50,51,52,53,54,55,56", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "dbe793e1710844ca961679466d7abca8", - "uuidPlanMaster": "bbd6dc765867466ca2a415525f5bdbdd", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H57 - 64, T2", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 8, - "HoleCollective": "57,58,59,60,61,62,63,64", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "d09a7122d8a24dcd8420b3ce1e05224a", - "uuidPlanMaster": "bbd6dc765867466ca2a415525f5bdbdd", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H65 - 72, T2", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 9, - "HoleCollective": "65,66,67,68,69,70,71,72", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "539409355a8f48988d1b46066b913079", - "uuidPlanMaster": "bbd6dc765867466ca2a415525f5bdbdd", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H73 - 80, T2", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 10, - "HoleCollective": "73,74,75,76,77,78,79,80", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "f71294d6e707406ebcc6018af3d70ed0", - "uuidPlanMaster": "bbd6dc765867466ca2a415525f5bdbdd", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H81 - 88, T2", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 11, - "HoleCollective": "81,82,83,84,85,86,87,88", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "79da7fc845aa4bf5aa8024a8b40acef2", - "uuidPlanMaster": "bbd6dc765867466ca2a415525f5bdbdd", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H89 - 96, T2", - "Dosage": 25, - "AssistA": " 吹样(10ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 12, - "HoleCollective": "89,90,91,92,93,94,95,96", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "e136074897794c12aa4a24256d9dd401", - "uuidPlanMaster": "bbd6dc765867466ca2a415525f5bdbdd", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H1 - 8, T5", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "5224ff644c804135ab90471b233efc81", - "uuidPlanMaster": "bbd6dc765867466ca2a415525f5bdbdd", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H89 - 96, T2", - "Dosage": 25, - "AssistA": " 吹样(10ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 12, - "HoleCollective": "89,90,91,92,93,94,95,96", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "13c7a046a15545ea8c408ae5a33d028f", - "uuidPlanMaster": "bbd6dc765867466ca2a415525f5bdbdd", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T6", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 6, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "2b341f1c6e694d878412ee7d9d04bc19", - "uuidPlanMaster": "bbd6dc765867466ca2a415525f5bdbdd", - "Axis": "Left", - "ActOn": "Load", - "Place": "H16 - 16, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 2, - "HoleCollective": "16", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "682fb8f4d5924327a9bf42197ef7569b", - "uuidPlanMaster": "bbd6dc765867466ca2a415525f5bdbdd", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H0 - 4, T3", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "0,0,0,0,1,2,3,4", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "285b18aef0444f07aa180e868b7ded24", - "uuidPlanMaster": "bbd6dc765867466ca2a415525f5bdbdd", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1 - 8, T2", - "Dosage": 25, - "AssistA": " 吹样(10ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "4f36aeba959547d7b9b9bd9e09811fa6", - "uuidPlanMaster": "bbd6dc765867466ca2a415525f5bdbdd", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T6", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 6, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "21a286bb40c34379ae9a661ec31a65a8", - "uuidPlanMaster": "bbd6dc765867466ca2a415525f5bdbdd", - "Axis": "Left", - "ActOn": "Load", - "Place": "H0 - 16, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 7, - "HoleColum": 2, - "HoleCollective": "0,0,0,0,0,0,15,16", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "7710fa9daf5d4d15874f604679911b13", - "uuidPlanMaster": "bbd6dc765867466ca2a415525f5bdbdd", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H0 - 4, T3", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 1, - "HoleCollective": "0,0,0,0,0,2,3,4", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "6e0723ee484b41bca3bb7b798083d5b4", - "uuidPlanMaster": "bbd6dc765867466ca2a415525f5bdbdd", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 8, T2", - "Dosage": 25, - "AssistA": " 吹样(10ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 1, - "HoleCollective": "0,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "2d3122fc64584864bf16dcff547b3268", - "uuidPlanMaster": "bbd6dc765867466ca2a415525f5bdbdd", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T6", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 6, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "ca45a1e757cf4a6e84f01d824269ff7d", - "uuidPlanMaster": "bbd6dc765867466ca2a415525f5bdbdd", - "Axis": "Left", - "ActOn": "Load", - "Place": "H0 - 16, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 6, - "HoleColum": 2, - "HoleCollective": "0,0,0,0,0,14,15,16", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "5856f403dd614621b75aea904c1e5414", - "uuidPlanMaster": "bbd6dc765867466ca2a415525f5bdbdd", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H0 - 4, T3", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 1, - "HoleCollective": "0,0,0,0,0,0,3,4", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "52a441ba68944a01af1746b35767c601", - "uuidPlanMaster": "bbd6dc765867466ca2a415525f5bdbdd", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 8, T2", - "Dosage": 25, - "AssistA": " 吹样(10ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 1, - "HoleCollective": "0,0,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "958e212ed27446c7a1b856be3b324bc9", - "uuidPlanMaster": "bbd6dc765867466ca2a415525f5bdbdd", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T6", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 6, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "2c45ba37428348ab8d1474bb0bc22e46", - "uuidPlanMaster": "bbd6dc765867466ca2a415525f5bdbdd", - "Axis": "Left", - "ActOn": "Load", - "Place": "H0 - 16, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 2, - "HoleCollective": "0,0,0,0,13,14,15,16", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "6ac6d7ae6d254c1ebfc99da8ac352391", - "uuidPlanMaster": "bbd6dc765867466ca2a415525f5bdbdd", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H4 - 4, T3", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 1, - "HoleCollective": "4", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "afcf0ba64009489b9254c4ba84c3f230", - "uuidPlanMaster": "bbd6dc765867466ca2a415525f5bdbdd", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 8, T2", - "Dosage": 25, - "AssistA": " 吹样(10ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 1, - "HoleCollective": "0,0,0,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "6d2cc57676f840d283749f21e900d14f", - "uuidPlanMaster": "bbd6dc765867466ca2a415525f5bdbdd", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T6", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 6, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "84385575aa9a4e4ca9b422a9726e6def", - "uuidPlanMaster": "bbd6dc765867466ca2a415525f5bdbdd", - "Axis": "Left", - "ActOn": "Load", - "Place": "H0 - 16, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 2, - "HoleCollective": "0,0,0,12,13,14,15,16", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "91da1b4c80884de39e0b044efab86fe8", - "uuidPlanMaster": "bbd6dc765867466ca2a415525f5bdbdd", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H0 - 8, T3", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 2, - "HoleCollective": "0,0,0,0,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "e8120d497011463182dbb0ab93dee672", - "uuidPlanMaster": "bbd6dc765867466ca2a415525f5bdbdd", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 16, T2", - "Dosage": 25, - "AssistA": " 吹样(10ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 2, - "HoleCollective": "0,0,0,0,13,14,15,16", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "7634a550712749a1932a8d73696927f3", - "uuidPlanMaster": "bbd6dc765867466ca2a415525f5bdbdd", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T6", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 6, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "c278d70d397a415a91f36755c11eb554", - "uuidPlanMaster": "bbd6dc765867466ca2a415525f5bdbdd", - "Axis": "Left", - "ActOn": "Load", - "Place": "H0 - 16, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 2, - "HoleCollective": "0,0,11,12,13,14,15,16", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "f26088e5c6544ad3a2ef1ab8c8f17a7d", - "uuidPlanMaster": "bbd6dc765867466ca2a415525f5bdbdd", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H0 - 8, T3", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 2, - "HoleCollective": "0,0,0,0,0,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "71cf8d2e49ec44e2b6cf0bc77cf6d54f", - "uuidPlanMaster": "bbd6dc765867466ca2a415525f5bdbdd", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 16, T2", - "Dosage": 25, - "AssistA": " 吹样(10ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 6, - "HoleColum": 2, - "HoleCollective": "0,0,0,0,0,14,15,16", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "a208ca6dbdff443592739a55e7637818", - "uuidPlanMaster": "bbd6dc765867466ca2a415525f5bdbdd", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T6", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 6, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "3c24afdae42846a0bb89ba717ed13d27", - "uuidPlanMaster": "bbd6dc765867466ca2a415525f5bdbdd", - "Axis": "Left", - "ActOn": "Load", - "Place": "H0 - 16, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 2, - "HoleCollective": "0,10,11,12,13,14,15,16", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "987952b2a9fa4f12bd62c407b8fe839a", - "uuidPlanMaster": "bbd6dc765867466ca2a415525f5bdbdd", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H0 - 8, T3", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 2, - "HoleCollective": "0,0,0,0,0,0,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "243154c52d974abe89a9e019d42c6689", - "uuidPlanMaster": "bbd6dc765867466ca2a415525f5bdbdd", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 16, T2", - "Dosage": 25, - "AssistA": " 吹样(10ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 7, - "HoleColum": 2, - "HoleCollective": "0,0,0,0,0,0,15,16", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "63fc5948a2aa471485bcae90a23ca1be", - "uuidPlanMaster": "bbd6dc765867466ca2a415525f5bdbdd", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T6", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 6, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "2104246907a64ff4bfa967824b19afe7", - "uuidPlanMaster": "bbd6dc765867466ca2a415525f5bdbdd", - "Axis": "Left", - "ActOn": "Load", - "Place": "H9 - 16, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 2, - "HoleCollective": "9,10,11,12,13,14,15,16", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "203aa87abf1b42a9b56c68a099198b31", - "uuidPlanMaster": "bbd6dc765867466ca2a415525f5bdbdd", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H8 - 8, T3", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 2, - "HoleCollective": "8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "477196aa60174a239cd208267835d392", - "uuidPlanMaster": "bbd6dc765867466ca2a415525f5bdbdd", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H16 - 16, T2", - "Dosage": 25, - "AssistA": " 吹样(10ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 2, - "HoleCollective": "16", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "9c48cead225b41deba45b4d05206d554", - "uuidPlanMaster": "bbd6dc765867466ca2a415525f5bdbdd", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T6", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 6, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "763674532ced415d8002aca3cc52d06d", - "uuidPlanMaster": "bbd6dc765867466ca2a415525f5bdbdd", - "Axis": "Left", - "ActOn": "Load", - "Place": "H17 - 24, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "17,18,19,20,21,22,23,24", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "88d18336d1b0423197c4a583251bab20", - "uuidPlanMaster": "bbd6dc765867466ca2a415525f5bdbdd", - "Axis": "Left", - "ActOn": "Blending", - "Place": "H1 - 8, T2", - "Dosage": 40, - "AssistA": " 加样(25ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 10, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "09e9910275dc43e7a468bdb680c999b7", - "uuidPlanMaster": "bbd6dc765867466ca2a415525f5bdbdd", - "Axis": "Left", - "ActOn": "Blending", - "Place": "H9 - 16, T2", - "Dosage": 40, - "AssistA": " 加样(25ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 2, - "HoleCollective": "9,10,11,12,13,14,15,16", - "MixCount": 10, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "b80847ea2f4c49598844dd605f9036c1", - "uuidPlanMaster": "bbd6dc765867466ca2a415525f5bdbdd", - "Axis": "Left", - "ActOn": "Blending", - "Place": "H17 - 24, T2", - "Dosage": 40, - "AssistA": " 加样(25ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "17,18,19,20,21,22,23,24", - "MixCount": 10, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "9765013d11804698b7110a040af665b9", - "uuidPlanMaster": "bbd6dc765867466ca2a415525f5bdbdd", - "Axis": "Left", - "ActOn": "Blending", - "Place": "H25 - 32, T2", - "Dosage": 40, - "AssistA": " 加样(25ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 4, - "HoleCollective": "25,26,27,28,29,30,31,32", - "MixCount": 10, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "f4dd9a853e304e708b16852e8f306f3f", - "uuidPlanMaster": "bbd6dc765867466ca2a415525f5bdbdd", - "Axis": "Left", - "ActOn": "Blending", - "Place": "H33 - 40, T2", - "Dosage": 40, - "AssistA": " 加样(25ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 5, - "HoleCollective": "33,34,35,36,37,38,39,40", - "MixCount": 10, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "beb3ba3e9922436a86899c6f7c2c64f2", - "uuidPlanMaster": "bbd6dc765867466ca2a415525f5bdbdd", - "Axis": "Left", - "ActOn": "Blending", - "Place": "H41 - 48, T2", - "Dosage": 40, - "AssistA": " 加样(25ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 6, - "HoleCollective": "41,42,43,44,45,46,47,48", - "MixCount": 10, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "9339132676904850a34ddc773a490b99", - "uuidPlanMaster": "bbd6dc765867466ca2a415525f5bdbdd", - "Axis": "Left", - "ActOn": "Blending", - "Place": "H49 - 56, T2", - "Dosage": 40, - "AssistA": " 加样(25ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 7, - "HoleCollective": "49,50,51,52,53,54,55,56", - "MixCount": 10, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "05f2b8f8b253491dab2f8074d881afc8", - "uuidPlanMaster": "bbd6dc765867466ca2a415525f5bdbdd", - "Axis": "Left", - "ActOn": "Blending", - "Place": "H57 - 64, T2", - "Dosage": 40, - "AssistA": " 加样(25ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 8, - "HoleCollective": "57,58,59,60,61,62,63,64", - "MixCount": 10, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "b83d25187be547968675ee58f6a0f70b", - "uuidPlanMaster": "bbd6dc765867466ca2a415525f5bdbdd", - "Axis": "Left", - "ActOn": "Blending", - "Place": "H65 - 72, T2", - "Dosage": 40, - "AssistA": " 加样(25ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 9, - "HoleCollective": "65,66,67,68,69,70,71,72", - "MixCount": 10, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "292b1ff097554aba8b64efcc79f71b9e", - "uuidPlanMaster": "bbd6dc765867466ca2a415525f5bdbdd", - "Axis": "Left", - "ActOn": "Blending", - "Place": "H73 - 80, T2", - "Dosage": 40, - "AssistA": " 加样(25ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 10, - "HoleCollective": "73,74,75,76,77,78,79,80", - "MixCount": 10, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "af7c070a4caf493698716af5dba836c7", - "uuidPlanMaster": "bbd6dc765867466ca2a415525f5bdbdd", - "Axis": "Left", - "ActOn": "Blending", - "Place": "H81 - 88, T2", - "Dosage": 40, - "AssistA": " 加样(25ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 11, - "HoleCollective": "81,82,83,84,85,86,87,88", - "MixCount": 10, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "09d818e22d8b4e7099158fb57c52bf9e", - "uuidPlanMaster": "bbd6dc765867466ca2a415525f5bdbdd", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T6", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 6, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "e612ab0b0f4a4b5ea7880446ef3660b8", - "uuidPlanMaster": "bbd6dc765867466ca2a415525f5bdbdd", - "Axis": "Left", - "ActOn": "Load", - "Place": "H25 - 32, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 4, - "HoleCollective": "25,26,27,28,29,30,31,32", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "759690f936794f019d1380e25f681e69", - "uuidPlanMaster": "bbd6dc765867466ca2a415525f5bdbdd", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H9 - 16, T5", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 2, - "HoleCollective": "9,10,11,12,13,14,15,16", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "d68521eab1e649849bcc9a4b151bd605", - "uuidPlanMaster": "bbd6dc765867466ca2a415525f5bdbdd", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1 - 8, T2", - "Dosage": 25, - "AssistA": " 吹样(150ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 10, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "fc02424e315449e997b14db81f75f66d", - "uuidPlanMaster": "bbd6dc765867466ca2a415525f5bdbdd", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H9 - 16, T5", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 2, - "HoleCollective": "9,10,11,12,13,14,15,16", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "d2d142f7eb164e96a9727875cf00880e", - "uuidPlanMaster": "bbd6dc765867466ca2a415525f5bdbdd", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H9 - 16, T2", - "Dosage": 25, - "AssistA": " 吹样(150ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 2, - "HoleCollective": "9,10,11,12,13,14,15,16", - "MixCount": 0, - "HeightFromBottom": 10, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "48ee438a5bc3462d81a6eec0fcef859b", - "uuidPlanMaster": "bbd6dc765867466ca2a415525f5bdbdd", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H9 - 16, T5", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 2, - "HoleCollective": "9,10,11,12,13,14,15,16", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "75ef4c395206416083e3959c08943020", - "uuidPlanMaster": "bbd6dc765867466ca2a415525f5bdbdd", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H17 - 24, T2", - "Dosage": 25, - "AssistA": " 吹样(150ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "17,18,19,20,21,22,23,24", - "MixCount": 0, - "HeightFromBottom": 10, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "16c81608fd99492b946d7ae1f2404e95", - "uuidPlanMaster": "bbd6dc765867466ca2a415525f5bdbdd", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H9 - 16, T5", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 2, - "HoleCollective": "9,10,11,12,13,14,15,16", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "7108e181988e42b7a4e05dbd706357cc", - "uuidPlanMaster": "bbd6dc765867466ca2a415525f5bdbdd", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H25 - 32, T2", - "Dosage": 25, - "AssistA": " 吹样(150ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 4, - "HoleCollective": "25,26,27,28,29,30,31,32", - "MixCount": 0, - "HeightFromBottom": 10, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "ed56447cf7b34e6fae9d951c177ab4ff", - "uuidPlanMaster": "bbd6dc765867466ca2a415525f5bdbdd", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H9 - 16, T5", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 2, - "HoleCollective": "9,10,11,12,13,14,15,16", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "3dd3ba90a5f54c8a93e87e688784a61c", - "uuidPlanMaster": "bbd6dc765867466ca2a415525f5bdbdd", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H33 - 40, T2", - "Dosage": 25, - "AssistA": " 吹样(150ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 5, - "HoleCollective": "33,34,35,36,37,38,39,40", - "MixCount": 0, - "HeightFromBottom": 10, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "fb9ce5120d5e40a0b83598837e0e06cf", - "uuidPlanMaster": "bbd6dc765867466ca2a415525f5bdbdd", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H9 - 16, T5", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 2, - "HoleCollective": "9,10,11,12,13,14,15,16", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "56e2f542ffab4a4e9a3ee2137833d729", - "uuidPlanMaster": "bbd6dc765867466ca2a415525f5bdbdd", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H41 - 48, T2", - "Dosage": 25, - "AssistA": " 吹样(150ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 6, - "HoleCollective": "41,42,43,44,45,46,47,48", - "MixCount": 0, - "HeightFromBottom": 10, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "3c8aff33052b4c9a99e6292cea5b487b", - "uuidPlanMaster": "bbd6dc765867466ca2a415525f5bdbdd", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H9 - 16, T5", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 2, - "HoleCollective": "9,10,11,12,13,14,15,16", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "1e6c155d621745c9bb8d14ac5107d999", - "uuidPlanMaster": "bbd6dc765867466ca2a415525f5bdbdd", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H49 - 56, T2", - "Dosage": 25, - "AssistA": " 吹样(150ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 7, - "HoleCollective": "49,50,51,52,53,54,55,56", - "MixCount": 0, - "HeightFromBottom": 10, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "3b526daa39a44212b5c068fdc299feab", - "uuidPlanMaster": "bbd6dc765867466ca2a415525f5bdbdd", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H9 - 16, T5", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 2, - "HoleCollective": "9,10,11,12,13,14,15,16", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "8447482b97254ce18f4ab33b7e353123", - "uuidPlanMaster": "bbd6dc765867466ca2a415525f5bdbdd", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H57 - 64, T2", - "Dosage": 25, - "AssistA": " 吹样(150ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 8, - "HoleCollective": "57,58,59,60,61,62,63,64", - "MixCount": 0, - "HeightFromBottom": 10, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "17729aee33f942f98711f6121f79990c", - "uuidPlanMaster": "bbd6dc765867466ca2a415525f5bdbdd", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H9 - 16, T5", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 2, - "HoleCollective": "9,10,11,12,13,14,15,16", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "7738e4709e0a4327ae441e14886865b2", - "uuidPlanMaster": "bbd6dc765867466ca2a415525f5bdbdd", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H65 - 72, T2", - "Dosage": 25, - "AssistA": " 吹样(150ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 9, - "HoleCollective": "65,66,67,68,69,70,71,72", - "MixCount": 0, - "HeightFromBottom": 10, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "89acabf30e4f44aaa13fd5dcf6788f00", - "uuidPlanMaster": "bbd6dc765867466ca2a415525f5bdbdd", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H9 - 16, T5", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 2, - "HoleCollective": "9,10,11,12,13,14,15,16", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "e96a3673fa36401dae12e880d54f1a3e", - "uuidPlanMaster": "bbd6dc765867466ca2a415525f5bdbdd", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H73 - 80, T2", - "Dosage": 25, - "AssistA": " 吹样(150ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 10, - "HoleCollective": "73,74,75,76,77,78,79,80", - "MixCount": 0, - "HeightFromBottom": 10, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "6c75cfeacd3b4fb6a993416d174eca88", - "uuidPlanMaster": "bbd6dc765867466ca2a415525f5bdbdd", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H9 - 16, T5", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 2, - "HoleCollective": "9,10,11,12,13,14,15,16", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "dde0fef2ca0b4bf7a067d818dd6219a0", - "uuidPlanMaster": "bbd6dc765867466ca2a415525f5bdbdd", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H81 - 88, T2", - "Dosage": 25, - "AssistA": " 吹样(150ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 11, - "HoleCollective": "81,82,83,84,85,86,87,88", - "MixCount": 0, - "HeightFromBottom": 10, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "8cd8286678b343b082a46b1ad8c3eb7d", - "uuidPlanMaster": "bbd6dc765867466ca2a415525f5bdbdd", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T6", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 6, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "a904d06dce564c0fbdecb7d460070c1b", - "uuidPlanMaster": "bbd6dc765867466ca2a415525f5bdbdd", - "Axis": "Left", - "ActOn": "Load", - "Place": "H33 - 40, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 5, - "HoleCollective": "33,34,35,36,37,38,39,40", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "918de5e5b75746138c3430b708bd9058", - "uuidPlanMaster": "bbd6dc765867466ca2a415525f5bdbdd", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H17 - 24, T5", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "17,18,19,20,21,22,23,24", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "82a0b7ff62eb45fba09fd44c30781c3d", - "uuidPlanMaster": "bbd6dc765867466ca2a415525f5bdbdd", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1 - 8, T2", - "Dosage": 25, - "AssistA": " 吹样(150ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 10, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "de6415addac44fe5997294d32543eab6", - "uuidPlanMaster": "bbd6dc765867466ca2a415525f5bdbdd", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H17 - 24, T5", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "17,18,19,20,21,22,23,24", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "223bc91726af43d5b7ab163046278dd1", - "uuidPlanMaster": "bbd6dc765867466ca2a415525f5bdbdd", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H9 - 16, T2", - "Dosage": 25, - "AssistA": " 吹样(150ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 2, - "HoleCollective": "9,10,11,12,13,14,15,16", - "MixCount": 0, - "HeightFromBottom": 10, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "b3954f4751a24534a970e80366cfeb9b", - "uuidPlanMaster": "bbd6dc765867466ca2a415525f5bdbdd", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H17 - 24, T5", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "17,18,19,20,21,22,23,24", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "f0ea453e6eaf47b88ca0ff0b7bde3d1b", - "uuidPlanMaster": "bbd6dc765867466ca2a415525f5bdbdd", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H17 - 24, T2", - "Dosage": 25, - "AssistA": " 吹样(150ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "17,18,19,20,21,22,23,24", - "MixCount": 0, - "HeightFromBottom": 10, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "8c472c41a87a4326aad2cad929d05389", - "uuidPlanMaster": "bbd6dc765867466ca2a415525f5bdbdd", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H17 - 24, T5", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "17,18,19,20,21,22,23,24", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "c2f61c630b774f9892c9a83a6d7ce8e6", - "uuidPlanMaster": "bbd6dc765867466ca2a415525f5bdbdd", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H25 - 32, T2", - "Dosage": 25, - "AssistA": " 吹样(150ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 4, - "HoleCollective": "25,26,27,28,29,30,31,32", - "MixCount": 0, - "HeightFromBottom": 10, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "a7b49fa4299d4e0898c0f4ba7775284f", - "uuidPlanMaster": "bbd6dc765867466ca2a415525f5bdbdd", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H17 - 24, T5", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "17,18,19,20,21,22,23,24", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "416b9e6c6fab496ab6ffda6d1e575112", - "uuidPlanMaster": "bbd6dc765867466ca2a415525f5bdbdd", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H33 - 40, T2", - "Dosage": 25, - "AssistA": " 吹样(150ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 5, - "HoleCollective": "33,34,35,36,37,38,39,40", - "MixCount": 0, - "HeightFromBottom": 10, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "82ed6931257044989a75801e685677d9", - "uuidPlanMaster": "bbd6dc765867466ca2a415525f5bdbdd", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H17 - 24, T5", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "17,18,19,20,21,22,23,24", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "a132e9ae4443420fa7993245830fa2ba", - "uuidPlanMaster": "bbd6dc765867466ca2a415525f5bdbdd", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H41 - 48, T2", - "Dosage": 25, - "AssistA": " 吹样(150ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 6, - "HoleCollective": "41,42,43,44,45,46,47,48", - "MixCount": 0, - "HeightFromBottom": 10, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "92796e995f964fb0a880fbe1743e65fd", - "uuidPlanMaster": "bbd6dc765867466ca2a415525f5bdbdd", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H17 - 24, T5", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "17,18,19,20,21,22,23,24", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "1c0fee9d4a4545d49e09b59063b024b4", - "uuidPlanMaster": "bbd6dc765867466ca2a415525f5bdbdd", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H49 - 56, T2", - "Dosage": 25, - "AssistA": " 吹样(150ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 7, - "HoleCollective": "49,50,51,52,53,54,55,56", - "MixCount": 0, - "HeightFromBottom": 10, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "034d285e53d84764833cde040e73c2b8", - "uuidPlanMaster": "bbd6dc765867466ca2a415525f5bdbdd", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H17 - 24, T5", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "17,18,19,20,21,22,23,24", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "fc545d20c5784edd90ce4c6d5f9d0f28", - "uuidPlanMaster": "bbd6dc765867466ca2a415525f5bdbdd", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H57 - 64, T2", - "Dosage": 25, - "AssistA": " 吹样(150ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 8, - "HoleCollective": "57,58,59,60,61,62,63,64", - "MixCount": 0, - "HeightFromBottom": 10, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "8505c78d0a18433b8ae4192fb7c8a457", - "uuidPlanMaster": "bbd6dc765867466ca2a415525f5bdbdd", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H17 - 24, T5", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "17,18,19,20,21,22,23,24", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "9f351e486bef41129e5cb68f78cf8f6a", - "uuidPlanMaster": "bbd6dc765867466ca2a415525f5bdbdd", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H65 - 72, T2", - "Dosage": 25, - "AssistA": " 吹样(150ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 9, - "HoleCollective": "65,66,67,68,69,70,71,72", - "MixCount": 0, - "HeightFromBottom": 10, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "558aaf9ef9304f14aae73fc327ef74e3", - "uuidPlanMaster": "bbd6dc765867466ca2a415525f5bdbdd", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H17 - 24, T5", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "17,18,19,20,21,22,23,24", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "fb58c4928ee74d639b51564a8951f0fa", - "uuidPlanMaster": "bbd6dc765867466ca2a415525f5bdbdd", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H73 - 80, T2", - "Dosage": 25, - "AssistA": " 吹样(150ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 10, - "HoleCollective": "73,74,75,76,77,78,79,80", - "MixCount": 0, - "HeightFromBottom": 10, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "0177ce8b421b4e2b9d831f4e96882305", - "uuidPlanMaster": "bbd6dc765867466ca2a415525f5bdbdd", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H17 - 24, T5", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "17,18,19,20,21,22,23,24", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "306b68bcdf8140e9bd2c4ed2b5091eb3", - "uuidPlanMaster": "bbd6dc765867466ca2a415525f5bdbdd", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H81 - 88, T2", - "Dosage": 25, - "AssistA": " 吹样(150ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 11, - "HoleCollective": "81,82,83,84,85,86,87,88", - "MixCount": 0, - "HeightFromBottom": 10, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "3460b13048004da8a33d9342b18e70e2", - "uuidPlanMaster": "bbd6dc765867466ca2a415525f5bdbdd", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T6", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 6, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "5ee1e1a7361742d9855a69b5469de7fa", - "uuidPlanMaster": "f7282ecbfee44e91b05cefbc1beac1ae", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1 - 8, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "b413ef56f61a4e0296547a96ec4f3d82", - "uuidPlanMaster": "f7282ecbfee44e91b05cefbc1beac1ae", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H1 - 8, T5", - "Dosage": 300, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "446f02939a774ae185a53fe10a4c8069", - "uuidPlanMaster": "f7282ecbfee44e91b05cefbc1beac1ae", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1 - 8, T2", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "dc5c4b4a14534cb9a9df0e1774e47dee", - "uuidPlanMaster": "f7282ecbfee44e91b05cefbc1beac1ae", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H9 - 16, T2", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 2, - "HoleCollective": "9,10,11,12,13,14,15,16", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "51ffddaf04ff46679f97c1c42a25d456", - "uuidPlanMaster": "f7282ecbfee44e91b05cefbc1beac1ae", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H17 - 24, T2", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "17,18,19,20,21,22,23,24", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "5224c82a92b04b06b9790be3fd2eacaf", - "uuidPlanMaster": "f7282ecbfee44e91b05cefbc1beac1ae", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H25 - 32, T2", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 4, - "HoleCollective": "25,26,27,28,29,30,31,32", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "a0e97a364e5d4b11894b19954a6e023b", - "uuidPlanMaster": "f7282ecbfee44e91b05cefbc1beac1ae", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H33 - 40, T2", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 5, - "HoleCollective": "33,34,35,36,37,38,39,40", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "6d1611be024346cbaed91dc887b21695", - "uuidPlanMaster": "f7282ecbfee44e91b05cefbc1beac1ae", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H41 - 48, T2", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 6, - "HoleCollective": "41,42,43,44,45,46,47,48", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "1c453b2f1f8f4b3a95ada9dca41888b0", - "uuidPlanMaster": "f7282ecbfee44e91b05cefbc1beac1ae", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H49 - 56, T2", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 7, - "HoleCollective": "49,50,51,52,53,54,55,56", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "aa43f09e721e4b5c8d4a1502155d2b9c", - "uuidPlanMaster": "f7282ecbfee44e91b05cefbc1beac1ae", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H57 - 64, T2", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 8, - "HoleCollective": "57,58,59,60,61,62,63,64", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "f1c11318b59c4e9f847c80504b0385eb", - "uuidPlanMaster": "f7282ecbfee44e91b05cefbc1beac1ae", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H65 - 72, T2", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 9, - "HoleCollective": "65,66,67,68,69,70,71,72", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "88b06e6b08824476a1a82d309f1c5419", - "uuidPlanMaster": "f7282ecbfee44e91b05cefbc1beac1ae", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H73 - 80, T2", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 10, - "HoleCollective": "73,74,75,76,77,78,79,80", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "a52dad9236ca4976a09b601b075d381f", - "uuidPlanMaster": "f7282ecbfee44e91b05cefbc1beac1ae", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H81 - 88, T2", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 11, - "HoleCollective": "81,82,83,84,85,86,87,88", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "a50f1f5cecdb4cbf98b37f35b2b6a357", - "uuidPlanMaster": "f7282ecbfee44e91b05cefbc1beac1ae", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H89 - 96, T2", - "Dosage": 25, - "AssistA": " 吹样(10ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 12, - "HoleCollective": "89,90,91,92,93,94,95,96", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "4e1c87fdc92a49a7bbe0a28cc2cda88f", - "uuidPlanMaster": "f7282ecbfee44e91b05cefbc1beac1ae", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H1 - 8, T5", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "202e0f3e3a574e92b0a4b716e8aa5410", - "uuidPlanMaster": "f7282ecbfee44e91b05cefbc1beac1ae", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H89 - 96, T2", - "Dosage": 25, - "AssistA": " 吹样(10ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 12, - "HoleCollective": "89,90,91,92,93,94,95,96", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "4d9d62dad9f14960ba45d81f5a5c755e", - "uuidPlanMaster": "f7282ecbfee44e91b05cefbc1beac1ae", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T6", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 6, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "ffc09f4a9e7542c2aa92a172a1665f76", - "uuidPlanMaster": "f7282ecbfee44e91b05cefbc1beac1ae", - "Axis": "Left", - "ActOn": "Load", - "Place": "H16 - 16, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 2, - "HoleCollective": "16", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "42b5346528fc4310a56d354fdf1489c0", - "uuidPlanMaster": "f7282ecbfee44e91b05cefbc1beac1ae", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H0 - 4, T3", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "0,0,0,0,1,2,3,4", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "152483229bec4892bc7895d1a8beefe5", - "uuidPlanMaster": "f7282ecbfee44e91b05cefbc1beac1ae", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1 - 8, T2", - "Dosage": 25, - "AssistA": " 吹样(10ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "4fe51957732348b3b1c29cdee95c0d17", - "uuidPlanMaster": "f7282ecbfee44e91b05cefbc1beac1ae", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T6", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 6, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "b4d54f43b2ed4559ba0ca8ef3dccd01e", - "uuidPlanMaster": "f7282ecbfee44e91b05cefbc1beac1ae", - "Axis": "Left", - "ActOn": "Load", - "Place": "H0 - 16, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 7, - "HoleColum": 2, - "HoleCollective": "0,0,0,0,0,0,15,16", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "0ba51dae872c4bc8bc2d489a0234dae3", - "uuidPlanMaster": "f7282ecbfee44e91b05cefbc1beac1ae", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H0 - 4, T3", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 1, - "HoleCollective": "0,0,0,0,0,2,3,4", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "9aad3390e6924673a0a93b98a3a1d480", - "uuidPlanMaster": "f7282ecbfee44e91b05cefbc1beac1ae", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 8, T2", - "Dosage": 25, - "AssistA": " 吹样(10ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 1, - "HoleCollective": "0,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "bacfb9c5dba64786b2b8f2096e65fca2", - "uuidPlanMaster": "f7282ecbfee44e91b05cefbc1beac1ae", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T6", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 6, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "58370b26a75b4c32bd10b40cbfa3928d", - "uuidPlanMaster": "f7282ecbfee44e91b05cefbc1beac1ae", - "Axis": "Left", - "ActOn": "Load", - "Place": "H0 - 16, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 6, - "HoleColum": 2, - "HoleCollective": "0,0,0,0,0,14,15,16", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "f3f63ea73249457d84f54a5544ee2c93", - "uuidPlanMaster": "f7282ecbfee44e91b05cefbc1beac1ae", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H0 - 4, T3", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 1, - "HoleCollective": "0,0,0,0,0,0,3,4", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "a873e0aab63d4fee9cd5c592c2c6a60a", - "uuidPlanMaster": "f7282ecbfee44e91b05cefbc1beac1ae", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 8, T2", - "Dosage": 25, - "AssistA": " 吹样(10ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 1, - "HoleCollective": "0,0,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "039d59f515ec4977a06f453dff420285", - "uuidPlanMaster": "f7282ecbfee44e91b05cefbc1beac1ae", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T6", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 6, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "79f56e0c93c64acc8afcd9b6d516d13c", - "uuidPlanMaster": "f7282ecbfee44e91b05cefbc1beac1ae", - "Axis": "Left", - "ActOn": "Load", - "Place": "H0 - 16, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 2, - "HoleCollective": "0,0,0,0,13,14,15,16", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "738dbf37ba3248159790795403877b7b", - "uuidPlanMaster": "f7282ecbfee44e91b05cefbc1beac1ae", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H4 - 4, T3", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 1, - "HoleCollective": "4", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "47b3601c432948c7abe97d12f32d15ae", - "uuidPlanMaster": "f7282ecbfee44e91b05cefbc1beac1ae", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 8, T2", - "Dosage": 25, - "AssistA": " 吹样(10ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 1, - "HoleCollective": "0,0,0,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "9105250a301346f4ba948a979cd0bf4e", - "uuidPlanMaster": "f7282ecbfee44e91b05cefbc1beac1ae", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T6", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 6, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "5ddfe5c25f39422bad1ae419b82416e7", - "uuidPlanMaster": "f7282ecbfee44e91b05cefbc1beac1ae", - "Axis": "Left", - "ActOn": "Load", - "Place": "H0 - 16, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 2, - "HoleCollective": "0,0,0,12,13,14,15,16", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "02899cc898e54883a3742ecd501ac372", - "uuidPlanMaster": "f7282ecbfee44e91b05cefbc1beac1ae", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H0 - 8, T3", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 2, - "HoleCollective": "0,0,0,0,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "29a33c4d158f4470bb411f9dfb41c364", - "uuidPlanMaster": "f7282ecbfee44e91b05cefbc1beac1ae", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H5 - 8, T2", - "Dosage": 25, - "AssistA": " 吹样(10ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 1, - "HoleCollective": "5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "8728ff53296241fd85fc8c59b4bdd101", - "uuidPlanMaster": "f7282ecbfee44e91b05cefbc1beac1ae", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T6", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 6, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "388528a2efe3460f9f7540290a6e3858", - "uuidPlanMaster": "f7282ecbfee44e91b05cefbc1beac1ae", - "Axis": "Left", - "ActOn": "Load", - "Place": "H0 - 16, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 2, - "HoleCollective": "0,0,11,12,13,14,15,16", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "5333c4db3f25493b84cefcca83abf77d", - "uuidPlanMaster": "f7282ecbfee44e91b05cefbc1beac1ae", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H0 - 8, T3", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 2, - "HoleCollective": "0,0,0,0,0,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "22f3e5bf8e1a4b5ba08fb41076f630c4", - "uuidPlanMaster": "f7282ecbfee44e91b05cefbc1beac1ae", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H6 - 8, T2", - "Dosage": 25, - "AssistA": " 吹样(10ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 6, - "HoleColum": 1, - "HoleCollective": "6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "b2f945abec5942789d639b3aff03dc6b", - "uuidPlanMaster": "f7282ecbfee44e91b05cefbc1beac1ae", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T6", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 6, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "a5123948c122463c861bc0c0f4077dd6", - "uuidPlanMaster": "f7282ecbfee44e91b05cefbc1beac1ae", - "Axis": "Left", - "ActOn": "Load", - "Place": "H0 - 16, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 2, - "HoleCollective": "0,10,11,12,13,14,15,16", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "7ff98518e4124bd89cadc3730191a81a", - "uuidPlanMaster": "f7282ecbfee44e91b05cefbc1beac1ae", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H0 - 8, T3", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 2, - "HoleCollective": "0,0,0,0,0,0,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "73ea3ea7f8d64d849b1882526e3a0acf", - "uuidPlanMaster": "f7282ecbfee44e91b05cefbc1beac1ae", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H7 - 8, T2", - "Dosage": 25, - "AssistA": " 吹样(10ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 7, - "HoleColum": 1, - "HoleCollective": "7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "f558e9be05124314b57b04fc08ce1d48", - "uuidPlanMaster": "f7282ecbfee44e91b05cefbc1beac1ae", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T6", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 6, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "b7e15c00158c4fe5bcd594461a915bc3", - "uuidPlanMaster": "f7282ecbfee44e91b05cefbc1beac1ae", - "Axis": "Left", - "ActOn": "Load", - "Place": "H9 - 16, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 2, - "HoleCollective": "9,10,11,12,13,14,15,16", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "1f55416ce9934a9fa371f749edb71d32", - "uuidPlanMaster": "f7282ecbfee44e91b05cefbc1beac1ae", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H8 - 8, T3", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 2, - "HoleCollective": "8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "ee36e0fb0b8b4cd4b5c28eb706e9862a", - "uuidPlanMaster": "f7282ecbfee44e91b05cefbc1beac1ae", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H8 - 8, T2", - "Dosage": 25, - "AssistA": " 吹样(10ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 1, - "HoleCollective": "8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "9265024b9616448db35ae0b879ba72f5", - "uuidPlanMaster": "f7282ecbfee44e91b05cefbc1beac1ae", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T6", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 6, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "9e90db6d685d4d91957f7b8306539072", - "uuidPlanMaster": "f7282ecbfee44e91b05cefbc1beac1ae", - "Axis": "Left", - "ActOn": "Load", - "Place": "H17 - 24, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "17,18,19,20,21,22,23,24", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "e04753033efb4df08abecf6153d48394", - "uuidPlanMaster": "f7282ecbfee44e91b05cefbc1beac1ae", - "Axis": "Left", - "ActOn": "Blending", - "Place": "H1 - 8, T2", - "Dosage": 40, - "AssistA": " 加样(25ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 10, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "22d1e8f666b6417fb5ce95a418f131c0", - "uuidPlanMaster": "f7282ecbfee44e91b05cefbc1beac1ae", - "Axis": "Left", - "ActOn": "Blending", - "Place": "H9 - 16, T2", - "Dosage": 40, - "AssistA": " 加样(25ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 2, - "HoleCollective": "9,10,11,12,13,14,15,16", - "MixCount": 10, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "7bad181f31564528b9b8ba007b82b42b", - "uuidPlanMaster": "f7282ecbfee44e91b05cefbc1beac1ae", - "Axis": "Left", - "ActOn": "Blending", - "Place": "H17 - 24, T2", - "Dosage": 40, - "AssistA": " 加样(25ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "17,18,19,20,21,22,23,24", - "MixCount": 10, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "9a850b4f173e4306afb504bd354035bb", - "uuidPlanMaster": "f7282ecbfee44e91b05cefbc1beac1ae", - "Axis": "Left", - "ActOn": "Blending", - "Place": "H25 - 32, T2", - "Dosage": 40, - "AssistA": " 加样(25ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 4, - "HoleCollective": "25,26,27,28,29,30,31,32", - "MixCount": 10, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "7e21ddb2799d4ae5ac077c41da79a868", - "uuidPlanMaster": "f7282ecbfee44e91b05cefbc1beac1ae", - "Axis": "Left", - "ActOn": "Blending", - "Place": "H33 - 40, T2", - "Dosage": 40, - "AssistA": " 加样(25ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 5, - "HoleCollective": "33,34,35,36,37,38,39,40", - "MixCount": 10, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "50817a7815c6433792ffd06b863f89a1", - "uuidPlanMaster": "f7282ecbfee44e91b05cefbc1beac1ae", - "Axis": "Left", - "ActOn": "Blending", - "Place": "H41 - 48, T2", - "Dosage": 40, - "AssistA": " 加样(25ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 6, - "HoleCollective": "41,42,43,44,45,46,47,48", - "MixCount": 10, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "47965cd9df164358b7714243d2bb2f94", - "uuidPlanMaster": "f7282ecbfee44e91b05cefbc1beac1ae", - "Axis": "Left", - "ActOn": "Blending", - "Place": "H49 - 56, T2", - "Dosage": 40, - "AssistA": " 加样(25ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 7, - "HoleCollective": "49,50,51,52,53,54,55,56", - "MixCount": 10, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "ddfdb92ec12949be9d0c04160e0b2039", - "uuidPlanMaster": "f7282ecbfee44e91b05cefbc1beac1ae", - "Axis": "Left", - "ActOn": "Blending", - "Place": "H57 - 64, T2", - "Dosage": 40, - "AssistA": " 加样(25ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 8, - "HoleCollective": "57,58,59,60,61,62,63,64", - "MixCount": 10, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "aec511109ff4465cb665163d40f4f761", - "uuidPlanMaster": "f7282ecbfee44e91b05cefbc1beac1ae", - "Axis": "Left", - "ActOn": "Blending", - "Place": "H65 - 72, T2", - "Dosage": 40, - "AssistA": " 加样(25ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 9, - "HoleCollective": "65,66,67,68,69,70,71,72", - "MixCount": 10, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "87c37ba5acd34fe1b880a61bd00569b2", - "uuidPlanMaster": "f7282ecbfee44e91b05cefbc1beac1ae", - "Axis": "Left", - "ActOn": "Blending", - "Place": "H73 - 80, T2", - "Dosage": 40, - "AssistA": " 加样(25ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 10, - "HoleCollective": "73,74,75,76,77,78,79,80", - "MixCount": 10, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "6d32dc4a412c4e3e8100d748f04cc7fd", - "uuidPlanMaster": "f7282ecbfee44e91b05cefbc1beac1ae", - "Axis": "Left", - "ActOn": "Blending", - "Place": "H81 - 88, T2", - "Dosage": 40, - "AssistA": " 加样(25ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 11, - "HoleCollective": "81,82,83,84,85,86,87,88", - "MixCount": 10, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "6349776c416148d0a61ad1422e5b283f", - "uuidPlanMaster": "f7282ecbfee44e91b05cefbc1beac1ae", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T6", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 6, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "2f3105100a8c4664a3156b352b5fd7a2", - "uuidPlanMaster": "f7282ecbfee44e91b05cefbc1beac1ae", - "Axis": "Left", - "ActOn": "Load", - "Place": "H25 - 32, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 4, - "HoleCollective": "25,26,27,28,29,30,31,32", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "e47d1e9103a441c3a1d5c11db7f72be6", - "uuidPlanMaster": "f7282ecbfee44e91b05cefbc1beac1ae", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H9 - 16, T5", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 2, - "HoleCollective": "9,10,11,12,13,14,15,16", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "836aec8822ea441cb9244fa7176d70bc", - "uuidPlanMaster": "f7282ecbfee44e91b05cefbc1beac1ae", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1 - 8, T2", - "Dosage": 25, - "AssistA": " 吹样(50ul)", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 10, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "9f4a8a8e332d4ac7b253f5f6e9b663c5", - "uuidPlanMaster": "f7282ecbfee44e91b05cefbc1beac1ae", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H9 - 16, T5", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 2, - "HoleCollective": "9,10,11,12,13,14,15,16", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "b3a5af8622b54d65a81f8ef44b036343", - "uuidPlanMaster": "f7282ecbfee44e91b05cefbc1beac1ae", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H9 - 16, T2", - "Dosage": 25, - "AssistA": " 吹样(50ul)", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 2, - "HoleCollective": "9,10,11,12,13,14,15,16", - "MixCount": 0, - "HeightFromBottom": 10, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "713e5bdebe4e4a7c85d109348d78d2ea", - "uuidPlanMaster": "f7282ecbfee44e91b05cefbc1beac1ae", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H9 - 16, T5", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 2, - "HoleCollective": "9,10,11,12,13,14,15,16", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "1c8b5532f6c5486e934c7c2f5e4046b2", - "uuidPlanMaster": "f7282ecbfee44e91b05cefbc1beac1ae", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H17 - 24, T2", - "Dosage": 25, - "AssistA": " 吹样(50ul)", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "17,18,19,20,21,22,23,24", - "MixCount": 0, - "HeightFromBottom": 10, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "dc81d62c4b7b46a5820feab4222dedba", - "uuidPlanMaster": "f7282ecbfee44e91b05cefbc1beac1ae", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H9 - 16, T5", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 2, - "HoleCollective": "9,10,11,12,13,14,15,16", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "e8ae866d826e49bc98bc7054507a2105", - "uuidPlanMaster": "f7282ecbfee44e91b05cefbc1beac1ae", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H25 - 32, T2", - "Dosage": 25, - "AssistA": " 吹样(50ul)", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 4, - "HoleCollective": "25,26,27,28,29,30,31,32", - "MixCount": 0, - "HeightFromBottom": 10, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "a27f077adaef4e2cb74fc662d191d47d", - "uuidPlanMaster": "f7282ecbfee44e91b05cefbc1beac1ae", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H9 - 16, T5", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 2, - "HoleCollective": "9,10,11,12,13,14,15,16", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "3c4de21fb7d0427ea54d7233203d2312", - "uuidPlanMaster": "f7282ecbfee44e91b05cefbc1beac1ae", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H33 - 40, T2", - "Dosage": 25, - "AssistA": " 吹样(50ul)", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 5, - "HoleCollective": "33,34,35,36,37,38,39,40", - "MixCount": 0, - "HeightFromBottom": 10, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "0fc63876cf5b45fdaaf47886ef73382c", - "uuidPlanMaster": "f7282ecbfee44e91b05cefbc1beac1ae", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H9 - 16, T5", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 2, - "HoleCollective": "9,10,11,12,13,14,15,16", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "29fe81fbd337463eb781542e6158bedb", - "uuidPlanMaster": "f7282ecbfee44e91b05cefbc1beac1ae", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H41 - 48, T2", - "Dosage": 25, - "AssistA": " 吹样(50ul)", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 6, - "HoleCollective": "41,42,43,44,45,46,47,48", - "MixCount": 0, - "HeightFromBottom": 10, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "9dfd7f515dfe41eb82e3b3b0591aa30c", - "uuidPlanMaster": "f7282ecbfee44e91b05cefbc1beac1ae", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H9 - 16, T5", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 2, - "HoleCollective": "9,10,11,12,13,14,15,16", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "203e54fcd3ed4a009f6c8de555071977", - "uuidPlanMaster": "f7282ecbfee44e91b05cefbc1beac1ae", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H49 - 56, T2", - "Dosage": 25, - "AssistA": " 吹样(50ul)", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 7, - "HoleCollective": "49,50,51,52,53,54,55,56", - "MixCount": 0, - "HeightFromBottom": 10, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "0910ec4fa7e64495acc98f9d789719e1", - "uuidPlanMaster": "f7282ecbfee44e91b05cefbc1beac1ae", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H9 - 16, T5", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 2, - "HoleCollective": "9,10,11,12,13,14,15,16", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "e1df774416b64ee5ac714c47d9f6a687", - "uuidPlanMaster": "f7282ecbfee44e91b05cefbc1beac1ae", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H57 - 64, T2", - "Dosage": 25, - "AssistA": " 吹样(50ul)", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 8, - "HoleCollective": "57,58,59,60,61,62,63,64", - "MixCount": 0, - "HeightFromBottom": 10, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "bebed1dfe71e4d5e8b03ddf726207d82", - "uuidPlanMaster": "f7282ecbfee44e91b05cefbc1beac1ae", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H9 - 16, T5", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 2, - "HoleCollective": "9,10,11,12,13,14,15,16", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "602ce9c982bc40e2bd62858d1ec659e0", - "uuidPlanMaster": "f7282ecbfee44e91b05cefbc1beac1ae", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H65 - 72, T2", - "Dosage": 25, - "AssistA": " 吹样(50ul)", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 9, - "HoleCollective": "65,66,67,68,69,70,71,72", - "MixCount": 0, - "HeightFromBottom": 10, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "57d64a52ccbd4a9d9e955acb800ab1de", - "uuidPlanMaster": "f7282ecbfee44e91b05cefbc1beac1ae", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H9 - 16, T5", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 2, - "HoleCollective": "9,10,11,12,13,14,15,16", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "eceee4715c674512a44b57128eb248e6", - "uuidPlanMaster": "f7282ecbfee44e91b05cefbc1beac1ae", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H73 - 80, T2", - "Dosage": 25, - "AssistA": " 吹样(50ul)", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 10, - "HoleCollective": "73,74,75,76,77,78,79,80", - "MixCount": 0, - "HeightFromBottom": 10, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "cdcd6e6ab4964c2fb01a71d541b82f2d", - "uuidPlanMaster": "f7282ecbfee44e91b05cefbc1beac1ae", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H9 - 16, T5", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 2, - "HoleCollective": "9,10,11,12,13,14,15,16", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "37a8b63fb402464bbc964da946e050fb", - "uuidPlanMaster": "f7282ecbfee44e91b05cefbc1beac1ae", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H81 - 88, T2", - "Dosage": 25, - "AssistA": " 吹样(50ul)", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 11, - "HoleCollective": "81,82,83,84,85,86,87,88", - "MixCount": 0, - "HeightFromBottom": 10, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "e84e01f238b14bd0a6ee0d1727e4ea32", - "uuidPlanMaster": "f7282ecbfee44e91b05cefbc1beac1ae", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T6", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 6, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "499e26ed5a4f446ba4c156cd75fd78a3", - "uuidPlanMaster": "f7282ecbfee44e91b05cefbc1beac1ae", - "Axis": "Left", - "ActOn": "Load", - "Place": "H33 - 40, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 5, - "HoleCollective": "33,34,35,36,37,38,39,40", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "2c7ea047cd7546c38d0e91ba89fab27c", - "uuidPlanMaster": "f7282ecbfee44e91b05cefbc1beac1ae", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H17 - 24, T5", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "17,18,19,20,21,22,23,24", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "769dab0d637d4375a485b59991523942", - "uuidPlanMaster": "f7282ecbfee44e91b05cefbc1beac1ae", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1 - 8, T2", - "Dosage": 25, - "AssistA": " 吹样(50ul)", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 10, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "42ad2c5ff97545f1ac223014ab840fe9", - "uuidPlanMaster": "f7282ecbfee44e91b05cefbc1beac1ae", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H17 - 24, T5", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "17,18,19,20,21,22,23,24", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "efc118941bc3490ba37877bab5924ecb", - "uuidPlanMaster": "f7282ecbfee44e91b05cefbc1beac1ae", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H9 - 16, T2", - "Dosage": 25, - "AssistA": " 吹样(50ul)", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 2, - "HoleCollective": "9,10,11,12,13,14,15,16", - "MixCount": 0, - "HeightFromBottom": 10, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "7b466365705e41c4839916a805f27217", - "uuidPlanMaster": "f7282ecbfee44e91b05cefbc1beac1ae", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H17 - 24, T5", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "17,18,19,20,21,22,23,24", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "82506b565f184bc7bb737fba28755a17", - "uuidPlanMaster": "f7282ecbfee44e91b05cefbc1beac1ae", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H17 - 24, T2", - "Dosage": 25, - "AssistA": " 吹样(50ul)", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "17,18,19,20,21,22,23,24", - "MixCount": 0, - "HeightFromBottom": 10, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "672edcfb5a754865ae6261b8b0a977d5", - "uuidPlanMaster": "f7282ecbfee44e91b05cefbc1beac1ae", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H17 - 24, T5", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "17,18,19,20,21,22,23,24", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "f6cc900b987c4daf9e9f6b60dc6fb6fc", - "uuidPlanMaster": "f7282ecbfee44e91b05cefbc1beac1ae", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H25 - 32, T2", - "Dosage": 25, - "AssistA": " 吹样(50ul)", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 4, - "HoleCollective": "25,26,27,28,29,30,31,32", - "MixCount": 0, - "HeightFromBottom": 10, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "a610bf182ccb4e348ea940c8df0d6116", - "uuidPlanMaster": "f7282ecbfee44e91b05cefbc1beac1ae", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H17 - 24, T5", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "17,18,19,20,21,22,23,24", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "d7fc74a98b5e4b8c809226e3170ad7c5", - "uuidPlanMaster": "f7282ecbfee44e91b05cefbc1beac1ae", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H33 - 40, T2", - "Dosage": 25, - "AssistA": " 吹样(50ul)", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 5, - "HoleCollective": "33,34,35,36,37,38,39,40", - "MixCount": 0, - "HeightFromBottom": 10, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "cf3d1145be324b0b8e3c9039980aee1c", - "uuidPlanMaster": "f7282ecbfee44e91b05cefbc1beac1ae", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H17 - 24, T5", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "17,18,19,20,21,22,23,24", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "84810fdf518742f3905f93ba4118efec", - "uuidPlanMaster": "f7282ecbfee44e91b05cefbc1beac1ae", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H41 - 48, T2", - "Dosage": 25, - "AssistA": " 吹样(50ul)", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 6, - "HoleCollective": "41,42,43,44,45,46,47,48", - "MixCount": 0, - "HeightFromBottom": 10, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "6b67eb046e0c40c19fe25e0011fb9b3d", - "uuidPlanMaster": "f7282ecbfee44e91b05cefbc1beac1ae", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H17 - 24, T5", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "17,18,19,20,21,22,23,24", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "f46a1815dec6437abd862830f85dd7cc", - "uuidPlanMaster": "f7282ecbfee44e91b05cefbc1beac1ae", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H49 - 56, T2", - "Dosage": 25, - "AssistA": " 吹样(50ul)", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 7, - "HoleCollective": "49,50,51,52,53,54,55,56", - "MixCount": 0, - "HeightFromBottom": 10, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "4c9ee5119bcf4a238d171546da9cc9be", - "uuidPlanMaster": "f7282ecbfee44e91b05cefbc1beac1ae", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H17 - 24, T5", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "17,18,19,20,21,22,23,24", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "bad7227310274031989a9d5cff55e262", - "uuidPlanMaster": "f7282ecbfee44e91b05cefbc1beac1ae", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H57 - 64, T2", - "Dosage": 25, - "AssistA": " 吹样(50ul)", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 8, - "HoleCollective": "57,58,59,60,61,62,63,64", - "MixCount": 0, - "HeightFromBottom": 10, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "e0903bb1e9c34e4fa24ff88ebf3c5a6a", - "uuidPlanMaster": "f7282ecbfee44e91b05cefbc1beac1ae", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H17 - 24, T5", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "17,18,19,20,21,22,23,24", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "418901c8f38a412d9b80ee168d6b18e6", - "uuidPlanMaster": "f7282ecbfee44e91b05cefbc1beac1ae", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H65 - 72, T2", - "Dosage": 25, - "AssistA": " 吹样(50ul)", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 9, - "HoleCollective": "65,66,67,68,69,70,71,72", - "MixCount": 0, - "HeightFromBottom": 10, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "a40faa4b4c4540c1b64d4d7075464647", - "uuidPlanMaster": "f7282ecbfee44e91b05cefbc1beac1ae", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H17 - 24, T5", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "17,18,19,20,21,22,23,24", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "85a55cf706e8480586b2f5764d6bf9fb", - "uuidPlanMaster": "f7282ecbfee44e91b05cefbc1beac1ae", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H73 - 80, T2", - "Dosage": 25, - "AssistA": " 吹样(50ul)", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 10, - "HoleCollective": "73,74,75,76,77,78,79,80", - "MixCount": 0, - "HeightFromBottom": 10, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "d9a0878215254831a8af24661452892e", - "uuidPlanMaster": "f7282ecbfee44e91b05cefbc1beac1ae", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H17 - 24, T5", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "17,18,19,20,21,22,23,24", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "6774edfd85ee4596999e88f1011949c0", - "uuidPlanMaster": "f7282ecbfee44e91b05cefbc1beac1ae", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H81 - 88, T2", - "Dosage": 25, - "AssistA": " 吹样(50ul)", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 11, - "HoleCollective": "81,82,83,84,85,86,87,88", - "MixCount": 0, - "HeightFromBottom": 10, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "b7738161116d43eb886e59893231c14e", - "uuidPlanMaster": "f7282ecbfee44e91b05cefbc1beac1ae", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H17 - 24, T5", - "Dosage": 25, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 5, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "17,18,19,20,21,22,23,24", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "2192881531284129b26948476d55c0b0", - "uuidPlanMaster": "f7282ecbfee44e91b05cefbc1beac1ae", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H89 - 96, T2", - "Dosage": 25, - "AssistA": " 吹样(50ul)", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 12, - "HoleCollective": "89,90,91,92,93,94,95,96", - "MixCount": 0, - "HeightFromBottom": 10, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "b2f0553a705d4f8bbe73fce8a0222268", - "uuidPlanMaster": "f7282ecbfee44e91b05cefbc1beac1ae", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T6", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 6, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "5606851469d24c879917a96782bd295c", - "uuidPlanMaster": "196e0d757c574020932b64b69e88fac9", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1 - 8, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "50ccdcfaacc94327b2af33bf5c35dc6d", - "uuidPlanMaster": "196e0d757c574020932b64b69e88fac9", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H1 - 8, T4", - "Dosage": 300, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "e2c0fffc25264d1692edc9fb3302576a", - "uuidPlanMaster": "196e0d757c574020932b64b69e88fac9", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1 - 15, T5", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,3,5,7,9,11,13,15", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "fa50010421734c079ea27e19528a1417", - "uuidPlanMaster": "196e0d757c574020932b64b69e88fac9", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H2 - 16, T5", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 1, - "HoleCollective": "2,4,6,8,10,12,14,16", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "0308ce3fbb5244b7bf4f31f422a1bfda", - "uuidPlanMaster": "196e0d757c574020932b64b69e88fac9", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H17 - 31, T5", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 2, - "HoleCollective": "17,19,21,23,25,27,29,31", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "8d11e0e168f64a3e8e12b27b045639ce", - "uuidPlanMaster": "196e0d757c574020932b64b69e88fac9", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H18 - 32, T5", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 2, - "HoleCollective": "18,20,22,24,26,28,30,32", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "949ef5c34e024d6eb1cbeab2f930001b", - "uuidPlanMaster": "196e0d757c574020932b64b69e88fac9", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H33 - 47, T5", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "33,35,37,39,41,43,45,47", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "7f4d66e9be354326a997c13977cd5a39", - "uuidPlanMaster": "196e0d757c574020932b64b69e88fac9", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H34 - 48, T5", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 3, - "HoleCollective": "34,36,38,40,42,44,46,48", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "c313422b384045aba06e76d47fab10e1", - "uuidPlanMaster": "196e0d757c574020932b64b69e88fac9", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H49 - 63, T5", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 4, - "HoleCollective": "49,51,53,55,57,59,61,63", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "84c9bfe62a144c4f885c31da2f3f860c", - "uuidPlanMaster": "196e0d757c574020932b64b69e88fac9", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H50 - 64, T5", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 4, - "HoleCollective": "50,52,54,56,58,60,62,64", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "4b48726521db478fac6d782fb8a2a96e", - "uuidPlanMaster": "196e0d757c574020932b64b69e88fac9", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H65 - 79, T5", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 5, - "HoleCollective": "65,67,69,71,73,75,77,79", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "207f85b339b04b21afb0f2c5e536d7f1", - "uuidPlanMaster": "196e0d757c574020932b64b69e88fac9", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H66 - 80, T5", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 5, - "HoleCollective": "66,68,70,72,74,76,78,80", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "2053da3d071c4bbdbe89bffa23159f9c", - "uuidPlanMaster": "196e0d757c574020932b64b69e88fac9", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H81 - 95, T5", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 6, - "HoleCollective": "81,83,85,87,89,91,93,95", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "338d4f2391b14d5e91c571460e00424e", - "uuidPlanMaster": "196e0d757c574020932b64b69e88fac9", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H82 - 96, T5", - "Dosage": 25, - "AssistA": " 吹样(50ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 6, - "HoleCollective": "82,84,86,88,90,92,94,96", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - }, - { - "uuid": "a0039bc6427c457f8becaa560b21fbfb", - "uuidPlanMaster": "196e0d757c574020932b64b69e88fac9", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H1 - 8, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null - } -] \ No newline at end of file diff --git a/unilabos/devices/liquid_handling/prcxi/json_output/_base_plan_master_old_20240416.json b/unilabos/devices/liquid_handling/prcxi/json_output/_base_plan_master_old_20240416.json deleted file mode 100644 index 9cf65ec8..00000000 --- a/unilabos/devices/liquid_handling/prcxi/json_output/_base_plan_master_old_20240416.json +++ /dev/null @@ -1,602 +0,0 @@ -[ - { - "uuid": "87ea11eeb24b43648ce294654b561fe7", - "PlanName": "2341", - "PlanCode": "2980eb", - "PlanTarget": "", - "Annotate": "", - "CreateName": "", - "CreateDate": "2023-05-15 18:24:00.8445073", - "MatrixId": "34ba3f02-6fcd-48e6-bb8e-3b0ce1d54ed5" - }, - { - "uuid": "0a977d6ebc4244739793b0b6f8b3f815", - "PlanName": "384测试方案(300模块)", - "PlanCode": "9336ee", - "PlanTarget": "", - "Annotate": "", - "CreateName": "", - "CreateDate": "2023-06-13 10:34:52.5310959", - "MatrixId": "74ed84ea-0b5d-4307-a966-ceb83fcaefe7" - }, - { - "uuid": "aff2cd213ad34072b370f44acb5ab658", - "PlanName": "96孔吸300方案(单放)", - "PlanCode": "9932fc", - "PlanTarget": "测试用", - "Annotate": "", - "CreateName": "", - "CreateDate": "2023-06-13 09:57:38.422353", - "MatrixId": "bacd78be-b86d-49d6-973a-dd522834e4c4" - }, - { - "uuid": "97816d94f99a48409379013d19f0ab66", - "PlanName": "384测试方案(50模块)", - "PlanCode": "3964de", - "PlanTarget": "", - "Annotate": "", - "CreateName": "", - "CreateDate": "2023-06-13 10:32:22.8918817", - "MatrixId": "74ed84ea-0b5d-4307-a966-ceb83fcaefe7" - }, - { - "uuid": "c3d86e9d7eed4ddb8c32e9234da659de", - "PlanName": "96吸50方案(单放)", - "PlanCode": "6994aa", - "PlanTarget": "测试用", - "Annotate": "", - "CreateName": "", - "CreateDate": "2023-08-08 11:50:14.6850189", - "MatrixId": "bacd78be-b86d-49d6-973a-dd522834e4c4" - }, - { - "uuid": "59a97f77718d4bbba6bed1ddbf959772", - "PlanName": "test12", - "PlanCode": "8630fa", - "PlanTarget": "12通道", - "Annotate": "", - "CreateName": "", - "CreateDate": "2023-10-08 09:36:14.2536629", - "MatrixId": "517c836e-56c6-4c06-a897-7074886061bd" - }, - { - "uuid": "84d50e4cf3034aa6a3de505a92b30812", - "PlanName": "test001", - "PlanCode": "9013fe", - "PlanTarget": "", - "Annotate": "", - "CreateName": "", - "CreateDate": "2023-10-08 16:37:57.2302499", - "MatrixId": "ed9b1ceb-b879-4b8c-a246-2d4f54fbe970" - }, - { - "uuid": "d052b893c6324ae38d301a58614a5663", - "PlanName": "test01", - "PlanCode": "8524cf", - "PlanTarget": "", - "Annotate": "", - "CreateName": "", - "CreateDate": "2023-10-09 11:00:21.4973895", - "MatrixId": "bacd78be-b86d-49d6-973a-dd522834e4c4" - }, - { - "uuid": "875a6eaa00e548b99318fd0be310e879", - "PlanName": "test002", - "PlanCode": "2477fe", - "PlanTarget": "", - "Annotate": "", - "CreateName": "", - "CreateDate": "2023-10-09 11:02:01.2027308", - "MatrixId": "7374dc89-d425-42aa-b252-1b1338d3c2f2" - }, - { - "uuid": "ecb3cb37f603495d95a93522a6b611e3", - "PlanName": "test02", - "PlanCode": "5126cb", - "PlanTarget": "", - "Annotate": "", - "CreateName": "", - "CreateDate": "2023-10-09 11:02:14.7987877", - "MatrixId": "7374dc89-d425-42aa-b252-1b1338d3c2f2" - }, - { - "uuid": "705edabbcbd645d0925e4e581643247c", - "PlanName": "test003", - "PlanCode": "4994cc", - "PlanTarget": "", - "Annotate": "", - "CreateName": "", - "CreateDate": "2023-10-09 11:41:04.1715458", - "MatrixId": "4c126841-5c37-49c7-b4e8-539983bc9cc4" - }, - { - "uuid": "6c58136d7de54a6abb7b51e6327eacac", - "PlanName": "test04", - "PlanCode": "9704dd", - "PlanTarget": "", - "Annotate": "", - "CreateName": "", - "CreateDate": "2023-10-09 11:51:59.1752071", - "MatrixId": "4c126841-5c37-49c7-b4e8-539983bc9cc4" - }, - { - "uuid": "208f00a911b846d9922b2e72bdda978c", - "PlanName": "96版位 50ul量程", - "PlanCode": "7595be", - "PlanTarget": "213213", - "Annotate": "", - "CreateName": "", - "CreateDate": "2023-10-18 19:12:17.4641981", - "MatrixId": "b3da2b21-875b-4ae6-8077-ec951730201b" - }, - { - "uuid": "40bd0ca25ffb4be6b246353db6ebefc9", - "PlanName": "96版位 300ul量程", - "PlanCode": "7421fc", - "PlanTarget": "", - "Annotate": "", - "CreateName": "", - "CreateDate": "2023-10-14 14:47:03.8105699", - "MatrixId": "b3da2b21-875b-4ae6-8077-ec951730201b" - }, - { - "uuid": "30b838bb7d124ec885b506df29ee7860", - "PlanName": "300版位 50ul量程", - "PlanCode": "6364cc", - "PlanTarget": "", - "Annotate": "", - "CreateName": "", - "CreateDate": "2023-10-14 14:48:05.2235254", - "MatrixId": "f8c70333-b717-4ca0-9306-c40fd5f156fb" - }, - { - "uuid": "e53c591c86334c6f92d3b1afa107bcf8", - "PlanName": "384版位 300ul量程", - "PlanCode": "4029be", - "PlanTarget": "", - "Annotate": "", - "CreateName": "", - "CreateDate": "2023-10-14 14:47:48.9478679", - "MatrixId": "f8c70333-b717-4ca0-9306-c40fd5f156fb" - }, - { - "uuid": "1d26d1ab45c6431990ba0e00cc1f78d2", - "PlanName": "96版位梯度稀释 50ul量程", - "PlanCode": "3502cf", - "PlanTarget": "", - "Annotate": "", - "CreateName": "", - "CreateDate": "2023-10-14 14:48:12.8676989", - "MatrixId": "916bbd00-e66c-4237-9843-e049b70b740a" - }, - { - "uuid": "7a0383b4fbb543339723513228365451", - "PlanName": "96版位梯度稀释 300ul量程", - "PlanCode": "9345fe", - "PlanTarget": "", - "Annotate": "", - "CreateName": "", - "CreateDate": "2023-10-14 14:50:02.0250566", - "MatrixId": "916bbd00-e66c-4237-9843-e049b70b740a" - }, - { - "uuid": "69d4882f0f024fb5a3b91010f149ff89", - "PlanName": "测试", - "PlanCode": "3941bf", - "PlanTarget": "", - "Annotate": "", - "CreateName": "", - "CreateDate": "2023-12-11 15:24:30.1371824", - "MatrixId": "b3da2b21-875b-4ae6-8077-ec951730201b" - }, - { - "uuid": "3603f89f4e0945f68353a33e8017ba6e", - "PlanName": "测试111", - "PlanCode": "8056eb", - "PlanTarget": "", - "Annotate": "", - "CreateName": "", - "CreateDate": "2024-01-16 09:29:12.1441631", - "MatrixId": "b3da2b21-875b-4ae6-8077-ec951730201b" - }, - { - "uuid": "b44be8260740460598816c40f13fd6b4", - "PlanName": "测试12", - "PlanCode": "8272fb", - "PlanTarget": "", - "Annotate": "", - "CreateName": "", - "CreateDate": "2024-01-16 10:40:54.2543702", - "MatrixId": "b3da2b21-875b-4ae6-8077-ec951730201b" - }, - { - "uuid": "f189a50122d54a568f3d39dc1f996167", - "PlanName": "0.5", - "PlanCode": "2093ec", - "PlanTarget": "", - "Annotate": "", - "CreateName": "", - "CreateDate": "2024-01-16 13:06:37.8280696", - "MatrixId": "b3da2b21-875b-4ae6-8077-ec951730201b" - }, - { - "uuid": "b48218c8f2274b108e278d019c9b5126", - "PlanName": "3", - "PlanCode": "9493bb", - "PlanTarget": "", - "Annotate": "", - "CreateName": "", - "CreateDate": "2024-01-16 14:20:42.4761092", - "MatrixId": "b3da2b21-875b-4ae6-8077-ec951730201b" - }, - { - "uuid": "41d2ebc5ab5b4b2da3e203937c5cbe70", - "PlanName": "6", - "PlanCode": "5586de", - "PlanTarget": "", - "Annotate": "", - "CreateName": "", - "CreateDate": "2024-01-16 15:21:03.4440875", - "MatrixId": "b3da2b21-875b-4ae6-8077-ec951730201b" - }, - { - "uuid": "49ec03499aa646b9b8069a783dbeca1c", - "PlanName": "7", - "PlanCode": "1162bc", - "PlanTarget": "", - "Annotate": "", - "CreateName": "", - "CreateDate": "2024-01-16 15:31:33.7359724", - "MatrixId": "b3da2b21-875b-4ae6-8077-ec951730201b" - }, - { - "uuid": "a9c6d149cdf04636ac43cfb7623e4e7f", - "PlanName": "8", - "PlanCode": "7354eb", - "PlanTarget": "", - "Annotate": "", - "CreateName": "", - "CreateDate": "2024-01-16 15:39:32.2399414", - "MatrixId": "b3da2b21-875b-4ae6-8077-ec951730201b" - }, - { - "uuid": "0e3a36cabefa4f5497e35193db48b559", - "PlanName": "9", - "PlanCode": "4453ba", - "PlanTarget": "", - "Annotate": "", - "CreateName": "", - "CreateDate": "2024-01-16 15:49:31.5830134", - "MatrixId": "b3da2b21-875b-4ae6-8077-ec951730201b" - }, - { - "uuid": "d0a0d926e2034abc94b4d883951a78f7", - "PlanName": "10", - "PlanCode": "5797ab", - "PlanTarget": "", - "Annotate": "", - "CreateName": "", - "CreateDate": "2024-01-16 16:00:25.4439315", - "MatrixId": "b3da2b21-875b-4ae6-8077-ec951730201b" - }, - { - "uuid": "22ac523a47e7421e80f401baf1526daf", - "PlanName": "50", - "PlanCode": "2507ca", - "PlanTarget": "", - "Annotate": "", - "CreateName": "", - "CreateDate": "2024-01-16 16:23:13.8022807", - "MatrixId": "b3da2b21-875b-4ae6-8077-ec951730201b" - }, - { - "uuid": "fdea60f535ee4bc39c02c602a64f46bd", - "PlanName": "11", - "PlanCode": "1574ae", - "PlanTarget": "", - "Annotate": "", - "CreateName": "", - "CreateDate": "2024-01-18 09:14:59.8230591", - "MatrixId": "b3da2b21-875b-4ae6-8077-ec951730201b" - }, - { - "uuid": "6650f7df6b8944f98476da92ce81d688", - "PlanName": "12", - "PlanCode": "2145bd", - "PlanTarget": "", - "Annotate": "", - "CreateName": "", - "CreateDate": "2024-01-18 09:45:34.137906", - "MatrixId": "b3da2b21-875b-4ae6-8077-ec951730201b" - }, - { - "uuid": "9415a69280c042a09d6836f5eeddf40f", - "PlanName": "100", - "PlanCode": "2073fd", - "PlanTarget": "", - "Annotate": "", - "CreateName": "", - "CreateDate": "2024-01-18 10:12:29.9998926", - "MatrixId": "b3da2b21-875b-4ae6-8077-ec951730201b" - }, - { - "uuid": "d9740fea94a04c2db44b1364a336b338", - "PlanName": "250", - "PlanCode": "2601ea", - "PlanTarget": "", - "Annotate": "", - "CreateName": "", - "CreateDate": "2024-01-18 11:15:54.2583401", - "MatrixId": "b3da2b21-875b-4ae6-8077-ec951730201b" - }, - { - "uuid": "1d80c1fff5af442595c21963e6ca9fee", - "PlanName": "160", - "PlanCode": "6612ea", - "PlanTarget": "", - "Annotate": "", - "CreateName": "", - "CreateDate": "2024-01-18 11:18:59.0457638", - "MatrixId": "b3da2b21-875b-4ae6-8077-ec951730201b" - }, - { - "uuid": "36889fb926aa480cb42de97700522bbf", - "PlanName": "200", - "PlanCode": "3174dc", - "PlanTarget": "", - "Annotate": "", - "CreateName": "", - "CreateDate": "2024-01-18 11:20:15.7676326", - "MatrixId": "b3da2b21-875b-4ae6-8077-ec951730201b" - }, - { - "uuid": "bd90ae2846c14e708854938158fd3443", - "PlanName": "300", - "PlanCode": "2665df", - "PlanTarget": "", - "Annotate": "", - "CreateName": "", - "CreateDate": "2024-01-18 13:00:16.9242256", - "MatrixId": "b3da2b21-875b-4ae6-8077-ec951730201b" - }, - { - "uuid": "9df4857d2bef45bcad14cc13055e9f7b", - "PlanName": "500", - "PlanCode": "4771ab", - "PlanTarget": "", - "Annotate": "", - "CreateName": "", - "CreateDate": "2024-01-18 13:26:32.3910805", - "MatrixId": "b3da2b21-875b-4ae6-8077-ec951730201b" - }, - { - "uuid": "d2f6e63cf1ff41a4a8d03f4444a2aeac", - "PlanName": "800", - "PlanCode": "4560bc", - "PlanTarget": "", - "Annotate": "", - "CreateName": "", - "CreateDate": "2024-01-18 13:42:35.5153947", - "MatrixId": "b3da2b21-875b-4ae6-8077-ec951730201b" - }, - { - "uuid": "f40a6f4326a346d39d5a82f6262aba47", - "PlanName": "测试12345", - "PlanCode": "3402ab", - "PlanTarget": "", - "Annotate": "", - "CreateName": "", - "CreateDate": "2024-01-18 14:37:29.8890777", - "MatrixId": "b3da2b21-875b-4ae6-8077-ec951730201b" - }, - { - "uuid": "4248035f01e943faa6d71697ed386e19", - "PlanName": "995", - "PlanCode": "2688dc", - "PlanTarget": "", - "Annotate": "", - "CreateName": "", - "CreateDate": "2024-01-18 14:39:23.5292196", - "MatrixId": "b3da2b21-875b-4ae6-8077-ec951730201b" - }, - { - "uuid": "a73bc780e4d04099bf54c2b90fa7b974", - "PlanName": "1000", - "PlanCode": "2889bf", - "PlanTarget": "", - "Annotate": "", - "CreateName": "", - "CreateDate": "2024-01-19 09:16:37.7818522", - "MatrixId": "b3da2b21-875b-4ae6-8077-ec951730201b" - }, - { - "uuid": "4d97363a0a334094a1ff24494a902d02", - "PlanName": "2.。", - "PlanCode": "6527ff", - "PlanTarget": "", - "Annotate": "", - "CreateName": "", - "CreateDate": "2024-01-19 11:38:00.0672017", - "MatrixId": "b3da2b21-875b-4ae6-8077-ec951730201b" - }, - { - "uuid": "6eec360c74464769967ebefa43b7aec1", - "PlanName": "2222222", - "PlanCode": "8763ce", - "PlanTarget": "", - "Annotate": "", - "CreateName": "", - "CreateDate": "2024-01-19 11:40:42.7038484", - "MatrixId": "b3da2b21-875b-4ae6-8077-ec951730201b" - }, - { - "uuid": "986049c83b054171a1b34dd49b3ca9cf", - "PlanName": "9ul", - "PlanCode": "1945fd", - "PlanTarget": "", - "Annotate": "", - "CreateName": "", - "CreateDate": "2024-01-19 13:33:06.6556398", - "MatrixId": "b3da2b21-875b-4ae6-8077-ec951730201b" - }, - { - "uuid": "462eed73962142c2bd3b8fe717caceb6", - "PlanName": "8ul", - "PlanCode": "6912fc", - "PlanTarget": "", - "Annotate": "", - "CreateName": "", - "CreateDate": "2024-01-19 15:16:17.4254316", - "MatrixId": "b3da2b21-875b-4ae6-8077-ec951730201b" - }, - { - "uuid": "b2f0c7ab462f4cf1bae56ee59a49a253", - "PlanName": "11.", - "PlanCode": "6190ba", - "PlanTarget": "", - "Annotate": "", - "CreateName": "", - "CreateDate": "2024-01-19 15:21:57.6729366", - "MatrixId": "b3da2b21-875b-4ae6-8077-ec951730201b" - }, - { - "uuid": "b9768a1d91444d4a86b7a013467bee95", - "PlanName": "8ulll", - "PlanCode": "6899be", - "PlanTarget": "", - "Annotate": "", - "CreateName": "", - "CreateDate": "2024-01-19 15:29:03.2029069", - "MatrixId": "b3da2b21-875b-4ae6-8077-ec951730201b" - }, - { - "uuid": "98621898cd514bc9a1ac0c92362284f4", - "PlanName": "7u", - "PlanCode": "7651fe", - "PlanTarget": "", - "Annotate": "", - "CreateName": "", - "CreateDate": "2024-01-19 15:57:16.4898686", - "MatrixId": "b3da2b21-875b-4ae6-8077-ec951730201b" - }, - { - "uuid": "4d03142fd86844db8e23c19061b3d505", - "PlanName": "55555", - "PlanCode": "7963fe", - "PlanTarget": "", - "Annotate": "", - "CreateName": "", - "CreateDate": "2024-01-19 16:23:37.7271107", - "MatrixId": "b3da2b21-875b-4ae6-8077-ec951730201b" - }, - { - "uuid": "c78c3f38a59748c3aef949405e434b05", - "PlanName": "44443", - "PlanCode": "4564dd", - "PlanTarget": "", - "Annotate": "", - "CreateName": "", - "CreateDate": "2024-01-19 16:29:26.6765074", - "MatrixId": "b3da2b21-875b-4ae6-8077-ec951730201b" - }, - { - "uuid": "0fc4ffd86091451db26162af4f7b235e", - "PlanName": "u", - "PlanCode": "9246de", - "PlanTarget": "", - "Annotate": "", - "CreateName": "", - "CreateDate": "2024-01-19 16:34:15.4217796", - "MatrixId": "b3da2b21-875b-4ae6-8077-ec951730201b" - }, - { - "uuid": "a08748982b934daab8752f55796e1b0c", - "PlanName": "666y", - "PlanCode": "5492ce", - "PlanTarget": "", - "Annotate": "", - "CreateName": "", - "CreateDate": "2024-01-19 16:38:55.6092122", - "MatrixId": "b3da2b21-875b-4ae6-8077-ec951730201b" - }, - { - "uuid": "2317611bdb614e45b61a5118e58e3a2a", - "PlanName": "8ull、", - "PlanCode": "4641de", - "PlanTarget": "", - "Annotate": "", - "CreateName": "", - "CreateDate": "2024-01-19 16:46:26.6184295", - "MatrixId": "b3da2b21-875b-4ae6-8077-ec951730201b" - }, - { - "uuid": "62cb45ac3af64a46aa6d450ba56963e7", - "PlanName": "33333", - "PlanCode": "1270aa", - "PlanTarget": "", - "Annotate": "", - "CreateName": "", - "CreateDate": "2024-01-19 16:49:19.6115492", - "MatrixId": "b3da2b21-875b-4ae6-8077-ec951730201b" - }, - { - "uuid": "321f717a3a2640a3bfc9515aee7d1052", - "PlanName": "999", - "PlanCode": "7597ed", - "PlanTarget": "", - "Annotate": "", - "CreateName": "", - "CreateDate": "2024-01-19 16:58:22.6149002", - "MatrixId": "b3da2b21-875b-4ae6-8077-ec951730201b" - }, - { - "uuid": "6c3246ac0f974a6abc24c83bf45e1cf4", - "PlanName": "QPCR", - "PlanCode": "7297ad", - "PlanTarget": "", - "Annotate": "", - "CreateName": "", - "CreateDate": "2024-02-19 13:03:44.3456134", - "MatrixId": "f02830f3-ed67-49fb-9865-c31828ba3a48" - }, - { - "uuid": "1d307a2c095b461abeec6e8521565ad3", - "PlanName": "绝对定量", - "PlanCode": "8540af", - "PlanTarget": "", - "Annotate": "", - "CreateName": "", - "CreateDate": "2024-02-19 13:35:14.2243691", - "MatrixId": "739ddf78-e04c-4d43-9293-c35d31f36f51" - }, - { - "uuid": "bbd6dc765867466ca2a415525f5bdbdd", - "PlanName": "血凝", - "PlanCode": "6513ee", - "PlanTarget": "", - "Annotate": "", - "CreateName": "", - "CreateDate": "2024-02-20 16:14:25.0364174", - "MatrixId": "20e70dcb-63f6-4bac-82e3-29e88eb6a7ab" - }, - { - "uuid": "f7282ecbfee44e91b05cefbc1beac1ae", - "PlanName": "血凝抑制", - "PlanCode": "1431ba", - "PlanTarget": "", - "Annotate": "", - "CreateName": "", - "CreateDate": "2024-02-21 10:00:05.8661038", - "MatrixId": "1c948beb-4c32-494f-b226-14bb84b3e144" - }, - { - "uuid": "196e0d757c574020932b64b69e88fac9", - "PlanName": "测试杀杀杀", - "PlanCode": "9833df", - "PlanTarget": "", - "Annotate": "", - "CreateName": "", - "CreateDate": "2024-02-21 10:54:19.3136491", - "MatrixId": "3667ead7-9044-46ad-b73e-655b57c8c6b9" - } -] \ No newline at end of file diff --git a/unilabos/devices/liquid_handling/prcxi/json_output/_base_plate_position_detail_old_20240221.json b/unilabos/devices/liquid_handling/prcxi/json_output/_base_plate_position_detail_old_20240221.json deleted file mode 100644 index 25916e82..00000000 --- a/unilabos/devices/liquid_handling/prcxi/json_output/_base_plate_position_detail_old_20240221.json +++ /dev/null @@ -1,302 +0,0 @@ -[ - { - "id": "630a9ca9-dfbf-40f9-b90b-6df73e6a1d7f", - "number": 1, - "name": "T1", - "row": 0, - "col": 0, - "row_span": 1, - "col_span": 1, - "plate_position_id": "ef121889-2724-4b3d-a786-bbf0bd213c3d" - }, - { - "id": "db955443-1397-4a7a-a0cc-185eb6422c27", - "number": 2, - "name": "T2", - "row": 0, - "col": 1, - "row_span": 1, - "col_span": 1, - "plate_position_id": "ef121889-2724-4b3d-a786-bbf0bd213c3d" - }, - { - "id": "635e8265-e2b9-430e-8a4e-ddf94256266f", - "number": 3, - "name": "T3", - "row": 0, - "col": 2, - "row_span": 2, - "col_span": 1, - "plate_position_id": "ef121889-2724-4b3d-a786-bbf0bd213c3d" - }, - { - "id": "6de1521d-a249-4a7e-800f-1d49b5c7b56f", - "number": 4, - "name": "T4", - "row": 1, - "col": 0, - "row_span": 1, - "col_span": 1, - "plate_position_id": "ef121889-2724-4b3d-a786-bbf0bd213c3d" - }, - { - "id": "4f9f2527-0f71-4ec4-a0ac-e546407e2960", - "number": 5, - "name": "T5", - "row": 1, - "col": 1, - "row_span": 1, - "col_span": 1, - "plate_position_id": "ef121889-2724-4b3d-a786-bbf0bd213c3d" - }, - { - "id": "55ecff40-453f-4a5f-9ed3-1267b0a03cae", - "number": 1, - "name": "T1", - "row": 0, - "col": 0, - "row_span": 1, - "col_span": 1, - "plate_position_id": "9af15efc-29d2-4c44-8533-bbaf24913be6" - }, - { - "id": "7dcd9c87-6702-4659-b28a-f6565b27f8e3", - "number": 2, - "name": "T2", - "row": 0, - "col": 1, - "row_span": 1, - "col_span": 1, - "plate_position_id": "9af15efc-29d2-4c44-8533-bbaf24913be6" - }, - { - "id": "67e51bd6-6eee-46e4-931c-73d9e07397eb", - "number": 3, - "name": "T3", - "row": 0, - "col": 2, - "row_span": 1, - "col_span": 1, - "plate_position_id": "9af15efc-29d2-4c44-8533-bbaf24913be6" - }, - { - "id": "e1289406-4f5e-4966-a1e6-fb29be6cd4bd", - "number": 4, - "name": "T4", - "row": 0, - "col": 3, - "row_span": 1, - "col_span": 1, - "plate_position_id": "9af15efc-29d2-4c44-8533-bbaf24913be6" - }, - { - "id": "4ecb9ef7-cbd4-44bc-a6a9-fdbbefdc01d6", - "number": 5, - "name": "T5", - "row": 1, - "col": 0, - "row_span": 1, - "col_span": 1, - "plate_position_id": "9af15efc-29d2-4c44-8533-bbaf24913be6" - }, - { - "id": "c7bcaeeb-7ce7-479d-8dae-e82f4023a2b6", - "number": 6, - "name": "T6", - "row": 1, - "col": 1, - "row_span": 1, - "col_span": 1, - "plate_position_id": "9af15efc-29d2-4c44-8533-bbaf24913be6" - }, - { - "id": "e502d5ee-3197-4f60-8ac4-3bc005349dfd", - "number": 7, - "name": "T7", - "row": 1, - "col": 2, - "row_span": 1, - "col_span": 1, - "plate_position_id": "9af15efc-29d2-4c44-8533-bbaf24913be6" - }, - { - "id": "829c78b0-9e05-448f-9531-6d19c094c83f", - "number": 8, - "name": "T8", - "row": 1, - "col": 3, - "row_span": 1, - "col_span": 1, - "plate_position_id": "9af15efc-29d2-4c44-8533-bbaf24913be6" - }, - { - "id": "d0fd64d6-360d-4f5e-9451-21a332e247f5", - "number": 9, - "name": "T9", - "row": 2, - "col": 0, - "row_span": 1, - "col_span": 1, - "plate_position_id": "9af15efc-29d2-4c44-8533-bbaf24913be6" - }, - { - "id": "7f3da25d-0be0-4e07-885f-fbbbfa952f9f", - "number": 10, - "name": "T10", - "row": 2, - "col": 1, - "row_span": 1, - "col_span": 1, - "plate_position_id": "9af15efc-29d2-4c44-8533-bbaf24913be6" - }, - { - "id": "491d396d-7264-43d6-9ad4-60bffbe66c26", - "number": 11, - "name": "T11", - "row": 2, - "col": 2, - "row_span": 1, - "col_span": 1, - "plate_position_id": "9af15efc-29d2-4c44-8533-bbaf24913be6" - }, - { - "id": "a8853b6d-639d-46f9-a4bf-9153c0c22461", - "number": 12, - "name": "T12", - "row": 2, - "col": 3, - "row_span": 1, - "col_span": 1, - "plate_position_id": "9af15efc-29d2-4c44-8533-bbaf24913be6" - }, - { - "id": "b7beb8d0-0003-471d-bd8d-a9c0e09b07d5", - "number": 1, - "name": "T1", - "row": 0, - "col": 0, - "row_span": 1, - "col_span": 1, - "plate_position_id": "6ed12532-eeae-4c16-a9ae-18f0b0cfc546" - }, - { - "id": "306e3f96-a6d7-484a-83ef-722e3710d5c4", - "number": 2, - "name": "T2", - "row": 0, - "col": 1, - "row_span": 1, - "col_span": 1, - "plate_position_id": "6ed12532-eeae-4c16-a9ae-18f0b0cfc546" - }, - { - "id": "4e7bb617-ac1a-4360-b379-7ac4197089c4", - "number": 3, - "name": "T3", - "row": 0, - "col": 2, - "row_span": 1, - "col_span": 1, - "plate_position_id": "6ed12532-eeae-4c16-a9ae-18f0b0cfc546" - }, - { - "id": "af583180-c29d-418e-9061-9e030f77cf57", - "number": 4, - "name": "T4", - "row": 0, - "col": 3, - "row_span": 2, - "col_span": 1, - "plate_position_id": "6ed12532-eeae-4c16-a9ae-18f0b0cfc546" - }, - { - "id": "24a85ce8-e9e3-44f5-9d08-25116173ba75", - "number": 5, - "name": "T5", - "row": 1, - "col": 0, - "row_span": 1, - "col_span": 1, - "plate_position_id": "6ed12532-eeae-4c16-a9ae-18f0b0cfc546" - }, - { - "id": "7bf61a40-f65a-4d2f-bb19-d42bfd80e2e9", - "number": 6, - "name": "T6", - "row": 1, - "col": 1, - "row_span": 1, - "col_span": 1, - "plate_position_id": "6ed12532-eeae-4c16-a9ae-18f0b0cfc546" - }, - { - "id": "a3177806-3c02-4c4f-86d6-604a38c2ba2a", - "number": 7, - "name": "T7", - "row": 1, - "col": 2, - "row_span": 1, - "col_span": 1, - "plate_position_id": "6ed12532-eeae-4c16-a9ae-18f0b0cfc546" - }, - { - "id": "8ccaad5a-8588-4ff3-b0d7-17e7fd5ac6cc", - "number": 1, - "name": "T1", - "row": 0, - "col": 0, - "row_span": 1, - "col_span": 1, - "plate_position_id": "77673540-92c4-4404-b659-4257034a9c5e" - }, - { - "id": "93ae7707-b6b8-4bc4-8700-c500c3d7b165", - "number": 2, - "name": "T2", - "row": 0, - "col": 1, - "row_span": 1, - "col_span": 1, - "plate_position_id": "77673540-92c4-4404-b659-4257034a9c5e" - }, - { - "id": "3591a07b-4922-4882-996f-7bebee843be1", - "number": 3, - "name": "T3", - "row": 0, - "col": 2, - "row_span": 1, - "col_span": 1, - "plate_position_id": "77673540-92c4-4404-b659-4257034a9c5e" - }, - { - "id": "669fdba9-b20c-4bd2-8352-8fe5682e3e0c", - "number": 4, - "name": "T4", - "row": 1, - "col": 0, - "row_span": 1, - "col_span": 1, - "plate_position_id": "77673540-92c4-4404-b659-4257034a9c5e" - }, - { - "id": "8bf3333e-4a73-4e4c-959a-8ae44e1038a2", - "number": 5, - "name": "T5", - "row": 1, - "col": 1, - "row_span": 1, - "col_span": 1, - "plate_position_id": "77673540-92c4-4404-b659-4257034a9c5e" - }, - { - "id": "2837bf69-273a-4cbb-a74c-0af1b362f609", - "number": 6, - "name": "T6", - "row": 1, - "col": 2, - "row_span": 1, - "col_span": 1, - "plate_position_id": "77673540-92c4-4404-b659-4257034a9c5e" - } -] \ No newline at end of file diff --git a/unilabos/devices/liquid_handling/prcxi/json_output/base_arm_model.json b/unilabos/devices/liquid_handling/prcxi/json_output/base_arm_model.json deleted file mode 100644 index 6910f8c8..00000000 --- a/unilabos/devices/liquid_handling/prcxi/json_output/base_arm_model.json +++ /dev/null @@ -1,74 +0,0 @@ -[ - { - "uuid": "9a3007baa748457b8d5162f5c5918553", - "ArmCode": "SC10", - "ArmName": "单道-10uL", - "CmdCode": "SC10", - "ChannelNum": 1, - "Dosage": 10, - "CreateName": "admin", - "CreateTime": "2021-11-13 14:04:02.000", - "UpdateName": "admin", - "UpdateTime": "2021-11-13 14:04:12.000" - }, - { - "uuid": "8f57a4cc859d4c02bffbeeadcfb2b661", - "ArmCode": "SC300", - "ArmName": "单道-300uL", - "CmdCode": "SC300", - "ChannelNum": 1, - "Dosage": 300, - "CreateName": "admin", - "CreateTime": "2021-11-11 11:11:11.000", - "UpdateName": "admin", - "UpdateTime": "2021-11-11 11:11:11.000" - }, - { - "uuid": "8fe0320823de49a99bfa5060ce1aaa28", - "ArmCode": "SC1250", - "ArmName": "单道-1250", - "CmdCode": "SC1250", - "ChannelNum": 1, - "Dosage": 1250, - "CreateName": "admin", - "CreateTime": "2021-11-12 10:10:10.000", - "UpdateName": "admin", - "UpdateTime": "2021-11-12 11:11:11.000" - }, - { - "uuid": "88f22c5384e94dbbad60961d4d2b5e91", - "ArmCode": "MC10", - "ArmName": "八道-10uL", - "CmdCode": "MC10", - "ChannelNum": 8, - "Dosage": 10, - "CreateName": "admin", - "CreateTime": "2021-11-12 10:10:10.000", - "UpdateName": "admin", - "UpdateTime": "2021-11-13 12:12:12.000" - }, - { - "uuid": "09206ff90e64466f90ce6a785a24bad8", - "ArmCode": "MC300", - "ArmName": "八道-300uL", - "CmdCode": "MC300", - "ChannelNum": 8, - "Dosage": 300, - "CreateName": "admin", - "CreateTime": "2021-11-12 12:12:12.000", - "UpdateName": "admin", - "UpdateTime": "2021-11-12 10:10:10.000" - }, - { - "uuid": "5afcbd7d1d6749079d1c94f8c2e68f06", - "ArmCode": "MC1250", - "ArmName": "八道-1250uL", - "CmdCode": "MC1250", - "ChannelNum": 8, - "Dosage": 1250, - "CreateName": "admin", - "CreateTime": "2021-11-12 12:12:10.000", - "UpdateName": "admin", - "UpdateTime": "2021-11-12 12:11:11.000" - } -] \ No newline at end of file diff --git a/unilabos/devices/liquid_handling/prcxi/json_output/base_layout_detail.json b/unilabos/devices/liquid_handling/prcxi/json_output/base_layout_detail.json deleted file mode 100644 index 17d68b5e..00000000 --- a/unilabos/devices/liquid_handling/prcxi/json_output/base_layout_detail.json +++ /dev/null @@ -1,10 +0,0 @@ -[ - { - "uuid": "bd52d6566534441ea523265814dc06e8", - "uuidMaterial": "01bdeb95a1314dc78b8f25667b08d531", - "ChannelNum": 8, - "HoleNo": 96, - "HoleCenterXYZ": "300", - "uuidLayoutMaster": "4f35adc958c540fcb40d6f9dd51e40fa" - } -] \ No newline at end of file diff --git a/unilabos/devices/liquid_handling/prcxi/json_output/base_layout_master.json b/unilabos/devices/liquid_handling/prcxi/json_output/base_layout_master.json deleted file mode 100644 index 36d6ae82..00000000 --- a/unilabos/devices/liquid_handling/prcxi/json_output/base_layout_master.json +++ /dev/null @@ -1,20 +0,0 @@ -[ - { - "uuid": "4f35adc958c540fcb40d6f9dd51e40fa", - "BoardCode": 34, - "BoardNum": 1, - "BoardLength": 500, - "BoardWidth": 400, - "BoardColum": 4, - "BoardRow": 3, - "TotalColum": 4, - "TotalRow": 3, - "BoardCenterXY": "300", - "HoleQty": 96, - "Version": 1, - "CreateTime": "2021-11-15", - "CreateName": "admin", - "UpdateTime": "2021-11-15", - "UpdateName": "admin" - } -] \ No newline at end of file diff --git a/unilabos/devices/liquid_handling/prcxi/json_output/base_plan_detail.json b/unilabos/devices/liquid_handling/prcxi/json_output/base_plan_detail.json deleted file mode 100644 index 4c1d1e97..00000000 --- a/unilabos/devices/liquid_handling/prcxi/json_output/base_plan_detail.json +++ /dev/null @@ -1,180578 +0,0 @@ -[ - { - "uuid": "e5febaad7fe9416dad9059fb6ab89e74", - "uuidPlanMaster": "5500c3a9d8504922b4f71474b12a5040", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1 - 8, T3", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 3, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": "", - "AdapterName": "", - "ConsumablesCode": "", - "ConsumablesName": "", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "ffd58a04becf4b469d07993448b52d66", - "uuidPlanMaster": "5500c3a9d8504922b4f71474b12a5040", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H9 - 16, T3", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 3, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 2, - "HoleCollective": "9,10,11,12,13,14,15,16", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": "", - "AdapterName": "", - "ConsumablesCode": "", - "ConsumablesName": "", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "30b6d0c1eb594a01aa1adf7d15bd2054", - "uuidPlanMaster": "dd5102d94bef415ca169578d4e1d2a4f", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1 - 8, T3", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "031fcc7a8bf34b8e9ddd3592d92f108b", - "uuidPlanMaster": "87ea11eeb24b43648ce294654b561fe7", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1 - 8, T3", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "25e80760bbca4942b935a23d1b2c58ea", - "uuidPlanMaster": "87ea11eeb24b43648ce294654b561fe7", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H1 - 8, T2", - "Dosage": 250, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "dbb546a964f042778d2cd5830287a000", - "uuidPlanMaster": "87ea11eeb24b43648ce294654b561fe7", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1 - 8, T1", - "Dosage": 250, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "413e6ce924cc4998a03d7886a78da792", - "uuidPlanMaster": "87ea11eeb24b43648ce294654b561fe7", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H1 - 8, T3", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "faf0f5c896744001bfcbc3927515f9a3", - "uuidPlanMaster": "87ea11eeb24b43648ce294654b561fe7", - "Axis": "Left", - "ActOn": "Load", - "Place": "H9 - 16, T3", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 2, - "HoleCollective": "9,10,11,12,13,14,15,16", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "adccf44655f24fd1b9fcb5a4f1af4b12", - "uuidPlanMaster": "87ea11eeb24b43648ce294654b561fe7", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H9 - 16, T2", - "Dosage": 250, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 2, - "HoleCollective": "9,10,11,12,13,14,15,16", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "450cd28e83194d1bb796a6093fbd58af", - "uuidPlanMaster": "87ea11eeb24b43648ce294654b561fe7", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H9 - 16, T1", - "Dosage": 250, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 2, - "HoleCollective": "9,10,11,12,13,14,15,16", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "a82a05ef46ba48659c3103e1102a68be", - "uuidPlanMaster": "87ea11eeb24b43648ce294654b561fe7", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H9 - 16, T3", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 2, - "HoleCollective": "9,10,11,12,13,14,15,16", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "3c19c934ab694405a0e74bcde220c7f0", - "uuidPlanMaster": "87ea11eeb24b43648ce294654b561fe7", - "Axis": "Left", - "ActOn": "Load", - "Place": "H17 - 24, T3", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "17,18,19,20,21,22,23,24", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "d3ce739564bf44a5a36d33dc8eb186a6", - "uuidPlanMaster": "87ea11eeb24b43648ce294654b561fe7", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H17 - 24, T2", - "Dosage": 250, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "17,18,19,20,21,22,23,24", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "784b4585fe5545858c9745c9ee96d260", - "uuidPlanMaster": "87ea11eeb24b43648ce294654b561fe7", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H17 - 24, T1", - "Dosage": 250, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "17,18,19,20,21,22,23,24", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "6aac0c78ddd74ce6be6772de6c881e11", - "uuidPlanMaster": "87ea11eeb24b43648ce294654b561fe7", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H17 - 24, T3", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "17,18,19,20,21,22,23,24", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "84c8187f05a54197b14d11f47e6989f5", - "uuidPlanMaster": "87ea11eeb24b43648ce294654b561fe7", - "Axis": "Left", - "ActOn": "Load", - "Place": "H25 - 32, T3", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 4, - "HoleCollective": "25,26,27,28,29,30,31,32", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "a5244a3520bf486581270019bc8cd732", - "uuidPlanMaster": "87ea11eeb24b43648ce294654b561fe7", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H25 - 32, T2", - "Dosage": 250, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 4, - "HoleCollective": "25,26,27,28,29,30,31,32", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "1e64a44bcbb64fd59e10b0ef856a920e", - "uuidPlanMaster": "87ea11eeb24b43648ce294654b561fe7", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H25 - 32, T1", - "Dosage": 250, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 4, - "HoleCollective": "25,26,27,28,29,30,31,32", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "d674d0e267cd4987948973c4a8dc4e73", - "uuidPlanMaster": "87ea11eeb24b43648ce294654b561fe7", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H25 - 32, T3", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 4, - "HoleCollective": "25,26,27,28,29,30,31,32", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "e00d19ff3c9c483d8a34a8805891e3ad", - "uuidPlanMaster": "87ea11eeb24b43648ce294654b561fe7", - "Axis": "Left", - "ActOn": "Load", - "Place": "H33 - 40, T3", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 5, - "HoleCollective": "33,34,35,36,37,38,39,40", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "6b4c7de16bf54d75b92a0048c1a273cf", - "uuidPlanMaster": "87ea11eeb24b43648ce294654b561fe7", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H33 - 40, T2", - "Dosage": 250, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 5, - "HoleCollective": "33,34,35,36,37,38,39,40", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "280ec84bd994406e9efc1ad2639d9365", - "uuidPlanMaster": "87ea11eeb24b43648ce294654b561fe7", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H33 - 40, T1", - "Dosage": 250, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 5, - "HoleCollective": "33,34,35,36,37,38,39,40", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "fde824dae3af4606b6a7d93e292f23dd", - "uuidPlanMaster": "87ea11eeb24b43648ce294654b561fe7", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H33 - 40, T3", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 5, - "HoleCollective": "33,34,35,36,37,38,39,40", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "dda88f921a764c89b1a05d910930c8a0", - "uuidPlanMaster": "87ea11eeb24b43648ce294654b561fe7", - "Axis": "Left", - "ActOn": "Load", - "Place": "H41 - 48, T3", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 6, - "HoleCollective": "41,42,43,44,45,46,47,48", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "07cf701d6979415182a60898525822b5", - "uuidPlanMaster": "87ea11eeb24b43648ce294654b561fe7", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H41 - 48, T2", - "Dosage": 250, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 6, - "HoleCollective": "41,42,43,44,45,46,47,48", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "cd7705e6d77047e8aaf9df8e443d2b9a", - "uuidPlanMaster": "87ea11eeb24b43648ce294654b561fe7", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H41 - 48, T1", - "Dosage": 250, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 6, - "HoleCollective": "41,42,43,44,45,46,47,48", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "d86f4f9c9c2d4b3ea98dadb23030f8db", - "uuidPlanMaster": "87ea11eeb24b43648ce294654b561fe7", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H41 - 48, T3", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 6, - "HoleCollective": "41,42,43,44,45,46,47,48", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "359ad674eebd45d8bd0938bdab83d7de", - "uuidPlanMaster": "87ea11eeb24b43648ce294654b561fe7", - "Axis": "Left", - "ActOn": "Load", - "Place": "H49 - 56, T3", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 7, - "HoleCollective": "49,50,51,52,53,54,55,56", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "7abecfa8372942cbbe1b741e5d76eaf3", - "uuidPlanMaster": "87ea11eeb24b43648ce294654b561fe7", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H49 - 56, T2", - "Dosage": 250, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 7, - "HoleCollective": "49,50,51,52,53,54,55,56", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "652bfed00d4643c8b48c21a71d9c6b43", - "uuidPlanMaster": "87ea11eeb24b43648ce294654b561fe7", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H49 - 56, T1", - "Dosage": 250, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 7, - "HoleCollective": "49,50,51,52,53,54,55,56", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "52e30fc420eb4069aaf76e6e9ba575ac", - "uuidPlanMaster": "87ea11eeb24b43648ce294654b561fe7", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H49 - 56, T3", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 7, - "HoleCollective": "49,50,51,52,53,54,55,56", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "10b88677b4c34757a430dc824a4bd824", - "uuidPlanMaster": "87ea11eeb24b43648ce294654b561fe7", - "Axis": "Left", - "ActOn": "Load", - "Place": "H57 - 64, T3", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 8, - "HoleCollective": "57,58,59,60,61,62,63,64", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "64cfa45ba4094518a881545cf63c01d6", - "uuidPlanMaster": "87ea11eeb24b43648ce294654b561fe7", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H57 - 64, T2", - "Dosage": 250, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 8, - "HoleCollective": "57,58,59,60,61,62,63,64", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "f11d92785ccd45488c61c8234ed6c879", - "uuidPlanMaster": "87ea11eeb24b43648ce294654b561fe7", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H57 - 64, T1", - "Dosage": 250, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 8, - "HoleCollective": "57,58,59,60,61,62,63,64", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "80f3bb81fef44cf5badb292f6ccdf938", - "uuidPlanMaster": "87ea11eeb24b43648ce294654b561fe7", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H57 - 64, T3", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 8, - "HoleCollective": "57,58,59,60,61,62,63,64", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "689a5e5364164c28805e7312f70c8390", - "uuidPlanMaster": "87ea11eeb24b43648ce294654b561fe7", - "Axis": "Left", - "ActOn": "Load", - "Place": "H65 - 72, T3", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 9, - "HoleCollective": "65,66,67,68,69,70,71,72", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "566040720a924abaa177abae9f6d2fbb", - "uuidPlanMaster": "87ea11eeb24b43648ce294654b561fe7", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H65 - 72, T2", - "Dosage": 250, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 9, - "HoleCollective": "65,66,67,68,69,70,71,72", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "1117d8e2eca048c088a29a84858d587f", - "uuidPlanMaster": "87ea11eeb24b43648ce294654b561fe7", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H65 - 72, T1", - "Dosage": 250, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 9, - "HoleCollective": "65,66,67,68,69,70,71,72", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "0d9e1a108aec411b826ac4ad49a00ef0", - "uuidPlanMaster": "87ea11eeb24b43648ce294654b561fe7", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H65 - 72, T3", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 9, - "HoleCollective": "65,66,67,68,69,70,71,72", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "87d08cce80d744d380b44d192c49ecb9", - "uuidPlanMaster": "87ea11eeb24b43648ce294654b561fe7", - "Axis": "Left", - "ActOn": "Load", - "Place": "H73 - 80, T3", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 10, - "HoleCollective": "73,74,75,76,77,78,79,80", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "a299aa8118f349c0aea61e39f8ccf936", - "uuidPlanMaster": "87ea11eeb24b43648ce294654b561fe7", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H73 - 80, T2", - "Dosage": 250, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 10, - "HoleCollective": "73,74,75,76,77,78,79,80", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "69a0497dc7f34d8da7ccbf0cb8034dc8", - "uuidPlanMaster": "87ea11eeb24b43648ce294654b561fe7", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H73 - 80, T1", - "Dosage": 250, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 10, - "HoleCollective": "73,74,75,76,77,78,79,80", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "dcb9d39e1c65417e894dc122bde7df8e", - "uuidPlanMaster": "87ea11eeb24b43648ce294654b561fe7", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H73 - 80, T3", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 10, - "HoleCollective": "73,74,75,76,77,78,79,80", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "99df7a8284024eecad3f2aebcb95a735", - "uuidPlanMaster": "87ea11eeb24b43648ce294654b561fe7", - "Axis": "Left", - "ActOn": "Load", - "Place": "H81 - 88, T3", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 11, - "HoleCollective": "81,82,83,84,85,86,87,88", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "f8eee1950a9043f4a61f2ff5fe8709e7", - "uuidPlanMaster": "87ea11eeb24b43648ce294654b561fe7", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H81 - 88, T2", - "Dosage": 250, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 11, - "HoleCollective": "81,82,83,84,85,86,87,88", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "cfb6a48011a34df5b5e24c5ba02fa8cd", - "uuidPlanMaster": "87ea11eeb24b43648ce294654b561fe7", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H81 - 88, T1", - "Dosage": 250, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 11, - "HoleCollective": "81,82,83,84,85,86,87,88", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "7babfec62c224814bed0d8d248c88ccc", - "uuidPlanMaster": "87ea11eeb24b43648ce294654b561fe7", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H81 - 88, T3", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 11, - "HoleCollective": "81,82,83,84,85,86,87,88", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "1a87159f4a694123a733323c21bf3eb3", - "uuidPlanMaster": "87ea11eeb24b43648ce294654b561fe7", - "Axis": "Left", - "ActOn": "Load", - "Place": "H89 - 96, T3", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 12, - "HoleCollective": "89,90,91,92,93,94,95,96", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "22f904209f974bcd83bfeeb8a49a94e7", - "uuidPlanMaster": "87ea11eeb24b43648ce294654b561fe7", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H89 - 96, T2", - "Dosage": 250, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 12, - "HoleCollective": "89,90,91,92,93,94,95,96", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "52525794f2ca4f54b3bff870a3166f19", - "uuidPlanMaster": "87ea11eeb24b43648ce294654b561fe7", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H89 - 96, T1", - "Dosage": 250, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 12, - "HoleCollective": "89,90,91,92,93,94,95,96", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "1e4cd967cb3b48f297c7d172f9a9b14b", - "uuidPlanMaster": "87ea11eeb24b43648ce294654b561fe7", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H89 - 96, T3", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 12, - "HoleCollective": "89,90,91,92,93,94,95,96", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "1707c0e6e2964edb9e1d32530e6b80c3", - "uuidPlanMaster": "0a977d6ebc4244739793b0b6f8b3f815", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1 - 8, T3", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "4715a76d398e4e78920a8e6e811b36c6", - "uuidPlanMaster": "0a977d6ebc4244739793b0b6f8b3f815", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H1 - 8, T4", - "Dosage": 100, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "602be9ceae344c1fb617d2330ccec91c", - "uuidPlanMaster": "0a977d6ebc4244739793b0b6f8b3f815", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1 - 15, T1", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,3,5,7,9,11,13,15", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "384", - "ConsumablesName": "16 x 24", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "9cf21f5fe6424048bd214dd5e5911c0a", - "uuidPlanMaster": "0a977d6ebc4244739793b0b6f8b3f815", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H2 - 16, T1", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 1, - "HoleCollective": "2,4,6,8,10,12,14,16", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "384", - "ConsumablesName": "16 x 24", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "620611166e1d43fc9e2dbd9a41f87597", - "uuidPlanMaster": "0a977d6ebc4244739793b0b6f8b3f815", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H17 - 31, T1", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 2, - "HoleCollective": "17,19,21,23,25,27,29,31", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "384", - "ConsumablesName": "16 x 24", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "d3a82b3e46374bf4a9b1d1920c2e7e12", - "uuidPlanMaster": "0a977d6ebc4244739793b0b6f8b3f815", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H18 - 32, T1", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 2, - "HoleCollective": "18,20,22,24,26,28,30,32", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "384", - "ConsumablesName": "16 x 24", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "7b74cbc9da7d4022b04c65415e21b6ca", - "uuidPlanMaster": "0a977d6ebc4244739793b0b6f8b3f815", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T5", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "废液槽", - "ConsumablesName": "1 x 1", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "31733b1f188346eeae114c26d696e268", - "uuidPlanMaster": "0a977d6ebc4244739793b0b6f8b3f815", - "Axis": "Left", - "ActOn": "Load", - "Place": "H9 - 16, T3", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 2, - "HoleCollective": "9,10,11,12,13,14,15,16", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "8008c9f9c81240d0847d962557903047", - "uuidPlanMaster": "0a977d6ebc4244739793b0b6f8b3f815", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H9 - 16, T4", - "Dosage": 100, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 2, - "HoleCollective": "9,10,11,12,13,14,15,16", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "61accab2866e43509dc99ad770fde120", - "uuidPlanMaster": "0a977d6ebc4244739793b0b6f8b3f815", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H33 - 47, T1", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "33,35,37,39,41,43,45,47", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "384", - "ConsumablesName": "16 x 24", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "792484152dad46bfb4179937cbdd7466", - "uuidPlanMaster": "0a977d6ebc4244739793b0b6f8b3f815", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H34 - 48, T1", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 3, - "HoleCollective": "34,36,38,40,42,44,46,48", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "384", - "ConsumablesName": "16 x 24", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "a2b06022b49649458b6a16903dff5faf", - "uuidPlanMaster": "0a977d6ebc4244739793b0b6f8b3f815", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H49 - 63, T1", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 4, - "HoleCollective": "49,51,53,55,57,59,61,63", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "384", - "ConsumablesName": "16 x 24", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "b2e5a83a173644f29bedb3897750b8f4", - "uuidPlanMaster": "0a977d6ebc4244739793b0b6f8b3f815", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H50 - 64, T1", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 4, - "HoleCollective": "50,52,54,56,58,60,62,64", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "384", - "ConsumablesName": "16 x 24", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "565b1f9e0c2e4c48b2743b49b36582d3", - "uuidPlanMaster": "0a977d6ebc4244739793b0b6f8b3f815", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T5", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "废液槽", - "ConsumablesName": "1 x 1", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "b835d670f6de42878ee67220d43ac8f4", - "uuidPlanMaster": "0a977d6ebc4244739793b0b6f8b3f815", - "Axis": "Left", - "ActOn": "Load", - "Place": "H17 - 24, T3", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "17,18,19,20,21,22,23,24", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "6be4bddbe49f45898f54371cd5eb8d76", - "uuidPlanMaster": "0a977d6ebc4244739793b0b6f8b3f815", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H17 - 24, T4", - "Dosage": 100, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "17,18,19,20,21,22,23,24", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "6f2195787cc047ef9739240fcd0290e9", - "uuidPlanMaster": "0a977d6ebc4244739793b0b6f8b3f815", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H65 - 79, T1", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 5, - "HoleCollective": "65,67,69,71,73,75,77,79", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "384", - "ConsumablesName": "16 x 24", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "cf4ba74a677441a0b02aad7573abfda4", - "uuidPlanMaster": "0a977d6ebc4244739793b0b6f8b3f815", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H66 - 80, T1", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 5, - "HoleCollective": "66,68,70,72,74,76,78,80", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "384", - "ConsumablesName": "16 x 24", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "7cd81cbd5914422a9bbeb4fd5cf43dda", - "uuidPlanMaster": "0a977d6ebc4244739793b0b6f8b3f815", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H81 - 95, T1", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 6, - "HoleCollective": "81,83,85,87,89,91,93,95", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "384", - "ConsumablesName": "16 x 24", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "348c96369092411a94448694300bbe05", - "uuidPlanMaster": "0a977d6ebc4244739793b0b6f8b3f815", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H82 - 96, T1", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 6, - "HoleCollective": "82,84,86,88,90,92,94,96", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "384", - "ConsumablesName": "16 x 24", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "0a883406116448f399c541aa0a0dcdb6", - "uuidPlanMaster": "0a977d6ebc4244739793b0b6f8b3f815", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T5", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "废液槽", - "ConsumablesName": "1 x 1", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "c6ad3211c1ca4106a9ae182f23287b40", - "uuidPlanMaster": "0a977d6ebc4244739793b0b6f8b3f815", - "Axis": "Left", - "ActOn": "Load", - "Place": "H25 - 32, T3", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 4, - "HoleCollective": "25,26,27,28,29,30,31,32", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "fabcd0e34f0541048c4eba308bb3f468", - "uuidPlanMaster": "0a977d6ebc4244739793b0b6f8b3f815", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H25 - 32, T4", - "Dosage": 100, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 4, - "HoleCollective": "25,26,27,28,29,30,31,32", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "8df53b13aeb448079ee345999852f361", - "uuidPlanMaster": "0a977d6ebc4244739793b0b6f8b3f815", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H97 - 111, T1", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 7, - "HoleCollective": "97,99,101,103,105,107,109,111", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "384", - "ConsumablesName": "16 x 24", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "4dfa8e969802465bbc688d3964fbe90c", - "uuidPlanMaster": "0a977d6ebc4244739793b0b6f8b3f815", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H98 - 112, T1", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 7, - "HoleCollective": "98,100,102,104,106,108,110,112", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "384", - "ConsumablesName": "16 x 24", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "3b5659462eee40ab8e7792d7dbc5f7ad", - "uuidPlanMaster": "0a977d6ebc4244739793b0b6f8b3f815", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H113 - 127, T1", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 8, - "HoleCollective": "113,115,117,119,121,123,125,127", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "384", - "ConsumablesName": "16 x 24", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "2fa0cfff847f409ea5f7f73f5b22674b", - "uuidPlanMaster": "0a977d6ebc4244739793b0b6f8b3f815", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H114 - 128, T1", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 8, - "HoleCollective": "114,116,118,120,122,124,126,128", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "384", - "ConsumablesName": "16 x 24", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "e09f38a7e6c846c6a202da04094c9bd6", - "uuidPlanMaster": "0a977d6ebc4244739793b0b6f8b3f815", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T5", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "废液槽", - "ConsumablesName": "1 x 1", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "c1761686652d40fca3a5488354776381", - "uuidPlanMaster": "0a977d6ebc4244739793b0b6f8b3f815", - "Axis": "Left", - "ActOn": "Load", - "Place": "H33 - 40, T3", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 5, - "HoleCollective": "33,34,35,36,37,38,39,40", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "8e6754658c5b423d820de2dfa53bd144", - "uuidPlanMaster": "0a977d6ebc4244739793b0b6f8b3f815", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H33 - 40, T4", - "Dosage": 100, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 5, - "HoleCollective": "33,34,35,36,37,38,39,40", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "5902296acefa4a8183894f5ebbdfd713", - "uuidPlanMaster": "0a977d6ebc4244739793b0b6f8b3f815", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H129 - 143, T1", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 9, - "HoleCollective": "129,131,133,135,137,139,141,143", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "384", - "ConsumablesName": "16 x 24", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "353ab78d26354184b04a36d18a93967b", - "uuidPlanMaster": "0a977d6ebc4244739793b0b6f8b3f815", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H130 - 144, T1", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 9, - "HoleCollective": "130,132,134,136,138,140,142,144", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "384", - "ConsumablesName": "16 x 24", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "e6dde68c68b1466fb66beee32b5b9804", - "uuidPlanMaster": "0a977d6ebc4244739793b0b6f8b3f815", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H145 - 159, T1", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 10, - "HoleCollective": "145,147,149,151,153,155,157,159", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "384", - "ConsumablesName": "16 x 24", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "059a89cfb3134fe3a97b5a6d3797f080", - "uuidPlanMaster": "0a977d6ebc4244739793b0b6f8b3f815", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H146 - 160, T1", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 10, - "HoleCollective": "146,148,150,152,154,156,158,160", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "384", - "ConsumablesName": "16 x 24", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "5c829629669c4f1c9d4ec8a4a39fad2b", - "uuidPlanMaster": "0a977d6ebc4244739793b0b6f8b3f815", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T5", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "废液槽", - "ConsumablesName": "1 x 1", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "6f1d6326809043849feae30af64955fe", - "uuidPlanMaster": "0a977d6ebc4244739793b0b6f8b3f815", - "Axis": "Left", - "ActOn": "Load", - "Place": "H41 - 48, T3", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 6, - "HoleCollective": "41,42,43,44,45,46,47,48", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "37595dd8abc3454ca2bc6d040772b509", - "uuidPlanMaster": "0a977d6ebc4244739793b0b6f8b3f815", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H41 - 48, T4", - "Dosage": 100, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 6, - "HoleCollective": "41,42,43,44,45,46,47,48", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "7aead7f11f3b4180a208cc433d72e60f", - "uuidPlanMaster": "0a977d6ebc4244739793b0b6f8b3f815", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H161 - 175, T1", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 11, - "HoleCollective": "161,163,165,167,169,171,173,175", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "384", - "ConsumablesName": "16 x 24", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "afe1d66dca7c42d9abf0a43bc6ba70e9", - "uuidPlanMaster": "0a977d6ebc4244739793b0b6f8b3f815", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H162 - 176, T1", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 11, - "HoleCollective": "162,164,166,168,170,172,174,176", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "384", - "ConsumablesName": "16 x 24", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "ff33bfcc94984410a3d273686a1cbc1d", - "uuidPlanMaster": "0a977d6ebc4244739793b0b6f8b3f815", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H177 - 191, T1", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 12, - "HoleCollective": "177,179,181,183,185,187,189,191", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "384", - "ConsumablesName": "16 x 24", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "4de6aca4a5c146138be76bb48b177f66", - "uuidPlanMaster": "0a977d6ebc4244739793b0b6f8b3f815", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H178 - 192, T1", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 12, - "HoleCollective": "178,180,182,184,186,188,190,192", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "384", - "ConsumablesName": "16 x 24", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "69ef0200dc42410fad490cff98b8bf58", - "uuidPlanMaster": "0a977d6ebc4244739793b0b6f8b3f815", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T5", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "废液槽", - "ConsumablesName": "1 x 1", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "530e465adc804a4e81cffe6dcf7c5c0a", - "uuidPlanMaster": "0a977d6ebc4244739793b0b6f8b3f815", - "Axis": "Left", - "ActOn": "Load", - "Place": "H49 - 56, T3", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 7, - "HoleCollective": "49,50,51,52,53,54,55,56", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "f21bea7f1e0a4b9aa053fa069c683115", - "uuidPlanMaster": "0a977d6ebc4244739793b0b6f8b3f815", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H49 - 56, T4", - "Dosage": 100, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 7, - "HoleCollective": "49,50,51,52,53,54,55,56", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "34bda57ee4e94d3397eb7bdd8410cd27", - "uuidPlanMaster": "0a977d6ebc4244739793b0b6f8b3f815", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H193 - 207, T1", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 13, - "HoleCollective": "193,195,197,199,201,203,205,207", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "384", - "ConsumablesName": "16 x 24", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "1a9907449eb14718895765efa5db4710", - "uuidPlanMaster": "0a977d6ebc4244739793b0b6f8b3f815", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H194 - 208, T1", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 13, - "HoleCollective": "194,196,198,200,202,204,206,208", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "384", - "ConsumablesName": "16 x 24", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "7a4a6468eb814394bdc2f34ab42d56e0", - "uuidPlanMaster": "0a977d6ebc4244739793b0b6f8b3f815", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H209 - 223, T1", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 14, - "HoleCollective": "209,211,213,215,217,219,221,223", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "384", - "ConsumablesName": "16 x 24", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "95f4bcfbbfb444028f04ae49b3fc0082", - "uuidPlanMaster": "0a977d6ebc4244739793b0b6f8b3f815", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H210 - 224, T1", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 14, - "HoleCollective": "210,212,214,216,218,220,222,224", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "384", - "ConsumablesName": "16 x 24", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "5e5ede313cd049ec9d8bc65162169564", - "uuidPlanMaster": "0a977d6ebc4244739793b0b6f8b3f815", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T5", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "废液槽", - "ConsumablesName": "1 x 1", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "4562604fa30c4fcd9c2478baa59ddb5d", - "uuidPlanMaster": "0a977d6ebc4244739793b0b6f8b3f815", - "Axis": "Left", - "ActOn": "Load", - "Place": "H57 - 64, T3", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 8, - "HoleCollective": "57,58,59,60,61,62,63,64", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "7df7508d65c14d458de87c94eb91248e", - "uuidPlanMaster": "0a977d6ebc4244739793b0b6f8b3f815", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H57 - 64, T4", - "Dosage": 100, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 8, - "HoleCollective": "57,58,59,60,61,62,63,64", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "89890ce0f9bc4fac87154cd5960c5c52", - "uuidPlanMaster": "0a977d6ebc4244739793b0b6f8b3f815", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H225 - 239, T1", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 15, - "HoleCollective": "225,227,229,231,233,235,237,239", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "384", - "ConsumablesName": "16 x 24", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "9f56316cc8ff44fc9ad98a345740861b", - "uuidPlanMaster": "0a977d6ebc4244739793b0b6f8b3f815", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H226 - 240, T1", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 15, - "HoleCollective": "226,228,230,232,234,236,238,240", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "384", - "ConsumablesName": "16 x 24", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "b0e4e37ae9664044a02526887dda9caf", - "uuidPlanMaster": "0a977d6ebc4244739793b0b6f8b3f815", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H241 - 255, T1", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 16, - "HoleCollective": "241,243,245,247,249,251,253,255", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "384", - "ConsumablesName": "16 x 24", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "54b7ca214efe47a4bdac36105d0ec46e", - "uuidPlanMaster": "0a977d6ebc4244739793b0b6f8b3f815", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H242 - 256, T1", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 16, - "HoleCollective": "242,244,246,248,250,252,254,256", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "384", - "ConsumablesName": "16 x 24", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "99e9968173754511918d01b59d3029d0", - "uuidPlanMaster": "0a977d6ebc4244739793b0b6f8b3f815", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T5", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "废液槽", - "ConsumablesName": "1 x 1", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "18b3e91082604757b9c78e88927bacf9", - "uuidPlanMaster": "0a977d6ebc4244739793b0b6f8b3f815", - "Axis": "Left", - "ActOn": "Load", - "Place": "H65 - 72, T3", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 9, - "HoleCollective": "65,66,67,68,69,70,71,72", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "ade173abf44e4521a779c314ae90258e", - "uuidPlanMaster": "0a977d6ebc4244739793b0b6f8b3f815", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H65 - 72, T4", - "Dosage": 100, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 9, - "HoleCollective": "65,66,67,68,69,70,71,72", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "d6af8987431247cb944f3b224df12c15", - "uuidPlanMaster": "0a977d6ebc4244739793b0b6f8b3f815", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H257 - 271, T1", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 17, - "HoleCollective": "257,259,261,263,265,267,269,271", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "384", - "ConsumablesName": "16 x 24", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "7414bc14ac6b4492bf4d63b11bf7117d", - "uuidPlanMaster": "0a977d6ebc4244739793b0b6f8b3f815", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H258 - 272, T1", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 17, - "HoleCollective": "258,260,262,264,266,268,270,272", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "384", - "ConsumablesName": "16 x 24", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "481179da0054432d8ec87e60434df988", - "uuidPlanMaster": "0a977d6ebc4244739793b0b6f8b3f815", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H273 - 287, T1", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 18, - "HoleCollective": "273,275,277,279,281,283,285,287", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "384", - "ConsumablesName": "16 x 24", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "bbe272428f6544979b6a834f5b5a2fec", - "uuidPlanMaster": "0a977d6ebc4244739793b0b6f8b3f815", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H274 - 288, T1", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 18, - "HoleCollective": "274,276,278,280,282,284,286,288", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "384", - "ConsumablesName": "16 x 24", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "1b0c0d4e516445ff9deaddeeb2c1ebc1", - "uuidPlanMaster": "0a977d6ebc4244739793b0b6f8b3f815", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T5", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "废液槽", - "ConsumablesName": "1 x 1", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "ed8a905ca6a140b0afc357e7fd9550e5", - "uuidPlanMaster": "0a977d6ebc4244739793b0b6f8b3f815", - "Axis": "Left", - "ActOn": "Load", - "Place": "H73 - 80, T3", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 10, - "HoleCollective": "73,74,75,76,77,78,79,80", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "e24951ae4c0a417caf39d077b2950cf9", - "uuidPlanMaster": "0a977d6ebc4244739793b0b6f8b3f815", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H73 - 80, T4", - "Dosage": 100, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 10, - "HoleCollective": "73,74,75,76,77,78,79,80", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "be3dff272c8446a889033a1bd0cb8314", - "uuidPlanMaster": "0a977d6ebc4244739793b0b6f8b3f815", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H289 - 303, T1", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 19, - "HoleCollective": "289,291,293,295,297,299,301,303", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "384", - "ConsumablesName": "16 x 24", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "d62eef83996b40c88af538f77b9061ff", - "uuidPlanMaster": "0a977d6ebc4244739793b0b6f8b3f815", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H290 - 304, T1", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 19, - "HoleCollective": "290,292,294,296,298,300,302,304", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "384", - "ConsumablesName": "16 x 24", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "b2879156c3a747c48e3b707076e06de3", - "uuidPlanMaster": "0a977d6ebc4244739793b0b6f8b3f815", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H305 - 319, T1", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 20, - "HoleCollective": "305,307,309,311,313,315,317,319", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "384", - "ConsumablesName": "16 x 24", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "0f18197169eb40dbadd03bde8dc57378", - "uuidPlanMaster": "0a977d6ebc4244739793b0b6f8b3f815", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H306 - 320, T1", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 20, - "HoleCollective": "306,308,310,312,314,316,318,320", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "384", - "ConsumablesName": "16 x 24", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "0da753320d134311a79812dabb3c97ed", - "uuidPlanMaster": "0a977d6ebc4244739793b0b6f8b3f815", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T5", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "废液槽", - "ConsumablesName": "1 x 1", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "f40bee032c76438fa635b4cc6fcec9c4", - "uuidPlanMaster": "0a977d6ebc4244739793b0b6f8b3f815", - "Axis": "Left", - "ActOn": "Load", - "Place": "H81 - 88, T3", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 11, - "HoleCollective": "81,82,83,84,85,86,87,88", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "e5d65266a85f49929a820fe5d0561e1d", - "uuidPlanMaster": "0a977d6ebc4244739793b0b6f8b3f815", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H81 - 88, T4", - "Dosage": 100, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 11, - "HoleCollective": "81,82,83,84,85,86,87,88", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "b196d1518f1e40d7b664b73aed1a0e59", - "uuidPlanMaster": "0a977d6ebc4244739793b0b6f8b3f815", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H321 - 335, T1", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 21, - "HoleCollective": "321,323,325,327,329,331,333,335", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "384", - "ConsumablesName": "16 x 24", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "fb949982b0114e2db67b6259316a9d5a", - "uuidPlanMaster": "0a977d6ebc4244739793b0b6f8b3f815", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H322 - 336, T1", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 21, - "HoleCollective": "322,324,326,328,330,332,334,336", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "384", - "ConsumablesName": "16 x 24", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "72815961efc843f2b701cf1afba70c17", - "uuidPlanMaster": "0a977d6ebc4244739793b0b6f8b3f815", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H337 - 351, T1", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 22, - "HoleCollective": "337,339,341,343,345,347,349,351", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "384", - "ConsumablesName": "16 x 24", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "4a2b70009d844ba3a81c3f54372c5969", - "uuidPlanMaster": "0a977d6ebc4244739793b0b6f8b3f815", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H338 - 352, T1", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 22, - "HoleCollective": "338,340,342,344,346,348,350,352", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "384", - "ConsumablesName": "16 x 24", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "fcaefcf5fcfa41e3b00730f440023957", - "uuidPlanMaster": "0a977d6ebc4244739793b0b6f8b3f815", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T5", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "废液槽", - "ConsumablesName": "1 x 1", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "4f3b0f756c924122a9bb3d6c62e80c75", - "uuidPlanMaster": "0a977d6ebc4244739793b0b6f8b3f815", - "Axis": "Left", - "ActOn": "Load", - "Place": "H89 - 96, T3", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 12, - "HoleCollective": "89,90,91,92,93,94,95,96", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "a5dd4b8263e04be1bd8e14852f8e718b", - "uuidPlanMaster": "0a977d6ebc4244739793b0b6f8b3f815", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H89 - 96, T4", - "Dosage": 100, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 12, - "HoleCollective": "89,90,91,92,93,94,95,96", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "c216c4a2f46e49d49b348db9e6cca074", - "uuidPlanMaster": "0a977d6ebc4244739793b0b6f8b3f815", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H353 - 367, T1", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 23, - "HoleCollective": "353,355,357,359,361,363,365,367", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "384", - "ConsumablesName": "16 x 24", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "facb746e1ba44f06b07761caf1d3237d", - "uuidPlanMaster": "0a977d6ebc4244739793b0b6f8b3f815", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H354 - 368, T1", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 23, - "HoleCollective": "354,356,358,360,362,364,366,368", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "384", - "ConsumablesName": "16 x 24", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "a4f5b081bb9040108587084db9926a91", - "uuidPlanMaster": "0a977d6ebc4244739793b0b6f8b3f815", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H369 - 383, T1", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 24, - "HoleCollective": "369,371,373,375,377,379,381,383", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "384", - "ConsumablesName": "16 x 24", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "f0962a29174149f5a322a0736d91bf84", - "uuidPlanMaster": "0a977d6ebc4244739793b0b6f8b3f815", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H370 - 384, T1", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 24, - "HoleCollective": "370,372,374,376,378,380,382,384", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "384", - "ConsumablesName": "16 x 24", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "f2f1a3e5cc7a4b53b2ac2d97f4684e07", - "uuidPlanMaster": "0a977d6ebc4244739793b0b6f8b3f815", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T5", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "废液槽", - "ConsumablesName": "1 x 1", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "68a347119760443da9c79ff997cdedd6", - "uuidPlanMaster": "aff2cd213ad34072b370f44acb5ab658", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1 - 8, T3", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "099524f7fdb04b62b052ebab977d2bf3", - "uuidPlanMaster": "aff2cd213ad34072b370f44acb5ab658", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H1 - 8, T4", - "Dosage": 300, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "e2d2f9c4cee345c78f57303ab1508cfb", - "uuidPlanMaster": "aff2cd213ad34072b370f44acb5ab658", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1 - 8, T2", - "Dosage": 300, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "231757ddbe1b4fb2bf1a5df2998da2c1", - "uuidPlanMaster": "aff2cd213ad34072b370f44acb5ab658", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H1 - 8, T2", - "Dosage": 300, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "077b08ea64044effb4db80e8c1da3735", - "uuidPlanMaster": "aff2cd213ad34072b370f44acb5ab658", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1 - 8, T1", - "Dosage": 300, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "235b2ace29b74b089fde5741a77e1fb3", - "uuidPlanMaster": "aff2cd213ad34072b370f44acb5ab658", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T5", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "废液槽", - "ConsumablesName": "1 x 1", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "6c3092cbddce48d48595b8fe55b735c9", - "uuidPlanMaster": "aff2cd213ad34072b370f44acb5ab658", - "Axis": "Left", - "ActOn": "Load", - "Place": "H9 - 16, T3", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 2, - "HoleCollective": "9,10,11,12,13,14,15,16", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "97b3ee8eae644b04ab29ac299a549cf2", - "uuidPlanMaster": "aff2cd213ad34072b370f44acb5ab658", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H9 - 16, T4", - "Dosage": 300, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 2, - "HoleCollective": "9,10,11,12,13,14,15,16", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "542a1f0bae444fc8adfbfca3a32232df", - "uuidPlanMaster": "aff2cd213ad34072b370f44acb5ab658", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H9 - 16, T2", - "Dosage": 300, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 2, - "HoleCollective": "9,10,11,12,13,14,15,16", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "636e66d9d4bd407ca86f386c7f9069dd", - "uuidPlanMaster": "aff2cd213ad34072b370f44acb5ab658", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H9 - 16, T2", - "Dosage": 300, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 2, - "HoleCollective": "9,10,11,12,13,14,15,16", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "9f8f5ac96de64e6194225f902abd7a30", - "uuidPlanMaster": "aff2cd213ad34072b370f44acb5ab658", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H9 - 16, T1", - "Dosage": 300, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 2, - "HoleCollective": "9,10,11,12,13,14,15,16", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "2b124dd3aab8471a8d807233b45de273", - "uuidPlanMaster": "aff2cd213ad34072b370f44acb5ab658", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T5", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 2, - "HoleCollective": "9", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "废液槽", - "ConsumablesName": "1 x 1", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "2b04cb24eb4e469c957de592130866dc", - "uuidPlanMaster": "aff2cd213ad34072b370f44acb5ab658", - "Axis": "Left", - "ActOn": "Load", - "Place": "H17 - 24, T3", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "17,18,19,20,21,22,23,24", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "c29e0417912a449f847d3eaeeadd38f3", - "uuidPlanMaster": "aff2cd213ad34072b370f44acb5ab658", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H17 - 24, T4", - "Dosage": 300, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "17,18,19,20,21,22,23,24", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "1f6acae1f17843c2b194cabdae087be2", - "uuidPlanMaster": "aff2cd213ad34072b370f44acb5ab658", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H17 - 24, T2", - "Dosage": 300, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "17,18,19,20,21,22,23,24", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "762cb15f00ff4cbfb09dfef356c6fa6d", - "uuidPlanMaster": "aff2cd213ad34072b370f44acb5ab658", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H17 - 24, T2", - "Dosage": 300, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "17,18,19,20,21,22,23,24", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "a6d56c9e626f48458c3ede3bfd8d7165", - "uuidPlanMaster": "aff2cd213ad34072b370f44acb5ab658", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H17 - 24, T1", - "Dosage": 300, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "17,18,19,20,21,22,23,24", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "efc8e606a26a40d3ab22559ad432d35b", - "uuidPlanMaster": "aff2cd213ad34072b370f44acb5ab658", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T5", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "17", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "废液槽", - "ConsumablesName": "1 x 1", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "f296f0da7ea941c38fa3faae135c96c8", - "uuidPlanMaster": "aff2cd213ad34072b370f44acb5ab658", - "Axis": "Left", - "ActOn": "Load", - "Place": "H25 - 32, T3", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 4, - "HoleCollective": "25,26,27,28,29,30,31,32", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "198dccf8ef934e20a1b4227524d746aa", - "uuidPlanMaster": "aff2cd213ad34072b370f44acb5ab658", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H25 - 32, T4", - "Dosage": 300, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 4, - "HoleCollective": "25,26,27,28,29,30,31,32", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "c3dd92b3f5a34b159affb1a5ab725973", - "uuidPlanMaster": "aff2cd213ad34072b370f44acb5ab658", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H25 - 32, T2", - "Dosage": 300, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 4, - "HoleCollective": "25,26,27,28,29,30,31,32", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "b2c4fe0d6ab3427e9683705f065c88d6", - "uuidPlanMaster": "aff2cd213ad34072b370f44acb5ab658", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H25 - 32, T2", - "Dosage": 300, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 4, - "HoleCollective": "25,26,27,28,29,30,31,32", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "94284b0b958943af84c3c88ba82b7cfe", - "uuidPlanMaster": "aff2cd213ad34072b370f44acb5ab658", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H25 - 32, T1", - "Dosage": 300, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 4, - "HoleCollective": "25,26,27,28,29,30,31,32", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "3fac7a836c41432cb3f03d1efb3960c3", - "uuidPlanMaster": "aff2cd213ad34072b370f44acb5ab658", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T5", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 4, - "HoleCollective": "25", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "废液槽", - "ConsumablesName": "1 x 1", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "12dab1b9bfde431da44eab9e4581281f", - "uuidPlanMaster": "aff2cd213ad34072b370f44acb5ab658", - "Axis": "Left", - "ActOn": "Load", - "Place": "H33 - 40, T3", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 5, - "HoleCollective": "33,34,35,36,37,38,39,40", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "cdc270db4fbf4e5e82e13e09a423a5b7", - "uuidPlanMaster": "aff2cd213ad34072b370f44acb5ab658", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H33 - 40, T4", - "Dosage": 300, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 5, - "HoleCollective": "33,34,35,36,37,38,39,40", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "dc3dbea735574f8bba2b1f9d3942e466", - "uuidPlanMaster": "aff2cd213ad34072b370f44acb5ab658", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H33 - 40, T2", - "Dosage": 300, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 5, - "HoleCollective": "33,34,35,36,37,38,39,40", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "d445d1d8fac24d869842f99dfcc9b546", - "uuidPlanMaster": "aff2cd213ad34072b370f44acb5ab658", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H33 - 40, T2", - "Dosage": 300, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 5, - "HoleCollective": "33,34,35,36,37,38,39,40", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "1de8de82333d4580b730aa8c59059fc6", - "uuidPlanMaster": "aff2cd213ad34072b370f44acb5ab658", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H33 - 40, T1", - "Dosage": 300, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 5, - "HoleCollective": "33,34,35,36,37,38,39,40", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "ad56abcf10514ec6aef8dedb33878d98", - "uuidPlanMaster": "aff2cd213ad34072b370f44acb5ab658", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T5", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 5, - "HoleCollective": "33", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "废液槽", - "ConsumablesName": "1 x 1", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "005ad2841dd74fc685c16af9cef9ca53", - "uuidPlanMaster": "aff2cd213ad34072b370f44acb5ab658", - "Axis": "Left", - "ActOn": "Load", - "Place": "H41 - 48, T3", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 6, - "HoleCollective": "41,42,43,44,45,46,47,48", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "91ef993709b04005ac92e64150a0dc01", - "uuidPlanMaster": "aff2cd213ad34072b370f44acb5ab658", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H41 - 48, T4", - "Dosage": 300, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 6, - "HoleCollective": "41,42,43,44,45,46,47,48", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "e40c034653904d3888dfacd52d01172b", - "uuidPlanMaster": "aff2cd213ad34072b370f44acb5ab658", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H41 - 48, T2", - "Dosage": 300, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 6, - "HoleCollective": "41,42,43,44,45,46,47,48", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "f37cc9fac56146e4911f340ffe1a98e6", - "uuidPlanMaster": "aff2cd213ad34072b370f44acb5ab658", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H41 - 48, T2", - "Dosage": 300, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 6, - "HoleCollective": "41,42,43,44,45,46,47,48", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "7f350cf8fcab4abf90556180d7f298f7", - "uuidPlanMaster": "aff2cd213ad34072b370f44acb5ab658", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H41 - 48, T1", - "Dosage": 300, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 6, - "HoleCollective": "41,42,43,44,45,46,47,48", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "53c19cef883c44f38f65bc716f30ce9b", - "uuidPlanMaster": "aff2cd213ad34072b370f44acb5ab658", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T5", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 6, - "HoleCollective": "41", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "废液槽", - "ConsumablesName": "1 x 1", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "c5b9ce4800d84aba994c786f59224dea", - "uuidPlanMaster": "aff2cd213ad34072b370f44acb5ab658", - "Axis": "Left", - "ActOn": "Load", - "Place": "H49 - 56, T3", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 7, - "HoleCollective": "49,50,51,52,53,54,55,56", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "df3e42d17a8b45f5ad5bc22d883db116", - "uuidPlanMaster": "aff2cd213ad34072b370f44acb5ab658", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H49 - 56, T4", - "Dosage": 300, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 7, - "HoleCollective": "49,50,51,52,53,54,55,56", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "00883fd023104503ab425536c89eb894", - "uuidPlanMaster": "aff2cd213ad34072b370f44acb5ab658", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H49 - 56, T2", - "Dosage": 300, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 7, - "HoleCollective": "49,50,51,52,53,54,55,56", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "edefe24ac2c3421ba631235f732b2838", - "uuidPlanMaster": "aff2cd213ad34072b370f44acb5ab658", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H49 - 56, T2", - "Dosage": 300, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 7, - "HoleCollective": "49,50,51,52,53,54,55,56", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "93e7553dd7d34ffcb38211ed00a8477b", - "uuidPlanMaster": "aff2cd213ad34072b370f44acb5ab658", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H49 - 56, T1", - "Dosage": 300, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 7, - "HoleCollective": "49,50,51,52,53,54,55,56", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "3fa8e6688f8343c28d4f4d62a0d15e62", - "uuidPlanMaster": "aff2cd213ad34072b370f44acb5ab658", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T5", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 7, - "HoleCollective": "49", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "废液槽", - "ConsumablesName": "1 x 1", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "a5495a41ec444b32a27599a27ef56dcc", - "uuidPlanMaster": "aff2cd213ad34072b370f44acb5ab658", - "Axis": "Left", - "ActOn": "Load", - "Place": "H57 - 64, T3", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 8, - "HoleCollective": "57,58,59,60,61,62,63,64", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "6390502840be43249f96a0075d0490c5", - "uuidPlanMaster": "aff2cd213ad34072b370f44acb5ab658", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H57 - 64, T4", - "Dosage": 300, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 8, - "HoleCollective": "57,58,59,60,61,62,63,64", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "8863618ad906433aa11dc9b3c52d506e", - "uuidPlanMaster": "aff2cd213ad34072b370f44acb5ab658", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H57 - 64, T2", - "Dosage": 300, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 8, - "HoleCollective": "57,58,59,60,61,62,63,64", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "b2e14eb9ae1b49728daca658022f832e", - "uuidPlanMaster": "aff2cd213ad34072b370f44acb5ab658", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H57 - 64, T2", - "Dosage": 300, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 8, - "HoleCollective": "57,58,59,60,61,62,63,64", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "8a4bfb5b1cda4ea49b2ee60b09619060", - "uuidPlanMaster": "aff2cd213ad34072b370f44acb5ab658", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H57 - 64, T1", - "Dosage": 300, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 8, - "HoleCollective": "57,58,59,60,61,62,63,64", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "a33168bc052d4fa4a5d7f69b012a532a", - "uuidPlanMaster": "aff2cd213ad34072b370f44acb5ab658", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T5", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 8, - "HoleCollective": "57", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "废液槽", - "ConsumablesName": "1 x 1", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "a672cf9a7e5449d9b793bb226e4d4e3d", - "uuidPlanMaster": "aff2cd213ad34072b370f44acb5ab658", - "Axis": "Left", - "ActOn": "Load", - "Place": "H65 - 72, T3", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 9, - "HoleCollective": "65,66,67,68,69,70,71,72", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "c05c8d125d764a50ada5202ea4399c48", - "uuidPlanMaster": "aff2cd213ad34072b370f44acb5ab658", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H65 - 72, T4", - "Dosage": 300, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 9, - "HoleCollective": "65,66,67,68,69,70,71,72", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "61c3e33d9f6244ef9e90757ad0218343", - "uuidPlanMaster": "aff2cd213ad34072b370f44acb5ab658", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H65 - 72, T2", - "Dosage": 300, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 9, - "HoleCollective": "65,66,67,68,69,70,71,72", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "630d4f953c4e4ea6b6cd9ef702b6f816", - "uuidPlanMaster": "aff2cd213ad34072b370f44acb5ab658", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H65 - 72, T2", - "Dosage": 300, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 9, - "HoleCollective": "65,66,67,68,69,70,71,72", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "bdc5e3be588243808c66e2f0aa3b63c4", - "uuidPlanMaster": "aff2cd213ad34072b370f44acb5ab658", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H65 - 72, T1", - "Dosage": 300, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 9, - "HoleCollective": "65,66,67,68,69,70,71,72", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "e83c5c83404c47a7a4abba5e6d6bcfeb", - "uuidPlanMaster": "aff2cd213ad34072b370f44acb5ab658", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T5", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 9, - "HoleCollective": "65", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "废液槽", - "ConsumablesName": "1 x 1", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "2c49dceafb9d452fb8d15fe9bb5da274", - "uuidPlanMaster": "aff2cd213ad34072b370f44acb5ab658", - "Axis": "Left", - "ActOn": "Load", - "Place": "H73 - 80, T3", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 10, - "HoleCollective": "73,74,75,76,77,78,79,80", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "17e779c2479b4bd5a7bcf23fc15519b2", - "uuidPlanMaster": "aff2cd213ad34072b370f44acb5ab658", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H73 - 80, T4", - "Dosage": 300, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 10, - "HoleCollective": "73,74,75,76,77,78,79,80", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "c511efd0557347d08269ab97a90d842f", - "uuidPlanMaster": "aff2cd213ad34072b370f44acb5ab658", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H73 - 80, T2", - "Dosage": 300, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 10, - "HoleCollective": "73,74,75,76,77,78,79,80", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "de6c0fa716f54c41a26946e32d7bd6d5", - "uuidPlanMaster": "aff2cd213ad34072b370f44acb5ab658", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H73 - 80, T2", - "Dosage": 300, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 10, - "HoleCollective": "73,74,75,76,77,78,79,80", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "bb4eddf83bf7452986d35721ffc54873", - "uuidPlanMaster": "aff2cd213ad34072b370f44acb5ab658", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H73 - 80, T1", - "Dosage": 300, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 10, - "HoleCollective": "73,74,75,76,77,78,79,80", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "a4970d3b3cf94dc8a31f57a49414413d", - "uuidPlanMaster": "aff2cd213ad34072b370f44acb5ab658", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T5", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 10, - "HoleCollective": "73", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "废液槽", - "ConsumablesName": "1 x 1", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "626e2b28a3b24dfb880dd4faf9786055", - "uuidPlanMaster": "aff2cd213ad34072b370f44acb5ab658", - "Axis": "Left", - "ActOn": "Load", - "Place": "H81 - 88, T3", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 11, - "HoleCollective": "81,82,83,84,85,86,87,88", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "6842ecd2b977451eb738493d04e1244e", - "uuidPlanMaster": "aff2cd213ad34072b370f44acb5ab658", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H81 - 88, T4", - "Dosage": 300, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 11, - "HoleCollective": "81,82,83,84,85,86,87,88", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "4348aef29d774394adc620c210f2cda7", - "uuidPlanMaster": "aff2cd213ad34072b370f44acb5ab658", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H81 - 88, T2", - "Dosage": 300, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 11, - "HoleCollective": "81,82,83,84,85,86,87,88", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "217a62596374475ebb4eb3e1082f7436", - "uuidPlanMaster": "aff2cd213ad34072b370f44acb5ab658", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H81 - 88, T2", - "Dosage": 300, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 11, - "HoleCollective": "81,82,83,84,85,86,87,88", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "3f312be41bc146b9aa9a7c3ad44b80a7", - "uuidPlanMaster": "aff2cd213ad34072b370f44acb5ab658", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H81 - 88, T1", - "Dosage": 300, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 11, - "HoleCollective": "81,82,83,84,85,86,87,88", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "9afd99189f4c42cd89d8d48e9e0cdfcf", - "uuidPlanMaster": "aff2cd213ad34072b370f44acb5ab658", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T5", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 11, - "HoleCollective": "81", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "废液槽", - "ConsumablesName": "1 x 1", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "3ddc5ea55d0a428e89c1fe6feff5b8b3", - "uuidPlanMaster": "aff2cd213ad34072b370f44acb5ab658", - "Axis": "Left", - "ActOn": "Load", - "Place": "H89 - 96, T3", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 12, - "HoleCollective": "89,90,91,92,93,94,95,96", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "769f5991d1064f01a8847ea2e4afe592", - "uuidPlanMaster": "aff2cd213ad34072b370f44acb5ab658", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H89 - 96, T4", - "Dosage": 300, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 12, - "HoleCollective": "89,90,91,92,93,94,95,96", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "b946e89b366c4ccaad339fa35350e7bd", - "uuidPlanMaster": "aff2cd213ad34072b370f44acb5ab658", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H89 - 96, T2", - "Dosage": 300, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 12, - "HoleCollective": "89,90,91,92,93,94,95,96", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "18e2aae702fd48f4abd1e69c61dcb535", - "uuidPlanMaster": "aff2cd213ad34072b370f44acb5ab658", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H89 - 96, T2", - "Dosage": 300, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 12, - "HoleCollective": "89,90,91,92,93,94,95,96", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "9083222f9eaa407581775d5fed715d07", - "uuidPlanMaster": "aff2cd213ad34072b370f44acb5ab658", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H89 - 96, T1", - "Dosage": 300, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 12, - "HoleCollective": "89,90,91,92,93,94,95,96", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "e38b67c82ca6484399fe0a59a681bfae", - "uuidPlanMaster": "aff2cd213ad34072b370f44acb5ab658", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T5", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 12, - "HoleCollective": "89", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "废液槽", - "ConsumablesName": "1 x 1", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "be728285210645e4ae321e7bafddc820", - "uuidPlanMaster": "97816d94f99a48409379013d19f0ab66", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1 - 8, T3", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "3a42ac19d5c44a3a929bc83580335c77", - "uuidPlanMaster": "97816d94f99a48409379013d19f0ab66", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H1 - 8, T4", - "Dosage": 40, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "d76feabebcf94d86be4db75b8d856431", - "uuidPlanMaster": "97816d94f99a48409379013d19f0ab66", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1 - 15, T1", - "Dosage": 10, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,3,5,7,9,11,13,15", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "384", - "ConsumablesName": "16 x 24", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "878f1715a97642aea44f10339c73afe4", - "uuidPlanMaster": "97816d94f99a48409379013d19f0ab66", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H2 - 16, T1", - "Dosage": 10, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 1, - "HoleCollective": "2,4,6,8,10,12,14,16", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "384", - "ConsumablesName": "16 x 24", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "edf4736152ea46719093db032770a5b6", - "uuidPlanMaster": "97816d94f99a48409379013d19f0ab66", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H17 - 31, T1", - "Dosage": 10, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 2, - "HoleCollective": "17,19,21,23,25,27,29,31", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "384", - "ConsumablesName": "16 x 24", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "30fc2f4bda0c4df488b025b123cd6e28", - "uuidPlanMaster": "97816d94f99a48409379013d19f0ab66", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H18 - 32, T1", - "Dosage": 10, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 2, - "HoleCollective": "18,20,22,24,26,28,30,32", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "384", - "ConsumablesName": "16 x 24", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "7bcdfa43d68b481e8096fb4311482922", - "uuidPlanMaster": "97816d94f99a48409379013d19f0ab66", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T5", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "废液槽", - "ConsumablesName": "1 x 1", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "c634b4f41ca34acdac4b08154ce3d6f9", - "uuidPlanMaster": "97816d94f99a48409379013d19f0ab66", - "Axis": "Left", - "ActOn": "Load", - "Place": "H9 - 16, T3", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 2, - "HoleCollective": "9,10,11,12,13,14,15,16", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "805be11a28264afa8b70947194066de1", - "uuidPlanMaster": "97816d94f99a48409379013d19f0ab66", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H9 - 16, T4", - "Dosage": 40, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 2, - "HoleCollective": "9,10,11,12,13,14,15,16", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "2efdc4ed8d3a46688f7a675016379f7e", - "uuidPlanMaster": "97816d94f99a48409379013d19f0ab66", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H33 - 47, T1", - "Dosage": 10, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "33,35,37,39,41,43,45,47", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "384", - "ConsumablesName": "16 x 24", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "a127da9ffd034b1fb5fcf6d739e0023d", - "uuidPlanMaster": "97816d94f99a48409379013d19f0ab66", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H34 - 48, T1", - "Dosage": 10, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 3, - "HoleCollective": "34,36,38,40,42,44,46,48", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "384", - "ConsumablesName": "16 x 24", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "fcd89f16f2ce4cd993efa300b8cb4e14", - "uuidPlanMaster": "97816d94f99a48409379013d19f0ab66", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H49 - 63, T1", - "Dosage": 10, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 4, - "HoleCollective": "49,51,53,55,57,59,61,63", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "384", - "ConsumablesName": "16 x 24", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "ca76eec5efb04e82b013a59df64dfc99", - "uuidPlanMaster": "97816d94f99a48409379013d19f0ab66", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H50 - 64, T1", - "Dosage": 10, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 4, - "HoleCollective": "50,52,54,56,58,60,62,64", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "384", - "ConsumablesName": "16 x 24", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "9f2f213efe3b4259be829535d28b50d2", - "uuidPlanMaster": "97816d94f99a48409379013d19f0ab66", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T5", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "废液槽", - "ConsumablesName": "1 x 1", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "14af2fcb50294f93b2fc2e5fc65fcfc8", - "uuidPlanMaster": "97816d94f99a48409379013d19f0ab66", - "Axis": "Left", - "ActOn": "Load", - "Place": "H17 - 24, T3", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "17,18,19,20,21,22,23,24", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "a665138caa2842b78043e1ffee2592b3", - "uuidPlanMaster": "97816d94f99a48409379013d19f0ab66", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H17 - 24, T4", - "Dosage": 40, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "17,18,19,20,21,22,23,24", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "81a16d273b1942d1bd8404f28b687a49", - "uuidPlanMaster": "97816d94f99a48409379013d19f0ab66", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H65 - 79, T1", - "Dosage": 10, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 5, - "HoleCollective": "65,67,69,71,73,75,77,79", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "384", - "ConsumablesName": "16 x 24", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "3b65e959b58e4797b95748275d769c4f", - "uuidPlanMaster": "97816d94f99a48409379013d19f0ab66", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H66 - 80, T1", - "Dosage": 10, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 5, - "HoleCollective": "66,68,70,72,74,76,78,80", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "384", - "ConsumablesName": "16 x 24", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "c66f2d2a075f4456b61e5fff4063e48b", - "uuidPlanMaster": "97816d94f99a48409379013d19f0ab66", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H81 - 95, T1", - "Dosage": 10, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 6, - "HoleCollective": "81,83,85,87,89,91,93,95", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "384", - "ConsumablesName": "16 x 24", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "cd9afb2707e547c88ddbc0cf5a62022e", - "uuidPlanMaster": "97816d94f99a48409379013d19f0ab66", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H82 - 96, T1", - "Dosage": 10, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 6, - "HoleCollective": "82,84,86,88,90,92,94,96", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "384", - "ConsumablesName": "16 x 24", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "5007e568f4a048459c557b3ed5681564", - "uuidPlanMaster": "97816d94f99a48409379013d19f0ab66", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T5", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "废液槽", - "ConsumablesName": "1 x 1", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "943120ec42c941a5958b627f1c209345", - "uuidPlanMaster": "97816d94f99a48409379013d19f0ab66", - "Axis": "Left", - "ActOn": "Load", - "Place": "H25 - 32, T3", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 4, - "HoleCollective": "25,26,27,28,29,30,31,32", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "142f1dbf9bcc403d80563e1444e63422", - "uuidPlanMaster": "97816d94f99a48409379013d19f0ab66", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H25 - 32, T4", - "Dosage": 40, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 4, - "HoleCollective": "25,26,27,28,29,30,31,32", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "dcba89da210d4b7b8b6eacd445865b94", - "uuidPlanMaster": "97816d94f99a48409379013d19f0ab66", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H97 - 111, T1", - "Dosage": 10, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 7, - "HoleCollective": "97,99,101,103,105,107,109,111", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "384", - "ConsumablesName": "16 x 24", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "119760f040cc48c88e016b20cbf047a0", - "uuidPlanMaster": "97816d94f99a48409379013d19f0ab66", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H98 - 112, T1", - "Dosage": 10, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 7, - "HoleCollective": "98,100,102,104,106,108,110,112", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "384", - "ConsumablesName": "16 x 24", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "c54e34b6b4124f8ab9b0baf076ad3740", - "uuidPlanMaster": "97816d94f99a48409379013d19f0ab66", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H113 - 127, T1", - "Dosage": 10, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 8, - "HoleCollective": "113,115,117,119,121,123,125,127", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "384", - "ConsumablesName": "16 x 24", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "dbe954675b4749db9e387a16731a1e3d", - "uuidPlanMaster": "97816d94f99a48409379013d19f0ab66", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H114 - 128, T1", - "Dosage": 10, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 8, - "HoleCollective": "114,116,118,120,122,124,126,128", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "384", - "ConsumablesName": "16 x 24", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "ef0d53986ee949adb6c9e85a75c916ae", - "uuidPlanMaster": "97816d94f99a48409379013d19f0ab66", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T5", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "废液槽", - "ConsumablesName": "1 x 1", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "9d4888b1544e4424b12bd74810e5293a", - "uuidPlanMaster": "97816d94f99a48409379013d19f0ab66", - "Axis": "Left", - "ActOn": "Load", - "Place": "H33 - 40, T3", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 5, - "HoleCollective": "33,34,35,36,37,38,39,40", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "f0cc4984620e482eb9665b8dd1867c21", - "uuidPlanMaster": "97816d94f99a48409379013d19f0ab66", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H33 - 40, T4", - "Dosage": 40, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 5, - "HoleCollective": "33,34,35,36,37,38,39,40", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "160f342d63af4e0c923d2c04b14a0d10", - "uuidPlanMaster": "97816d94f99a48409379013d19f0ab66", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H129 - 143, T1", - "Dosage": 10, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 9, - "HoleCollective": "129,131,133,135,137,139,141,143", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "384", - "ConsumablesName": "16 x 24", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "30c68dcf28b64c75b72b98945097b724", - "uuidPlanMaster": "97816d94f99a48409379013d19f0ab66", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H130 - 144, T1", - "Dosage": 10, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 9, - "HoleCollective": "130,132,134,136,138,140,142,144", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "384", - "ConsumablesName": "16 x 24", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "c3b1616dd3f347bf8946cdc46538a988", - "uuidPlanMaster": "97816d94f99a48409379013d19f0ab66", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H145 - 159, T1", - "Dosage": 10, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 10, - "HoleCollective": "145,147,149,151,153,155,157,159", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "384", - "ConsumablesName": "16 x 24", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "2b82c6a8bdbc41549a8c8fe1c169f66e", - "uuidPlanMaster": "97816d94f99a48409379013d19f0ab66", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H146 - 160, T1", - "Dosage": 10, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 10, - "HoleCollective": "146,148,150,152,154,156,158,160", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "384", - "ConsumablesName": "16 x 24", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "103ced0de147460d8d24f341e56d9ecd", - "uuidPlanMaster": "97816d94f99a48409379013d19f0ab66", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T5", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "废液槽", - "ConsumablesName": "1 x 1", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "9d52948faf754c7eb693e69ff0dbec1f", - "uuidPlanMaster": "97816d94f99a48409379013d19f0ab66", - "Axis": "Left", - "ActOn": "Load", - "Place": "H41 - 48, T3", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 6, - "HoleCollective": "41,42,43,44,45,46,47,48", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "9372a2ba0ef5446e8917cfc88508ad45", - "uuidPlanMaster": "97816d94f99a48409379013d19f0ab66", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H41 - 48, T4", - "Dosage": 40, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 6, - "HoleCollective": "41,42,43,44,45,46,47,48", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "9f4e49a0a1654e988987d39c2938f947", - "uuidPlanMaster": "97816d94f99a48409379013d19f0ab66", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H161 - 175, T1", - "Dosage": 10, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 11, - "HoleCollective": "161,163,165,167,169,171,173,175", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "384", - "ConsumablesName": "16 x 24", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "8a4d415173e74e099a51b155a77c5481", - "uuidPlanMaster": "97816d94f99a48409379013d19f0ab66", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H162 - 176, T1", - "Dosage": 10, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 11, - "HoleCollective": "162,164,166,168,170,172,174,176", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "384", - "ConsumablesName": "16 x 24", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "103790acfd6d4a1e9d369ac846634d66", - "uuidPlanMaster": "97816d94f99a48409379013d19f0ab66", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H177 - 191, T1", - "Dosage": 10, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 12, - "HoleCollective": "177,179,181,183,185,187,189,191", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "384", - "ConsumablesName": "16 x 24", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "dcdedb98609e45979752e2f14ce75942", - "uuidPlanMaster": "97816d94f99a48409379013d19f0ab66", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H178 - 192, T1", - "Dosage": 10, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 12, - "HoleCollective": "178,180,182,184,186,188,190,192", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "384", - "ConsumablesName": "16 x 24", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "5803056c466842dc80b94d6172e8e07a", - "uuidPlanMaster": "97816d94f99a48409379013d19f0ab66", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T5", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "废液槽", - "ConsumablesName": "1 x 1", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "0fab86861e8e40d3bb1047f3b4eb7dc4", - "uuidPlanMaster": "97816d94f99a48409379013d19f0ab66", - "Axis": "Left", - "ActOn": "Load", - "Place": "H49 - 56, T3", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 7, - "HoleCollective": "49,50,51,52,53,54,55,56", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "0080f5ce4f4748db93da9da3fc2f9507", - "uuidPlanMaster": "97816d94f99a48409379013d19f0ab66", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H49 - 56, T4", - "Dosage": 40, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 7, - "HoleCollective": "49,50,51,52,53,54,55,56", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "d6f7ea046ba8449eaf27d0e11c3ba6b2", - "uuidPlanMaster": "97816d94f99a48409379013d19f0ab66", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H193 - 207, T1", - "Dosage": 10, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 13, - "HoleCollective": "193,195,197,199,201,203,205,207", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "384", - "ConsumablesName": "16 x 24", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "8f24ecd8227b44669d327e397142c8a0", - "uuidPlanMaster": "97816d94f99a48409379013d19f0ab66", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H194 - 208, T1", - "Dosage": 10, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 13, - "HoleCollective": "194,196,198,200,202,204,206,208", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "384", - "ConsumablesName": "16 x 24", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "8ae2b861f7ff40fbb3c6263c6074a14a", - "uuidPlanMaster": "97816d94f99a48409379013d19f0ab66", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H209 - 223, T1", - "Dosage": 10, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 14, - "HoleCollective": "209,211,213,215,217,219,221,223", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "384", - "ConsumablesName": "16 x 24", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "7ae5bbc7b7334641bb43e9743bdf3af6", - "uuidPlanMaster": "97816d94f99a48409379013d19f0ab66", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H210 - 224, T1", - "Dosage": 10, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 14, - "HoleCollective": "210,212,214,216,218,220,222,224", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "384", - "ConsumablesName": "16 x 24", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "4a67a5ed6f5d438788c2d5253634ed3a", - "uuidPlanMaster": "97816d94f99a48409379013d19f0ab66", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T5", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "废液槽", - "ConsumablesName": "1 x 1", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "53bfd75591a04887a12395554a675cd7", - "uuidPlanMaster": "97816d94f99a48409379013d19f0ab66", - "Axis": "Left", - "ActOn": "Load", - "Place": "H57 - 64, T3", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 8, - "HoleCollective": "57,58,59,60,61,62,63,64", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "8222f65ab73044b787861cacd028fd80", - "uuidPlanMaster": "97816d94f99a48409379013d19f0ab66", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H57 - 64, T4", - "Dosage": 40, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 8, - "HoleCollective": "57,58,59,60,61,62,63,64", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "bf9238becec54ee79e834480675a8421", - "uuidPlanMaster": "97816d94f99a48409379013d19f0ab66", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H225 - 239, T1", - "Dosage": 10, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 15, - "HoleCollective": "225,227,229,231,233,235,237,239", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "384", - "ConsumablesName": "16 x 24", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "9cca48d3bf6a4b0f8e279904837a0dbd", - "uuidPlanMaster": "97816d94f99a48409379013d19f0ab66", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H226 - 240, T1", - "Dosage": 10, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 15, - "HoleCollective": "226,228,230,232,234,236,238,240", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "384", - "ConsumablesName": "16 x 24", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "2024f5d1178f4e8eb1a9dd7aca49449a", - "uuidPlanMaster": "97816d94f99a48409379013d19f0ab66", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H241 - 255, T1", - "Dosage": 10, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 16, - "HoleCollective": "241,243,245,247,249,251,253,255", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "384", - "ConsumablesName": "16 x 24", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "a72e3a1888f745d29902262d965dc4a3", - "uuidPlanMaster": "97816d94f99a48409379013d19f0ab66", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H242 - 256, T1", - "Dosage": 10, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 16, - "HoleCollective": "242,244,246,248,250,252,254,256", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "384", - "ConsumablesName": "16 x 24", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "dcd458902528475a95bdec92043efdd1", - "uuidPlanMaster": "97816d94f99a48409379013d19f0ab66", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T5", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "废液槽", - "ConsumablesName": "1 x 1", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "8af78ab42ed24481a0a5fdafdb6240d1", - "uuidPlanMaster": "97816d94f99a48409379013d19f0ab66", - "Axis": "Left", - "ActOn": "Load", - "Place": "H65 - 72, T3", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 9, - "HoleCollective": "65,66,67,68,69,70,71,72", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "e4b909e5474e484fb10ee16593d783d2", - "uuidPlanMaster": "97816d94f99a48409379013d19f0ab66", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H65 - 72, T4", - "Dosage": 40, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 9, - "HoleCollective": "65,66,67,68,69,70,71,72", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "dcaddd0b3706462ebbb1f83724d6cb94", - "uuidPlanMaster": "97816d94f99a48409379013d19f0ab66", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H257 - 271, T1", - "Dosage": 10, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 17, - "HoleCollective": "257,259,261,263,265,267,269,271", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "384", - "ConsumablesName": "16 x 24", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "45dea56b3e624d0d83e2a6cda40d16ac", - "uuidPlanMaster": "97816d94f99a48409379013d19f0ab66", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H258 - 272, T1", - "Dosage": 10, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 17, - "HoleCollective": "258,260,262,264,266,268,270,272", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "384", - "ConsumablesName": "16 x 24", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "6c4c96e29fba4a94b85f5f9baa823cf0", - "uuidPlanMaster": "97816d94f99a48409379013d19f0ab66", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H273 - 287, T1", - "Dosage": 10, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 18, - "HoleCollective": "273,275,277,279,281,283,285,287", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "384", - "ConsumablesName": "16 x 24", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "f41c9a14d98341cf8e281c812d2a6007", - "uuidPlanMaster": "97816d94f99a48409379013d19f0ab66", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H274 - 288, T1", - "Dosage": 10, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 18, - "HoleCollective": "274,276,278,280,282,284,286,288", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "384", - "ConsumablesName": "16 x 24", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "62e5adaefe3a40edb7d15abeacc9f196", - "uuidPlanMaster": "97816d94f99a48409379013d19f0ab66", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T5", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "废液槽", - "ConsumablesName": "1 x 1", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "f3387ed97e6a4dd89eb6aa6d5210db26", - "uuidPlanMaster": "97816d94f99a48409379013d19f0ab66", - "Axis": "Left", - "ActOn": "Load", - "Place": "H73 - 80, T3", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 10, - "HoleCollective": "73,74,75,76,77,78,79,80", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "738393744c6747b58121a54db9939086", - "uuidPlanMaster": "97816d94f99a48409379013d19f0ab66", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H73 - 80, T4", - "Dosage": 40, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 10, - "HoleCollective": "73,74,75,76,77,78,79,80", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "e88fa079b88f41c9bb55cf663e3183d7", - "uuidPlanMaster": "97816d94f99a48409379013d19f0ab66", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H289 - 303, T1", - "Dosage": 10, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 19, - "HoleCollective": "289,291,293,295,297,299,301,303", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "384", - "ConsumablesName": "16 x 24", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "32451c28d1524e8d8c42d4176cd921ad", - "uuidPlanMaster": "97816d94f99a48409379013d19f0ab66", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H290 - 304, T1", - "Dosage": 10, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 19, - "HoleCollective": "290,292,294,296,298,300,302,304", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "384", - "ConsumablesName": "16 x 24", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "adfec14ba5a6406b8199f7a0bf6bc207", - "uuidPlanMaster": "97816d94f99a48409379013d19f0ab66", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H305 - 319, T1", - "Dosage": 10, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 20, - "HoleCollective": "305,307,309,311,313,315,317,319", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "384", - "ConsumablesName": "16 x 24", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "934418b43e1642e09453bc57f7e589ac", - "uuidPlanMaster": "97816d94f99a48409379013d19f0ab66", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H306 - 320, T1", - "Dosage": 10, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 20, - "HoleCollective": "306,308,310,312,314,316,318,320", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "384", - "ConsumablesName": "16 x 24", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "6c5607f5137a4bcfb24cde4f3a50e87d", - "uuidPlanMaster": "97816d94f99a48409379013d19f0ab66", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T5", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "废液槽", - "ConsumablesName": "1 x 1", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "456ae109e3d54f08b0e0a60d4a65c0cb", - "uuidPlanMaster": "97816d94f99a48409379013d19f0ab66", - "Axis": "Left", - "ActOn": "Load", - "Place": "H81 - 88, T3", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 11, - "HoleCollective": "81,82,83,84,85,86,87,88", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "c15f2c1e7cb745ce82fb7b6736a03040", - "uuidPlanMaster": "97816d94f99a48409379013d19f0ab66", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H81 - 88, T4", - "Dosage": 40, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 11, - "HoleCollective": "81,82,83,84,85,86,87,88", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "ed859e18282540ffb1af7d7e6f24d6c4", - "uuidPlanMaster": "97816d94f99a48409379013d19f0ab66", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H321 - 335, T1", - "Dosage": 10, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 21, - "HoleCollective": "321,323,325,327,329,331,333,335", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "384", - "ConsumablesName": "16 x 24", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "d9915c57c4f64c37b6e0ba6ef4e21cf4", - "uuidPlanMaster": "97816d94f99a48409379013d19f0ab66", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H322 - 336, T1", - "Dosage": 10, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 21, - "HoleCollective": "322,324,326,328,330,332,334,336", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "384", - "ConsumablesName": "16 x 24", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "46d7647ce99649af9e7f994404f65611", - "uuidPlanMaster": "97816d94f99a48409379013d19f0ab66", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H337 - 351, T1", - "Dosage": 10, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 22, - "HoleCollective": "337,339,341,343,345,347,349,351", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "384", - "ConsumablesName": "16 x 24", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "3614059bddf14207939f5bc6343f9964", - "uuidPlanMaster": "97816d94f99a48409379013d19f0ab66", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H338 - 352, T1", - "Dosage": 10, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 22, - "HoleCollective": "338,340,342,344,346,348,350,352", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "384", - "ConsumablesName": "16 x 24", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "b0e29c2ee8c44f7e8d54023ac8ebadee", - "uuidPlanMaster": "97816d94f99a48409379013d19f0ab66", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T5", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "废液槽", - "ConsumablesName": "1 x 1", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "7f14b3d200c04d1bbc9edcd78616df1f", - "uuidPlanMaster": "97816d94f99a48409379013d19f0ab66", - "Axis": "Left", - "ActOn": "Load", - "Place": "H89 - 96, T3", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 12, - "HoleCollective": "89,90,91,92,93,94,95,96", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "0ea5c7b42f9142f3b82ee7cfaa4c086d", - "uuidPlanMaster": "97816d94f99a48409379013d19f0ab66", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H89 - 96, T4", - "Dosage": 40, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 12, - "HoleCollective": "89,90,91,92,93,94,95,96", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "7ac1a13f2b4746829ba6ebc01b916a3a", - "uuidPlanMaster": "97816d94f99a48409379013d19f0ab66", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H353 - 367, T1", - "Dosage": 10, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 23, - "HoleCollective": "353,355,357,359,361,363,365,367", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "384", - "ConsumablesName": "16 x 24", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "0f73e681383b4e6dbc9dbcbc03dfbe8d", - "uuidPlanMaster": "97816d94f99a48409379013d19f0ab66", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H354 - 368, T1", - "Dosage": 10, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 23, - "HoleCollective": "354,356,358,360,362,364,366,368", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "384", - "ConsumablesName": "16 x 24", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "cd961f3844bd42469c7a8cd047371071", - "uuidPlanMaster": "97816d94f99a48409379013d19f0ab66", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H369 - 383, T1", - "Dosage": 10, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 24, - "HoleCollective": "369,371,373,375,377,379,381,383", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "384", - "ConsumablesName": "16 x 24", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "003491f54fac49eda5d228483f70fe05", - "uuidPlanMaster": "97816d94f99a48409379013d19f0ab66", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H370 - 384, T1", - "Dosage": 10, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 24, - "HoleCollective": "370,372,374,376,378,380,382,384", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "384", - "ConsumablesName": "16 x 24", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "fb782e3b0635474c879061a537fe41de", - "uuidPlanMaster": "97816d94f99a48409379013d19f0ab66", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T5", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "废液槽", - "ConsumablesName": "1 x 1", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "10959901935f4461a6aa812a20a80718", - "uuidPlanMaster": "c3d86e9d7eed4ddb8c32e9234da659de", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1 - 7, T3", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,3,5,7", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "9bab8cd7f9fd4a7c880d68ec06f8d1ca", - "uuidPlanMaster": "c3d86e9d7eed4ddb8c32e9234da659de", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H2 - 8, T1", - "Dosage": 10, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 1, - "HoleCollective": "2,4,6,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "cc2893be07d44bb3865d69c753bb9087", - "uuidPlanMaster": "59a97f77718d4bbba6bed1ddbf959772", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1 - 12, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8,9,10,11,12", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-001-300", - "ConsumablesName": "300μL Tip头", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "1a8d2052632c4404ad719827de16d853", - "uuidPlanMaster": "84d50e4cf3034aa6a3de505a92b30812", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1 - 8, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-001-300", - "ConsumablesName": "300μL Tip头", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "6c0af767ab0a4a25b013bc59b3bd907f", - "uuidPlanMaster": "84d50e4cf3034aa6a3de505a92b30812", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H1 - 8, T5", - "Dosage": 1, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-001-300", - "ConsumablesName": "300μL Tip头", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "93d83457a62e41c9b0653635dc11a529", - "uuidPlanMaster": "d052b893c6324ae38d301a58614a5663", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1 - 8, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "c4028b30ab6c4e4f82ac0660b2f924cd", - "uuidPlanMaster": "d052b893c6324ae38d301a58614a5663", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H1 - 8, T2", - "Dosage": 50, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "4f12079517a546bc984f7919c37ce037", - "uuidPlanMaster": "d052b893c6324ae38d301a58614a5663", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1 - 8, T4", - "Dosage": 50, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "3d9f89c6257f4c1fa93985857af993f5", - "uuidPlanMaster": "d052b893c6324ae38d301a58614a5663", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H9 - 16, T4", - "Dosage": 50, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 2, - "HoleCollective": "9,10,11,12,13,14,15,16", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "9b813cb84ffc4a9690120dd32f65a9ca", - "uuidPlanMaster": "d052b893c6324ae38d301a58614a5663", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H17 - 24, T4", - "Dosage": 50, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "17,18,19,20,21,22,23,24", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "db58e5a8bd574f558923a0df368ca9fe", - "uuidPlanMaster": "d052b893c6324ae38d301a58614a5663", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H25 - 32, T4", - "Dosage": 50, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 4, - "HoleCollective": "25,26,27,28,29,30,31,32", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "107c7b35c2e5404cae5c78b790dc95bc", - "uuidPlanMaster": "d052b893c6324ae38d301a58614a5663", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H33 - 40, T4", - "Dosage": 50, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 5, - "HoleCollective": "33,34,35,36,37,38,39,40", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "f4d51d32a18a49a78e725d4c7189428a", - "uuidPlanMaster": "875a6eaa00e548b99318fd0be310e879", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1 - 8, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "7c9d5998aa66407bb5122c7e5ee03133", - "uuidPlanMaster": "875a6eaa00e548b99318fd0be310e879", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H1 - 8, T2", - "Dosage": 50, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "03a9c59a17d64a20831cf1abb372b1dd", - "uuidPlanMaster": "875a6eaa00e548b99318fd0be310e879", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1 - 8, T4", - "Dosage": 50, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "c5a5b11569f645f2a4c7c54828b5f61a", - "uuidPlanMaster": "875a6eaa00e548b99318fd0be310e879", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H9 - 16, T4", - "Dosage": 50, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 2, - "HoleCollective": "9,10,11,12,13,14,15,16", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "3a7bcee346ed4697bce3fb4bb973eee6", - "uuidPlanMaster": "875a6eaa00e548b99318fd0be310e879", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H17 - 24, T4", - "Dosage": 50, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "17,18,19,20,21,22,23,24", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "712b1e3a32d44e7f863ff22c2cc18519", - "uuidPlanMaster": "875a6eaa00e548b99318fd0be310e879", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H25 - 32, T4", - "Dosage": 50, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 4, - "HoleCollective": "25,26,27,28,29,30,31,32", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "ffed2cc7bfdc48ba8ca6e59726b7852c", - "uuidPlanMaster": "875a6eaa00e548b99318fd0be310e879", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H33 - 40, T4", - "Dosage": 50, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 5, - "HoleCollective": "33,34,35,36,37,38,39,40", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "96", - "ConsumablesName": "8 x 12", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "39d9cbc8855f43028639474c94b9cfcc", - "uuidPlanMaster": "875a6eaa00e548b99318fd0be310e879", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H9 - 16, T2", - "Dosage": 50, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 2, - "HoleCollective": "9,10,11,12,13,14,15,16", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-001-300", - "ConsumablesName": "300μL Tip头", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "aeba4442a06343cfb523aa5cacaebe83", - "uuidPlanMaster": "875a6eaa00e548b99318fd0be310e879", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H41 - 48, T4", - "Dosage": 10, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 6, - "HoleCollective": "41,42,43,44,45,46,47,48", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-001-300", - "ConsumablesName": "300μL Tip头", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "94aaf6fe8418450abaf044fc9053fe3a", - "uuidPlanMaster": "875a6eaa00e548b99318fd0be310e879", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H49 - 56, T4", - "Dosage": 10, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 7, - "HoleCollective": "49,50,51,52,53,54,55,56", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-001-300", - "ConsumablesName": "300μL Tip头", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "3ace90a3a4054f3daa85337d7b991905", - "uuidPlanMaster": "875a6eaa00e548b99318fd0be310e879", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H57 - 64, T4", - "Dosage": 10, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 8, - "HoleCollective": "57,58,59,60,61,62,63,64", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-001-300", - "ConsumablesName": "300μL Tip头", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "19fef1b7bba74c2b9dafc2f70aa8bff9", - "uuidPlanMaster": "875a6eaa00e548b99318fd0be310e879", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H65 - 72, T4", - "Dosage": 10, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 9, - "HoleCollective": "65,66,67,68,69,70,71,72", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-001-300", - "ConsumablesName": "300μL Tip头", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "30d1c87471c14d01bdbfc7bc38dde551", - "uuidPlanMaster": "875a6eaa00e548b99318fd0be310e879", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H73 - 80, T4", - "Dosage": 10, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 10, - "HoleCollective": "73,74,75,76,77,78,79,80", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-001-300", - "ConsumablesName": "300μL Tip头", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "eba55ed1e9424496a0150ae806111486", - "uuidPlanMaster": "705edabbcbd645d0925e4e581643247c", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1 - 8, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-001-300", - "ConsumablesName": "300μL Tip头", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "aa320f433cab499daaa4285b401deec0", - "uuidPlanMaster": "705edabbcbd645d0925e4e581643247c", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "T2", - "Dosage": 50, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-58-10000", - "ConsumablesName": "储液槽", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "f853c397f3894b8b860e95b98e2ffebc", - "uuidPlanMaster": "705edabbcbd645d0925e4e581643247c", - "Axis": "Left", - "ActOn": "Blending", - "Place": "H1 - 8, T5", - "Dosage": 30, - "AssistA": " 加样(50ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 5, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-001-300", - "ConsumablesName": "300μL Tip头", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "64752faa493842f6962c7133630fae5c", - "uuidPlanMaster": "705edabbcbd645d0925e4e581643247c", - "Axis": "Left", - "ActOn": "Blending", - "Place": "H1 - 8, T6", - "Dosage": 30, - "AssistA": " 加样(50ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 6, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 5, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-001-300", - "ConsumablesName": "300μL Tip头", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "0dbcbae1fdc74c7e9566df77796c2f62", - "uuidPlanMaster": "705edabbcbd645d0925e4e581643247c", - "Axis": "Left", - "ActOn": "Blending", - "Place": "H9 - 16, T5", - "Dosage": 30, - "AssistA": " 加样(50ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 2, - "HoleCollective": "9,10,11,12,13,14,15,16", - "MixCount": 5, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-001-300", - "ConsumablesName": "300μL Tip头", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "55c75f922fd44b82bc93d35d2c88a03f", - "uuidPlanMaster": "705edabbcbd645d0925e4e581643247c", - "Axis": "Left", - "ActOn": "Blending", - "Place": "H1 - 8, T6", - "Dosage": 30, - "AssistA": " 加样(50ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 6, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 5, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-001-300", - "ConsumablesName": "300μL Tip头", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "17a9b5f5cc40485cb5ec2f7644d1770c", - "uuidPlanMaster": "705edabbcbd645d0925e4e581643247c", - "Axis": "Left", - "ActOn": "Blending", - "Place": "H17 - 24, T5", - "Dosage": 30, - "AssistA": " 加样(50ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "17,18,19,20,21,22,23,24", - "MixCount": 5, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-001-300", - "ConsumablesName": "300μL Tip头", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "708dbe637f5b47328cbe9f465610a86a", - "uuidPlanMaster": "705edabbcbd645d0925e4e581643247c", - "Axis": "Left", - "ActOn": "Blending", - "Place": "H1 - 8, T6", - "Dosage": 30, - "AssistA": " 加样(50ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 6, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 5, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-001-300", - "ConsumablesName": "300μL Tip头", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "983914b2ac56476ba9e8e766320a2041", - "uuidPlanMaster": "705edabbcbd645d0925e4e581643247c", - "Axis": "Left", - "ActOn": "Blending", - "Place": "H25 - 32, T5", - "Dosage": 30, - "AssistA": " 加样(50ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 4, - "HoleCollective": "25,26,27,28,29,30,31,32", - "MixCount": 5, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-001-300", - "ConsumablesName": "300μL Tip头", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "47427b2865df4e39bf919697875ef0d1", - "uuidPlanMaster": "705edabbcbd645d0925e4e581643247c", - "Axis": "Left", - "ActOn": "Blending", - "Place": "H1 - 8, T6", - "Dosage": 30, - "AssistA": " 加样(50ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 6, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 5, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-001-300", - "ConsumablesName": "300μL Tip头", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "0758e33a39374666b0c85a3a27a68fb9", - "uuidPlanMaster": "705edabbcbd645d0925e4e581643247c", - "Axis": "Left", - "ActOn": "Blending", - "Place": "H33 - 40, T5", - "Dosage": 30, - "AssistA": " 加样(50ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 5, - "HoleCollective": "33,34,35,36,37,38,39,40", - "MixCount": 5, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-001-300", - "ConsumablesName": "300μL Tip头", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "418536a62e3f46c3903ac28617e66829", - "uuidPlanMaster": "705edabbcbd645d0925e4e581643247c", - "Axis": "Left", - "ActOn": "Blending", - "Place": "H1 - 8, T6", - "Dosage": 30, - "AssistA": " 加样(50ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 6, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 5, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-001-300", - "ConsumablesName": "300μL Tip头", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "c5d2d1dbcdcd487ab7f6d6e12ddbae02", - "uuidPlanMaster": "705edabbcbd645d0925e4e581643247c", - "Axis": "Left", - "ActOn": "Blending", - "Place": "H41 - 48, T5", - "Dosage": 30, - "AssistA": " 加样(50ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 6, - "HoleCollective": "41,42,43,44,45,46,47,48", - "MixCount": 5, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-001-300", - "ConsumablesName": "300μL Tip头", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "1762db9cd23447749f9905300fd9d49f", - "uuidPlanMaster": "705edabbcbd645d0925e4e581643247c", - "Axis": "Left", - "ActOn": "Blending", - "Place": "H1 - 8, T6", - "Dosage": 30, - "AssistA": " 加样(50ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 6, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 5, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-001-300", - "ConsumablesName": "300μL Tip头", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "3fc192a32f4444eebaf3878bf23deb5a", - "uuidPlanMaster": "705edabbcbd645d0925e4e581643247c", - "Axis": "Left", - "ActOn": "Blending", - "Place": "H49 - 56, T5", - "Dosage": 30, - "AssistA": " 加样(50ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 7, - "HoleCollective": "49,50,51,52,53,54,55,56", - "MixCount": 5, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-001-300", - "ConsumablesName": "300μL Tip头", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "04f3ed53188f46c19171db907db2fcde", - "uuidPlanMaster": "705edabbcbd645d0925e4e581643247c", - "Axis": "Left", - "ActOn": "Blending", - "Place": "H1 - 8, T6", - "Dosage": 30, - "AssistA": " 加样(50ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 6, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 5, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-001-300", - "ConsumablesName": "300μL Tip头", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "8ead2ed082324c6181a4938cb680670a", - "uuidPlanMaster": "705edabbcbd645d0925e4e581643247c", - "Axis": "Left", - "ActOn": "Blending", - "Place": "H57 - 64, T5", - "Dosage": 30, - "AssistA": " 加样(50ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 8, - "HoleCollective": "57,58,59,60,61,62,63,64", - "MixCount": 5, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-001-300", - "ConsumablesName": "300μL Tip头", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "63212ca61902428dbee761fd14ab1b10", - "uuidPlanMaster": "705edabbcbd645d0925e4e581643247c", - "Axis": "Left", - "ActOn": "Blending", - "Place": "H1 - 8, T6", - "Dosage": 30, - "AssistA": " 加样(50ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 6, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 5, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-001-300", - "ConsumablesName": "300μL Tip头", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "56f0338ffc694281a2de678ba5b03fa2", - "uuidPlanMaster": "705edabbcbd645d0925e4e581643247c", - "Axis": "Left", - "ActOn": "Blending", - "Place": "H65 - 72, T5", - "Dosage": 30, - "AssistA": " 加样(50ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 9, - "HoleCollective": "65,66,67,68,69,70,71,72", - "MixCount": 5, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-001-300", - "ConsumablesName": "300μL Tip头", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "b6213b9a933e4e08bd21b10f725d09c0", - "uuidPlanMaster": "705edabbcbd645d0925e4e581643247c", - "Axis": "Left", - "ActOn": "Blending", - "Place": "H1 - 8, T6", - "Dosage": 30, - "AssistA": " 加样(50ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 6, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 5, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-001-300", - "ConsumablesName": "300μL Tip头", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "140d0cfec9754f4f9edb882966e1753f", - "uuidPlanMaster": "705edabbcbd645d0925e4e581643247c", - "Axis": "Left", - "ActOn": "Blending", - "Place": "H73 - 80, T5", - "Dosage": 30, - "AssistA": " 加样(50ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 10, - "HoleCollective": "73,74,75,76,77,78,79,80", - "MixCount": 5, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-001-300", - "ConsumablesName": "300μL Tip头", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "80f9dbb31c9546669a491a6d1cab6f14", - "uuidPlanMaster": "705edabbcbd645d0925e4e581643247c", - "Axis": "Left", - "ActOn": "Blending", - "Place": "H1 - 8, T6", - "Dosage": 30, - "AssistA": " 加样(50ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 6, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 5, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-001-300", - "ConsumablesName": "300μL Tip头", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "3223fac38dee4406afbfd6e774d6a480", - "uuidPlanMaster": "705edabbcbd645d0925e4e581643247c", - "Axis": "Left", - "ActOn": "Blending", - "Place": "H81 - 88, T5", - "Dosage": 30, - "AssistA": " 加样(50ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 11, - "HoleCollective": "81,82,83,84,85,86,87,88", - "MixCount": 5, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-001-300", - "ConsumablesName": "300μL Tip头", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "ea0d989ce25d4dfca41ef43e2a2ef1de", - "uuidPlanMaster": "705edabbcbd645d0925e4e581643247c", - "Axis": "Left", - "ActOn": "Blending", - "Place": "H1 - 8, T6", - "Dosage": 30, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 6, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 5, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-001-300", - "ConsumablesName": "300μL Tip头", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "50fcb006ed45400985be7dd55905719d", - "uuidPlanMaster": "705edabbcbd645d0925e4e581643247c", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T4", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-58-10000", - "ConsumablesName": "储液槽", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "a31c4f28bb654c5b93c026b94bd5f883", - "uuidPlanMaster": "6c58136d7de54a6abb7b51e6327eacac", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1 - 8, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-001-300", - "ConsumablesName": "300μL Tip头", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "6292e97dccb5482ab070382b7ad1cff7", - "uuidPlanMaster": "6c58136d7de54a6abb7b51e6327eacac", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "T2", - "Dosage": 50, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-58-10000", - "ConsumablesName": "储液槽", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "a86958b6c7354bbea3218992ab33cb03", - "uuidPlanMaster": "6c58136d7de54a6abb7b51e6327eacac", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1 - 8, T5", - "Dosage": 10, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-001-300", - "ConsumablesName": "300μL Tip头", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "4d8ad647b91b4d46adec9b270ae65b32", - "uuidPlanMaster": "6c58136d7de54a6abb7b51e6327eacac", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H9 - 16, T5", - "Dosage": 10, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 2, - "HoleCollective": "9,10,11,12,13,14,15,16", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-001-300", - "ConsumablesName": "300μL Tip头", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "9cf3368a50e346f0854806551377e4f8", - "uuidPlanMaster": "6c58136d7de54a6abb7b51e6327eacac", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H17 - 24, T5", - "Dosage": 10, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "17,18,19,20,21,22,23,24", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-001-300", - "ConsumablesName": "300μL Tip头", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "bb67be49e8c14b918df938f56cd5b9bc", - "uuidPlanMaster": "6c58136d7de54a6abb7b51e6327eacac", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H25 - 32, T5", - "Dosage": 10, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 4, - "HoleCollective": "25,26,27,28,29,30,31,32", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-001-300", - "ConsumablesName": "300μL Tip头", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "34c65c541499441d93e38214c08f3dea", - "uuidPlanMaster": "6c58136d7de54a6abb7b51e6327eacac", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H33 - 40, T5", - "Dosage": 10, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 5, - "HoleCollective": "33,34,35,36,37,38,39,40", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-001-300", - "ConsumablesName": "300μL Tip头", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "b56f9678d9404913b449bd14dd6a9179", - "uuidPlanMaster": "6c58136d7de54a6abb7b51e6327eacac", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "T2", - "Dosage": 50, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-58-10000", - "ConsumablesName": "储液槽", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "f918f49bf3ec4e0da32b6b95c863514b", - "uuidPlanMaster": "6c58136d7de54a6abb7b51e6327eacac", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H41 - 48, T5", - "Dosage": 10, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 6, - "HoleCollective": "41,42,43,44,45,46,47,48", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-001-300", - "ConsumablesName": "300μL Tip头", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "798dc68cbf23441f94bd4bfee3ce225d", - "uuidPlanMaster": "6c58136d7de54a6abb7b51e6327eacac", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H49 - 56, T5", - "Dosage": 10, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 7, - "HoleCollective": "49,50,51,52,53,54,55,56", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-001-300", - "ConsumablesName": "300μL Tip头", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "cd8f02ce401e4148b64dc436960607bc", - "uuidPlanMaster": "6c58136d7de54a6abb7b51e6327eacac", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H57 - 64, T5", - "Dosage": 10, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 8, - "HoleCollective": "57,58,59,60,61,62,63,64", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-001-300", - "ConsumablesName": "300μL Tip头", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "22cb0327edc04f6fb8ea5d5c62ffa6ee", - "uuidPlanMaster": "6c58136d7de54a6abb7b51e6327eacac", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H65 - 72, T5", - "Dosage": 10, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 9, - "HoleCollective": "65,66,67,68,69,70,71,72", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-001-300", - "ConsumablesName": "300μL Tip头", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "01ddb2f1a5864336998f7f532126bc6e", - "uuidPlanMaster": "6c58136d7de54a6abb7b51e6327eacac", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H73 - 80, T5", - "Dosage": 10, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 10, - "HoleCollective": "73,74,75,76,77,78,79,80", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-001-300", - "ConsumablesName": "300μL Tip头", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "15a5f70baa3c4e289951c1fc8f06e33d", - "uuidPlanMaster": "208f00a911b846d9922b2e72bdda978c", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1 - 8, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-001-300", - "ConsumablesName": "300μL Tip头", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "cf60687488c0454598ed2b8dd657ada1", - "uuidPlanMaster": "208f00a911b846d9922b2e72bdda978c", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "T2", - "Dosage": 50, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-58-10000", - "ConsumablesName": "储液槽", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "0ab82da3a5154b96aa273d13442be10b", - "uuidPlanMaster": "208f00a911b846d9922b2e72bdda978c", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1 - 8, T4", - "Dosage": 50, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "q2", - "ConsumablesName": "96深孔板", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "971d32279cd84c08ba15516c9f7f1825", - "uuidPlanMaster": "208f00a911b846d9922b2e72bdda978c", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H1 - 8, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-001-300", - "ConsumablesName": "300μL Tip头", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "46445a32a23a42fa95f62607be83b9c7", - "uuidPlanMaster": "208f00a911b846d9922b2e72bdda978c", - "Axis": "Left", - "ActOn": "Load", - "Place": "H9 - 16, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 2, - "HoleCollective": "9,10,11,12,13,14,15,16", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-001-300", - "ConsumablesName": "300μL Tip头", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "8cf9f503af774feca05bfa9a6168900b", - "uuidPlanMaster": "208f00a911b846d9922b2e72bdda978c", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "T2", - "Dosage": 50, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-58-10000", - "ConsumablesName": "储液槽", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "21d63fd607e1442583476d3ee037707c", - "uuidPlanMaster": "208f00a911b846d9922b2e72bdda978c", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H9 - 16, T4", - "Dosage": 50, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 2, - "HoleCollective": "9,10,11,12,13,14,15,16", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "q2", - "ConsumablesName": "96深孔板", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "7538b8f4743f4d54827c5174bcaf9f5e", - "uuidPlanMaster": "208f00a911b846d9922b2e72bdda978c", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H9 - 16, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 2, - "HoleCollective": "9,10,11,12,13,14,15,16", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-001-300", - "ConsumablesName": "300μL Tip头", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "5c09e480cc3c4951a3718e4638a0fb1e", - "uuidPlanMaster": "208f00a911b846d9922b2e72bdda978c", - "Axis": "Left", - "ActOn": "Load", - "Place": "H17 - 24, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "17,18,19,20,21,22,23,24", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-001-300", - "ConsumablesName": "300μL Tip头", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "ed131eb1976b48619ea6496c8c1e6b14", - "uuidPlanMaster": "208f00a911b846d9922b2e72bdda978c", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "T2", - "Dosage": 50, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-58-10000", - "ConsumablesName": "储液槽", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "4bf3140447154a2b919f0a2d4a556016", - "uuidPlanMaster": "208f00a911b846d9922b2e72bdda978c", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H17 - 24, T4", - "Dosage": 50, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "17,18,19,20,21,22,23,24", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "q2", - "ConsumablesName": "96深孔板", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "a0f68785a6a04dc1bfb76d2260e6764a", - "uuidPlanMaster": "208f00a911b846d9922b2e72bdda978c", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H17 - 24, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "17,18,19,20,21,22,23,24", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-001-300", - "ConsumablesName": "300μL Tip头", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "db0ba526169848adbd10f0706a55197c", - "uuidPlanMaster": "208f00a911b846d9922b2e72bdda978c", - "Axis": "Left", - "ActOn": "Load", - "Place": "H25 - 32, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 4, - "HoleCollective": "25,26,27,28,29,30,31,32", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-001-300", - "ConsumablesName": "300μL Tip头", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "a1a487ae10184340a21195e752518207", - "uuidPlanMaster": "208f00a911b846d9922b2e72bdda978c", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "T2", - "Dosage": 50, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-58-10000", - "ConsumablesName": "储液槽", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "5dd206c0ae5d40cdb6709583a0ebad3e", - "uuidPlanMaster": "208f00a911b846d9922b2e72bdda978c", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H25 - 32, T4", - "Dosage": 50, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 4, - "HoleCollective": "25,26,27,28,29,30,31,32", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "q2", - "ConsumablesName": "96深孔板", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "dcf61439446c4d5093f699d59956b815", - "uuidPlanMaster": "208f00a911b846d9922b2e72bdda978c", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H25 - 32, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 4, - "HoleCollective": "25,26,27,28,29,30,31,32", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-001-300", - "ConsumablesName": "300μL Tip头", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "1a676dcbc3f849ac9ad60de4f3161253", - "uuidPlanMaster": "208f00a911b846d9922b2e72bdda978c", - "Axis": "Left", - "ActOn": "Load", - "Place": "H33 - 40, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 5, - "HoleCollective": "33,34,35,36,37,38,39,40", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-001-300", - "ConsumablesName": "300μL Tip头", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "38f64605bc5a4c229cd50a5623299793", - "uuidPlanMaster": "208f00a911b846d9922b2e72bdda978c", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "T2", - "Dosage": 50, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-58-10000", - "ConsumablesName": "储液槽", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "57a7d932cf474595a37014fc318c692c", - "uuidPlanMaster": "208f00a911b846d9922b2e72bdda978c", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H33 - 40, T4", - "Dosage": 50, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 5, - "HoleCollective": "33,34,35,36,37,38,39,40", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "q2", - "ConsumablesName": "96深孔板", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "16a3f7fa8e64439bbdafee48cbb3e8c1", - "uuidPlanMaster": "208f00a911b846d9922b2e72bdda978c", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H33 - 40, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 5, - "HoleCollective": "33,34,35,36,37,38,39,40", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-001-300", - "ConsumablesName": "300μL Tip头", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "3b84a7930a1d496dbfa2b04be755a1e3", - "uuidPlanMaster": "208f00a911b846d9922b2e72bdda978c", - "Axis": "Left", - "ActOn": "Load", - "Place": "H41 - 48, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 6, - "HoleCollective": "41,42,43,44,45,46,47,48", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-001-300", - "ConsumablesName": "300μL Tip头", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "b2cb417250644975827adfb5e945d645", - "uuidPlanMaster": "208f00a911b846d9922b2e72bdda978c", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "T2", - "Dosage": 50, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-58-10000", - "ConsumablesName": "储液槽", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "31dc835ea63e401c8829e3194fc54cdb", - "uuidPlanMaster": "208f00a911b846d9922b2e72bdda978c", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H41 - 48, T4", - "Dosage": 50, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 6, - "HoleCollective": "41,42,43,44,45,46,47,48", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "q2", - "ConsumablesName": "96深孔板", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "e07e0b60de1d452b83d3e99ab92121e7", - "uuidPlanMaster": "208f00a911b846d9922b2e72bdda978c", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H41 - 48, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 6, - "HoleCollective": "41,42,43,44,45,46,47,48", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-001-300", - "ConsumablesName": "300μL Tip头", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "9d0967356f7a4db2b6c82e505d6236ed", - "uuidPlanMaster": "208f00a911b846d9922b2e72bdda978c", - "Axis": "Left", - "ActOn": "Load", - "Place": "H49 - 56, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 7, - "HoleCollective": "49,50,51,52,53,54,55,56", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-001-300", - "ConsumablesName": "300μL Tip头", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "652ce001241445278a6133033f1cc124", - "uuidPlanMaster": "208f00a911b846d9922b2e72bdda978c", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "T2", - "Dosage": 50, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-58-10000", - "ConsumablesName": "储液槽", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "c922780b808147a8adf057b3331350de", - "uuidPlanMaster": "208f00a911b846d9922b2e72bdda978c", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H49 - 56, T4", - "Dosage": 50, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 7, - "HoleCollective": "49,50,51,52,53,54,55,56", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "q2", - "ConsumablesName": "96深孔板", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "70e7c4c87514428fb248d9403db8d60d", - "uuidPlanMaster": "208f00a911b846d9922b2e72bdda978c", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H49 - 56, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 7, - "HoleCollective": "49,50,51,52,53,54,55,56", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-001-300", - "ConsumablesName": "300μL Tip头", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "9f6c7c8eaabd4f598e4c5ee4d095fea1", - "uuidPlanMaster": "208f00a911b846d9922b2e72bdda978c", - "Axis": "Left", - "ActOn": "Load", - "Place": "H57 - 64, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 8, - "HoleCollective": "57,58,59,60,61,62,63,64", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-001-300", - "ConsumablesName": "300μL Tip头", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "72dc6967cf0942cb950bca849e843366", - "uuidPlanMaster": "208f00a911b846d9922b2e72bdda978c", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "T2", - "Dosage": 50, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-58-10000", - "ConsumablesName": "储液槽", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "f64334566bc04a9a9ac8e5b6cdbedfc9", - "uuidPlanMaster": "208f00a911b846d9922b2e72bdda978c", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H57 - 64, T4", - "Dosage": 50, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 8, - "HoleCollective": "57,58,59,60,61,62,63,64", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "q2", - "ConsumablesName": "96深孔板", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "cbad128d4c364b9fb57235bec175870c", - "uuidPlanMaster": "208f00a911b846d9922b2e72bdda978c", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H57 - 64, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 8, - "HoleCollective": "57,58,59,60,61,62,63,64", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-001-300", - "ConsumablesName": "300μL Tip头", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "44ae4502ff8e4f32918030671cb34fa8", - "uuidPlanMaster": "208f00a911b846d9922b2e72bdda978c", - "Axis": "Left", - "ActOn": "Load", - "Place": "H65 - 72, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 9, - "HoleCollective": "65,66,67,68,69,70,71,72", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-001-300", - "ConsumablesName": "300μL Tip头", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "ddf34da1687e4fec991aba48e5c0619d", - "uuidPlanMaster": "208f00a911b846d9922b2e72bdda978c", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "T2", - "Dosage": 50, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-58-10000", - "ConsumablesName": "储液槽", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "08f80646d1344350b65fd2af41c18746", - "uuidPlanMaster": "208f00a911b846d9922b2e72bdda978c", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H65 - 72, T4", - "Dosage": 50, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 9, - "HoleCollective": "65,66,67,68,69,70,71,72", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "q2", - "ConsumablesName": "96深孔板", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "7d34da268ee84dc3b80dad8543657a91", - "uuidPlanMaster": "208f00a911b846d9922b2e72bdda978c", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H65 - 72, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 9, - "HoleCollective": "65,66,67,68,69,70,71,72", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-001-300", - "ConsumablesName": "300μL Tip头", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "5a4ee28362e746e888f1c0c02672e653", - "uuidPlanMaster": "208f00a911b846d9922b2e72bdda978c", - "Axis": "Left", - "ActOn": "Load", - "Place": "H73 - 80, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 10, - "HoleCollective": "73,74,75,76,77,78,79,80", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-001-300", - "ConsumablesName": "300μL Tip头", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "e619656a44cd42bc8290832dae84a96c", - "uuidPlanMaster": "208f00a911b846d9922b2e72bdda978c", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "T2", - "Dosage": 50, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-58-10000", - "ConsumablesName": "储液槽", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "62df369b18cc4357bf4b03d84be11d1e", - "uuidPlanMaster": "208f00a911b846d9922b2e72bdda978c", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H73 - 80, T4", - "Dosage": 50, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 10, - "HoleCollective": "73,74,75,76,77,78,79,80", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "q2", - "ConsumablesName": "96深孔板", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "6ec4fd68d52f41e9a50a4aae8fbf6926", - "uuidPlanMaster": "208f00a911b846d9922b2e72bdda978c", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H73 - 80, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 10, - "HoleCollective": "73,74,75,76,77,78,79,80", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-001-300", - "ConsumablesName": "300μL Tip头", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "a59813ecdbe7471a960b33e7d4960c29", - "uuidPlanMaster": "208f00a911b846d9922b2e72bdda978c", - "Axis": "Left", - "ActOn": "Load", - "Place": "H81 - 88, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 11, - "HoleCollective": "81,82,83,84,85,86,87,88", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-001-300", - "ConsumablesName": "300μL Tip头", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "a4bfba48152747129ea97dbb1d239fb2", - "uuidPlanMaster": "208f00a911b846d9922b2e72bdda978c", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "T2", - "Dosage": 50, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-58-10000", - "ConsumablesName": "储液槽", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "26e6235eca6b440c9a1a6ba6863adfc6", - "uuidPlanMaster": "208f00a911b846d9922b2e72bdda978c", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H81 - 88, T4", - "Dosage": 50, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 11, - "HoleCollective": "81,82,83,84,85,86,87,88", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "q2", - "ConsumablesName": "96深孔板", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "3a98f483b96e4484897fd79f624dbbd2", - "uuidPlanMaster": "208f00a911b846d9922b2e72bdda978c", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H81 - 88, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 11, - "HoleCollective": "81,82,83,84,85,86,87,88", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-001-300", - "ConsumablesName": "300μL Tip头", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "51df55f2e2f04d4395ceef7742b43fcd", - "uuidPlanMaster": "208f00a911b846d9922b2e72bdda978c", - "Axis": "Left", - "ActOn": "Load", - "Place": "H89 - 96, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 12, - "HoleCollective": "89,90,91,92,93,94,95,96", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-001-300", - "ConsumablesName": "300μL Tip头", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "e11ea22237b64da48c38b1fa69c827d0", - "uuidPlanMaster": "208f00a911b846d9922b2e72bdda978c", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "T2", - "Dosage": 50, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-58-10000", - "ConsumablesName": "储液槽", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "333c04c74a3f494bb74beb412c761e1c", - "uuidPlanMaster": "208f00a911b846d9922b2e72bdda978c", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H89 - 96, T4", - "Dosage": 50, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 12, - "HoleCollective": "89,90,91,92,93,94,95,96", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "q2", - "ConsumablesName": "96深孔板", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "065e08c9b2d54892bb9d23bc0429a901", - "uuidPlanMaster": "208f00a911b846d9922b2e72bdda978c", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H89 - 96, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 12, - "HoleCollective": "89,90,91,92,93,94,95,96", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-001-300", - "ConsumablesName": "300μL Tip头", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "46fb3678fbab4dc9b14ead3b8cff1576", - "uuidPlanMaster": "40bd0ca25ffb4be6b246353db6ebefc9", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1 - 8, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-001-300", - "ConsumablesName": "300μL Tip头", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "59ea16127b564952bdd65127b5998541", - "uuidPlanMaster": "40bd0ca25ffb4be6b246353db6ebefc9", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "T2", - "Dosage": 300, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-58-10000", - "ConsumablesName": "储液槽", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "89a509276a8d4c1fb4996b41e3d00e7d", - "uuidPlanMaster": "40bd0ca25ffb4be6b246353db6ebefc9", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1 - 8, T4", - "Dosage": 300, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "q2", - "ConsumablesName": "96深孔板", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "30883a9d4273401cb22d34262679a51d", - "uuidPlanMaster": "40bd0ca25ffb4be6b246353db6ebefc9", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H1 - 8, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-001-300", - "ConsumablesName": "300μL Tip头", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "283a8fe02bcf4b8caae44b7b24ae50d1", - "uuidPlanMaster": "40bd0ca25ffb4be6b246353db6ebefc9", - "Axis": "Left", - "ActOn": "Load", - "Place": "H9 - 16, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 2, - "HoleCollective": "9,10,11,12,13,14,15,16", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-001-300", - "ConsumablesName": "300μL Tip头", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "1a545588b27b4c468e29b0b75688a2b3", - "uuidPlanMaster": "40bd0ca25ffb4be6b246353db6ebefc9", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "T2", - "Dosage": 300, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-58-10000", - "ConsumablesName": "储液槽", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "387c77cdbdbc4c11bd5e90ee8415befe", - "uuidPlanMaster": "40bd0ca25ffb4be6b246353db6ebefc9", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H9 - 16, T4", - "Dosage": 300, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 2, - "HoleCollective": "9,10,11,12,13,14,15,16", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "q2", - "ConsumablesName": "96深孔板", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "326ad6342d0443cabbf6f70ba5c35151", - "uuidPlanMaster": "40bd0ca25ffb4be6b246353db6ebefc9", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H9 - 16, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 2, - "HoleCollective": "9,10,11,12,13,14,15,16", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-001-300", - "ConsumablesName": "300μL Tip头", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "6862071ef39944fd857b6fb59cb1d580", - "uuidPlanMaster": "40bd0ca25ffb4be6b246353db6ebefc9", - "Axis": "Left", - "ActOn": "Load", - "Place": "H17 - 24, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "17,18,19,20,21,22,23,24", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-001-300", - "ConsumablesName": "300μL Tip头", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "06a7ac3f3e514b3c8e1079b9323dd5dc", - "uuidPlanMaster": "40bd0ca25ffb4be6b246353db6ebefc9", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "T2", - "Dosage": 300, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-58-10000", - "ConsumablesName": "储液槽", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "7076d3c982f34e648bd875903a288c71", - "uuidPlanMaster": "40bd0ca25ffb4be6b246353db6ebefc9", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H17 - 24, T4", - "Dosage": 300, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "17,18,19,20,21,22,23,24", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "q2", - "ConsumablesName": "96深孔板", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "8134bfcc32284d69b00c2c8b589bf418", - "uuidPlanMaster": "40bd0ca25ffb4be6b246353db6ebefc9", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H17 - 24, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "17,18,19,20,21,22,23,24", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-001-300", - "ConsumablesName": "300μL Tip头", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "f574d7387eaf4f89bbecf04a75111a8e", - "uuidPlanMaster": "40bd0ca25ffb4be6b246353db6ebefc9", - "Axis": "Left", - "ActOn": "Load", - "Place": "H25 - 32, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 4, - "HoleCollective": "25,26,27,28,29,30,31,32", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-001-300", - "ConsumablesName": "300μL Tip头", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "54c963eae8e54c13956264a6f2707cea", - "uuidPlanMaster": "40bd0ca25ffb4be6b246353db6ebefc9", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "T2", - "Dosage": 300, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-58-10000", - "ConsumablesName": "储液槽", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "9c6987c1c2f44651ab9743d1e0aa25ac", - "uuidPlanMaster": "40bd0ca25ffb4be6b246353db6ebefc9", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H25 - 32, T4", - "Dosage": 300, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 4, - "HoleCollective": "25,26,27,28,29,30,31,32", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "q2", - "ConsumablesName": "96深孔板", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "6a797c2f28e44055a61285f413340f82", - "uuidPlanMaster": "40bd0ca25ffb4be6b246353db6ebefc9", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H25 - 32, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 4, - "HoleCollective": "25,26,27,28,29,30,31,32", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-001-300", - "ConsumablesName": "300μL Tip头", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "7016bdc69a9c4707baf40d934b0c3d54", - "uuidPlanMaster": "40bd0ca25ffb4be6b246353db6ebefc9", - "Axis": "Left", - "ActOn": "Load", - "Place": "H33 - 40, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 5, - "HoleCollective": "33,34,35,36,37,38,39,40", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-001-300", - "ConsumablesName": "300μL Tip头", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "8bf80de48aaf46c5a0bfbbcd69ef9b8e", - "uuidPlanMaster": "40bd0ca25ffb4be6b246353db6ebefc9", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "T2", - "Dosage": 300, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-58-10000", - "ConsumablesName": "储液槽", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "c66931bf8c1a4b318cffad264311bdaf", - "uuidPlanMaster": "40bd0ca25ffb4be6b246353db6ebefc9", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H33 - 40, T4", - "Dosage": 300, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 5, - "HoleCollective": "33,34,35,36,37,38,39,40", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "q2", - "ConsumablesName": "96深孔板", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "b378e5c2770b44da847dff49df4605ab", - "uuidPlanMaster": "40bd0ca25ffb4be6b246353db6ebefc9", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H33 - 40, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 5, - "HoleCollective": "33,34,35,36,37,38,39,40", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-001-300", - "ConsumablesName": "300μL Tip头", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "343e83fdb2974cd9922e9842704adef2", - "uuidPlanMaster": "40bd0ca25ffb4be6b246353db6ebefc9", - "Axis": "Left", - "ActOn": "Load", - "Place": "H41 - 48, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 6, - "HoleCollective": "41,42,43,44,45,46,47,48", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-001-300", - "ConsumablesName": "300μL Tip头", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "edc69dec66c244a58b04743e17f7bb0b", - "uuidPlanMaster": "40bd0ca25ffb4be6b246353db6ebefc9", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "T2", - "Dosage": 300, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-58-10000", - "ConsumablesName": "储液槽", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "70f76a7f1b014060a6c66f0b6030e9c3", - "uuidPlanMaster": "40bd0ca25ffb4be6b246353db6ebefc9", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H41 - 48, T4", - "Dosage": 300, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 6, - "HoleCollective": "41,42,43,44,45,46,47,48", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "q2", - "ConsumablesName": "96深孔板", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "5894537715e84b57aee7ee3b0a5f7e91", - "uuidPlanMaster": "40bd0ca25ffb4be6b246353db6ebefc9", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H41 - 48, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 6, - "HoleCollective": "41,42,43,44,45,46,47,48", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-001-300", - "ConsumablesName": "300μL Tip头", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "d8921a438e6d47d38ee42e92f1c0e2c1", - "uuidPlanMaster": "40bd0ca25ffb4be6b246353db6ebefc9", - "Axis": "Left", - "ActOn": "Load", - "Place": "H49 - 56, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 7, - "HoleCollective": "49,50,51,52,53,54,55,56", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-001-300", - "ConsumablesName": "300μL Tip头", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "a39f76e3fcfd4d48a9d25495b4f17d42", - "uuidPlanMaster": "40bd0ca25ffb4be6b246353db6ebefc9", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "T2", - "Dosage": 300, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-58-10000", - "ConsumablesName": "储液槽", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "fa8ef533acf94694a0621d9b650f5977", - "uuidPlanMaster": "40bd0ca25ffb4be6b246353db6ebefc9", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H49 - 56, T4", - "Dosage": 300, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 7, - "HoleCollective": "49,50,51,52,53,54,55,56", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "q2", - "ConsumablesName": "96深孔板", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "c10edba4035e42d0a580619f02c5df4c", - "uuidPlanMaster": "40bd0ca25ffb4be6b246353db6ebefc9", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H49 - 56, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 7, - "HoleCollective": "49,50,51,52,53,54,55,56", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-001-300", - "ConsumablesName": "300μL Tip头", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "c0f4ec5e640544f88df091d079912f8f", - "uuidPlanMaster": "40bd0ca25ffb4be6b246353db6ebefc9", - "Axis": "Left", - "ActOn": "Load", - "Place": "H57 - 64, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 8, - "HoleCollective": "57,58,59,60,61,62,63,64", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-001-300", - "ConsumablesName": "300μL Tip头", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "0efd8d1cd35447b293d7ba2e32ccc776", - "uuidPlanMaster": "40bd0ca25ffb4be6b246353db6ebefc9", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "T2", - "Dosage": 300, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-58-10000", - "ConsumablesName": "储液槽", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "810f90ac7dc0468ca2ce79a5d00e6296", - "uuidPlanMaster": "40bd0ca25ffb4be6b246353db6ebefc9", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H57 - 64, T4", - "Dosage": 300, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 8, - "HoleCollective": "57,58,59,60,61,62,63,64", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "q2", - "ConsumablesName": "96深孔板", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "12b565ef190042428b71ca4541d72655", - "uuidPlanMaster": "40bd0ca25ffb4be6b246353db6ebefc9", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H57 - 64, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 8, - "HoleCollective": "57,58,59,60,61,62,63,64", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-001-300", - "ConsumablesName": "300μL Tip头", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "2d3ccabc34f7457d8dab22218f7d595f", - "uuidPlanMaster": "40bd0ca25ffb4be6b246353db6ebefc9", - "Axis": "Left", - "ActOn": "Load", - "Place": "H65 - 72, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 9, - "HoleCollective": "65,66,67,68,69,70,71,72", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-001-300", - "ConsumablesName": "300μL Tip头", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "60d2707c866e4f26a1198faafb0c7bd8", - "uuidPlanMaster": "40bd0ca25ffb4be6b246353db6ebefc9", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "T2", - "Dosage": 300, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-58-10000", - "ConsumablesName": "储液槽", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "5fd9491ca51b47dca6f230096a4f2e90", - "uuidPlanMaster": "40bd0ca25ffb4be6b246353db6ebefc9", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H65 - 72, T4", - "Dosage": 300, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 9, - "HoleCollective": "65,66,67,68,69,70,71,72", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "q2", - "ConsumablesName": "96深孔板", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "d5b658eba2734252ba0cf657c58f522e", - "uuidPlanMaster": "40bd0ca25ffb4be6b246353db6ebefc9", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H65 - 72, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 9, - "HoleCollective": "65,66,67,68,69,70,71,72", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-001-300", - "ConsumablesName": "300μL Tip头", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "4edb7994fad24f1e9c9f46009ef5bd4b", - "uuidPlanMaster": "40bd0ca25ffb4be6b246353db6ebefc9", - "Axis": "Left", - "ActOn": "Load", - "Place": "H73 - 80, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 10, - "HoleCollective": "73,74,75,76,77,78,79,80", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-001-300", - "ConsumablesName": "300μL Tip头", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "2540e3e5000c48788a43b16da773baa6", - "uuidPlanMaster": "40bd0ca25ffb4be6b246353db6ebefc9", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "T2", - "Dosage": 300, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-58-10000", - "ConsumablesName": "储液槽", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "83186a6a7e244ddfb7c33910a0d2998a", - "uuidPlanMaster": "40bd0ca25ffb4be6b246353db6ebefc9", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H73 - 80, T4", - "Dosage": 300, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 10, - "HoleCollective": "73,74,75,76,77,78,79,80", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "q2", - "ConsumablesName": "96深孔板", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "3286dd6a21ac4071b51ed9ff6c93796e", - "uuidPlanMaster": "40bd0ca25ffb4be6b246353db6ebefc9", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H73 - 80, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 10, - "HoleCollective": "73,74,75,76,77,78,79,80", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-001-300", - "ConsumablesName": "300μL Tip头", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "7b27ac1b44de4ce9b54309f0ad60e3e5", - "uuidPlanMaster": "40bd0ca25ffb4be6b246353db6ebefc9", - "Axis": "Left", - "ActOn": "Load", - "Place": "H81 - 88, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 11, - "HoleCollective": "81,82,83,84,85,86,87,88", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-001-300", - "ConsumablesName": "300μL Tip头", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "7be607f7b31440a39094deb7c17a3cc5", - "uuidPlanMaster": "40bd0ca25ffb4be6b246353db6ebefc9", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "T2", - "Dosage": 300, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-58-10000", - "ConsumablesName": "储液槽", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "5975028fe4e9486792470c41242f3f9b", - "uuidPlanMaster": "40bd0ca25ffb4be6b246353db6ebefc9", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H81 - 88, T4", - "Dosage": 300, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 11, - "HoleCollective": "81,82,83,84,85,86,87,88", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "q2", - "ConsumablesName": "96深孔板", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "7e6bdc0d152044fd87d13c98af9901d8", - "uuidPlanMaster": "40bd0ca25ffb4be6b246353db6ebefc9", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H81 - 88, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 11, - "HoleCollective": "81,82,83,84,85,86,87,88", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-001-300", - "ConsumablesName": "300μL Tip头", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "a2542582f8f44ee2a42478aad23d7ef1", - "uuidPlanMaster": "40bd0ca25ffb4be6b246353db6ebefc9", - "Axis": "Left", - "ActOn": "Load", - "Place": "H89 - 96, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 12, - "HoleCollective": "89,90,91,92,93,94,95,96", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-001-300", - "ConsumablesName": "300μL Tip头", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "26f00d06d366435dbbb3bf00726bf5a7", - "uuidPlanMaster": "40bd0ca25ffb4be6b246353db6ebefc9", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "T2", - "Dosage": 300, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-58-10000", - "ConsumablesName": "储液槽", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "127b3b85a9274adcb04881325a473ee8", - "uuidPlanMaster": "40bd0ca25ffb4be6b246353db6ebefc9", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H89 - 96, T4", - "Dosage": 300, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 12, - "HoleCollective": "89,90,91,92,93,94,95,96", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "q2", - "ConsumablesName": "96深孔板", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "99413a2c1ed248288e9de11635245f52", - "uuidPlanMaster": "40bd0ca25ffb4be6b246353db6ebefc9", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H89 - 96, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 12, - "HoleCollective": "89,90,91,92,93,94,95,96", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-001-300", - "ConsumablesName": "300μL Tip头", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "675137581c444f1c96366b61cc494027", - "uuidPlanMaster": "30b838bb7d124ec885b506df29ee7860", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1 - 8, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-001-300", - "ConsumablesName": "300μL Tip头", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "0042a12ff5b64c7188afd74c15089c98", - "uuidPlanMaster": "30b838bb7d124ec885b506df29ee7860", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "T2", - "Dosage": 48, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-58-10000", - "ConsumablesName": "储液槽", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "1383ad24c03d4378a0c7c35326c52c61", - "uuidPlanMaster": "30b838bb7d124ec885b506df29ee7860", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1 - 15, T4", - "Dosage": 12, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,3,5,7,9,11,13,15", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "q3", - "ConsumablesName": "384板", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "96ef2aa928704b468e5d358625c1ec5c", - "uuidPlanMaster": "30b838bb7d124ec885b506df29ee7860", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H2 - 16, T4", - "Dosage": 12, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 1, - "HoleCollective": "2,4,6,8,10,12,14,16", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "q3", - "ConsumablesName": "384板", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "69e29768a0084fa3a04bdbdc5481d995", - "uuidPlanMaster": "30b838bb7d124ec885b506df29ee7860", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H17 - 31, T4", - "Dosage": 12, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 2, - "HoleCollective": "17,19,21,23,25,27,29,31", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "q3", - "ConsumablesName": "384板", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "4ddba51df8db431e9d0e16cb1d7d8f2a", - "uuidPlanMaster": "30b838bb7d124ec885b506df29ee7860", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H18 - 32, T4", - "Dosage": 12, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 2, - "HoleCollective": "18,20,22,24,26,28,30,32", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "q3", - "ConsumablesName": "384板", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "861e91acc0cf4fd7b13227beba0813f5", - "uuidPlanMaster": "30b838bb7d124ec885b506df29ee7860", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H1 - 8, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-001-300", - "ConsumablesName": "300μL Tip头", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "6fd6643a61d641f4bafad31cb22e7e23", - "uuidPlanMaster": "30b838bb7d124ec885b506df29ee7860", - "Axis": "Left", - "ActOn": "Load", - "Place": "H9 - 16, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 2, - "HoleCollective": "9,10,11,12,13,14,15,16", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-001-300", - "ConsumablesName": "300μL Tip头", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "05cf4fed46354a069e45ae88b0c062ea", - "uuidPlanMaster": "30b838bb7d124ec885b506df29ee7860", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "T2", - "Dosage": 48, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-58-10000", - "ConsumablesName": "储液槽", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "d05d7aa4c74348b5826753df5f7705d4", - "uuidPlanMaster": "30b838bb7d124ec885b506df29ee7860", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H33 - 47, T4", - "Dosage": 12, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "33,35,37,39,41,43,45,47", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "q3", - "ConsumablesName": "384板", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "e3c8be5f3dab4ffa9c760f3fd4f48846", - "uuidPlanMaster": "30b838bb7d124ec885b506df29ee7860", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H34 - 48, T4", - "Dosage": 12, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 3, - "HoleCollective": "34,36,38,40,42,44,46,48", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "q3", - "ConsumablesName": "384板", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "3d0021a0af6649e1b63a837aa79e35e5", - "uuidPlanMaster": "30b838bb7d124ec885b506df29ee7860", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H49 - 63, T4", - "Dosage": 12, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 4, - "HoleCollective": "49,51,53,55,57,59,61,63", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "q3", - "ConsumablesName": "384板", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "e2680d8e06014c51894b1b38bd3bac64", - "uuidPlanMaster": "30b838bb7d124ec885b506df29ee7860", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H50 - 64, T4", - "Dosage": 12, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 4, - "HoleCollective": "50,52,54,56,58,60,62,64", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "q3", - "ConsumablesName": "384板", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "7f63272970ba4f4f8a8a616634adbc04", - "uuidPlanMaster": "30b838bb7d124ec885b506df29ee7860", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H9 - 16, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 2, - "HoleCollective": "9,10,11,12,13,14,15,16", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-001-300", - "ConsumablesName": "300μL Tip头", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "0fc6807d61a0401ebd702510f9fb40e6", - "uuidPlanMaster": "30b838bb7d124ec885b506df29ee7860", - "Axis": "Left", - "ActOn": "Load", - "Place": "H17 - 24, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "17,18,19,20,21,22,23,24", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-001-300", - "ConsumablesName": "300μL Tip头", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "1aea75b791e04206bbc0122305617182", - "uuidPlanMaster": "30b838bb7d124ec885b506df29ee7860", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "T2", - "Dosage": 48, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-58-10000", - "ConsumablesName": "储液槽", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "1f19ee2ed3e54609abe83e111b4f1be1", - "uuidPlanMaster": "30b838bb7d124ec885b506df29ee7860", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H65 - 79, T4", - "Dosage": 12, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 5, - "HoleCollective": "65,67,69,71,73,75,77,79", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "q3", - "ConsumablesName": "384板", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "9059f71742ef4ad0b2e6a817892adcdd", - "uuidPlanMaster": "30b838bb7d124ec885b506df29ee7860", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H66 - 80, T4", - "Dosage": 12, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 5, - "HoleCollective": "66,68,70,72,74,76,78,80", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "q3", - "ConsumablesName": "384板", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "094e1dbb0ad649099f933a8dacceb20e", - "uuidPlanMaster": "30b838bb7d124ec885b506df29ee7860", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H81 - 95, T4", - "Dosage": 12, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 6, - "HoleCollective": "81,83,85,87,89,91,93,95", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "q3", - "ConsumablesName": "384板", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "19615fd04f9d4ec887cd17450abd2b34", - "uuidPlanMaster": "30b838bb7d124ec885b506df29ee7860", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H82 - 96, T4", - "Dosage": 12, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 6, - "HoleCollective": "82,84,86,88,90,92,94,96", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "q3", - "ConsumablesName": "384板", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "8df63c410fef42329031405465f645d8", - "uuidPlanMaster": "30b838bb7d124ec885b506df29ee7860", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H17 - 24, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "17,18,19,20,21,22,23,24", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-001-300", - "ConsumablesName": "300μL Tip头", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "238a424a0e384cebade008237582b226", - "uuidPlanMaster": "30b838bb7d124ec885b506df29ee7860", - "Axis": "Left", - "ActOn": "Load", - "Place": "H25 - 32, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 4, - "HoleCollective": "25,26,27,28,29,30,31,32", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-001-300", - "ConsumablesName": "300μL Tip头", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "cc730c24ff6246c9ac8029cc38229110", - "uuidPlanMaster": "30b838bb7d124ec885b506df29ee7860", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "T2", - "Dosage": 48, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-58-10000", - "ConsumablesName": "储液槽", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "6351bc0c2e8540ca88b4b755cb2c4ed4", - "uuidPlanMaster": "30b838bb7d124ec885b506df29ee7860", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H97 - 111, T4", - "Dosage": 12, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 7, - "HoleCollective": "97,99,101,103,105,107,109,111", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "q3", - "ConsumablesName": "384板", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "d4d0d821c95f442b9d342f12974fb44e", - "uuidPlanMaster": "30b838bb7d124ec885b506df29ee7860", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H98 - 112, T4", - "Dosage": 12, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 7, - "HoleCollective": "98,100,102,104,106,108,110,112", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "q3", - "ConsumablesName": "384板", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "49c214abc0aa45638e5363c1ec4feb03", - "uuidPlanMaster": "30b838bb7d124ec885b506df29ee7860", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H113 - 127, T4", - "Dosage": 12, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 8, - "HoleCollective": "113,115,117,119,121,123,125,127", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "q3", - "ConsumablesName": "384板", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "cceb42bc9f334dec8c81193b4d8c44da", - "uuidPlanMaster": "30b838bb7d124ec885b506df29ee7860", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H114 - 128, T4", - "Dosage": 12, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 8, - "HoleCollective": "114,116,118,120,122,124,126,128", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "q3", - "ConsumablesName": "384板", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "8f0b6c888b2841e7af46e1618cbb30c3", - "uuidPlanMaster": "30b838bb7d124ec885b506df29ee7860", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H25 - 32, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 4, - "HoleCollective": "25,26,27,28,29,30,31,32", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-001-300", - "ConsumablesName": "300μL Tip头", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "086e3a04a44b4df2b2a6c5bb6b78f998", - "uuidPlanMaster": "30b838bb7d124ec885b506df29ee7860", - "Axis": "Left", - "ActOn": "Load", - "Place": "H33 - 40, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 5, - "HoleCollective": "33,34,35,36,37,38,39,40", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-001-300", - "ConsumablesName": "300μL Tip头", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "387d34b0cc3a4e78af89dc59cc05e2cd", - "uuidPlanMaster": "30b838bb7d124ec885b506df29ee7860", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "T2", - "Dosage": 48, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-58-10000", - "ConsumablesName": "储液槽", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "8417b4b60a2e46b59c8559a66e135a60", - "uuidPlanMaster": "30b838bb7d124ec885b506df29ee7860", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H129 - 143, T4", - "Dosage": 12, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 9, - "HoleCollective": "129,131,133,135,137,139,141,143", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "q3", - "ConsumablesName": "384板", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "2b57c1fe66f4450483b6767a01b705af", - "uuidPlanMaster": "30b838bb7d124ec885b506df29ee7860", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H130 - 144, T4", - "Dosage": 12, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 9, - "HoleCollective": "130,132,134,136,138,140,142,144", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "q3", - "ConsumablesName": "384板", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "86c8ccc18bfa48bd83667052ba1b6809", - "uuidPlanMaster": "30b838bb7d124ec885b506df29ee7860", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H145 - 159, T4", - "Dosage": 12, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 10, - "HoleCollective": "145,147,149,151,153,155,157,159", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "q3", - "ConsumablesName": "384板", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "8da1e0fce8ce4432b51926638556bed3", - "uuidPlanMaster": "30b838bb7d124ec885b506df29ee7860", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H146 - 160, T4", - "Dosage": 12, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 10, - "HoleCollective": "146,148,150,152,154,156,158,160", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "q3", - "ConsumablesName": "384板", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "2fab954c9ea14539b38cde4b314d68c5", - "uuidPlanMaster": "30b838bb7d124ec885b506df29ee7860", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H33 - 40, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 5, - "HoleCollective": "33,34,35,36,37,38,39,40", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-001-300", - "ConsumablesName": "300μL Tip头", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "9795754070cf4dbe9ecd6d177a67a3c9", - "uuidPlanMaster": "30b838bb7d124ec885b506df29ee7860", - "Axis": "Left", - "ActOn": "Load", - "Place": "H41 - 48, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 6, - "HoleCollective": "41,42,43,44,45,46,47,48", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-001-300", - "ConsumablesName": "300μL Tip头", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "7a203c61cb3041928c9f61ef1bebe9a2", - "uuidPlanMaster": "30b838bb7d124ec885b506df29ee7860", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "T2", - "Dosage": 48, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-58-10000", - "ConsumablesName": "储液槽", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "509e8e6f4155455b882c5ec343f84d74", - "uuidPlanMaster": "30b838bb7d124ec885b506df29ee7860", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H161 - 175, T4", - "Dosage": 12, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 11, - "HoleCollective": "161,163,165,167,169,171,173,175", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "q3", - "ConsumablesName": "384板", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "325a915fc78c4e409b152ab7f7291eb4", - "uuidPlanMaster": "30b838bb7d124ec885b506df29ee7860", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H162 - 176, T4", - "Dosage": 12, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 11, - "HoleCollective": "162,164,166,168,170,172,174,176", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "q3", - "ConsumablesName": "384板", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "07985bab428c468b801daf8c976394ee", - "uuidPlanMaster": "30b838bb7d124ec885b506df29ee7860", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H177 - 191, T4", - "Dosage": 12, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 12, - "HoleCollective": "177,179,181,183,185,187,189,191", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "q3", - "ConsumablesName": "384板", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "ea22fb2712d4498fb5a31987f2394843", - "uuidPlanMaster": "30b838bb7d124ec885b506df29ee7860", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H178 - 192, T4", - "Dosage": 12, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 12, - "HoleCollective": "178,180,182,184,186,188,190,192", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "q3", - "ConsumablesName": "384板", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "13b12674fc7a4bc7a285248925086002", - "uuidPlanMaster": "30b838bb7d124ec885b506df29ee7860", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H41 - 48, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 6, - "HoleCollective": "41,42,43,44,45,46,47,48", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-001-300", - "ConsumablesName": "300μL Tip头", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "7045fcfc599948269f7812ed1226581e", - "uuidPlanMaster": "30b838bb7d124ec885b506df29ee7860", - "Axis": "Left", - "ActOn": "Load", - "Place": "H49 - 56, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 7, - "HoleCollective": "49,50,51,52,53,54,55,56", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-001-300", - "ConsumablesName": "300μL Tip头", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "dc7789c52d874e60893832d89a41770b", - "uuidPlanMaster": "30b838bb7d124ec885b506df29ee7860", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "T2", - "Dosage": 48, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-58-10000", - "ConsumablesName": "储液槽", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "0e7c1a19a13c449384d99dad15149109", - "uuidPlanMaster": "30b838bb7d124ec885b506df29ee7860", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H193 - 207, T4", - "Dosage": 12, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 13, - "HoleCollective": "193,195,197,199,201,203,205,207", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "q3", - "ConsumablesName": "384板", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "0cf4d8a05c9d41449f9dfd220b1fbc56", - "uuidPlanMaster": "30b838bb7d124ec885b506df29ee7860", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H194 - 208, T4", - "Dosage": 12, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 13, - "HoleCollective": "194,196,198,200,202,204,206,208", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "q3", - "ConsumablesName": "384板", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "cb59d1df729f495ab09c29ca6ffceb33", - "uuidPlanMaster": "30b838bb7d124ec885b506df29ee7860", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H209 - 223, T4", - "Dosage": 12, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 14, - "HoleCollective": "209,211,213,215,217,219,221,223", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "q3", - "ConsumablesName": "384板", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "15a80f80e3504ad8afbd37892e24c7b0", - "uuidPlanMaster": "30b838bb7d124ec885b506df29ee7860", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H210 - 224, T4", - "Dosage": 12, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 14, - "HoleCollective": "210,212,214,216,218,220,222,224", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "q3", - "ConsumablesName": "384板", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "7a25defa786e43d1a672e9a169945f16", - "uuidPlanMaster": "30b838bb7d124ec885b506df29ee7860", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H49 - 56, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 7, - "HoleCollective": "49,50,51,52,53,54,55,56", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-001-300", - "ConsumablesName": "300μL Tip头", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "0424a1e032294ab5a3793e09b3831f5f", - "uuidPlanMaster": "30b838bb7d124ec885b506df29ee7860", - "Axis": "Left", - "ActOn": "Load", - "Place": "H57 - 64, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 8, - "HoleCollective": "57,58,59,60,61,62,63,64", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-001-300", - "ConsumablesName": "300μL Tip头", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "0dc505643523435dbd809ecbf7598f20", - "uuidPlanMaster": "30b838bb7d124ec885b506df29ee7860", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "T2", - "Dosage": 48, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-58-10000", - "ConsumablesName": "储液槽", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "986f51392d5648168cb710f1c0dff540", - "uuidPlanMaster": "30b838bb7d124ec885b506df29ee7860", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H225 - 239, T4", - "Dosage": 12, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 15, - "HoleCollective": "225,227,229,231,233,235,237,239", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "q3", - "ConsumablesName": "384板", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "4224906856c94bc98c8eef155fbae63c", - "uuidPlanMaster": "30b838bb7d124ec885b506df29ee7860", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H226 - 240, T4", - "Dosage": 12, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 15, - "HoleCollective": "226,228,230,232,234,236,238,240", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "q3", - "ConsumablesName": "384板", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "e09d2947f1a04ba2a5fe6250096a3f23", - "uuidPlanMaster": "30b838bb7d124ec885b506df29ee7860", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H241 - 255, T4", - "Dosage": 12, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 16, - "HoleCollective": "241,243,245,247,249,251,253,255", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "q3", - "ConsumablesName": "384板", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "302792640b33432990eef72a7d3d85be", - "uuidPlanMaster": "30b838bb7d124ec885b506df29ee7860", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H242 - 256, T4", - "Dosage": 12, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 16, - "HoleCollective": "242,244,246,248,250,252,254,256", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "q3", - "ConsumablesName": "384板", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "261ae38ff10f4ce5bb861fca94d32be8", - "uuidPlanMaster": "30b838bb7d124ec885b506df29ee7860", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H57 - 64, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 8, - "HoleCollective": "57,58,59,60,61,62,63,64", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-001-300", - "ConsumablesName": "300μL Tip头", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "befd6455b06e4e3da31677958b74f87f", - "uuidPlanMaster": "30b838bb7d124ec885b506df29ee7860", - "Axis": "Left", - "ActOn": "Load", - "Place": "H65 - 72, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 9, - "HoleCollective": "65,66,67,68,69,70,71,72", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-001-300", - "ConsumablesName": "300μL Tip头", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "ea48827bd4334706a3408636d0da1ca1", - "uuidPlanMaster": "30b838bb7d124ec885b506df29ee7860", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "T2", - "Dosage": 48, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-58-10000", - "ConsumablesName": "储液槽", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "ab0f83d4be92488595927a10694f6409", - "uuidPlanMaster": "30b838bb7d124ec885b506df29ee7860", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H257 - 271, T4", - "Dosage": 12, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 17, - "HoleCollective": "257,259,261,263,265,267,269,271", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "q3", - "ConsumablesName": "384板", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "3568d70d0c664e6bb65517012cb1f0fe", - "uuidPlanMaster": "30b838bb7d124ec885b506df29ee7860", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H258 - 272, T4", - "Dosage": 12, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 17, - "HoleCollective": "258,260,262,264,266,268,270,272", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "q3", - "ConsumablesName": "384板", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "dc253d0ba66f4e1482f04b3e043ea8e6", - "uuidPlanMaster": "30b838bb7d124ec885b506df29ee7860", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H273 - 287, T4", - "Dosage": 12, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 18, - "HoleCollective": "273,275,277,279,281,283,285,287", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "q3", - "ConsumablesName": "384板", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "a193b2c6716c485391ac6681f426eb81", - "uuidPlanMaster": "30b838bb7d124ec885b506df29ee7860", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H274 - 288, T4", - "Dosage": 12, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 18, - "HoleCollective": "274,276,278,280,282,284,286,288", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "q3", - "ConsumablesName": "384板", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "ece8f1b27d3f48caa110cce3e4bfdc09", - "uuidPlanMaster": "30b838bb7d124ec885b506df29ee7860", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H65 - 72, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 9, - "HoleCollective": "65,66,67,68,69,70,71,72", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-001-300", - "ConsumablesName": "300μL Tip头", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "a7553ac11f294b8dadf2d0078519eaca", - "uuidPlanMaster": "30b838bb7d124ec885b506df29ee7860", - "Axis": "Left", - "ActOn": "Load", - "Place": "H73 - 80, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 10, - "HoleCollective": "73,74,75,76,77,78,79,80", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-001-300", - "ConsumablesName": "300μL Tip头", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "d0fde02ecf074e76a0baf5a0d74d8a34", - "uuidPlanMaster": "30b838bb7d124ec885b506df29ee7860", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "T2", - "Dosage": 48, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-58-10000", - "ConsumablesName": "储液槽", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "5472d4855ed84014ba70a636757730e4", - "uuidPlanMaster": "30b838bb7d124ec885b506df29ee7860", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H289 - 303, T4", - "Dosage": 12, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 19, - "HoleCollective": "289,291,293,295,297,299,301,303", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "q3", - "ConsumablesName": "384板", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "79434d220f7745b1a1784776121b0c3f", - "uuidPlanMaster": "30b838bb7d124ec885b506df29ee7860", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H290 - 304, T4", - "Dosage": 12, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 19, - "HoleCollective": "290,292,294,296,298,300,302,304", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "q3", - "ConsumablesName": "384板", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "3c7a893a837e47e9811b2b7e4978f4d5", - "uuidPlanMaster": "30b838bb7d124ec885b506df29ee7860", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H305 - 319, T4", - "Dosage": 12, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 20, - "HoleCollective": "305,307,309,311,313,315,317,319", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "q3", - "ConsumablesName": "384板", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "6eeac96ac8214282a7cfce43c343b070", - "uuidPlanMaster": "30b838bb7d124ec885b506df29ee7860", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H306 - 320, T4", - "Dosage": 12, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 20, - "HoleCollective": "306,308,310,312,314,316,318,320", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "q3", - "ConsumablesName": "384板", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "12397ed038774294ad26de8aa3938d3c", - "uuidPlanMaster": "30b838bb7d124ec885b506df29ee7860", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H73 - 80, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 10, - "HoleCollective": "73,74,75,76,77,78,79,80", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-001-300", - "ConsumablesName": "300μL Tip头", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "ba9873651e5b4699868a9f1d85d0e77f", - "uuidPlanMaster": "30b838bb7d124ec885b506df29ee7860", - "Axis": "Left", - "ActOn": "Load", - "Place": "H81 - 88, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 11, - "HoleCollective": "81,82,83,84,85,86,87,88", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-001-300", - "ConsumablesName": "300μL Tip头", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "887e6604bbd748d496631fbf2ae028e5", - "uuidPlanMaster": "30b838bb7d124ec885b506df29ee7860", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "T2", - "Dosage": 48, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-58-10000", - "ConsumablesName": "储液槽", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "a3ae5076eecb49c5944b97e9ce984ffb", - "uuidPlanMaster": "30b838bb7d124ec885b506df29ee7860", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H321 - 335, T4", - "Dosage": 12, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 21, - "HoleCollective": "321,323,325,327,329,331,333,335", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "q3", - "ConsumablesName": "384板", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "989269ba24a44bd19a3b9fc67a331528", - "uuidPlanMaster": "30b838bb7d124ec885b506df29ee7860", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H322 - 336, T4", - "Dosage": 12, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 21, - "HoleCollective": "322,324,326,328,330,332,334,336", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "q3", - "ConsumablesName": "384板", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "5d631daa870c4bf0b40473278f9129ca", - "uuidPlanMaster": "30b838bb7d124ec885b506df29ee7860", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H337 - 351, T4", - "Dosage": 12, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 22, - "HoleCollective": "337,339,341,343,345,347,349,351", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "q3", - "ConsumablesName": "384板", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "37deff08f41648cebefe76425edca687", - "uuidPlanMaster": "30b838bb7d124ec885b506df29ee7860", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H338 - 352, T4", - "Dosage": 12, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 22, - "HoleCollective": "338,340,342,344,346,348,350,352", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "q3", - "ConsumablesName": "384板", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "b34cf28125674991b3d9406e4f944191", - "uuidPlanMaster": "30b838bb7d124ec885b506df29ee7860", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H81 - 88, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 11, - "HoleCollective": "81,82,83,84,85,86,87,88", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-001-300", - "ConsumablesName": "300μL Tip头", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "450d617b7c984412abc5f13674c7973a", - "uuidPlanMaster": "30b838bb7d124ec885b506df29ee7860", - "Axis": "Left", - "ActOn": "Load", - "Place": "H89 - 96, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 12, - "HoleCollective": "89,90,91,92,93,94,95,96", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-001-300", - "ConsumablesName": "300μL Tip头", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "7588bcd672ca40c8b9e74700be34e046", - "uuidPlanMaster": "30b838bb7d124ec885b506df29ee7860", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "T2", - "Dosage": 48, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-58-10000", - "ConsumablesName": "储液槽", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "4af80727348a433f97a380539bd79ae1", - "uuidPlanMaster": "30b838bb7d124ec885b506df29ee7860", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H353 - 367, T4", - "Dosage": 12, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 23, - "HoleCollective": "353,355,357,359,361,363,365,367", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "q3", - "ConsumablesName": "384板", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "569e09c8e84b434ab0dd2f38ab9edd5e", - "uuidPlanMaster": "30b838bb7d124ec885b506df29ee7860", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H354 - 368, T4", - "Dosage": 12, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 23, - "HoleCollective": "354,356,358,360,362,364,366,368", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "q3", - "ConsumablesName": "384板", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "360755fb742c4ab0a8b2300a46c72d89", - "uuidPlanMaster": "30b838bb7d124ec885b506df29ee7860", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H369 - 383, T4", - "Dosage": 12, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 24, - "HoleCollective": "369,371,373,375,377,379,381,383", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "q3", - "ConsumablesName": "384板", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "e5b2c54fed444802a2b176f1a94fa747", - "uuidPlanMaster": "30b838bb7d124ec885b506df29ee7860", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H370 - 384, T4", - "Dosage": 12, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 24, - "HoleCollective": "370,372,374,376,378,380,382,384", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "q3", - "ConsumablesName": "384板", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "338371e4db3a4905b0c68ce3d4b19e59", - "uuidPlanMaster": "30b838bb7d124ec885b506df29ee7860", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H89 - 96, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 12, - "HoleCollective": "89,90,91,92,93,94,95,96", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-001-300", - "ConsumablesName": "300μL Tip头", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "14733fef27604fed941b4514847e6923", - "uuidPlanMaster": "e53c591c86334c6f92d3b1afa107bcf8", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1 - 8, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-001-300", - "ConsumablesName": "300μL Tip头", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "44fc34484f634d2f9a8597d60a87411c", - "uuidPlanMaster": "e53c591c86334c6f92d3b1afa107bcf8", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "T2", - "Dosage": 240, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-58-10000", - "ConsumablesName": "储液槽", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "ec956dd30f464f0196e4fdc47777dec7", - "uuidPlanMaster": "e53c591c86334c6f92d3b1afa107bcf8", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1 - 15, T4", - "Dosage": 60, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,3,5,7,9,11,13,15", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "q3", - "ConsumablesName": "384板", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "dbc18ddf37ed4b7696d1148c99b45b96", - "uuidPlanMaster": "e53c591c86334c6f92d3b1afa107bcf8", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H2 - 16, T4", - "Dosage": 60, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 1, - "HoleCollective": "2,4,6,8,10,12,14,16", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "q3", - "ConsumablesName": "384板", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "f5d9803c39094c8eb6a444f4aec420e0", - "uuidPlanMaster": "e53c591c86334c6f92d3b1afa107bcf8", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H17 - 31, T4", - "Dosage": 60, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 2, - "HoleCollective": "17,19,21,23,25,27,29,31", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "q3", - "ConsumablesName": "384板", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "b7383d33f8534a528aa7090133aefbd8", - "uuidPlanMaster": "e53c591c86334c6f92d3b1afa107bcf8", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H18 - 32, T4", - "Dosage": 60, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 2, - "HoleCollective": "18,20,22,24,26,28,30,32", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "q3", - "ConsumablesName": "384板", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "64a843dff5f94f2ab544d266cb323824", - "uuidPlanMaster": "e53c591c86334c6f92d3b1afa107bcf8", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H1 - 8, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-001-300", - "ConsumablesName": "300μL Tip头", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "c1b87ca9060b457b849c3126c164f807", - "uuidPlanMaster": "e53c591c86334c6f92d3b1afa107bcf8", - "Axis": "Left", - "ActOn": "Load", - "Place": "H9 - 16, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 2, - "HoleCollective": "9,10,11,12,13,14,15,16", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-001-300", - "ConsumablesName": "300μL Tip头", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "8d585599a909417a96f29aa71bed1431", - "uuidPlanMaster": "e53c591c86334c6f92d3b1afa107bcf8", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "T2", - "Dosage": 240, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-58-10000", - "ConsumablesName": "储液槽", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "a9add001b3c14f2c9b8ca805e9118f9e", - "uuidPlanMaster": "e53c591c86334c6f92d3b1afa107bcf8", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H33 - 47, T4", - "Dosage": 60, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "33,35,37,39,41,43,45,47", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "q3", - "ConsumablesName": "384板", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "e7af30357f844cc2b4a22df56ae46538", - "uuidPlanMaster": "e53c591c86334c6f92d3b1afa107bcf8", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H34 - 48, T4", - "Dosage": 60, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 3, - "HoleCollective": "34,36,38,40,42,44,46,48", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "q3", - "ConsumablesName": "384板", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "c67bbc371ad449d490a8b87661d9174c", - "uuidPlanMaster": "e53c591c86334c6f92d3b1afa107bcf8", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H49 - 63, T4", - "Dosage": 60, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 4, - "HoleCollective": "49,51,53,55,57,59,61,63", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "q3", - "ConsumablesName": "384板", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "9429a7174d8d472f910e498e4c513c3b", - "uuidPlanMaster": "e53c591c86334c6f92d3b1afa107bcf8", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H50 - 64, T4", - "Dosage": 60, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 4, - "HoleCollective": "50,52,54,56,58,60,62,64", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "q3", - "ConsumablesName": "384板", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "e71c076345ff49a09ec157b0eb73fd28", - "uuidPlanMaster": "e53c591c86334c6f92d3b1afa107bcf8", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H9 - 16, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 2, - "HoleCollective": "9,10,11,12,13,14,15,16", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-001-300", - "ConsumablesName": "300μL Tip头", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "d1efa8460fab48cfa36d506a037c5d55", - "uuidPlanMaster": "e53c591c86334c6f92d3b1afa107bcf8", - "Axis": "Left", - "ActOn": "Load", - "Place": "H17 - 24, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "17,18,19,20,21,22,23,24", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-001-300", - "ConsumablesName": "300μL Tip头", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "da9ffc32830a4707885e59b629b37bd7", - "uuidPlanMaster": "e53c591c86334c6f92d3b1afa107bcf8", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "T2", - "Dosage": 240, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-58-10000", - "ConsumablesName": "储液槽", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "00b0bd6e053f4ad498a286a57950506a", - "uuidPlanMaster": "e53c591c86334c6f92d3b1afa107bcf8", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H65 - 79, T4", - "Dosage": 60, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 5, - "HoleCollective": "65,67,69,71,73,75,77,79", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "q3", - "ConsumablesName": "384板", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "2205eb8729d44e07b271c22d5aef4e2a", - "uuidPlanMaster": "e53c591c86334c6f92d3b1afa107bcf8", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H66 - 80, T4", - "Dosage": 60, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 5, - "HoleCollective": "66,68,70,72,74,76,78,80", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "q3", - "ConsumablesName": "384板", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "3968dcd66a8c425aa4b1fee610627bb6", - "uuidPlanMaster": "e53c591c86334c6f92d3b1afa107bcf8", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H81 - 95, T4", - "Dosage": 60, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 6, - "HoleCollective": "81,83,85,87,89,91,93,95", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "q3", - "ConsumablesName": "384板", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "d106bbc59ee54b8faada745c8b8f5d0a", - "uuidPlanMaster": "e53c591c86334c6f92d3b1afa107bcf8", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H82 - 96, T4", - "Dosage": 60, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 6, - "HoleCollective": "82,84,86,88,90,92,94,96", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "q3", - "ConsumablesName": "384板", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "b5d2c65defc14ddaa46e701158247ca6", - "uuidPlanMaster": "e53c591c86334c6f92d3b1afa107bcf8", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H17 - 24, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "17,18,19,20,21,22,23,24", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-001-300", - "ConsumablesName": "300μL Tip头", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "18f2f647a6524d96b7470a22d0bc9315", - "uuidPlanMaster": "e53c591c86334c6f92d3b1afa107bcf8", - "Axis": "Left", - "ActOn": "Load", - "Place": "H25 - 32, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 4, - "HoleCollective": "25,26,27,28,29,30,31,32", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-001-300", - "ConsumablesName": "300μL Tip头", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "fb8b7ab43b224231b8cca8fa568deccc", - "uuidPlanMaster": "e53c591c86334c6f92d3b1afa107bcf8", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "T2", - "Dosage": 240, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-58-10000", - "ConsumablesName": "储液槽", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "7c8bb300f6774bc88d821a7c1bc04c3f", - "uuidPlanMaster": "e53c591c86334c6f92d3b1afa107bcf8", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H97 - 111, T4", - "Dosage": 60, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 7, - "HoleCollective": "97,99,101,103,105,107,109,111", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "q3", - "ConsumablesName": "384板", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "ebece551e3764bd980a09d66110e532d", - "uuidPlanMaster": "e53c591c86334c6f92d3b1afa107bcf8", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H98 - 112, T4", - "Dosage": 60, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 7, - "HoleCollective": "98,100,102,104,106,108,110,112", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "q3", - "ConsumablesName": "384板", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "d270aa850fd84d02882ef4331b56919e", - "uuidPlanMaster": "e53c591c86334c6f92d3b1afa107bcf8", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H113 - 127, T4", - "Dosage": 60, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 8, - "HoleCollective": "113,115,117,119,121,123,125,127", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "q3", - "ConsumablesName": "384板", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "faad190794e1466db439d3b3aeb36402", - "uuidPlanMaster": "e53c591c86334c6f92d3b1afa107bcf8", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H114 - 128, T4", - "Dosage": 60, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 8, - "HoleCollective": "114,116,118,120,122,124,126,128", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "q3", - "ConsumablesName": "384板", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "4478656a0f8c422f9fd9b4c94d9053e0", - "uuidPlanMaster": "e53c591c86334c6f92d3b1afa107bcf8", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H25 - 32, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 4, - "HoleCollective": "25,26,27,28,29,30,31,32", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-001-300", - "ConsumablesName": "300μL Tip头", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "26722e2e1b0b4dfe9902b78851890f26", - "uuidPlanMaster": "e53c591c86334c6f92d3b1afa107bcf8", - "Axis": "Left", - "ActOn": "Load", - "Place": "H33 - 40, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 5, - "HoleCollective": "33,34,35,36,37,38,39,40", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-001-300", - "ConsumablesName": "300μL Tip头", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "f1492b333eca40a4a9bc0198f157f502", - "uuidPlanMaster": "e53c591c86334c6f92d3b1afa107bcf8", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "T2", - "Dosage": 240, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-58-10000", - "ConsumablesName": "储液槽", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "80a7364a47e94aeea2d2a128996ae499", - "uuidPlanMaster": "e53c591c86334c6f92d3b1afa107bcf8", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H129 - 143, T4", - "Dosage": 60, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 9, - "HoleCollective": "129,131,133,135,137,139,141,143", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "q3", - "ConsumablesName": "384板", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "1587f4ac45414055a24feb3af1f6e00f", - "uuidPlanMaster": "e53c591c86334c6f92d3b1afa107bcf8", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H130 - 144, T4", - "Dosage": 60, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 9, - "HoleCollective": "130,132,134,136,138,140,142,144", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "q3", - "ConsumablesName": "384板", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "4e8221f161334e64956ed6cb4fa464bd", - "uuidPlanMaster": "e53c591c86334c6f92d3b1afa107bcf8", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H145 - 159, T4", - "Dosage": 60, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 10, - "HoleCollective": "145,147,149,151,153,155,157,159", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "q3", - "ConsumablesName": "384板", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "8364934954784c1d999a77f197f29fa0", - "uuidPlanMaster": "e53c591c86334c6f92d3b1afa107bcf8", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H146 - 160, T4", - "Dosage": 60, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 10, - "HoleCollective": "146,148,150,152,154,156,158,160", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "q3", - "ConsumablesName": "384板", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "5c60940353d0454fb4d9bda1417ea1e6", - "uuidPlanMaster": "e53c591c86334c6f92d3b1afa107bcf8", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H33 - 40, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 5, - "HoleCollective": "33,34,35,36,37,38,39,40", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-001-300", - "ConsumablesName": "300μL Tip头", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "72f25542dfd8460781708a73beeb6153", - "uuidPlanMaster": "e53c591c86334c6f92d3b1afa107bcf8", - "Axis": "Left", - "ActOn": "Load", - "Place": "H41 - 48, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 6, - "HoleCollective": "41,42,43,44,45,46,47,48", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-001-300", - "ConsumablesName": "300μL Tip头", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "828a99118a1041b7a5fe15fa41714cdd", - "uuidPlanMaster": "e53c591c86334c6f92d3b1afa107bcf8", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "T2", - "Dosage": 240, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-58-10000", - "ConsumablesName": "储液槽", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "90f68c4f0a26496b8d31fe3ea39604b4", - "uuidPlanMaster": "e53c591c86334c6f92d3b1afa107bcf8", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H161 - 175, T4", - "Dosage": 60, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 11, - "HoleCollective": "161,163,165,167,169,171,173,175", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "q3", - "ConsumablesName": "384板", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "a0550ff4836d405d8646440bd41ee8d3", - "uuidPlanMaster": "e53c591c86334c6f92d3b1afa107bcf8", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H162 - 176, T4", - "Dosage": 60, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 11, - "HoleCollective": "162,164,166,168,170,172,174,176", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "q3", - "ConsumablesName": "384板", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "d757bbb1264d413b9fb7b36cc6fd5eea", - "uuidPlanMaster": "e53c591c86334c6f92d3b1afa107bcf8", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H177 - 191, T4", - "Dosage": 60, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 12, - "HoleCollective": "177,179,181,183,185,187,189,191", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "q3", - "ConsumablesName": "384板", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "7fac2f01f22a40cd9873f7bd3a3ffea8", - "uuidPlanMaster": "e53c591c86334c6f92d3b1afa107bcf8", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H178 - 192, T4", - "Dosage": 60, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 12, - "HoleCollective": "178,180,182,184,186,188,190,192", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "q3", - "ConsumablesName": "384板", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "6df9043dd93a417eb87766d8ecff1441", - "uuidPlanMaster": "e53c591c86334c6f92d3b1afa107bcf8", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H41 - 48, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 6, - "HoleCollective": "41,42,43,44,45,46,47,48", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-001-300", - "ConsumablesName": "300μL Tip头", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "e8b73aaae9ed4375a9ca2bc27a817d92", - "uuidPlanMaster": "e53c591c86334c6f92d3b1afa107bcf8", - "Axis": "Left", - "ActOn": "Load", - "Place": "H49 - 56, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 7, - "HoleCollective": "49,50,51,52,53,54,55,56", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-001-300", - "ConsumablesName": "300μL Tip头", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "6f8f7e7cc3ed4fd1a972838988e6755f", - "uuidPlanMaster": "e53c591c86334c6f92d3b1afa107bcf8", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "T2", - "Dosage": 240, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-58-10000", - "ConsumablesName": "储液槽", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "91bf24cf5a5a4cdd801354a05a16ad9f", - "uuidPlanMaster": "e53c591c86334c6f92d3b1afa107bcf8", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H193 - 207, T4", - "Dosage": 60, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 13, - "HoleCollective": "193,195,197,199,201,203,205,207", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "q3", - "ConsumablesName": "384板", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "219ccb6bfe5a435e9cf90986ace7ca2f", - "uuidPlanMaster": "e53c591c86334c6f92d3b1afa107bcf8", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H194 - 208, T4", - "Dosage": 60, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 13, - "HoleCollective": "194,196,198,200,202,204,206,208", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "q3", - "ConsumablesName": "384板", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "f3d272a570284797832f1b8864a7f1bb", - "uuidPlanMaster": "e53c591c86334c6f92d3b1afa107bcf8", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H209 - 223, T4", - "Dosage": 60, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 14, - "HoleCollective": "209,211,213,215,217,219,221,223", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "q3", - "ConsumablesName": "384板", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "79d6bedcde3947c1a07c316121aa0934", - "uuidPlanMaster": "e53c591c86334c6f92d3b1afa107bcf8", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H210 - 224, T4", - "Dosage": 60, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 14, - "HoleCollective": "210,212,214,216,218,220,222,224", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "q3", - "ConsumablesName": "384板", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "396a7890cb654a7d8befac5a1b79cd1c", - "uuidPlanMaster": "e53c591c86334c6f92d3b1afa107bcf8", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H49 - 56, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 7, - "HoleCollective": "49,50,51,52,53,54,55,56", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-001-300", - "ConsumablesName": "300μL Tip头", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "2a8c80a0ace246b892f3fefb900e34ed", - "uuidPlanMaster": "e53c591c86334c6f92d3b1afa107bcf8", - "Axis": "Left", - "ActOn": "Load", - "Place": "H57 - 64, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 8, - "HoleCollective": "57,58,59,60,61,62,63,64", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-001-300", - "ConsumablesName": "300μL Tip头", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "f99509a009594cf9bfb7753203d7b68e", - "uuidPlanMaster": "e53c591c86334c6f92d3b1afa107bcf8", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "T2", - "Dosage": 240, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-58-10000", - "ConsumablesName": "储液槽", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "73783355c12849afbcf11950e64b9b9c", - "uuidPlanMaster": "e53c591c86334c6f92d3b1afa107bcf8", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H225 - 239, T4", - "Dosage": 60, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 15, - "HoleCollective": "225,227,229,231,233,235,237,239", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "q3", - "ConsumablesName": "384板", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "02d52c29b18d4d4f9f304d7c20fec53b", - "uuidPlanMaster": "e53c591c86334c6f92d3b1afa107bcf8", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H226 - 240, T4", - "Dosage": 60, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 15, - "HoleCollective": "226,228,230,232,234,236,238,240", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "q3", - "ConsumablesName": "384板", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "6f7bf49e98db45c0bee1bb082bb85bb9", - "uuidPlanMaster": "e53c591c86334c6f92d3b1afa107bcf8", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H241 - 255, T4", - "Dosage": 60, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 16, - "HoleCollective": "241,243,245,247,249,251,253,255", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "q3", - "ConsumablesName": "384板", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "6adfb7b45e7f4837b57ffeab714801e2", - "uuidPlanMaster": "e53c591c86334c6f92d3b1afa107bcf8", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H242 - 256, T4", - "Dosage": 60, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 16, - "HoleCollective": "242,244,246,248,250,252,254,256", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "q3", - "ConsumablesName": "384板", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "e678f512522d4db89a7b2348896b4d76", - "uuidPlanMaster": "e53c591c86334c6f92d3b1afa107bcf8", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H57 - 64, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 8, - "HoleCollective": "57,58,59,60,61,62,63,64", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-001-300", - "ConsumablesName": "300μL Tip头", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "cb098875951f451ba6f65b3d3b4c72db", - "uuidPlanMaster": "e53c591c86334c6f92d3b1afa107bcf8", - "Axis": "Left", - "ActOn": "Load", - "Place": "H65 - 72, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 9, - "HoleCollective": "65,66,67,68,69,70,71,72", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-001-300", - "ConsumablesName": "300μL Tip头", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "d0b46b2aafcf4810a73b586f65e8f8e3", - "uuidPlanMaster": "e53c591c86334c6f92d3b1afa107bcf8", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "T2", - "Dosage": 240, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-58-10000", - "ConsumablesName": "储液槽", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "47b19767b5ee4afe83233c17276afadb", - "uuidPlanMaster": "e53c591c86334c6f92d3b1afa107bcf8", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H257 - 271, T4", - "Dosage": 60, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 17, - "HoleCollective": "257,259,261,263,265,267,269,271", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "q3", - "ConsumablesName": "384板", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "86ff79bd0e0b4acba2899b3a9898e1dd", - "uuidPlanMaster": "e53c591c86334c6f92d3b1afa107bcf8", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H258 - 272, T4", - "Dosage": 60, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 17, - "HoleCollective": "258,260,262,264,266,268,270,272", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "q3", - "ConsumablesName": "384板", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "33ad319b6e60464f8b58c6b260a39116", - "uuidPlanMaster": "e53c591c86334c6f92d3b1afa107bcf8", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H273 - 287, T4", - "Dosage": 60, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 18, - "HoleCollective": "273,275,277,279,281,283,285,287", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "q3", - "ConsumablesName": "384板", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "03a37949c9154312993add3fc989ea47", - "uuidPlanMaster": "e53c591c86334c6f92d3b1afa107bcf8", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H274 - 288, T4", - "Dosage": 60, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 18, - "HoleCollective": "274,276,278,280,282,284,286,288", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "q3", - "ConsumablesName": "384板", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "9980e04709d949509ad35f0cf6a80ad3", - "uuidPlanMaster": "e53c591c86334c6f92d3b1afa107bcf8", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H65 - 72, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 9, - "HoleCollective": "65,66,67,68,69,70,71,72", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-001-300", - "ConsumablesName": "300μL Tip头", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "68f91c844fbe4226ac09f0ff504684bf", - "uuidPlanMaster": "e53c591c86334c6f92d3b1afa107bcf8", - "Axis": "Left", - "ActOn": "Load", - "Place": "H73 - 80, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 10, - "HoleCollective": "73,74,75,76,77,78,79,80", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-001-300", - "ConsumablesName": "300μL Tip头", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "115e3936dcbe469494422031c46c16f1", - "uuidPlanMaster": "e53c591c86334c6f92d3b1afa107bcf8", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "T2", - "Dosage": 240, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-58-10000", - "ConsumablesName": "储液槽", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "b0ceeddc4f1842f7a60d77b9c2c31eac", - "uuidPlanMaster": "e53c591c86334c6f92d3b1afa107bcf8", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H289 - 303, T4", - "Dosage": 60, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 19, - "HoleCollective": "289,291,293,295,297,299,301,303", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "q3", - "ConsumablesName": "384板", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "b9a5d2cb3075419c90123696947bd60d", - "uuidPlanMaster": "e53c591c86334c6f92d3b1afa107bcf8", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H290 - 304, T4", - "Dosage": 60, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 19, - "HoleCollective": "290,292,294,296,298,300,302,304", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "q3", - "ConsumablesName": "384板", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "846e1121519b480eaffe21dcf0dd345e", - "uuidPlanMaster": "e53c591c86334c6f92d3b1afa107bcf8", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H305 - 319, T4", - "Dosage": 60, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 20, - "HoleCollective": "305,307,309,311,313,315,317,319", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "q3", - "ConsumablesName": "384板", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "243d05147746468bba872c0d61ed2792", - "uuidPlanMaster": "e53c591c86334c6f92d3b1afa107bcf8", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H306 - 320, T4", - "Dosage": 60, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 20, - "HoleCollective": "306,308,310,312,314,316,318,320", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "q3", - "ConsumablesName": "384板", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "c8deb23d1d77475f85428849da741cd7", - "uuidPlanMaster": "e53c591c86334c6f92d3b1afa107bcf8", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H73 - 80, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 10, - "HoleCollective": "73,74,75,76,77,78,79,80", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-001-300", - "ConsumablesName": "300μL Tip头", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "1ec9cab841434c21b95da55881d8bb70", - "uuidPlanMaster": "e53c591c86334c6f92d3b1afa107bcf8", - "Axis": "Left", - "ActOn": "Load", - "Place": "H81 - 88, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 11, - "HoleCollective": "81,82,83,84,85,86,87,88", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-001-300", - "ConsumablesName": "300μL Tip头", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "5843a2fccd234739b28b1fde122717a0", - "uuidPlanMaster": "e53c591c86334c6f92d3b1afa107bcf8", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "T2", - "Dosage": 240, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-58-10000", - "ConsumablesName": "储液槽", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "bbfef4db970e4acb9136a3e861b22247", - "uuidPlanMaster": "e53c591c86334c6f92d3b1afa107bcf8", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H321 - 335, T4", - "Dosage": 60, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 21, - "HoleCollective": "321,323,325,327,329,331,333,335", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "q3", - "ConsumablesName": "384板", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "bfaeab30046948328dcf3f1c4cc051aa", - "uuidPlanMaster": "e53c591c86334c6f92d3b1afa107bcf8", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H322 - 336, T4", - "Dosage": 60, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 21, - "HoleCollective": "322,324,326,328,330,332,334,336", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "q3", - "ConsumablesName": "384板", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "1f2db6843f4740b9966535ff4ad81854", - "uuidPlanMaster": "e53c591c86334c6f92d3b1afa107bcf8", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H337 - 351, T4", - "Dosage": 60, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 22, - "HoleCollective": "337,339,341,343,345,347,349,351", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "q3", - "ConsumablesName": "384板", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "f511f1839e7f4007bfee4682d9bfe950", - "uuidPlanMaster": "e53c591c86334c6f92d3b1afa107bcf8", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H338 - 352, T4", - "Dosage": 60, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 22, - "HoleCollective": "338,340,342,344,346,348,350,352", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "q3", - "ConsumablesName": "384板", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "87ee9b2a63204675b14f96d68badd808", - "uuidPlanMaster": "e53c591c86334c6f92d3b1afa107bcf8", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H81 - 88, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 11, - "HoleCollective": "81,82,83,84,85,86,87,88", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-001-300", - "ConsumablesName": "300μL Tip头", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "0faca08af69e48ef92967661331754f0", - "uuidPlanMaster": "e53c591c86334c6f92d3b1afa107bcf8", - "Axis": "Left", - "ActOn": "Load", - "Place": "H89 - 96, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 12, - "HoleCollective": "89,90,91,92,93,94,95,96", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-001-300", - "ConsumablesName": "300μL Tip头", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "8de9344131a84a69bafbfd8812a9d877", - "uuidPlanMaster": "e53c591c86334c6f92d3b1afa107bcf8", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "T2", - "Dosage": 240, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-58-10000", - "ConsumablesName": "储液槽", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "33052199610d401a9b227e47142b9646", - "uuidPlanMaster": "e53c591c86334c6f92d3b1afa107bcf8", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H353 - 367, T4", - "Dosage": 60, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 23, - "HoleCollective": "353,355,357,359,361,363,365,367", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "q3", - "ConsumablesName": "384板", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "50ea5f5ead8340f58709c715826306fb", - "uuidPlanMaster": "e53c591c86334c6f92d3b1afa107bcf8", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H354 - 368, T4", - "Dosage": 60, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 23, - "HoleCollective": "354,356,358,360,362,364,366,368", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "q3", - "ConsumablesName": "384板", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "2c578ad0799f4ac4a8ee8e772e283eb5", - "uuidPlanMaster": "e53c591c86334c6f92d3b1afa107bcf8", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H369 - 383, T4", - "Dosage": 60, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 24, - "HoleCollective": "369,371,373,375,377,379,381,383", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "q3", - "ConsumablesName": "384板", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "0aa045f3d3004de086f4954020fe10ed", - "uuidPlanMaster": "e53c591c86334c6f92d3b1afa107bcf8", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H370 - 384, T4", - "Dosage": 60, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 24, - "HoleCollective": "370,372,374,376,378,380,382,384", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "q3", - "ConsumablesName": "384板", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "5bce3555e692498281a97e51978eaf24", - "uuidPlanMaster": "e53c591c86334c6f92d3b1afa107bcf8", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H89 - 96, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 12, - "HoleCollective": "89,90,91,92,93,94,95,96", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-001-300", - "ConsumablesName": "300μL Tip头", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "c5dea3b7348e4ad1b2efe13c6caff1f7", - "uuidPlanMaster": "1d26d1ab45c6431990ba0e00cc1f78d2", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1 - 8, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-001-300", - "ConsumablesName": "300μL Tip头", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "aca8bc5d04d34105ad052185385c5a2a", - "uuidPlanMaster": "1d26d1ab45c6431990ba0e00cc1f78d2", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "T2", - "Dosage": 50, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-58-10000", - "ConsumablesName": "储液槽", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "3d04a01ff0984bb39ee575b21dfcf5bf", - "uuidPlanMaster": "1d26d1ab45c6431990ba0e00cc1f78d2", - "Axis": "Left", - "ActOn": "Blending", - "Place": "H1 - 8, T4", - "Dosage": 50, - "AssistA": " 加样(50ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 10, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "q2", - "ConsumablesName": "96深孔板", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "4cc8cb874a7b40069abe1798e90ffb7b", - "uuidPlanMaster": "1d26d1ab45c6431990ba0e00cc1f78d2", - "Axis": "Left", - "ActOn": "Blending", - "Place": "H9 - 16, T4", - "Dosage": 50, - "AssistA": " 加样(50ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 2, - "HoleCollective": "9,10,11,12,13,14,15,16", - "MixCount": 10, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "q2", - "ConsumablesName": "96深孔板", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "839de052b6b4455b8190d4acaa51012b", - "uuidPlanMaster": "1d26d1ab45c6431990ba0e00cc1f78d2", - "Axis": "Left", - "ActOn": "Blending", - "Place": "H17 - 24, T4", - "Dosage": 50, - "AssistA": " 加样(50ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "17,18,19,20,21,22,23,24", - "MixCount": 10, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "q2", - "ConsumablesName": "96深孔板", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "2f69140ef0624fa3bfd0e8fa4f04c4de", - "uuidPlanMaster": "1d26d1ab45c6431990ba0e00cc1f78d2", - "Axis": "Left", - "ActOn": "Blending", - "Place": "H25 - 32, T4", - "Dosage": 50, - "AssistA": " 加样(50ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 4, - "HoleCollective": "25,26,27,28,29,30,31,32", - "MixCount": 10, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "q2", - "ConsumablesName": "96深孔板", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "945357e1966a4057bee8dc98f8dc75cf", - "uuidPlanMaster": "1d26d1ab45c6431990ba0e00cc1f78d2", - "Axis": "Left", - "ActOn": "Blending", - "Place": "H33 - 40, T4", - "Dosage": 50, - "AssistA": " 加样(50ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 5, - "HoleCollective": "33,34,35,36,37,38,39,40", - "MixCount": 10, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "q2", - "ConsumablesName": "96深孔板", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "17449f7034ad4c7ab0ba7e1cf3f9a73a", - "uuidPlanMaster": "1d26d1ab45c6431990ba0e00cc1f78d2", - "Axis": "Left", - "ActOn": "Blending", - "Place": "H41 - 48, T4", - "Dosage": 50, - "AssistA": " 加样(50ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 6, - "HoleCollective": "41,42,43,44,45,46,47,48", - "MixCount": 10, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "q2", - "ConsumablesName": "96深孔板", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "a7091a15f5ee4c738e2072a3794d3c90", - "uuidPlanMaster": "1d26d1ab45c6431990ba0e00cc1f78d2", - "Axis": "Left", - "ActOn": "Blending", - "Place": "H49 - 56, T4", - "Dosage": 50, - "AssistA": " 加样(50ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 7, - "HoleCollective": "49,50,51,52,53,54,55,56", - "MixCount": 10, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "q2", - "ConsumablesName": "96深孔板", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "aa262f3eec1e4240a321b0d85712bd7a", - "uuidPlanMaster": "1d26d1ab45c6431990ba0e00cc1f78d2", - "Axis": "Left", - "ActOn": "Blending", - "Place": "H57 - 64, T4", - "Dosage": 50, - "AssistA": " 加样(50ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 8, - "HoleCollective": "57,58,59,60,61,62,63,64", - "MixCount": 10, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "q2", - "ConsumablesName": "96深孔板", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "f063ad3a8e684019855d058097832238", - "uuidPlanMaster": "1d26d1ab45c6431990ba0e00cc1f78d2", - "Axis": "Left", - "ActOn": "Blending", - "Place": "H65 - 72, T4", - "Dosage": 50, - "AssistA": " 加样(50ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 9, - "HoleCollective": "65,66,67,68,69,70,71,72", - "MixCount": 10, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "q2", - "ConsumablesName": "96深孔板", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "69aedcee536748dfa88dbb71cc43100e", - "uuidPlanMaster": "1d26d1ab45c6431990ba0e00cc1f78d2", - "Axis": "Left", - "ActOn": "Blending", - "Place": "H73 - 80, T4", - "Dosage": 50, - "AssistA": " 加样(50ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 10, - "HoleCollective": "73,74,75,76,77,78,79,80", - "MixCount": 10, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "q2", - "ConsumablesName": "96深孔板", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "b31fe66b9e42435398bf272db9253ef1", - "uuidPlanMaster": "1d26d1ab45c6431990ba0e00cc1f78d2", - "Axis": "Left", - "ActOn": "Blending", - "Place": "H81 - 88, T4", - "Dosage": 50, - "AssistA": " 加样(50ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 11, - "HoleCollective": "81,82,83,84,85,86,87,88", - "MixCount": 10, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "q2", - "ConsumablesName": "96深孔板", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "f4df57eca7874110a4ba80c825808a17", - "uuidPlanMaster": "1d26d1ab45c6431990ba0e00cc1f78d2", - "Axis": "Left", - "ActOn": "Blending", - "Place": "H89 - 96, T4", - "Dosage": 50, - "AssistA": " 加样(50ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 12, - "HoleCollective": "89,90,91,92,93,94,95,96", - "MixCount": 10, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "q2", - "ConsumablesName": "96深孔板", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "8b22fefd11984093988e8c2d91c2da02", - "uuidPlanMaster": "1d26d1ab45c6431990ba0e00cc1f78d2", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "T5", - "Dosage": 50, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-58-10000", - "ConsumablesName": "储液槽", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "bcb450b62e344803bb2bf57a1e362926", - "uuidPlanMaster": "1d26d1ab45c6431990ba0e00cc1f78d2", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H1 - 8, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-001-300", - "ConsumablesName": "300μL Tip头", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "e17c3523c02d4891b87ddaaf251a626a", - "uuidPlanMaster": "7a0383b4fbb543339723513228365451", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1 - 8, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-001-300", - "ConsumablesName": "300μL Tip头", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "a9499b83214240dabcb78f150f094da0", - "uuidPlanMaster": "7a0383b4fbb543339723513228365451", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "T2", - "Dosage": 300, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-58-10000", - "ConsumablesName": "储液槽", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "95c7b46cdd5f48daac6f0855d3900f09", - "uuidPlanMaster": "7a0383b4fbb543339723513228365451", - "Axis": "Left", - "ActOn": "Blending", - "Place": "H1 - 8, T4", - "Dosage": 300, - "AssistA": " 加样(300ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 10, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "q2", - "ConsumablesName": "96深孔板", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "1ef55f9352934ce0a306e98a6bec24f1", - "uuidPlanMaster": "7a0383b4fbb543339723513228365451", - "Axis": "Left", - "ActOn": "Blending", - "Place": "H9 - 16, T4", - "Dosage": 300, - "AssistA": " 加样(300ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 2, - "HoleCollective": "9,10,11,12,13,14,15,16", - "MixCount": 10, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "q2", - "ConsumablesName": "96深孔板", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "c604ed1b4d2047dcb5d7f2109f0f5e17", - "uuidPlanMaster": "7a0383b4fbb543339723513228365451", - "Axis": "Left", - "ActOn": "Blending", - "Place": "H17 - 24, T4", - "Dosage": 300, - "AssistA": " 加样(300ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "17,18,19,20,21,22,23,24", - "MixCount": 10, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "q2", - "ConsumablesName": "96深孔板", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "82b569345363490f946e1661f3582264", - "uuidPlanMaster": "7a0383b4fbb543339723513228365451", - "Axis": "Left", - "ActOn": "Blending", - "Place": "H25 - 32, T4", - "Dosage": 300, - "AssistA": " 加样(300ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 4, - "HoleCollective": "25,26,27,28,29,30,31,32", - "MixCount": 10, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "q2", - "ConsumablesName": "96深孔板", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "611fa52a5c2d48f687dd34c7baff85a6", - "uuidPlanMaster": "7a0383b4fbb543339723513228365451", - "Axis": "Left", - "ActOn": "Blending", - "Place": "H33 - 40, T4", - "Dosage": 300, - "AssistA": " 加样(300ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 5, - "HoleCollective": "33,34,35,36,37,38,39,40", - "MixCount": 10, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "q2", - "ConsumablesName": "96深孔板", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "211680236dcb4090969e4f81b7f5bec5", - "uuidPlanMaster": "7a0383b4fbb543339723513228365451", - "Axis": "Left", - "ActOn": "Blending", - "Place": "H41 - 48, T4", - "Dosage": 300, - "AssistA": " 加样(300ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 6, - "HoleCollective": "41,42,43,44,45,46,47,48", - "MixCount": 10, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "q2", - "ConsumablesName": "96深孔板", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "dfdff44cb91b45f0a1dbc20ada8b96e5", - "uuidPlanMaster": "7a0383b4fbb543339723513228365451", - "Axis": "Left", - "ActOn": "Blending", - "Place": "H49 - 56, T4", - "Dosage": 300, - "AssistA": " 加样(300ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 7, - "HoleCollective": "49,50,51,52,53,54,55,56", - "MixCount": 10, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "q2", - "ConsumablesName": "96深孔板", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "0c585979e0574a8ba4f87974dbd36176", - "uuidPlanMaster": "7a0383b4fbb543339723513228365451", - "Axis": "Left", - "ActOn": "Blending", - "Place": "H57 - 64, T4", - "Dosage": 300, - "AssistA": " 加样(300ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 8, - "HoleCollective": "57,58,59,60,61,62,63,64", - "MixCount": 10, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "q2", - "ConsumablesName": "96深孔板", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "5a9aad7522144e0ba5c67773f8ca9a79", - "uuidPlanMaster": "7a0383b4fbb543339723513228365451", - "Axis": "Left", - "ActOn": "Blending", - "Place": "H65 - 72, T4", - "Dosage": 300, - "AssistA": " 加样(300ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 9, - "HoleCollective": "65,66,67,68,69,70,71,72", - "MixCount": 10, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "q2", - "ConsumablesName": "96深孔板", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "c76ef75cebb44cb8897b415a19503668", - "uuidPlanMaster": "7a0383b4fbb543339723513228365451", - "Axis": "Left", - "ActOn": "Blending", - "Place": "H73 - 80, T4", - "Dosage": 300, - "AssistA": " 加样(300ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 10, - "HoleCollective": "73,74,75,76,77,78,79,80", - "MixCount": 10, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "q2", - "ConsumablesName": "96深孔板", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "a2e576f8a40f4e759ca4f3ae1b637637", - "uuidPlanMaster": "7a0383b4fbb543339723513228365451", - "Axis": "Left", - "ActOn": "Blending", - "Place": "H81 - 88, T4", - "Dosage": 300, - "AssistA": " 加样(300ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 11, - "HoleCollective": "81,82,83,84,85,86,87,88", - "MixCount": 10, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "q2", - "ConsumablesName": "96深孔板", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "547ec218fd0c4f9daa15c68f835fcba8", - "uuidPlanMaster": "7a0383b4fbb543339723513228365451", - "Axis": "Left", - "ActOn": "Blending", - "Place": "H89 - 96, T4", - "Dosage": 300, - "AssistA": " 加样(300ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 12, - "HoleCollective": "89,90,91,92,93,94,95,96", - "MixCount": 10, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "q2", - "ConsumablesName": "96深孔板", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "d750e0e23df5473bba416ab3316d7421", - "uuidPlanMaster": "7a0383b4fbb543339723513228365451", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "T5", - "Dosage": 300, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-58-10000", - "ConsumablesName": "储液槽", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "3d4f32451993482f9cb981a9d38b628f", - "uuidPlanMaster": "7a0383b4fbb543339723513228365451", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H1 - 8, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": "ZX-001-300", - "ConsumablesName": "300μL Tip头", - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "3ae26657a9f8443e9949c298c5ee8ac4", - "uuidPlanMaster": "3603f89f4e0945f68353a33e8017ba6e", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1 - 8, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "238bb9e047d34fcdb790e8ce738951a0", - "uuidPlanMaster": "3603f89f4e0945f68353a33e8017ba6e", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "T2", - "Dosage": 35, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "cdd0e6d93a7e44a2b28c7558e02eb0bc", - "uuidPlanMaster": "3603f89f4e0945f68353a33e8017ba6e", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1 - 8, T4", - "Dosage": 35, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "daa228c1a3e1440eb582df5f9eccdd22", - "uuidPlanMaster": "3603f89f4e0945f68353a33e8017ba6e", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T3", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "58f061b8a8734e41974d5db03c940c38", - "uuidPlanMaster": "3603f89f4e0945f68353a33e8017ba6e", - "Axis": "Left", - "ActOn": "Load", - "Place": "H9 - 16, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 2, - "HoleCollective": "9,10,11,12,13,14,15,16", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "828ad9110754492b81930cc6cabef78e", - "uuidPlanMaster": "3603f89f4e0945f68353a33e8017ba6e", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "T2", - "Dosage": 35, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "d77cfe16fa8b4cf3a30fcc98d4924d75", - "uuidPlanMaster": "3603f89f4e0945f68353a33e8017ba6e", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H9 - 16, T4", - "Dosage": 35, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 2, - "HoleCollective": "9,10,11,12,13,14,15,16", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "7fb5c16526ba4945bebfac859ddb1c5f", - "uuidPlanMaster": "3603f89f4e0945f68353a33e8017ba6e", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T3", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "f1b496eb9bc4457bad793cbc858c2860", - "uuidPlanMaster": "3603f89f4e0945f68353a33e8017ba6e", - "Axis": "Left", - "ActOn": "Load", - "Place": "H17 - 24, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "17,18,19,20,21,22,23,24", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "23afc1e61d5847279317b067c050f09f", - "uuidPlanMaster": "3603f89f4e0945f68353a33e8017ba6e", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "T2", - "Dosage": 35, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "713cf1fc687c4f7586c328d87481c3a6", - "uuidPlanMaster": "3603f89f4e0945f68353a33e8017ba6e", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H17 - 24, T4", - "Dosage": 35, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "17,18,19,20,21,22,23,24", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "8dee7e821bb9443ebe46cba4156d09a4", - "uuidPlanMaster": "3603f89f4e0945f68353a33e8017ba6e", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T3", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "169f64d0c3b74c9b8ba8e58eb7abb4ac", - "uuidPlanMaster": "3603f89f4e0945f68353a33e8017ba6e", - "Axis": "Left", - "ActOn": "Load", - "Place": "H25 - 32, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 4, - "HoleCollective": "25,26,27,28,29,30,31,32", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "93d50c5a2d644a50a51371ea15497d32", - "uuidPlanMaster": "3603f89f4e0945f68353a33e8017ba6e", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "T2", - "Dosage": 35, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "b067a44fc7f7401f9f88817c458358d8", - "uuidPlanMaster": "3603f89f4e0945f68353a33e8017ba6e", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H25 - 32, T4", - "Dosage": 35, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 4, - "HoleCollective": "25,26,27,28,29,30,31,32", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "a752604c5d0e4ce59907d17b681095b4", - "uuidPlanMaster": "3603f89f4e0945f68353a33e8017ba6e", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T3", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "31eaf208091942cdbb17931373b7e0e3", - "uuidPlanMaster": "3603f89f4e0945f68353a33e8017ba6e", - "Axis": "Left", - "ActOn": "Load", - "Place": "H33 - 40, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 5, - "HoleCollective": "33,34,35,36,37,38,39,40", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "9c65e3dde76f4f44974e3e2751784a2e", - "uuidPlanMaster": "3603f89f4e0945f68353a33e8017ba6e", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "T2", - "Dosage": 35, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "da00b713421c4be4b30f922920dabb2a", - "uuidPlanMaster": "3603f89f4e0945f68353a33e8017ba6e", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H33 - 40, T4", - "Dosage": 35, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 5, - "HoleCollective": "33,34,35,36,37,38,39,40", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "b6b3a009127649d887369b2a7a90b660", - "uuidPlanMaster": "3603f89f4e0945f68353a33e8017ba6e", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T3", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "20912775cb094fef99650944c21a01e1", - "uuidPlanMaster": "3603f89f4e0945f68353a33e8017ba6e", - "Axis": "Left", - "ActOn": "Load", - "Place": "H41 - 48, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 6, - "HoleCollective": "41,42,43,44,45,46,47,48", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "ab979d4f6a234d26886a86645d6a6d5b", - "uuidPlanMaster": "3603f89f4e0945f68353a33e8017ba6e", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "T2", - "Dosage": 35, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "c4cc4b80c64c426abd37fa57df19349e", - "uuidPlanMaster": "3603f89f4e0945f68353a33e8017ba6e", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H41 - 48, T4", - "Dosage": 35, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 6, - "HoleCollective": "41,42,43,44,45,46,47,48", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "9a281756ac9f4a6f97cc31553f2fa054", - "uuidPlanMaster": "3603f89f4e0945f68353a33e8017ba6e", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T3", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "0e9aaa85ae0c4ff79f9f3fb80e0b7706", - "uuidPlanMaster": "3603f89f4e0945f68353a33e8017ba6e", - "Axis": "Left", - "ActOn": "Load", - "Place": "H49 - 56, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 7, - "HoleCollective": "49,50,51,52,53,54,55,56", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "3eea8c657ec84d9ca16d29ab2b6441c6", - "uuidPlanMaster": "3603f89f4e0945f68353a33e8017ba6e", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "T2", - "Dosage": 35, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "4de50bc7f21c49a3beb016fe9165fba8", - "uuidPlanMaster": "3603f89f4e0945f68353a33e8017ba6e", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H49 - 56, T4", - "Dosage": 35, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 7, - "HoleCollective": "49,50,51,52,53,54,55,56", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "529b7280f0d2407db3b3184dd5de30b3", - "uuidPlanMaster": "3603f89f4e0945f68353a33e8017ba6e", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T3", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "d2638d30506c4929a7015d6fe4dc1d07", - "uuidPlanMaster": "3603f89f4e0945f68353a33e8017ba6e", - "Axis": "Left", - "ActOn": "Load", - "Place": "H57 - 64, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 8, - "HoleCollective": "57,58,59,60,61,62,63,64", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "51a729ad70174f82afa9cc7a4c3b742f", - "uuidPlanMaster": "3603f89f4e0945f68353a33e8017ba6e", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "T2", - "Dosage": 35, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "e60e834aefbb4a6da65635dab26d44ad", - "uuidPlanMaster": "3603f89f4e0945f68353a33e8017ba6e", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H57 - 64, T4", - "Dosage": 35, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 8, - "HoleCollective": "57,58,59,60,61,62,63,64", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "6b9ef916bbd2459a905a17d0ab87d759", - "uuidPlanMaster": "3603f89f4e0945f68353a33e8017ba6e", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T3", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "8c62d956937a491a9383a106b8a42539", - "uuidPlanMaster": "3603f89f4e0945f68353a33e8017ba6e", - "Axis": "Left", - "ActOn": "Load", - "Place": "H65 - 72, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 9, - "HoleCollective": "65,66,67,68,69,70,71,72", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "2ee898d4277c4fbf85a65c9db49ea2e1", - "uuidPlanMaster": "3603f89f4e0945f68353a33e8017ba6e", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "T2", - "Dosage": 35, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "7f66f40c297e43f09659f542aadbd8fd", - "uuidPlanMaster": "3603f89f4e0945f68353a33e8017ba6e", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H65 - 72, T4", - "Dosage": 35, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 9, - "HoleCollective": "65,66,67,68,69,70,71,72", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "fd41e724c3a04954a358c59203f66262", - "uuidPlanMaster": "3603f89f4e0945f68353a33e8017ba6e", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T3", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "d8cd7e3077c74b5c8923d2312f956e2c", - "uuidPlanMaster": "3603f89f4e0945f68353a33e8017ba6e", - "Axis": "Left", - "ActOn": "Load", - "Place": "H73 - 80, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 10, - "HoleCollective": "73,74,75,76,77,78,79,80", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "08b3c54e41294701875d665606560611", - "uuidPlanMaster": "3603f89f4e0945f68353a33e8017ba6e", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "T2", - "Dosage": 35, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "ad9d526432cf44a3b2d39ecdce6f8a08", - "uuidPlanMaster": "3603f89f4e0945f68353a33e8017ba6e", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H73 - 80, T4", - "Dosage": 35, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 10, - "HoleCollective": "73,74,75,76,77,78,79,80", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "31985b0a0e5c46cb94bec5f851a20f00", - "uuidPlanMaster": "3603f89f4e0945f68353a33e8017ba6e", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T3", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "7fedf64afd294c11bce8b3d3f42bebef", - "uuidPlanMaster": "3603f89f4e0945f68353a33e8017ba6e", - "Axis": "Left", - "ActOn": "Load", - "Place": "H81 - 88, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 11, - "HoleCollective": "81,82,83,84,85,86,87,88", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "5e4cc02885a442a1bcc5529c62c68243", - "uuidPlanMaster": "3603f89f4e0945f68353a33e8017ba6e", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "T2", - "Dosage": 35, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "60cbd39d5c484faa990c1d5235042344", - "uuidPlanMaster": "3603f89f4e0945f68353a33e8017ba6e", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H81 - 88, T4", - "Dosage": 35, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 11, - "HoleCollective": "81,82,83,84,85,86,87,88", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "05be55069b4a487d9f75f1e976c6bd4e", - "uuidPlanMaster": "3603f89f4e0945f68353a33e8017ba6e", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T3", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "38b21ca0d88342e0b8bb11ce0e1d3573", - "uuidPlanMaster": "3603f89f4e0945f68353a33e8017ba6e", - "Axis": "Left", - "ActOn": "Load", - "Place": "H89 - 96, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 12, - "HoleCollective": "89,90,91,92,93,94,95,96", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "917827d0276c40df91abcb5970210e92", - "uuidPlanMaster": "3603f89f4e0945f68353a33e8017ba6e", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "T2", - "Dosage": 35, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "f3799a03cd5b4ec1b0096724980fc710", - "uuidPlanMaster": "3603f89f4e0945f68353a33e8017ba6e", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H89 - 96, T4", - "Dosage": 35, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 12, - "HoleCollective": "89,90,91,92,93,94,95,96", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "ea4bcfd7c1294d72a44200f84139cb24", - "uuidPlanMaster": "3603f89f4e0945f68353a33e8017ba6e", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T3", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "56b85a05309e4ecba15d1969b0aa71ee", - "uuidPlanMaster": "b44be8260740460598816c40f13fd6b4", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1 - 8, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "94831cd07de2405b8cb19ba0657903ca", - "uuidPlanMaster": "b44be8260740460598816c40f13fd6b4", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "T2", - "Dosage": 9, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "6dccd44bf3e44560967ab028596cfc2f", - "uuidPlanMaster": "b44be8260740460598816c40f13fd6b4", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1 - 8, T4", - "Dosage": 9, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "2daf489e67e04859b5ad9b5eb52e6572", - "uuidPlanMaster": "f189a50122d54a568f3d39dc1f996167", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1 - 8, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "0ca1bc16ea5c43049f470f880c7d6e44", - "uuidPlanMaster": "f189a50122d54a568f3d39dc1f996167", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "T2", - "Dosage": 0.5, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "67b71710f26e46638c139d2fd748fa36", - "uuidPlanMaster": "f189a50122d54a568f3d39dc1f996167", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1 - 8, T4", - "Dosage": 0.5, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "0878ff9f8eac4c3aa621b7927bc8ddb8", - "uuidPlanMaster": "41d2ebc5ab5b4b2da3e203937c5cbe70", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1 - 8, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "5b472959a54a49aab5a68d1fdfa2b1cb", - "uuidPlanMaster": "41d2ebc5ab5b4b2da3e203937c5cbe70", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "T2", - "Dosage": 6, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "91802da5d1ac4ddca966f2fca0992745", - "uuidPlanMaster": "41d2ebc5ab5b4b2da3e203937c5cbe70", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1 - 8, T4", - "Dosage": 6, - "AssistA": " 吹样(2ul)", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "39592b3a2c2540d38f0160ca59c78976", - "uuidPlanMaster": "49ec03499aa646b9b8069a783dbeca1c", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1 - 8, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "b46f2c5c59a2453fadcfbf180d358438", - "uuidPlanMaster": "49ec03499aa646b9b8069a783dbeca1c", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "T2", - "Dosage": 7, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "a7a019278cc44f9792571b0d77e8a737", - "uuidPlanMaster": "49ec03499aa646b9b8069a783dbeca1c", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1 - 8, T4", - "Dosage": 7, - "AssistA": " 吹样(2ul)", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "47f0b80430ec4f16b08ef7cd5304f3ee", - "uuidPlanMaster": "a9c6d149cdf04636ac43cfb7623e4e7f", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1 - 8, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "a964c2d136524c358d26a02eb28d9817", - "uuidPlanMaster": "a9c6d149cdf04636ac43cfb7623e4e7f", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "T2", - "Dosage": 8, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "abe82de867594cc4a594a624627c9c6e", - "uuidPlanMaster": "a9c6d149cdf04636ac43cfb7623e4e7f", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1 - 8, T4", - "Dosage": 8, - "AssistA": " 吹样(2ul)", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "11e055b906cc4393b6b5106f83bb6ebf", - "uuidPlanMaster": "0e3a36cabefa4f5497e35193db48b559", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1 - 8, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "259207a4c16343d38a99e038e4741c34", - "uuidPlanMaster": "0e3a36cabefa4f5497e35193db48b559", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "T2", - "Dosage": 9, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "10bd4b1a2b794b499927cd569795a9ce", - "uuidPlanMaster": "0e3a36cabefa4f5497e35193db48b559", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1 - 8, T4", - "Dosage": 9, - "AssistA": " 吹样(2ul)", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "8cf678ecb8f94a438857274902e61b62", - "uuidPlanMaster": "6650f7df6b8944f98476da92ce81d688", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1 - 8, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "73d67d85f4874705892d10467a03c70f", - "uuidPlanMaster": "6650f7df6b8944f98476da92ce81d688", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "T2", - "Dosage": 12, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "e25ab3e12b3448e4b0e8fbc9507af026", - "uuidPlanMaster": "6650f7df6b8944f98476da92ce81d688", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1 - 8, T4", - "Dosage": 12, - "AssistA": " 吹样(3ul)", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "44b962191f86495bb6e9ceb7f820fa04", - "uuidPlanMaster": "d9740fea94a04c2db44b1364a336b338", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1 - 8, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "575645b14af64adb95e3e11f5c4a37b7", - "uuidPlanMaster": "d9740fea94a04c2db44b1364a336b338", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "T2", - "Dosage": 250, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "b7f9005589924fa0bb4e744b81561122", - "uuidPlanMaster": "d9740fea94a04c2db44b1364a336b338", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1 - 8, T4", - "Dosage": 250, - "AssistA": " 吹样(3ul)", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "d2d0aba326744f76a2f020123e82c57f", - "uuidPlanMaster": "1d80c1fff5af442595c21963e6ca9fee", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1 - 8, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "868aab636b6443efb700f9e6698fe6ae", - "uuidPlanMaster": "1d80c1fff5af442595c21963e6ca9fee", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "T2", - "Dosage": 160, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "a17a02b586bd4549aa7e774bba283a6c", - "uuidPlanMaster": "1d80c1fff5af442595c21963e6ca9fee", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1 - 8, T4", - "Dosage": 160, - "AssistA": " 吹样(3ul)", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "a018e5b8ded74abb88db09c9197754f8", - "uuidPlanMaster": "d2f6e63cf1ff41a4a8d03f4444a2aeac", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1 - 8, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "4de43ceea01e4633a40a92a1207560b6", - "uuidPlanMaster": "d2f6e63cf1ff41a4a8d03f4444a2aeac", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "T2", - "Dosage": 800, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "ac27eff89b4e48958f21b0786570dd57", - "uuidPlanMaster": "d2f6e63cf1ff41a4a8d03f4444a2aeac", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1 - 8, T4", - "Dosage": 800, - "AssistA": " 吹样(3ul)", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "11646eecf4624d8ab8644d4b3e56c05f", - "uuidPlanMaster": "f40a6f4326a346d39d5a82f6262aba47", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1 - 8, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "2d897e01e28840fe868e646bc635d001", - "uuidPlanMaster": "f40a6f4326a346d39d5a82f6262aba47", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "T2", - "Dosage": 990, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "77d59e96823443189d7d8c3ca06c20c4", - "uuidPlanMaster": "f40a6f4326a346d39d5a82f6262aba47", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1 - 8, T4", - "Dosage": 990, - "AssistA": " 吹样(3ul)", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "2debe2f02cc8407693ca43ebcf779dfe", - "uuidPlanMaster": "4248035f01e943faa6d71697ed386e19", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1 - 8, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "61cb1374510b47fa86bcdc0bc3cc821d", - "uuidPlanMaster": "4248035f01e943faa6d71697ed386e19", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "T2", - "Dosage": 995, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "7ad4d8d084dd44318d3ae31ea6895d89", - "uuidPlanMaster": "4248035f01e943faa6d71697ed386e19", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1 - 8, T4", - "Dosage": 995, - "AssistA": " 吹样(3ul)", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "161ce524c7144ee7a3ecbb6923c40112", - "uuidPlanMaster": "4d97363a0a334094a1ff24494a902d02", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1 - 8, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "3c98af05db2d40629397b5587c58e8c1", - "uuidPlanMaster": "4d97363a0a334094a1ff24494a902d02", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "T2", - "Dosage": 3, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "81a1bc85dc3841a59df66c74d8b5f04d", - "uuidPlanMaster": "4d97363a0a334094a1ff24494a902d02", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1 - 8, T4", - "Dosage": 3, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "fa5eaf603883489aa6843cb48a29e6ee", - "uuidPlanMaster": "4d97363a0a334094a1ff24494a902d02", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T3", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "e14fae0f6a18438ab4c2f05c561b133b", - "uuidPlanMaster": "6eec360c74464769967ebefa43b7aec1", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1 - 8, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "614fa5a9e0d64127a902d157a22a2936", - "uuidPlanMaster": "6eec360c74464769967ebefa43b7aec1", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "T2", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "c9cb2f7023a44412987a279ea7413acd", - "uuidPlanMaster": "6eec360c74464769967ebefa43b7aec1", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1 - 8, T4", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "8aaee93f124a4ef4b6ce5827188e59f2", - "uuidPlanMaster": "6eec360c74464769967ebefa43b7aec1", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T3", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "7267213a215d4fb588d8105810b0d7c2", - "uuidPlanMaster": "986049c83b054171a1b34dd49b3ca9cf", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1 - 8, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "9aea725854f7455b9dc3ce59c341a9a8", - "uuidPlanMaster": "986049c83b054171a1b34dd49b3ca9cf", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "T2", - "Dosage": 9, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "757dc6ef42224155ab86a0fc8965d56d", - "uuidPlanMaster": "986049c83b054171a1b34dd49b3ca9cf", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1 - 8, T4", - "Dosage": 9, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "8b0721637e70439fb6d75f9e2e28abac", - "uuidPlanMaster": "986049c83b054171a1b34dd49b3ca9cf", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T3", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "7a23c04fe093427fb7424ec11b207b6c", - "uuidPlanMaster": "462eed73962142c2bd3b8fe717caceb6", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1 - 8, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "3cb05b507f734e7fb4797b9e2f789f17", - "uuidPlanMaster": "462eed73962142c2bd3b8fe717caceb6", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "T2", - "Dosage": 3, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "75b77b5e180a43758a38e31c64e90535", - "uuidPlanMaster": "462eed73962142c2bd3b8fe717caceb6", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1 - 8, T4", - "Dosage": 3, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "0d446789074b473b93e4255860627cee", - "uuidPlanMaster": "462eed73962142c2bd3b8fe717caceb6", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T3", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "0d4a877a8f49460bbd7f075cf1b498dd", - "uuidPlanMaster": "b2f0c7ab462f4cf1bae56ee59a49a253", - "Axis": "Left", - "ActOn": "Load", - "Place": "H8 - 8, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 1, - "HoleCollective": "8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "8fccd6772c3946dc9e49047df6e286ca", - "uuidPlanMaster": "b2f0c7ab462f4cf1bae56ee59a49a253", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T3", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "c9b45a4790cc49ed8e2c35901031eb41", - "uuidPlanMaster": "b9768a1d91444d4a86b7a013467bee95", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1 - 8, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "e7990e6bede64c748ab0077a461124d4", - "uuidPlanMaster": "b9768a1d91444d4a86b7a013467bee95", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "T2", - "Dosage": 3, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "64ed04d8d7504205adca4bb3fd514ce9", - "uuidPlanMaster": "b9768a1d91444d4a86b7a013467bee95", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1 - 8, T4", - "Dosage": 3, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "3dca771a67ad40d3830bbf56bc81b65f", - "uuidPlanMaster": "98621898cd514bc9a1ac0c92362284f4", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1 - 8, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "a7427aac321047078f32f8106a82b22f", - "uuidPlanMaster": "98621898cd514bc9a1ac0c92362284f4", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "T2", - "Dosage": 2, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "bc42c34f42c7404bae7110159c9cb4cb", - "uuidPlanMaster": "98621898cd514bc9a1ac0c92362284f4", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1 - 8, T4", - "Dosage": 2, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "ef08b90fe1274439b36f5e34bf79372a", - "uuidPlanMaster": "4d03142fd86844db8e23c19061b3d505", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1 - 8, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "f14a3484b4c24de9b3c8ac53ace5ab95", - "uuidPlanMaster": "4d03142fd86844db8e23c19061b3d505", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "T2", - "Dosage": 5, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "7619df38c1bc4754b081b7dc8562eb0f", - "uuidPlanMaster": "4d03142fd86844db8e23c19061b3d505", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1 - 8, T4", - "Dosage": 5, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "646403b766f1428e8d48d98628832222", - "uuidPlanMaster": "c78c3f38a59748c3aef949405e434b05", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1 - 8, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "1aab1a7a8ecd4f21af6cb339b54f28d3", - "uuidPlanMaster": "c78c3f38a59748c3aef949405e434b05", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "T2", - "Dosage": 4, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "26e1a8a1fbc34c1782c790cd744caa4f", - "uuidPlanMaster": "c78c3f38a59748c3aef949405e434b05", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1 - 8, T4", - "Dosage": 4, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "78a84c47720440ecabd3b81f96d12a26", - "uuidPlanMaster": "0fc4ffd86091451db26162af4f7b235e", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1 - 8, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "9a082dc5b0b9420395411b02a1ecb7ea", - "uuidPlanMaster": "0fc4ffd86091451db26162af4f7b235e", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "T2", - "Dosage": 3, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "bac0f1c2292c44f8b93f1ffa400f84c9", - "uuidPlanMaster": "0fc4ffd86091451db26162af4f7b235e", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1 - 8, T4", - "Dosage": 3, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "3703c3aacaf5468cba9411c102ed8412", - "uuidPlanMaster": "a08748982b934daab8752f55796e1b0c", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1 - 8, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "9cffddc06d6d4fffb11abaf9e51223de", - "uuidPlanMaster": "a08748982b934daab8752f55796e1b0c", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "T2", - "Dosage": 6, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "b0952c9ab1bc452f97b0f8feb47cdcf9", - "uuidPlanMaster": "a08748982b934daab8752f55796e1b0c", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1 - 8, T4", - "Dosage": 6, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "820831b4928149dba6fe71adf1422bee", - "uuidPlanMaster": "2317611bdb614e45b61a5118e58e3a2a", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1 - 8, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "688fb42b3e0042fba87c436f7d923365", - "uuidPlanMaster": "2317611bdb614e45b61a5118e58e3a2a", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "T2", - "Dosage": 8, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "513894442cca4f2688ecd16ba9c847e9", - "uuidPlanMaster": "2317611bdb614e45b61a5118e58e3a2a", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1 - 8, T4", - "Dosage": 8, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "fe4920551aca4270950084b0fab98917", - "uuidPlanMaster": "62cb45ac3af64a46aa6d450ba56963e7", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1 - 8, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "35d5e6c0b5104ddc8e5717baebc804bd", - "uuidPlanMaster": "62cb45ac3af64a46aa6d450ba56963e7", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "T2", - "Dosage": 3, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "a11b269c4e744eb2b7bd1a7ecade8db9", - "uuidPlanMaster": "62cb45ac3af64a46aa6d450ba56963e7", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1 - 8, T4", - "Dosage": 3, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "165f02228650412bbd0c123d0259527a", - "uuidPlanMaster": "321f717a3a2640a3bfc9515aee7d1052", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1 - 8, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "d8525bc1cdb54482aaf61fb0332ecb98", - "uuidPlanMaster": "321f717a3a2640a3bfc9515aee7d1052", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "T2", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "0b79f3b6c1bc475e9c127317f4a3d8b0", - "uuidPlanMaster": "321f717a3a2640a3bfc9515aee7d1052", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1 - 8, T4", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "1cafc024b5f840b0b7b4ca6db20a644a", - "uuidPlanMaster": "6c3246ac0f974a6abc24c83bf45e1cf4", - "Axis": "Left", - "ActOn": "Load", - "Place": "H96 - 96, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 12, - "HoleCollective": "96", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "1efa1687e31345d5bd75a80202dd1717", - "uuidPlanMaster": "6c3246ac0f974a6abc24c83bf45e1cf4", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H0 - 4, T3", - "Dosage": 160, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "0,0,0,0,1,2,3,4", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "0d1f1b4c54dd43908aad7a8b92943260", - "uuidPlanMaster": "6c3246ac0f974a6abc24c83bf45e1cf4", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1 - 8, T2", - "Dosage": 20, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "307965b473bd4008b1feb3c735d345d0", - "uuidPlanMaster": "6c3246ac0f974a6abc24c83bf45e1cf4", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 8, T2", - "Dosage": 20, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 1, - "HoleCollective": "0,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "3e7d869f9b1e451f9fdf3a947a1c7a78", - "uuidPlanMaster": "6c3246ac0f974a6abc24c83bf45e1cf4", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 8, T2", - "Dosage": 20, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 1, - "HoleCollective": "0,0,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "013a6dfe8c1d4593aa93105336c4bca2", - "uuidPlanMaster": "6c3246ac0f974a6abc24c83bf45e1cf4", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 8, T2", - "Dosage": 20, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 1, - "HoleCollective": "0,0,0,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "663bdf51539340568d29a7545ade7174", - "uuidPlanMaster": "6c3246ac0f974a6abc24c83bf45e1cf4", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 8, T2", - "Dosage": 20, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 1, - "HoleCollective": "0,0,0,0,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "15e260bf96fe4940908ad83d7a37201d", - "uuidPlanMaster": "6c3246ac0f974a6abc24c83bf45e1cf4", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 8, T2", - "Dosage": 20, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 6, - "HoleColum": 1, - "HoleCollective": "0,0,0,0,0,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "2b44755effd445959dac96b6088113ef", - "uuidPlanMaster": "6c3246ac0f974a6abc24c83bf45e1cf4", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 8, T2", - "Dosage": 20, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 7, - "HoleColum": 1, - "HoleCollective": "0,0,0,0,0,0,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "a4322c230f1744c7b89b6ef2a6d19584", - "uuidPlanMaster": "6c3246ac0f974a6abc24c83bf45e1cf4", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H8 - 8, T2", - "Dosage": 20, - "AssistA": " 吹样(1ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 1, - "HoleCollective": "8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "7f1f8a29bc994a55907f5c89c53c1d75", - "uuidPlanMaster": "6c3246ac0f974a6abc24c83bf45e1cf4", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H0 - 4, T3", - "Dosage": 160, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "0,0,0,0,1,2,3,4", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "83dc2caf46a444e4b0717d63d854dd61", - "uuidPlanMaster": "6c3246ac0f974a6abc24c83bf45e1cf4", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H9 - 16, T2", - "Dosage": 20, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 2, - "HoleCollective": "9,10,11,12,13,14,15,16", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "1a1596d225624696b5e7041cb84bbf8d", - "uuidPlanMaster": "6c3246ac0f974a6abc24c83bf45e1cf4", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 16, T2", - "Dosage": 20, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 2, - "HoleCollective": "0,10,11,12,13,14,15,16", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "11e00c767c55454b84dbfe862a70a975", - "uuidPlanMaster": "6c3246ac0f974a6abc24c83bf45e1cf4", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 16, T2", - "Dosage": 20, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 2, - "HoleCollective": "0,0,11,12,13,14,15,16", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "d28f0220bcd24274b1f9e26c6ccaceeb", - "uuidPlanMaster": "6c3246ac0f974a6abc24c83bf45e1cf4", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 16, T2", - "Dosage": 20, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 2, - "HoleCollective": "0,0,0,12,13,14,15,16", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "6a7ade440a4344398bfc3774a2165a43", - "uuidPlanMaster": "6c3246ac0f974a6abc24c83bf45e1cf4", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 16, T2", - "Dosage": 20, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 2, - "HoleCollective": "0,0,0,0,13,14,15,16", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "1df9595cf94d450ca5a92affadd2e7bf", - "uuidPlanMaster": "6c3246ac0f974a6abc24c83bf45e1cf4", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 16, T2", - "Dosage": 20, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 6, - "HoleColum": 2, - "HoleCollective": "0,0,0,0,0,14,15,16", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "1e6fb943ccab4458ae56f344d3c2acfe", - "uuidPlanMaster": "6c3246ac0f974a6abc24c83bf45e1cf4", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 16, T2", - "Dosage": 20, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 7, - "HoleColum": 2, - "HoleCollective": "0,0,0,0,0,0,15,16", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "3de26fa2501947d2b23b9e229e00c199", - "uuidPlanMaster": "6c3246ac0f974a6abc24c83bf45e1cf4", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H16 - 16, T2", - "Dosage": 20, - "AssistA": " 吹样(1ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 2, - "HoleCollective": "16", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "b06097da94bb4c4290b80ee825f82f6d", - "uuidPlanMaster": "6c3246ac0f974a6abc24c83bf45e1cf4", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H0 - 4, T3", - "Dosage": 160, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "0,0,0,0,1,2,3,4", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "1035566012f54f1e980851dd8ce90e64", - "uuidPlanMaster": "6c3246ac0f974a6abc24c83bf45e1cf4", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H17 - 24, T2", - "Dosage": 20, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "17,18,19,20,21,22,23,24", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "7f15d51e7dfb460d8eb01cf3296b61db", - "uuidPlanMaster": "6c3246ac0f974a6abc24c83bf45e1cf4", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 24, T2", - "Dosage": 20, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 3, - "HoleCollective": "0,18,19,20,21,22,23,24", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "15e6b262a1f8450f81d49dba17dc1336", - "uuidPlanMaster": "6c3246ac0f974a6abc24c83bf45e1cf4", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 24, T2", - "Dosage": 20, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 3, - "HoleCollective": "0,0,19,20,21,22,23,24", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "4d0f40615b4a4d27a38daf11b7b22818", - "uuidPlanMaster": "6c3246ac0f974a6abc24c83bf45e1cf4", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 24, T2", - "Dosage": 20, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 3, - "HoleCollective": "0,0,0,20,21,22,23,24", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "3de36020d55d46b1b8026c7f5d353bbd", - "uuidPlanMaster": "6c3246ac0f974a6abc24c83bf45e1cf4", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 24, T2", - "Dosage": 20, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 3, - "HoleCollective": "0,0,0,0,21,22,23,24", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "f1a45ee39cf54fcd9ca826a28ca51834", - "uuidPlanMaster": "6c3246ac0f974a6abc24c83bf45e1cf4", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 24, T2", - "Dosage": 20, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 6, - "HoleColum": 3, - "HoleCollective": "0,0,0,0,0,22,23,24", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "b6e009e9777d439f85f1a01346a5687a", - "uuidPlanMaster": "6c3246ac0f974a6abc24c83bf45e1cf4", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 24, T2", - "Dosage": 20, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 7, - "HoleColum": 3, - "HoleCollective": "0,0,0,0,0,0,23,24", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "c3e7d72135eb44d1ab6e891f7ceef18b", - "uuidPlanMaster": "6c3246ac0f974a6abc24c83bf45e1cf4", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H24 - 24, T2", - "Dosage": 20, - "AssistA": " 吹样(1ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 3, - "HoleCollective": "24", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "4c0159f843a345d7a2e14c4116081979", - "uuidPlanMaster": "6c3246ac0f974a6abc24c83bf45e1cf4", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T6", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 6, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 10, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "7f46b5c34e234cfc83f9e05e4119a6ce", - "uuidPlanMaster": "6c3246ac0f974a6abc24c83bf45e1cf4", - "Axis": "Left", - "ActOn": "Load", - "Place": "H0 - 96, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 7, - "HoleColum": 12, - "HoleCollective": "0,0,0,0,0,0,95,96", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "af2799388808440b983b24b45060b117", - "uuidPlanMaster": "6c3246ac0f974a6abc24c83bf45e1cf4", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H0 - 4, T3", - "Dosage": 160, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 1, - "HoleCollective": "0,0,0,0,0,2,3,4", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "29945413cebe4d4888498e39eb5f63c5", - "uuidPlanMaster": "6c3246ac0f974a6abc24c83bf45e1cf4", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H25 - 32, T2", - "Dosage": 20, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 4, - "HoleCollective": "25,26,27,28,29,30,31,32", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "41f6cc3fef0f403996fcba0b039a5f51", - "uuidPlanMaster": "6c3246ac0f974a6abc24c83bf45e1cf4", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 32, T2", - "Dosage": 20, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 4, - "HoleCollective": "0,26,27,28,29,30,31,32", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "61fe74bf71694acd8fab90e04423adad", - "uuidPlanMaster": "6c3246ac0f974a6abc24c83bf45e1cf4", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 32, T2", - "Dosage": 20, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 4, - "HoleCollective": "0,0,27,28,29,30,31,32", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "4765a2458a63402f9345ef969a3b36a4", - "uuidPlanMaster": "6c3246ac0f974a6abc24c83bf45e1cf4", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 32, T2", - "Dosage": 20, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 4, - "HoleCollective": "0,0,0,28,29,30,31,32", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "fe38c26ff2c54045bd38ad01a379b2a1", - "uuidPlanMaster": "6c3246ac0f974a6abc24c83bf45e1cf4", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 32, T2", - "Dosage": 20, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 4, - "HoleCollective": "0,0,0,0,29,30,31,32", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "c592282ffb624379a20d869e2fc35c8b", - "uuidPlanMaster": "6c3246ac0f974a6abc24c83bf45e1cf4", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 32, T2", - "Dosage": 20, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 6, - "HoleColum": 4, - "HoleCollective": "0,0,0,0,0,30,31,32", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "7011a727efe742f8b4dd9cf3ef63107a", - "uuidPlanMaster": "6c3246ac0f974a6abc24c83bf45e1cf4", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 32, T2", - "Dosage": 20, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 7, - "HoleColum": 4, - "HoleCollective": "0,0,0,0,0,0,31,32", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "c643e3a591bd4dafbd0914685bc5dce5", - "uuidPlanMaster": "6c3246ac0f974a6abc24c83bf45e1cf4", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H32 - 32, T2", - "Dosage": 20, - "AssistA": " 吹样(1ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 4, - "HoleCollective": "32", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "ef1a9da1b71943ed99ef785f42dbef70", - "uuidPlanMaster": "6c3246ac0f974a6abc24c83bf45e1cf4", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H0 - 4, T3", - "Dosage": 160, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 1, - "HoleCollective": "0,0,0,0,0,2,3,4", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "57b982312b554796a0209711778dfedd", - "uuidPlanMaster": "6c3246ac0f974a6abc24c83bf45e1cf4", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H33 - 40, T2", - "Dosage": 20, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 5, - "HoleCollective": "33,34,35,36,37,38,39,40", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "d4c9041a6b4149768ce42a797570ca99", - "uuidPlanMaster": "6c3246ac0f974a6abc24c83bf45e1cf4", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 40, T2", - "Dosage": 20, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 5, - "HoleCollective": "0,34,35,36,37,38,39,40", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "a5c8c6659871409e80e8296de9c93e0f", - "uuidPlanMaster": "6c3246ac0f974a6abc24c83bf45e1cf4", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 40, T2", - "Dosage": 20, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 5, - "HoleCollective": "0,0,35,36,37,38,39,40", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "89bcab4f22704a4093150a9ac4c8b5c2", - "uuidPlanMaster": "6c3246ac0f974a6abc24c83bf45e1cf4", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 40, T2", - "Dosage": 20, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 5, - "HoleCollective": "0,0,0,36,37,38,39,40", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "4e9935dcdcbf422ab12686daeb11a66f", - "uuidPlanMaster": "6c3246ac0f974a6abc24c83bf45e1cf4", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 40, T2", - "Dosage": 20, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 5, - "HoleCollective": "0,0,0,0,37,38,39,40", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "0194f9c1e265419683d6b84851b7efbf", - "uuidPlanMaster": "6c3246ac0f974a6abc24c83bf45e1cf4", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 40, T2", - "Dosage": 20, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 6, - "HoleColum": 5, - "HoleCollective": "0,0,0,0,0,38,39,40", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "bd602ec810da43b0bbbaae4f4120b88e", - "uuidPlanMaster": "6c3246ac0f974a6abc24c83bf45e1cf4", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 40, T2", - "Dosage": 20, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 7, - "HoleColum": 5, - "HoleCollective": "0,0,0,0,0,0,39,40", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "50885de4d8044b8f972c94bd02002881", - "uuidPlanMaster": "6c3246ac0f974a6abc24c83bf45e1cf4", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H40 - 40, T2", - "Dosage": 20, - "AssistA": " 吹样(1ul)", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 5, - "HoleCollective": "40", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "2ff1e45c955e46318aa8729bb1cc6c9d", - "uuidPlanMaster": "6c3246ac0f974a6abc24c83bf45e1cf4", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H0 - 4, T3", - "Dosage": 160, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 1, - "HoleCollective": "0,0,0,0,0,2,3,4", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "77605f05a30140489c2e0f3b68a151b2", - "uuidPlanMaster": "6c3246ac0f974a6abc24c83bf45e1cf4", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H41 - 48, T2", - "Dosage": 20, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 6, - "HoleCollective": "41,42,43,44,45,46,47,48", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "910419408b0e4874a660f6f9770c93db", - "uuidPlanMaster": "6c3246ac0f974a6abc24c83bf45e1cf4", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 48, T2", - "Dosage": 20, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 6, - "HoleCollective": "0,42,43,44,45,46,47,48", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "f6369de3082240c09d13dff30445e87c", - "uuidPlanMaster": "6c3246ac0f974a6abc24c83bf45e1cf4", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 48, T2", - "Dosage": 20, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 6, - "HoleCollective": "0,0,43,44,45,46,47,48", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "1c83325315094fd591c64d967def9896", - "uuidPlanMaster": "6c3246ac0f974a6abc24c83bf45e1cf4", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 48, T2", - "Dosage": 20, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 6, - "HoleCollective": "0,0,0,44,45,46,47,48", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "d785887f40df4be68c70da42544697f4", - "uuidPlanMaster": "6c3246ac0f974a6abc24c83bf45e1cf4", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 48, T2", - "Dosage": 20, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 6, - "HoleCollective": "0,0,0,0,45,46,47,48", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "1055486dd374440ab9d703192aa16c2a", - "uuidPlanMaster": "6c3246ac0f974a6abc24c83bf45e1cf4", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 48, T2", - "Dosage": 20, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 6, - "HoleColum": 6, - "HoleCollective": "0,0,0,0,0,46,47,48", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "b07bb4c14b514b8bb21a3c3d53632324", - "uuidPlanMaster": "6c3246ac0f974a6abc24c83bf45e1cf4", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 48, T2", - "Dosage": 20, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 7, - "HoleColum": 6, - "HoleCollective": "0,0,0,0,0,0,47,48", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "40b2b12dbf544e04adf5ee05fdd9e72f", - "uuidPlanMaster": "6c3246ac0f974a6abc24c83bf45e1cf4", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H48 - 48, T2", - "Dosage": 20, - "AssistA": " 吹样(1ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 6, - "HoleCollective": "48", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "c77848d4411148579df5bf9cfc860f69", - "uuidPlanMaster": "6c3246ac0f974a6abc24c83bf45e1cf4", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T6", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 6, - "IsFullPage": 1, - "HoleRow": 2, - "HoleColum": 10, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "3b40dfe4a96645479f94b7da3baf60f2", - "uuidPlanMaster": "6c3246ac0f974a6abc24c83bf45e1cf4", - "Axis": "Left", - "ActOn": "Load", - "Place": "H94 - 96, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 6, - "HoleColum": 12, - "HoleCollective": "94,95,96", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "4d1854e898724318be83a5ebdc2c3844", - "uuidPlanMaster": "6c3246ac0f974a6abc24c83bf45e1cf4", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H0 - 4, T3", - "Dosage": 160, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 1, - "HoleCollective": "0,0,0,0,0,0,3,4", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "d9d0a8b9de9049c58d14dcf154e6fec8", - "uuidPlanMaster": "6c3246ac0f974a6abc24c83bf45e1cf4", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H49 - 56, T2", - "Dosage": 20, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 7, - "HoleCollective": "49,50,51,52,53,54,55,56", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "1248f315fecd4891938927a620d13535", - "uuidPlanMaster": "6c3246ac0f974a6abc24c83bf45e1cf4", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 56, T2", - "Dosage": 20, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 7, - "HoleCollective": "0,50,51,52,53,54,55,56", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "52f632197cab40d582572b0f35a4512b", - "uuidPlanMaster": "6c3246ac0f974a6abc24c83bf45e1cf4", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 56, T2", - "Dosage": 20, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 7, - "HoleCollective": "0,0,51,52,53,54,55,56", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "17f82646b8bc40bf8e08afe79c9f65c1", - "uuidPlanMaster": "6c3246ac0f974a6abc24c83bf45e1cf4", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 56, T2", - "Dosage": 20, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 7, - "HoleCollective": "0,0,0,52,53,54,55,56", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "68896a5a9e644be6bcfdd2087e3ecbd2", - "uuidPlanMaster": "6c3246ac0f974a6abc24c83bf45e1cf4", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 56, T2", - "Dosage": 20, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 7, - "HoleCollective": "0,0,0,0,53,54,55,56", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "d6510829686d4e799ce56ad883d55e59", - "uuidPlanMaster": "6c3246ac0f974a6abc24c83bf45e1cf4", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 56, T2", - "Dosage": 20, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 6, - "HoleColum": 7, - "HoleCollective": "0,0,0,0,0,54,55,56", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "cfe9cff7172a4559a78fcac611accb2b", - "uuidPlanMaster": "6c3246ac0f974a6abc24c83bf45e1cf4", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 56, T2", - "Dosage": 20, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 7, - "HoleColum": 7, - "HoleCollective": "0,0,0,0,0,0,55,56", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "41819cf606b24c6986b19e9f1338be72", - "uuidPlanMaster": "6c3246ac0f974a6abc24c83bf45e1cf4", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H56 - 56, T2", - "Dosage": 20, - "AssistA": " 吹样(1ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 7, - "HoleCollective": "56", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "491c3291864b470f9c04a3d98a8ef8a0", - "uuidPlanMaster": "6c3246ac0f974a6abc24c83bf45e1cf4", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H0 - 4, T3", - "Dosage": 160, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 1, - "HoleCollective": "0,0,0,0,0,0,3,4", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "3304fdc7abcb41288ee3c2d63fc19a7e", - "uuidPlanMaster": "6c3246ac0f974a6abc24c83bf45e1cf4", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H57 - 64, T2", - "Dosage": 20, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 8, - "HoleCollective": "57,58,59,60,61,62,63,64", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "c3f94c8172d14687bb9863c61b8f5d90", - "uuidPlanMaster": "6c3246ac0f974a6abc24c83bf45e1cf4", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 64, T2", - "Dosage": 20, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 8, - "HoleCollective": "0,58,59,60,61,62,63,64", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "8639b30c5a9b405db03c8f066cb7820a", - "uuidPlanMaster": "6c3246ac0f974a6abc24c83bf45e1cf4", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 64, T2", - "Dosage": 20, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 8, - "HoleCollective": "0,0,59,60,61,62,63,64", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "1f8b2e32826a4b5792f85585ef66e1ba", - "uuidPlanMaster": "6c3246ac0f974a6abc24c83bf45e1cf4", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 64, T2", - "Dosage": 20, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 8, - "HoleCollective": "0,0,0,60,61,62,63,64", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "e386c16bf7204277ad24843aec833104", - "uuidPlanMaster": "6c3246ac0f974a6abc24c83bf45e1cf4", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 64, T2", - "Dosage": 20, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 8, - "HoleCollective": "0,0,0,0,61,62,63,64", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "2fb316b22b2e462485e453b200809385", - "uuidPlanMaster": "6c3246ac0f974a6abc24c83bf45e1cf4", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 64, T2", - "Dosage": 20, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 6, - "HoleColum": 8, - "HoleCollective": "0,0,0,0,0,62,63,64", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "9208dbdf36a74e68be7660e2239fd34e", - "uuidPlanMaster": "6c3246ac0f974a6abc24c83bf45e1cf4", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 64, T2", - "Dosage": 20, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 7, - "HoleColum": 8, - "HoleCollective": "0,0,0,0,0,0,63,64", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "3f0c7b79c7cf425da360d4e3419285fe", - "uuidPlanMaster": "6c3246ac0f974a6abc24c83bf45e1cf4", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H64 - 64, T2", - "Dosage": 20, - "AssistA": " 吹样(1ul)", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 8, - "HoleCollective": "64", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "e71341350c5746cca8a3faca749c6fa3", - "uuidPlanMaster": "6c3246ac0f974a6abc24c83bf45e1cf4", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H0 - 4, T3", - "Dosage": 160, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 1, - "HoleCollective": "0,0,0,0,0,0,3,4", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "c315ff43005f412b972e17f06e0302a2", - "uuidPlanMaster": "6c3246ac0f974a6abc24c83bf45e1cf4", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H65 - 72, T2", - "Dosage": 20, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 9, - "HoleCollective": "65,66,67,68,69,70,71,72", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "ec276e47bca74893a85fac849ea80bb1", - "uuidPlanMaster": "6c3246ac0f974a6abc24c83bf45e1cf4", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 72, T2", - "Dosage": 20, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 9, - "HoleCollective": "0,66,67,68,69,70,71,72", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "668a7b14d959471cac11f1f92d2e4d2c", - "uuidPlanMaster": "6c3246ac0f974a6abc24c83bf45e1cf4", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 72, T2", - "Dosage": 20, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 9, - "HoleCollective": "0,0,67,68,69,70,71,72", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "5eb0832b895949a0a186040415432da0", - "uuidPlanMaster": "6c3246ac0f974a6abc24c83bf45e1cf4", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 72, T2", - "Dosage": 20, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 9, - "HoleCollective": "0,0,0,68,69,70,71,72", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "a7eeda26b09f4d8da728edf84b7f3681", - "uuidPlanMaster": "6c3246ac0f974a6abc24c83bf45e1cf4", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 72, T2", - "Dosage": 20, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 9, - "HoleCollective": "0,0,0,0,69,70,71,72", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "738bb11c2cca49448ef5adf75383ab25", - "uuidPlanMaster": "6c3246ac0f974a6abc24c83bf45e1cf4", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 72, T2", - "Dosage": 20, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 6, - "HoleColum": 9, - "HoleCollective": "0,0,0,0,0,70,71,72", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "08b0636aef934db9bc81eb6f28872590", - "uuidPlanMaster": "6c3246ac0f974a6abc24c83bf45e1cf4", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 72, T2", - "Dosage": 20, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 7, - "HoleColum": 9, - "HoleCollective": "0,0,0,0,0,0,71,72", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "9952881e7b1c4f6e943db1a1825bb88c", - "uuidPlanMaster": "6c3246ac0f974a6abc24c83bf45e1cf4", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H72 - 72, T2", - "Dosage": 20, - "AssistA": " 吹样(1ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 9, - "HoleCollective": "72", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "19777983fd77481e91a9bd0caf78583e", - "uuidPlanMaster": "6c3246ac0f974a6abc24c83bf45e1cf4", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T6", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 6, - "IsFullPage": 1, - "HoleRow": 3, - "HoleColum": 10, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "e809eec72e7d418ca8cd81494adcc94b", - "uuidPlanMaster": "6c3246ac0f974a6abc24c83bf45e1cf4", - "Axis": "Left", - "ActOn": "Load", - "Place": "H0 - 96, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 12, - "HoleCollective": "0,0,0,0,93,94,95,96", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "84874162dbd84d92b608d9a9bf6637cd", - "uuidPlanMaster": "6c3246ac0f974a6abc24c83bf45e1cf4", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H4 - 4, T3", - "Dosage": 160, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 1, - "HoleCollective": "4", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "e0311855ee7541f5a053fa4b2fdb27d8", - "uuidPlanMaster": "6c3246ac0f974a6abc24c83bf45e1cf4", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H73 - 80, T2", - "Dosage": 20, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 10, - "HoleCollective": "73,74,75,76,77,78,79,80", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "289f6626d528417a83f955d4c748cae1", - "uuidPlanMaster": "6c3246ac0f974a6abc24c83bf45e1cf4", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 80, T2", - "Dosage": 20, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 10, - "HoleCollective": "0,74,75,76,77,78,79,80", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "5021658ac8e1429698ccaf494a69c612", - "uuidPlanMaster": "6c3246ac0f974a6abc24c83bf45e1cf4", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 80, T2", - "Dosage": 20, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 10, - "HoleCollective": "0,0,75,76,77,78,79,80", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "653821693f2440cea311e85c6a70846f", - "uuidPlanMaster": "6c3246ac0f974a6abc24c83bf45e1cf4", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 80, T2", - "Dosage": 20, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 10, - "HoleCollective": "0,0,0,76,77,78,79,80", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "ecfc89eeec6f4a0da79d3672976a004b", - "uuidPlanMaster": "6c3246ac0f974a6abc24c83bf45e1cf4", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 80, T2", - "Dosage": 20, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 10, - "HoleCollective": "0,0,0,0,77,78,79,80", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "3bfe213993f4488f89c165c27381b21e", - "uuidPlanMaster": "6c3246ac0f974a6abc24c83bf45e1cf4", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 80, T2", - "Dosage": 20, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 6, - "HoleColum": 10, - "HoleCollective": "0,0,0,0,0,78,79,80", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "12194884c1e84a15a900dced0cfa7fc9", - "uuidPlanMaster": "6c3246ac0f974a6abc24c83bf45e1cf4", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 80, T2", - "Dosage": 20, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 7, - "HoleColum": 10, - "HoleCollective": "0,0,0,0,0,0,79,80", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "77cda68700f4461ba1c97147d5c2faf0", - "uuidPlanMaster": "6c3246ac0f974a6abc24c83bf45e1cf4", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H80 - 80, T2", - "Dosage": 20, - "AssistA": " 吹样(1ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 10, - "HoleCollective": "80", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "b9afa9727e1d47c08266f03c8e061495", - "uuidPlanMaster": "6c3246ac0f974a6abc24c83bf45e1cf4", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H4 - 4, T3", - "Dosage": 160, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 1, - "HoleCollective": "4", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "5a08ed3ae5b44026acd19896fdd83c69", - "uuidPlanMaster": "6c3246ac0f974a6abc24c83bf45e1cf4", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H81 - 88, T2", - "Dosage": 20, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 11, - "HoleCollective": "81,82,83,84,85,86,87,88", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "3d76b0f37dcf48058c73e9ff0e215a5a", - "uuidPlanMaster": "6c3246ac0f974a6abc24c83bf45e1cf4", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H82 - 88, T2", - "Dosage": 20, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 11, - "HoleCollective": "82,83,84,85,86,87,88", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "81a992a0136d4cb396f521388427bbd3", - "uuidPlanMaster": "6c3246ac0f974a6abc24c83bf45e1cf4", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H83 - 88, T2", - "Dosage": 20, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 11, - "HoleCollective": "83,84,85,86,87,88", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "4968b9259f494bdb856af00863577d89", - "uuidPlanMaster": "6c3246ac0f974a6abc24c83bf45e1cf4", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 88, T2", - "Dosage": 20, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 11, - "HoleCollective": "0,0,0,84,85,86,87,88", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "a0fa540d3c7c47c18a7df348d8cb556f", - "uuidPlanMaster": "6c3246ac0f974a6abc24c83bf45e1cf4", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 88, T2", - "Dosage": 20, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 11, - "HoleCollective": "0,0,0,0,85,86,87,88", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "91236025418249fd981c38af34c47755", - "uuidPlanMaster": "6c3246ac0f974a6abc24c83bf45e1cf4", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 88, T2", - "Dosage": 20, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 6, - "HoleColum": 11, - "HoleCollective": "0,0,0,0,0,86,87,88", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "5a56ec61e450433ab3c3a24e74fd1ab9", - "uuidPlanMaster": "6c3246ac0f974a6abc24c83bf45e1cf4", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 88, T2", - "Dosage": 20, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 7, - "HoleColum": 11, - "HoleCollective": "0,0,0,0,0,0,87,88", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "d55f3a851660446497c8f0a15f13df9a", - "uuidPlanMaster": "6c3246ac0f974a6abc24c83bf45e1cf4", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H88 - 88, T2", - "Dosage": 20, - "AssistA": " 吹样(1ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 11, - "HoleCollective": "88", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "9ee8d51b2a8b4f48bdfcb47285bf5cb5", - "uuidPlanMaster": "6c3246ac0f974a6abc24c83bf45e1cf4", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H4 - 4, T3", - "Dosage": 160, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 1, - "HoleCollective": "4", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "4328c5eed9ce43d6a5c31b1cbd69e056", - "uuidPlanMaster": "6c3246ac0f974a6abc24c83bf45e1cf4", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H89 - 96, T2", - "Dosage": 20, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 12, - "HoleCollective": "89,90,91,92,93,94,95,96", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "4c4e2e7db0be43dabf264431d3f1b6e5", - "uuidPlanMaster": "6c3246ac0f974a6abc24c83bf45e1cf4", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 96, T2", - "Dosage": 20, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 12, - "HoleCollective": "0,90,91,92,93,94,95,96", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "16341941521f4e58883850125792b44a", - "uuidPlanMaster": "6c3246ac0f974a6abc24c83bf45e1cf4", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 96, T2", - "Dosage": 20, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 12, - "HoleCollective": "0,0,91,92,93,94,95,96", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "23c732648d2e4769939ee5d332033e9f", - "uuidPlanMaster": "6c3246ac0f974a6abc24c83bf45e1cf4", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 96, T2", - "Dosage": 20, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 12, - "HoleCollective": "0,0,0,92,93,94,95,96", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "2d5e675793774bde99614866bc8c4c0e", - "uuidPlanMaster": "6c3246ac0f974a6abc24c83bf45e1cf4", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 96, T2", - "Dosage": 20, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 12, - "HoleCollective": "0,0,0,0,93,94,95,96", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "d1578eec24b04d9f90c8038cfa2149d2", - "uuidPlanMaster": "6c3246ac0f974a6abc24c83bf45e1cf4", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 96, T2", - "Dosage": 20, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 6, - "HoleColum": 12, - "HoleCollective": "0,0,0,0,0,94,95,96", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "cdd14c7b756b4e19b8edaab8a43c8a72", - "uuidPlanMaster": "6c3246ac0f974a6abc24c83bf45e1cf4", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 96, T2", - "Dosage": 20, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 7, - "HoleColum": 12, - "HoleCollective": "0,0,0,0,0,0,95,96", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "07f977fcd8f54ad4be9f50d8c77bad93", - "uuidPlanMaster": "6c3246ac0f974a6abc24c83bf45e1cf4", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H96 - 96, T2", - "Dosage": 20, - "AssistA": " 吹样(1ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 12, - "HoleCollective": "96", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "78f3b94dbbe240bdad09950f711eb7d6", - "uuidPlanMaster": "6c3246ac0f974a6abc24c83bf45e1cf4", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T6", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 6, - "IsFullPage": 1, - "HoleRow": 4, - "HoleColum": 10, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "a80a77820f7e4e09a1b3fedc610ad8ad", - "uuidPlanMaster": "6c3246ac0f974a6abc24c83bf45e1cf4", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1 - 8, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "dfe42e4967b140f7823adccc5c04f3e9", - "uuidPlanMaster": "6c3246ac0f974a6abc24c83bf45e1cf4", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H1 - 8, T4", - "Dosage": 12, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "e4dba47b878745d8a54b7bbd10875122", - "uuidPlanMaster": "6c3246ac0f974a6abc24c83bf45e1cf4", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1 - 8, T2", - "Dosage": 4, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "a837abd014af41ac8628fc0eacfa4b1d", - "uuidPlanMaster": "6c3246ac0f974a6abc24c83bf45e1cf4", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H9 - 16, T2", - "Dosage": 4, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 2, - "HoleCollective": "9,10,11,12,13,14,15,16", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "d7d757b5ba104b6a87d58c06bc67ab6f", - "uuidPlanMaster": "6c3246ac0f974a6abc24c83bf45e1cf4", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H17 - 24, T2", - "Dosage": 4, - "AssistA": " 吹样(1ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "17,18,19,20,21,22,23,24", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "fdc8fd74405f4d52bbaca391e80fc919", - "uuidPlanMaster": "6c3246ac0f974a6abc24c83bf45e1cf4", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T6", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 6, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "7fabe54ff916486d8950786be8fe4341", - "uuidPlanMaster": "6c3246ac0f974a6abc24c83bf45e1cf4", - "Axis": "Left", - "ActOn": "Load", - "Place": "H9 - 16, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 2, - "HoleCollective": "9,10,11,12,13,14,15,16", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "d27dfce1467a45f5b279cedf24694793", - "uuidPlanMaster": "6c3246ac0f974a6abc24c83bf45e1cf4", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H9 - 16, T4", - "Dosage": 12, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 2, - "HoleCollective": "9,10,11,12,13,14,15,16", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "cfa63d233f044c228039d7eabd0bd0db", - "uuidPlanMaster": "6c3246ac0f974a6abc24c83bf45e1cf4", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H25 - 32, T2", - "Dosage": 4, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 4, - "HoleCollective": "25,26,27,28,29,30,31,32", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "62b53211cb0242bab1a283337b3ce366", - "uuidPlanMaster": "6c3246ac0f974a6abc24c83bf45e1cf4", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H33 - 40, T2", - "Dosage": 4, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 5, - "HoleCollective": "33,34,35,36,37,38,39,40", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "87e24c40150f4e0eb7bf39d2da2b2c39", - "uuidPlanMaster": "6c3246ac0f974a6abc24c83bf45e1cf4", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H41 - 48, T2", - "Dosage": 4, - "AssistA": " 吹样(1ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 6, - "HoleCollective": "41,42,43,44,45,46,47,48", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "2e170b0c188e449cbacac3592c2d5f33", - "uuidPlanMaster": "6c3246ac0f974a6abc24c83bf45e1cf4", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T6", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 6, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 2, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "b8be3d1b2e1242d6ac533bdb5c2d18b4", - "uuidPlanMaster": "6c3246ac0f974a6abc24c83bf45e1cf4", - "Axis": "Left", - "ActOn": "Load", - "Place": "H17 - 24, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "17,18,19,20,21,22,23,24", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "a0e5ec096ca14d8cb4a7d5af747dc616", - "uuidPlanMaster": "6c3246ac0f974a6abc24c83bf45e1cf4", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H17 - 24, T4", - "Dosage": 12, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "17,18,19,20,21,22,23,24", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "ac41764e5f2845e191c67fa170d57112", - "uuidPlanMaster": "6c3246ac0f974a6abc24c83bf45e1cf4", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H49 - 56, T2", - "Dosage": 4, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 7, - "HoleCollective": "49,50,51,52,53,54,55,56", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "94acae31c3624d9e8392729b9171b5fd", - "uuidPlanMaster": "6c3246ac0f974a6abc24c83bf45e1cf4", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H57 - 64, T2", - "Dosage": 4, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 8, - "HoleCollective": "57,58,59,60,61,62,63,64", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "b859612916994e8ab3a2cbb2b0d13c09", - "uuidPlanMaster": "6c3246ac0f974a6abc24c83bf45e1cf4", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H65 - 72, T2", - "Dosage": 4, - "AssistA": " 吹样(1ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 9, - "HoleCollective": "65,66,67,68,69,70,71,72", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "2a6ceaf4929b43e39bf38d9203d35e89", - "uuidPlanMaster": "6c3246ac0f974a6abc24c83bf45e1cf4", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T6", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 6, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "9d4c12402bea4660945cc6f692c5e426", - "uuidPlanMaster": "6c3246ac0f974a6abc24c83bf45e1cf4", - "Axis": "Left", - "ActOn": "Load", - "Place": "H25 - 32, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 4, - "HoleCollective": "25,26,27,28,29,30,31,32", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "d1bc106c99f74c448806f06f0623997c", - "uuidPlanMaster": "6c3246ac0f974a6abc24c83bf45e1cf4", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H25 - 32, T4", - "Dosage": 12, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 4, - "HoleCollective": "25,26,27,28,29,30,31,32", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "99876fe6409c43079bbb72d3a22411a4", - "uuidPlanMaster": "6c3246ac0f974a6abc24c83bf45e1cf4", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H73 - 80, T2", - "Dosage": 4, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 10, - "HoleCollective": "73,74,75,76,77,78,79,80", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "be416fce3a884fc49eb53ca98d75826e", - "uuidPlanMaster": "6c3246ac0f974a6abc24c83bf45e1cf4", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H81 - 88, T2", - "Dosage": 4, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 11, - "HoleCollective": "81,82,83,84,85,86,87,88", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "f354636287c948d1aee1b9f809981d60", - "uuidPlanMaster": "6c3246ac0f974a6abc24c83bf45e1cf4", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H89 - 96, T2", - "Dosage": 4, - "AssistA": " 吹样(1ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 12, - "HoleCollective": "89,90,91,92,93,94,95,96", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "de339bc45ee94c65a18d76ab21040f4d", - "uuidPlanMaster": "6c3246ac0f974a6abc24c83bf45e1cf4", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T6", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 6, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 4, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "1278b3b1428a4c74a62180152587a274", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Load", - "Place": "H96 - 96, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 12, - "HoleCollective": "96", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "f1896466113e47a4b24a3162ebcbb9e7", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H17 - 24, T3", - "Dosage": 135, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "17,18,19,20,21,22,23,24", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "617427d6f4324c6a84bcaf4d4ba9b579", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1 - 8, T3", - "Dosage": 135, - "AssistA": " 吹样(1ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "8f67dcaa72bb43e78f5ac9afa5f077ee", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H17 - 24, T3", - "Dosage": 135, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "17,18,19,20,21,22,23,24", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "48eccef1b1bd40219a30e7e91ff62cff", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 8, T3", - "Dosage": 135, - "AssistA": " 吹样(1ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 1, - "HoleCollective": "0,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "01c7fd0df5a74543abf67053123873f8", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H17 - 24, T3", - "Dosage": 135, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "17,18,19,20,21,22,23,24", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "4c2002ca767e4cb6ace5d06b60e80f84", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 8, T3", - "Dosage": 135, - "AssistA": " 吹样(1ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 1, - "HoleCollective": "0,0,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "0a2b7519409f4400a2ac90a117803475", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H17 - 24, T3", - "Dosage": 135, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "17,18,19,20,21,22,23,24", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "9d99e982927c4fc08220e92570955295", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 8, T3", - "Dosage": 135, - "AssistA": " 吹样(1ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 1, - "HoleCollective": "0,0,0,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "e859f35719364229b6b182908b7acd97", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H17 - 24, T3", - "Dosage": 135, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "17,18,19,20,21,22,23,24", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "c64dff6c464c488bb295fb8c7b3246e0", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 8, T3", - "Dosage": 135, - "AssistA": " 吹样(1ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 1, - "HoleCollective": "0,0,0,0,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "d99b7d2f18844d87a7ef047de48a5004", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H17 - 24, T3", - "Dosage": 135, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "17,18,19,20,21,22,23,24", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "eed82d5540fc4a78beda9c00896ffa3a", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 8, T3", - "Dosage": 135, - "AssistA": " 吹样(1ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 0, - "HoleRow": 6, - "HoleColum": 1, - "HoleCollective": "0,0,0,0,0,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "ec29d1d1fe974525a2c9fcae35ca5348", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T6", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 6, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "5320c25b09d547abb5ddd3159225e806", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Load", - "Place": "H0 - 96, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 7, - "HoleColum": 12, - "HoleCollective": "0,0,0,0,0,0,95,96", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "7ea91e9ffe0249d8802c297d44c61eef", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H0 - 24, T3", - "Dosage": 15, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 3, - "HoleCollective": "0,18,19,20,21,22,23,24", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "e6f1a8fc38514ab49022c8da93a80be5", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Blending", - "Place": "H1 - 8, T3", - "Dosage": 75, - "AssistA": " 吹样(1ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 10, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "225773c0ce0543a8bf4a45913f47a1d7", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T6", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 6, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "0dff6ebc4550467faf0e3dde85f3cb0f", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Load", - "Place": "H0 - 96, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 6, - "HoleColum": 12, - "HoleCollective": "0,0,0,0,0,94,95,96", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "98aeb25e6ecf4c52b994a3f8a8e1f5a7", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H0 - 8, T3", - "Dosage": 15, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 1, - "HoleCollective": "0,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "27a4d5bffd064a3c9feb05a1eeac6667", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Blending", - "Place": "H0 - 8, T3", - "Dosage": 75, - "AssistA": " 吹样(1ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 1, - "HoleCollective": "0,0,3,4,5,6,7,8", - "MixCount": 10, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "1b970d27ce4e4683a38060183a903bec", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T6", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 6, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "bb3d81d3befe4e2c8ca4eb8db223766b", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Load", - "Place": "H0 - 96, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 12, - "HoleCollective": "0,0,0,0,93,94,95,96", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "7594874c24ff44a79c46a0fd31c09a26", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H0 - 8, T3", - "Dosage": 15, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 1, - "HoleCollective": "0,0,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "09b9cf4d8a9c4eb88a882acbb43ee7a7", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Blending", - "Place": "H0 - 8, T3", - "Dosage": 75, - "AssistA": " 吹样(1ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 1, - "HoleCollective": "0,0,0,4,5,6,7,8", - "MixCount": 10, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "ecfc1f245f8f47eaab7585e23e996d38", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T6", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 6, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "8a5ea9eb2a8345bdbb6dcc233c3532ac", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Load", - "Place": "H0 - 96, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 12, - "HoleCollective": "0,0,0,92,93,94,95,96", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "03ed03231afb4638b5aebb9f4d91dfed", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H0 - 8, T3", - "Dosage": 15, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 1, - "HoleCollective": "0,0,0,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "032762ea8c904bd8bc9d60c9c673161a", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Blending", - "Place": "H0 - 8, T3", - "Dosage": 75, - "AssistA": " 吹样(1ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 1, - "HoleCollective": "0,0,0,0,5,6,7,8", - "MixCount": 10, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "4b30b1e4388a41edbe624535c745606a", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T6", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 6, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "35beabbc203941e699dfb1f09678c97d", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Load", - "Place": "H0 - 96, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 12, - "HoleCollective": "0,0,91,92,93,94,95,96", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "d9b7f2d7e2c24e258bf3b3593911a732", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H0 - 8, T3", - "Dosage": 15, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 1, - "HoleCollective": "0,0,0,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "f0a2a20736b849c782a0ed9fb404b674", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Blending", - "Place": "H0 - 8, T3", - "Dosage": 75, - "AssistA": " 吹样(1ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 1, - "HoleCollective": "0,0,0,0,5,6,7,8", - "MixCount": 10, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "fcb36c715d1c4790a3b41831ae020473", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T6", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 6, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "20684ce52cb04c7c8b01add7fb77f3af", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Load", - "Place": "H0 - 96, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 12, - "HoleCollective": "0,90,91,92,93,94,95,96", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "8ed4ad7ab95b4d7bb5c9918cffd91005", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H0 - 8, T3", - "Dosage": 15, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 1, - "HoleCollective": "0,0,0,0,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "e9fad38b6d024280a7208d2d053237d0", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Blending", - "Place": "H0 - 8, T3", - "Dosage": 75, - "AssistA": " 吹样(1ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 0, - "HoleRow": 6, - "HoleColum": 1, - "HoleCollective": "0,0,0,0,0,6,7,8", - "MixCount": 10, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "f650626e82834ee2a97a9defe50ffb0c", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T6", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 6, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "d492f0be27d74ff288999ee3525b273f", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Load", - "Place": "H88 - 88, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 11, - "HoleCollective": "88", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "20091c4650064227aad5862e4be7947c", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H0 - 24, T3", - "Dosage": 180, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 3, - "HoleCollective": "0,0,19,20,21,22,23,24", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "c2eb920e947d4fb0b9062cc611edb205", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1 - 8, T2", - "Dosage": 18, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "4f085b133b794764a1f31e15ed3fdbf9", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 8, T2", - "Dosage": 18, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 1, - "HoleCollective": "0,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "805164b691c442129baebf34195e0ed6", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 8, T2", - "Dosage": 18, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 1, - "HoleCollective": "0,0,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "93cfbf8d8158473daa1c98f18461595f", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 8, T2", - "Dosage": 18, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 1, - "HoleCollective": "0,0,0,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "f9afda5ddadd42b6ae0f182dbfb0a56e", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 8, T2", - "Dosage": 18, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 1, - "HoleCollective": "0,0,0,0,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "37d73ca7367d4f5d953bf1d464608bf0", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 8, T2", - "Dosage": 18, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 6, - "HoleColum": 1, - "HoleCollective": "0,0,0,0,0,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "9ef5b48b20aa4707af29b090d0e26aa6", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 8, T2", - "Dosage": 18, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 7, - "HoleColum": 1, - "HoleCollective": "0,0,0,0,0,0,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "a6401e0d137e473384aa6875dc5adf32", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H8 - 8, T2", - "Dosage": 18, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 1, - "HoleCollective": "8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "b086fa5215f345bdb866071418df0030", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H9 - 16, T2", - "Dosage": 18, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 2, - "HoleCollective": "9,10,11,12,13,14,15,16", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "3310206bc12b419785e3925468502444", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 16, T2", - "Dosage": 18, - "AssistA": " 吹样(1ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 2, - "HoleCollective": "0,10,11,12,13,14,15,16", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "548f227759384675b4420f19e95ee064", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T6", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 6, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "e2ef1291485d484e8f3e5761a4a0b35d", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Load", - "Place": "H0 - 88, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 7, - "HoleColum": 11, - "HoleCollective": "0,0,0,0,0,0,87,88", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "1a49ab6415254ffbb669069d32a4cf29", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H0 - 24, T3", - "Dosage": 180, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 3, - "HoleCollective": "0,0,19,20,21,22,23,24", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "94ef09d41f934073911cebd67da22ef5", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 16, T2", - "Dosage": 18, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 2, - "HoleCollective": "0,0,11,12,13,14,15,16", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "c6c3a6804e424286980db67c39aeade5", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 16, T2", - "Dosage": 18, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 2, - "HoleCollective": "0,0,0,12,13,14,15,16", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "2920f10aacc4407e86be65259c3292a0", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 16, T2", - "Dosage": 18, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 2, - "HoleCollective": "0,0,0,0,13,14,15,16", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "11cd01028e2a423bb56108c1719eb16f", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 16, T2", - "Dosage": 18, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 6, - "HoleColum": 2, - "HoleCollective": "0,0,0,0,0,14,15,16", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "7d5e3283dc2c49f9ab63c4c474916e43", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 16, T2", - "Dosage": 18, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 7, - "HoleColum": 2, - "HoleCollective": "0,0,0,0,0,0,15,16", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "e33d9f1871f64b03bf458aad95691fb1", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H16 - 16, T2", - "Dosage": 18, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 2, - "HoleCollective": "16", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "68de14ff63d14cb1b41e643a3bafcfd4", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H17 - 24, T2", - "Dosage": 18, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "17,18,19,20,21,22,23,24", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "49c822e6d5b44d559972125eed7b8eb1", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 24, T2", - "Dosage": 18, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 3, - "HoleCollective": "0,18,19,20,21,22,23,24", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "22f55138fd31469b9f238394823987ca", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 24, T2", - "Dosage": 18, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 3, - "HoleCollective": "0,0,19,20,21,22,23,24", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "9a596a23714e4f6d857269433c971aca", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 24, T2", - "Dosage": 18, - "AssistA": " 吹样(1ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 3, - "HoleCollective": "0,0,0,20,21,22,23,24", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "eb4747b06f40489d93308ccb9842d6ca", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T6", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 6, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "6651763383f248f891b5f05c666d223d", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Load", - "Place": "H0 - 88, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 6, - "HoleColum": 11, - "HoleCollective": "0,0,0,0,0,86,87,88", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "85e86c54bacf483083446e5a54a753ca", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H0 - 24, T3", - "Dosage": 180, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 3, - "HoleCollective": "0,0,19,20,21,22,23,24", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "1746254a0f9249fe8ae597cb047305d9", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 24, T2", - "Dosage": 18, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 3, - "HoleCollective": "0,0,0,0,21,22,23,24", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "065b402ab5604c72b5d6e711fe26e9de", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 24, T2", - "Dosage": 18, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 6, - "HoleColum": 3, - "HoleCollective": "0,0,0,0,0,22,23,24", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "23b255032c2f44d3a0ca7d04da8b929d", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 24, T2", - "Dosage": 18, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 7, - "HoleColum": 3, - "HoleCollective": "0,0,0,0,0,0,23,24", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "a3ca711ae6a147009f2fa9b7a790360f", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H24 - 24, T2", - "Dosage": 18, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 3, - "HoleCollective": "24", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "ac44b28eb289447eb86b4db72af71449", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H25 - 32, T2", - "Dosage": 18, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 4, - "HoleCollective": "25,26,27,28,29,30,31,32", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "2697134514f742ee8931afe9a74d7f51", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 32, T2", - "Dosage": 18, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 4, - "HoleCollective": "0,26,27,28,29,30,31,32", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "bc0df95ac36f46788358d3316d249f99", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 32, T2", - "Dosage": 18, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 4, - "HoleCollective": "0,0,27,28,29,30,31,32", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "d7a4a4f90685457c9e8885b3350e0879", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 32, T2", - "Dosage": 18, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 4, - "HoleCollective": "0,0,0,28,29,30,31,32", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "4e28ed5d0c2641d98eaefa95d4cc8c86", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 32, T2", - "Dosage": 18, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 4, - "HoleCollective": "0,0,0,0,29,30,31,32", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "a3e408c74d004bba83d8389dd32cc19c", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 32, T2", - "Dosage": 18, - "AssistA": " 吹样(1ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 6, - "HoleColum": 4, - "HoleCollective": "0,0,0,0,0,30,31,32", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "0b249dc048094641b631423f10e87e15", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T6", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 6, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "a1e262812945419aa42746f1da3e3355", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Load", - "Place": "H0 - 88, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 11, - "HoleCollective": "0,0,0,0,85,86,87,88", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "c1352a09b08249e2887af0b7fd02c4e1", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H0 - 24, T3", - "Dosage": 180, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 3, - "HoleCollective": "0,0,19,20,21,22,23,24", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "d836b53733c74e4ca4e85a6e50bbcaf0", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 32, T2", - "Dosage": 18, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 7, - "HoleColum": 4, - "HoleCollective": "0,0,0,0,0,0,31,32", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "dc0411895f424ae0bbb38ab196209686", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H32 - 32, T2", - "Dosage": 18, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 4, - "HoleCollective": "32", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "77e1118de0fd48bfb6c5972d8742bd88", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H33 - 40, T2", - "Dosage": 18, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 5, - "HoleCollective": "33,34,35,36,37,38,39,40", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "e875a2fa93cb4e768e77d5f69a1464ac", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 40, T2", - "Dosage": 18, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 5, - "HoleCollective": "0,34,35,36,37,38,39,40", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "2d6765724ff446b18004168948a4992b", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 40, T2", - "Dosage": 18, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 5, - "HoleCollective": "0,0,35,36,37,38,39,40", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "829c2a41197f47d692205fc9307f365a", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 40, T2", - "Dosage": 18, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 5, - "HoleCollective": "0,0,0,36,37,38,39,40", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "cca8bbbf551c448b86c226a3da2f824a", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 40, T2", - "Dosage": 18, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 5, - "HoleCollective": "0,0,0,0,37,38,39,40", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "35125976acf34816932e0779f122da14", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 40, T2", - "Dosage": 18, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 6, - "HoleColum": 5, - "HoleCollective": "0,0,0,0,0,38,39,40", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "c9e309f4fceb4b4c8013778806e1d108", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 40, T2", - "Dosage": 18, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 7, - "HoleColum": 5, - "HoleCollective": "0,0,0,0,0,0,39,40", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "9d699e6b1063408280043da8d8cf9954", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H40 - 40, T2", - "Dosage": 18, - "AssistA": " 吹样(1ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 5, - "HoleCollective": "40", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "a7fd56562dae4ca69e3552fdf56108cb", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T6", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 6, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "21c65f8b1f9048588bed63ccf9ed7416", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Load", - "Place": "H0 - 88, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 11, - "HoleCollective": "0,0,0,84,85,86,87,88", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "3cc684db432b484faeab8703602c600c", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H0 - 24, T3", - "Dosage": 180, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 3, - "HoleCollective": "0,0,19,20,21,22,23,24", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "658e614145f14a7ea746889a5c44039a", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H41 - 48, T2", - "Dosage": 18, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 6, - "HoleCollective": "41,42,43,44,45,46,47,48", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "2554c9a1480e4f0f9bca05518c0a2002", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 48, T2", - "Dosage": 18, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 6, - "HoleCollective": "0,42,43,44,45,46,47,48", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "69891998dab34cc98fa29002a07a5cfb", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 48, T2", - "Dosage": 18, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 6, - "HoleCollective": "0,0,43,44,45,46,47,48", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "c1ef0f5861b14adbbdb7cd4cece40f67", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 48, T2", - "Dosage": 18, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 6, - "HoleCollective": "0,0,0,44,45,46,47,48", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "7a0027c2aceb40a3a826115f9f37602e", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 48, T2", - "Dosage": 18, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 6, - "HoleCollective": "0,0,0,0,45,46,47,48", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "0a4dbde50929499a96eb3fd69eeadfa2", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 48, T2", - "Dosage": 18, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 6, - "HoleColum": 6, - "HoleCollective": "0,0,0,0,0,46,47,48", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "a2cbd91e39c947699907bf4a79ee6d97", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 48, T2", - "Dosage": 18, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 7, - "HoleColum": 6, - "HoleCollective": "0,0,0,0,0,0,47,48", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "d3a9ef15224f4b2da6a48300d739c153", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H48 - 48, T2", - "Dosage": 18, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 6, - "HoleCollective": "48", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "d588a779f75b4b4e818461d198870542", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H49 - 56, T2", - "Dosage": 18, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 7, - "HoleCollective": "49,50,51,52,53,54,55,56", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "7f6f427824c84381ba2abdafd34db680", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 56, T2", - "Dosage": 18, - "AssistA": " 吹样(1ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 7, - "HoleCollective": "0,50,51,52,53,54,55,56", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "2902e952f31c46b2bd3d66b23252ae78", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T6", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 6, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "72186c5cef214b66a48ce803a643984e", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Load", - "Place": "H0 - 88, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 11, - "HoleCollective": "0,0,83,84,85,86,87,88", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "6acb8dbf438b4dcfa4874fbfed1876f9", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H0 - 24, T3", - "Dosage": 180, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 3, - "HoleCollective": "0,0,19,20,21,22,23,24", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "fab5f36ad81b4d5c81c36c1c73c3eaaf", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 56, T2", - "Dosage": 18, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 7, - "HoleCollective": "0,0,51,52,53,54,55,56", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "534470132d384ad0b12b28bd6ce89350", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 56, T2", - "Dosage": 18, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 7, - "HoleCollective": "0,0,0,52,53,54,55,56", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "e1670d020c154f7bb5cf774e448481f2", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 56, T2", - "Dosage": 18, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 7, - "HoleCollective": "0,0,0,0,53,54,55,56", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "c33b0870bd074657afff3c27b6b0a320", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 56, T2", - "Dosage": 18, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 6, - "HoleColum": 7, - "HoleCollective": "0,0,0,0,0,54,55,56", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "8ab95eecc5bf422dba1ba78e5b90f3a1", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 56, T2", - "Dosage": 18, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 7, - "HoleColum": 7, - "HoleCollective": "0,0,0,0,0,0,55,56", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "575e297e1b934bbf963824368eabd164", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H56 - 56, T2", - "Dosage": 18, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 7, - "HoleCollective": "56", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "fe11f20a475c4d3a84e54d6fb6ee2cf0", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H57 - 64, T2", - "Dosage": 18, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 8, - "HoleCollective": "57,58,59,60,61,62,63,64", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "f97fe607935941fd8200afc2fcc0c551", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 64, T2", - "Dosage": 18, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 8, - "HoleCollective": "0,58,59,60,61,62,63,64", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "a69ae24218854dc1955ccc74d408db46", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 64, T2", - "Dosage": 18, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 8, - "HoleCollective": "0,0,59,60,61,62,63,64", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "331e22db8584431a8b4bcf3d289bdba0", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 64, T2", - "Dosage": 18, - "AssistA": " 吹样(1ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 8, - "HoleCollective": "0,0,0,60,61,62,63,64", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "5dc649f54a98414eb3cf43e7dd228790", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T6", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 6, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "90ac1d4b1b49472596adf5723be4e0d1", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Load", - "Place": "H0 - 88, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 11, - "HoleCollective": "0,82,83,84,85,86,87,88", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "07f97ee3b036431fa535bcbc835de241", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H0 - 24, T3", - "Dosage": 180, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 3, - "HoleCollective": "0,0,19,20,21,22,23,24", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "5de1721a4c1e47e5944a809649b69938", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 64, T2", - "Dosage": 18, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 8, - "HoleCollective": "0,0,0,0,61,62,63,64", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "9b89d71a88084cceb3d2aa3b1bd8a5b4", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 64, T2", - "Dosage": 18, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 6, - "HoleColum": 8, - "HoleCollective": "0,0,0,0,0,62,63,64", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "2c740970355b4499bb05da3bddc709f0", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 64, T2", - "Dosage": 18, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 7, - "HoleColum": 8, - "HoleCollective": "0,0,0,0,0,0,63,64", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "d3035d76edd5412fb4778c1d1f3ac95d", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H64 - 64, T2", - "Dosage": 18, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 8, - "HoleCollective": "64", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "70438bbd772946fbb1fb63b0b4a7f2b2", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H65 - 72, T2", - "Dosage": 18, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 9, - "HoleCollective": "65,66,67,68,69,70,71,72", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "d85ef62fde1a4c4aacb5f3bf2d7290fe", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 72, T2", - "Dosage": 18, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 9, - "HoleCollective": "0,66,67,68,69,70,71,72", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "96c4e2e9c7004b64b026a4d0e821f750", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 72, T2", - "Dosage": 18, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 9, - "HoleCollective": "0,0,67,68,69,70,71,72", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "1fef79a611be425791b9efdc6b5770c4", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 72, T2", - "Dosage": 18, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 9, - "HoleCollective": "0,0,0,68,69,70,71,72", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "50f74d92a119446f82c39ac9a2b79443", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 72, T2", - "Dosage": 18, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 9, - "HoleCollective": "0,0,0,0,69,70,71,72", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "94ed31ede2bb44918e8316b654b4e2b3", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 72, T2", - "Dosage": 18, - "AssistA": " 吹样(1ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 6, - "HoleColum": 9, - "HoleCollective": "0,0,0,0,0,70,71,72", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "6d68dbb23b8d4361828578a903f18460", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T6", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 6, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "27d6ea3534ce4db99cd103e3212bda6e", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Load", - "Place": "H81 - 88, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 11, - "HoleCollective": "81,82,83,84,85,86,87,88", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "823e51b43e054c2091a7daa4c3222fdf", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H0 - 24, T3", - "Dosage": 180, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 3, - "HoleCollective": "0,0,19,20,21,22,23,24", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "d4b4fa64198b447ba5ac54bc95d8e6a1", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 72, T2", - "Dosage": 18, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 7, - "HoleColum": 9, - "HoleCollective": "0,0,0,0,0,0,71,72", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "5c3cb72dbcf3441ea213dba49c64d0b9", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H72 - 72, T2", - "Dosage": 18, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 9, - "HoleCollective": "72", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "efc91526ed534a6e8a9ad5bb241cc96c", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H73 - 80, T2", - "Dosage": 18, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 10, - "HoleCollective": "73,74,75,76,77,78,79,80", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "1a57aa58c9a04ccea53d3f63a5e94e21", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 80, T2", - "Dosage": 18, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 10, - "HoleCollective": "0,74,75,76,77,78,79,80", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "7d1677ef466d447fa25db4e1f282b051", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 80, T2", - "Dosage": 18, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 10, - "HoleCollective": "0,0,75,76,77,78,79,80", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "58acbe1979cf47258a64933a0fd8100e", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 80, T2", - "Dosage": 18, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 10, - "HoleCollective": "0,0,0,76,77,78,79,80", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "41a8ac8a5e464a66995ce3459afd77ed", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 80, T2", - "Dosage": 18, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 10, - "HoleCollective": "0,0,0,0,77,78,79,80", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "d02a87258f134748897c7b2da6de482a", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 80, T2", - "Dosage": 18, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 6, - "HoleColum": 10, - "HoleCollective": "0,0,0,0,0,78,79,80", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "b1bb40b8303d47b78017e412247c5b40", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H81 - 88, T2", - "Dosage": 18, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 11, - "HoleCollective": "81,82,83,84,85,86,87,88", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "917a00dbb4d34613bc89684dbf5e5937", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 88, T2", - "Dosage": 18, - "AssistA": " 吹样(1ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 11, - "HoleCollective": "0,82,83,84,85,86,87,88", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "c5f8fae3291941b2bba3468c8f6be2b7", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T6", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 6, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "ba6e497ba6974622923d8f233586bf15", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Load", - "Place": "H80 - 80, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 10, - "HoleCollective": "80", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "f53c2cfa778e4b08847f6aa86aac3052", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H0 - 24, T3", - "Dosage": 180, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 3, - "HoleCollective": "0,0,19,20,21,22,23,24", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "d1132b2194234d7da854cfc62320f3a3", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 88, T2", - "Dosage": 18, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 11, - "HoleCollective": "0,0,83,84,85,86,87,88", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "8e75e2701703477a94825a17913ad8fb", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 88, T2", - "Dosage": 18, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 11, - "HoleCollective": "0,0,0,84,85,86,87,88", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "5445b06e94754ae5813b5075a758551e", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 88, T2", - "Dosage": 18, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 11, - "HoleCollective": "0,0,0,0,85,86,87,88", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "b6cb9f04091a431d9ff439dd321884a3", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 88, T2", - "Dosage": 18, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 6, - "HoleColum": 11, - "HoleCollective": "0,0,0,0,0,86,87,88", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "6f5a47eebf054606b7a90944c0eef3ee", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H89 - 96, T2", - "Dosage": 18, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 12, - "HoleCollective": "89,90,91,92,93,94,95,96", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "551dc89b8b7c4221a084d9f0c7ad9c65", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 96, T2", - "Dosage": 18, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 12, - "HoleCollective": "0,90,91,92,93,94,95,96", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "0e60c974449a4922bac862423a4f9ac0", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 96, T2", - "Dosage": 18, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 12, - "HoleCollective": "0,0,91,92,93,94,95,96", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "09b12c5c80f341c3811909ae3b92c19d", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 96, T2", - "Dosage": 18, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 12, - "HoleCollective": "0,0,0,92,93,94,95,96", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "bca038a4b4764f92a9b0f056015b746f", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 96, T2", - "Dosage": 18, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 12, - "HoleCollective": "0,0,0,0,93,94,95,96", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "949c5c42ae2e4c6fad20c453c90b726a", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 96, T2", - "Dosage": 18, - "AssistA": " 吹样(1ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 6, - "HoleColum": 12, - "HoleCollective": "0,0,0,0,0,94,95,96", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "e8cbf2c05cbc44bbb2fe78eacdecdb9a", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T6", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 6, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "079a20f25a7a460ba857b0b47a2db349", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1 - 8, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "12f112815ded471184fff7663e5c2fd8", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H1 - 8, T5", - "Dosage": 2, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "d3855379be8941bd9435c54964356d1b", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1 - 8, T2", - "Dosage": 2, - "AssistA": " 吹样(1ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "4f7356988b884a2e86044dbf9375d665", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H1 - 8, T5", - "Dosage": 2, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "da0a08eccad84809989c6fef5c863511", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H9 - 16, T2", - "Dosage": 2, - "AssistA": " 吹样(1ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 2, - "HoleCollective": "9,10,11,12,13,14,15,16", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "a26587fea6964f2b8128b07dba1b4077", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H1 - 8, T5", - "Dosage": 2, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "25fa888ad06d4ddd9b19ef0a489f02c3", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H17 - 24, T2", - "Dosage": 2, - "AssistA": " 吹样(1ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "17,18,19,20,21,22,23,24", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "9917c88935524a7cb81d90418e64735b", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T6", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 6, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "b8266870288f4ee5be76f68436012a2b", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Load", - "Place": "H9 - 16, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 2, - "HoleCollective": "9,10,11,12,13,14,15,16", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "7ea955327d9e4c39b417d53507267b55", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H9 - 16, T5", - "Dosage": 2, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 2, - "HoleCollective": "9,10,11,12,13,14,15,16", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "cc72d3465e2a4acbb0e595230561a968", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H25 - 32, T2", - "Dosage": 2, - "AssistA": " 吹样(1ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 4, - "HoleCollective": "25,26,27,28,29,30,31,32", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "63bd077fa4f84bc9a962dd515be9a589", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H9 - 16, T5", - "Dosage": 2, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 2, - "HoleCollective": "9,10,11,12,13,14,15,16", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "fdf03f35171547c79182673ee69160fa", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H33 - 40, T2", - "Dosage": 2, - "AssistA": " 吹样(1ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 5, - "HoleCollective": "33,34,35,36,37,38,39,40", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "13a4dacdaa454f6f82c6d5ba9d70c462", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H9 - 16, T5", - "Dosage": 2, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 2, - "HoleCollective": "9,10,11,12,13,14,15,16", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "2ec8fe36815c4f50aea4e949bb07d4ed", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H41 - 48, T2", - "Dosage": 2, - "AssistA": " 吹样(1ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 6, - "HoleCollective": "41,42,43,44,45,46,47,48", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "6cb5fb98df50443aa1ca50730767f83a", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T6", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 6, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "d8d6c2ccdf3a4c32970520497c470b44", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Load", - "Place": "H17 - 24, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "17,18,19,20,21,22,23,24", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "871707a7ded348118c1a2b791330db2f", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H17 - 24, T5", - "Dosage": 2, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "17,18,19,20,21,22,23,24", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "a78ca69fe8684f57ae288007c03ff382", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H49 - 56, T2", - "Dosage": 2, - "AssistA": " 吹样(1ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 7, - "HoleCollective": "49,50,51,52,53,54,55,56", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "4c1a27a373f3432b90e5ad461581e5f8", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H17 - 24, T5", - "Dosage": 2, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "17,18,19,20,21,22,23,24", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "a8e153df15494020a98f90191f4fb024", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H57 - 64, T2", - "Dosage": 2, - "AssistA": " 吹样(1ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 8, - "HoleCollective": "57,58,59,60,61,62,63,64", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "4e6ff668eb664c278f75625838a560e6", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H17 - 24, T5", - "Dosage": 2, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "17,18,19,20,21,22,23,24", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "87639565c9d94aeba72b192a0bf3ddc6", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H65 - 72, T2", - "Dosage": 2, - "AssistA": " 吹样(1ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 9, - "HoleCollective": "65,66,67,68,69,70,71,72", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "9b4811994a48472dacb91e995b9254ae", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T6", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 6, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "a3cdc5cded2f47359d416a48e20468aa", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Load", - "Place": "H0 - 32, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 4, - "HoleCollective": "0,0,27,28,29,30,31,32", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "d419fdbdf48c4b2db7519c887504fbbc", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H1 - 8, T3", - "Dosage": 2, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "abd35a4f4bd84353b4ab175cc3495772", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H73 - 80, T2", - "Dosage": 2, - "AssistA": " 吹样(1ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 10, - "HoleCollective": "73,74,75,76,77,78,79,80", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "8a3024fdf3c541a8ba2d48202d3868c0", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H1 - 8, T3", - "Dosage": 2, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "2e298fb663874e8d9935edbad8b2f8ae", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H81 - 88, T2", - "Dosage": 2, - "AssistA": " 吹样(1ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 11, - "HoleCollective": "81,82,83,84,85,86,87,88", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "3a2c60f625cb478484d901087919a88f", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H1 - 8, T3", - "Dosage": 2, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "61e71fc2faa34fbb8bad67aaf22b9305", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H89 - 96, T2", - "Dosage": 2, - "AssistA": " 吹样(1ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 12, - "HoleCollective": "89,90,91,92,93,94,95,96", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "89e3188302334745aa4319ad3be4ad16", - "uuidPlanMaster": "1d307a2c095b461abeec6e8521565ad3", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T6", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 6, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "094ba4d12de84702a24967cc7d25c2fb", - "uuidPlanMaster": "bbd6dc765867466ca2a415525f5bdbdd", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1 - 8, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "06685f07d5f049f18940e7ce45705138", - "uuidPlanMaster": "bbd6dc765867466ca2a415525f5bdbdd", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H1 - 8, T5", - "Dosage": 300, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "c48153bf0b08423daaf6b77c26cf2c05", - "uuidPlanMaster": "bbd6dc765867466ca2a415525f5bdbdd", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1 - 8, T2", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "2eade7683c594aa2848574082d7f513b", - "uuidPlanMaster": "bbd6dc765867466ca2a415525f5bdbdd", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H9 - 16, T2", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 2, - "HoleCollective": "9,10,11,12,13,14,15,16", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "afd8a3545f264bd38eae382f0f54f5df", - "uuidPlanMaster": "bbd6dc765867466ca2a415525f5bdbdd", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H17 - 24, T2", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "17,18,19,20,21,22,23,24", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "80618dbfaf2f45efa41a99e60a3f1c60", - "uuidPlanMaster": "bbd6dc765867466ca2a415525f5bdbdd", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H25 - 32, T2", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 4, - "HoleCollective": "25,26,27,28,29,30,31,32", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "784df951b6e94693a818ee30c2d15731", - "uuidPlanMaster": "bbd6dc765867466ca2a415525f5bdbdd", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H33 - 40, T2", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 5, - "HoleCollective": "33,34,35,36,37,38,39,40", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "768844dd655e4978a44d2ef70c0827d2", - "uuidPlanMaster": "bbd6dc765867466ca2a415525f5bdbdd", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H41 - 48, T2", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 6, - "HoleCollective": "41,42,43,44,45,46,47,48", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "86610edc34d4429c878e3ce62234911f", - "uuidPlanMaster": "bbd6dc765867466ca2a415525f5bdbdd", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H49 - 56, T2", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 7, - "HoleCollective": "49,50,51,52,53,54,55,56", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "dbe793e1710844ca961679466d7abca8", - "uuidPlanMaster": "bbd6dc765867466ca2a415525f5bdbdd", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H57 - 64, T2", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 8, - "HoleCollective": "57,58,59,60,61,62,63,64", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "d09a7122d8a24dcd8420b3ce1e05224a", - "uuidPlanMaster": "bbd6dc765867466ca2a415525f5bdbdd", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H65 - 72, T2", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 9, - "HoleCollective": "65,66,67,68,69,70,71,72", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "539409355a8f48988d1b46066b913079", - "uuidPlanMaster": "bbd6dc765867466ca2a415525f5bdbdd", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H73 - 80, T2", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 10, - "HoleCollective": "73,74,75,76,77,78,79,80", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "f71294d6e707406ebcc6018af3d70ed0", - "uuidPlanMaster": "bbd6dc765867466ca2a415525f5bdbdd", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H81 - 88, T2", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 11, - "HoleCollective": "81,82,83,84,85,86,87,88", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "79da7fc845aa4bf5aa8024a8b40acef2", - "uuidPlanMaster": "bbd6dc765867466ca2a415525f5bdbdd", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H89 - 96, T2", - "Dosage": 25, - "AssistA": " 吹样(10ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 12, - "HoleCollective": "89,90,91,92,93,94,95,96", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "e136074897794c12aa4a24256d9dd401", - "uuidPlanMaster": "bbd6dc765867466ca2a415525f5bdbdd", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H1 - 8, T5", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "5224ff644c804135ab90471b233efc81", - "uuidPlanMaster": "bbd6dc765867466ca2a415525f5bdbdd", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H89 - 96, T2", - "Dosage": 25, - "AssistA": " 吹样(10ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 12, - "HoleCollective": "89,90,91,92,93,94,95,96", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "13c7a046a15545ea8c408ae5a33d028f", - "uuidPlanMaster": "bbd6dc765867466ca2a415525f5bdbdd", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T6", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 6, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "2b341f1c6e694d878412ee7d9d04bc19", - "uuidPlanMaster": "bbd6dc765867466ca2a415525f5bdbdd", - "Axis": "Left", - "ActOn": "Load", - "Place": "H16 - 16, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 2, - "HoleCollective": "16", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "682fb8f4d5924327a9bf42197ef7569b", - "uuidPlanMaster": "bbd6dc765867466ca2a415525f5bdbdd", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H0 - 4, T3", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "0,0,0,0,1,2,3,4", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "285b18aef0444f07aa180e868b7ded24", - "uuidPlanMaster": "bbd6dc765867466ca2a415525f5bdbdd", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1 - 8, T2", - "Dosage": 25, - "AssistA": " 吹样(10ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "4f36aeba959547d7b9b9bd9e09811fa6", - "uuidPlanMaster": "bbd6dc765867466ca2a415525f5bdbdd", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T6", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 6, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "21a286bb40c34379ae9a661ec31a65a8", - "uuidPlanMaster": "bbd6dc765867466ca2a415525f5bdbdd", - "Axis": "Left", - "ActOn": "Load", - "Place": "H0 - 16, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 7, - "HoleColum": 2, - "HoleCollective": "0,0,0,0,0,0,15,16", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "7710fa9daf5d4d15874f604679911b13", - "uuidPlanMaster": "bbd6dc765867466ca2a415525f5bdbdd", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H0 - 4, T3", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 1, - "HoleCollective": "0,0,0,0,0,2,3,4", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "6e0723ee484b41bca3bb7b798083d5b4", - "uuidPlanMaster": "bbd6dc765867466ca2a415525f5bdbdd", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 8, T2", - "Dosage": 25, - "AssistA": " 吹样(10ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 1, - "HoleCollective": "0,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "2d3122fc64584864bf16dcff547b3268", - "uuidPlanMaster": "bbd6dc765867466ca2a415525f5bdbdd", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T6", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 6, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "ca45a1e757cf4a6e84f01d824269ff7d", - "uuidPlanMaster": "bbd6dc765867466ca2a415525f5bdbdd", - "Axis": "Left", - "ActOn": "Load", - "Place": "H0 - 16, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 6, - "HoleColum": 2, - "HoleCollective": "0,0,0,0,0,14,15,16", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "5856f403dd614621b75aea904c1e5414", - "uuidPlanMaster": "bbd6dc765867466ca2a415525f5bdbdd", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H0 - 4, T3", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 1, - "HoleCollective": "0,0,0,0,0,0,3,4", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "52a441ba68944a01af1746b35767c601", - "uuidPlanMaster": "bbd6dc765867466ca2a415525f5bdbdd", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 8, T2", - "Dosage": 25, - "AssistA": " 吹样(10ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 1, - "HoleCollective": "0,0,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "958e212ed27446c7a1b856be3b324bc9", - "uuidPlanMaster": "bbd6dc765867466ca2a415525f5bdbdd", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T6", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 6, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "2c45ba37428348ab8d1474bb0bc22e46", - "uuidPlanMaster": "bbd6dc765867466ca2a415525f5bdbdd", - "Axis": "Left", - "ActOn": "Load", - "Place": "H0 - 16, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 2, - "HoleCollective": "0,0,0,0,13,14,15,16", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "6ac6d7ae6d254c1ebfc99da8ac352391", - "uuidPlanMaster": "bbd6dc765867466ca2a415525f5bdbdd", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H4 - 4, T3", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 1, - "HoleCollective": "4", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "afcf0ba64009489b9254c4ba84c3f230", - "uuidPlanMaster": "bbd6dc765867466ca2a415525f5bdbdd", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 8, T2", - "Dosage": 25, - "AssistA": " 吹样(10ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 1, - "HoleCollective": "0,0,0,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "6d2cc57676f840d283749f21e900d14f", - "uuidPlanMaster": "bbd6dc765867466ca2a415525f5bdbdd", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T6", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 6, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "84385575aa9a4e4ca9b422a9726e6def", - "uuidPlanMaster": "bbd6dc765867466ca2a415525f5bdbdd", - "Axis": "Left", - "ActOn": "Load", - "Place": "H0 - 16, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 2, - "HoleCollective": "0,0,0,12,13,14,15,16", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "91da1b4c80884de39e0b044efab86fe8", - "uuidPlanMaster": "bbd6dc765867466ca2a415525f5bdbdd", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H0 - 8, T3", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 2, - "HoleCollective": "0,0,0,0,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "e8120d497011463182dbb0ab93dee672", - "uuidPlanMaster": "bbd6dc765867466ca2a415525f5bdbdd", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 16, T2", - "Dosage": 25, - "AssistA": " 吹样(10ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 2, - "HoleCollective": "0,0,0,0,13,14,15,16", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "7634a550712749a1932a8d73696927f3", - "uuidPlanMaster": "bbd6dc765867466ca2a415525f5bdbdd", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T6", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 6, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "c278d70d397a415a91f36755c11eb554", - "uuidPlanMaster": "bbd6dc765867466ca2a415525f5bdbdd", - "Axis": "Left", - "ActOn": "Load", - "Place": "H0 - 16, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 2, - "HoleCollective": "0,0,11,12,13,14,15,16", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "f26088e5c6544ad3a2ef1ab8c8f17a7d", - "uuidPlanMaster": "bbd6dc765867466ca2a415525f5bdbdd", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H0 - 8, T3", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 2, - "HoleCollective": "0,0,0,0,0,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "71cf8d2e49ec44e2b6cf0bc77cf6d54f", - "uuidPlanMaster": "bbd6dc765867466ca2a415525f5bdbdd", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 16, T2", - "Dosage": 25, - "AssistA": " 吹样(10ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 6, - "HoleColum": 2, - "HoleCollective": "0,0,0,0,0,14,15,16", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "a208ca6dbdff443592739a55e7637818", - "uuidPlanMaster": "bbd6dc765867466ca2a415525f5bdbdd", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T6", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 6, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "3c24afdae42846a0bb89ba717ed13d27", - "uuidPlanMaster": "bbd6dc765867466ca2a415525f5bdbdd", - "Axis": "Left", - "ActOn": "Load", - "Place": "H0 - 16, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 2, - "HoleCollective": "0,10,11,12,13,14,15,16", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "987952b2a9fa4f12bd62c407b8fe839a", - "uuidPlanMaster": "bbd6dc765867466ca2a415525f5bdbdd", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H0 - 8, T3", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 2, - "HoleCollective": "0,0,0,0,0,0,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "243154c52d974abe89a9e019d42c6689", - "uuidPlanMaster": "bbd6dc765867466ca2a415525f5bdbdd", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 16, T2", - "Dosage": 25, - "AssistA": " 吹样(10ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 7, - "HoleColum": 2, - "HoleCollective": "0,0,0,0,0,0,15,16", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "63fc5948a2aa471485bcae90a23ca1be", - "uuidPlanMaster": "bbd6dc765867466ca2a415525f5bdbdd", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T6", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 6, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "2104246907a64ff4bfa967824b19afe7", - "uuidPlanMaster": "bbd6dc765867466ca2a415525f5bdbdd", - "Axis": "Left", - "ActOn": "Load", - "Place": "H9 - 16, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 2, - "HoleCollective": "9,10,11,12,13,14,15,16", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "203aa87abf1b42a9b56c68a099198b31", - "uuidPlanMaster": "bbd6dc765867466ca2a415525f5bdbdd", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H8 - 8, T3", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 2, - "HoleCollective": "8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "477196aa60174a239cd208267835d392", - "uuidPlanMaster": "bbd6dc765867466ca2a415525f5bdbdd", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H16 - 16, T2", - "Dosage": 25, - "AssistA": " 吹样(10ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 2, - "HoleCollective": "16", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "9c48cead225b41deba45b4d05206d554", - "uuidPlanMaster": "bbd6dc765867466ca2a415525f5bdbdd", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T6", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 6, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "763674532ced415d8002aca3cc52d06d", - "uuidPlanMaster": "bbd6dc765867466ca2a415525f5bdbdd", - "Axis": "Left", - "ActOn": "Load", - "Place": "H17 - 24, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "17,18,19,20,21,22,23,24", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "88d18336d1b0423197c4a583251bab20", - "uuidPlanMaster": "bbd6dc765867466ca2a415525f5bdbdd", - "Axis": "Left", - "ActOn": "Blending", - "Place": "H1 - 8, T2", - "Dosage": 40, - "AssistA": " 加样(25ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 10, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "09e9910275dc43e7a468bdb680c999b7", - "uuidPlanMaster": "bbd6dc765867466ca2a415525f5bdbdd", - "Axis": "Left", - "ActOn": "Blending", - "Place": "H9 - 16, T2", - "Dosage": 40, - "AssistA": " 加样(25ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 2, - "HoleCollective": "9,10,11,12,13,14,15,16", - "MixCount": 10, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "b80847ea2f4c49598844dd605f9036c1", - "uuidPlanMaster": "bbd6dc765867466ca2a415525f5bdbdd", - "Axis": "Left", - "ActOn": "Blending", - "Place": "H17 - 24, T2", - "Dosage": 40, - "AssistA": " 加样(25ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "17,18,19,20,21,22,23,24", - "MixCount": 10, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "9765013d11804698b7110a040af665b9", - "uuidPlanMaster": "bbd6dc765867466ca2a415525f5bdbdd", - "Axis": "Left", - "ActOn": "Blending", - "Place": "H25 - 32, T2", - "Dosage": 40, - "AssistA": " 加样(25ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 4, - "HoleCollective": "25,26,27,28,29,30,31,32", - "MixCount": 10, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "f4dd9a853e304e708b16852e8f306f3f", - "uuidPlanMaster": "bbd6dc765867466ca2a415525f5bdbdd", - "Axis": "Left", - "ActOn": "Blending", - "Place": "H33 - 40, T2", - "Dosage": 40, - "AssistA": " 加样(25ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 5, - "HoleCollective": "33,34,35,36,37,38,39,40", - "MixCount": 10, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "beb3ba3e9922436a86899c6f7c2c64f2", - "uuidPlanMaster": "bbd6dc765867466ca2a415525f5bdbdd", - "Axis": "Left", - "ActOn": "Blending", - "Place": "H41 - 48, T2", - "Dosage": 40, - "AssistA": " 加样(25ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 6, - "HoleCollective": "41,42,43,44,45,46,47,48", - "MixCount": 10, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "9339132676904850a34ddc773a490b99", - "uuidPlanMaster": "bbd6dc765867466ca2a415525f5bdbdd", - "Axis": "Left", - "ActOn": "Blending", - "Place": "H49 - 56, T2", - "Dosage": 40, - "AssistA": " 加样(25ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 7, - "HoleCollective": "49,50,51,52,53,54,55,56", - "MixCount": 10, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "05f2b8f8b253491dab2f8074d881afc8", - "uuidPlanMaster": "bbd6dc765867466ca2a415525f5bdbdd", - "Axis": "Left", - "ActOn": "Blending", - "Place": "H57 - 64, T2", - "Dosage": 40, - "AssistA": " 加样(25ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 8, - "HoleCollective": "57,58,59,60,61,62,63,64", - "MixCount": 10, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "b83d25187be547968675ee58f6a0f70b", - "uuidPlanMaster": "bbd6dc765867466ca2a415525f5bdbdd", - "Axis": "Left", - "ActOn": "Blending", - "Place": "H65 - 72, T2", - "Dosage": 40, - "AssistA": " 加样(25ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 9, - "HoleCollective": "65,66,67,68,69,70,71,72", - "MixCount": 10, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "292b1ff097554aba8b64efcc79f71b9e", - "uuidPlanMaster": "bbd6dc765867466ca2a415525f5bdbdd", - "Axis": "Left", - "ActOn": "Blending", - "Place": "H73 - 80, T2", - "Dosage": 40, - "AssistA": " 加样(25ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 10, - "HoleCollective": "73,74,75,76,77,78,79,80", - "MixCount": 10, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "af7c070a4caf493698716af5dba836c7", - "uuidPlanMaster": "bbd6dc765867466ca2a415525f5bdbdd", - "Axis": "Left", - "ActOn": "Blending", - "Place": "H81 - 88, T2", - "Dosage": 40, - "AssistA": " 加样(25ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 11, - "HoleCollective": "81,82,83,84,85,86,87,88", - "MixCount": 10, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "09d818e22d8b4e7099158fb57c52bf9e", - "uuidPlanMaster": "bbd6dc765867466ca2a415525f5bdbdd", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T6", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 6, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "e612ab0b0f4a4b5ea7880446ef3660b8", - "uuidPlanMaster": "bbd6dc765867466ca2a415525f5bdbdd", - "Axis": "Left", - "ActOn": "Load", - "Place": "H25 - 32, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 4, - "HoleCollective": "25,26,27,28,29,30,31,32", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "759690f936794f019d1380e25f681e69", - "uuidPlanMaster": "bbd6dc765867466ca2a415525f5bdbdd", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H9 - 16, T5", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 2, - "HoleCollective": "9,10,11,12,13,14,15,16", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "d68521eab1e649849bcc9a4b151bd605", - "uuidPlanMaster": "bbd6dc765867466ca2a415525f5bdbdd", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1 - 8, T2", - "Dosage": 25, - "AssistA": " 吹样(150ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 10, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "fc02424e315449e997b14db81f75f66d", - "uuidPlanMaster": "bbd6dc765867466ca2a415525f5bdbdd", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H9 - 16, T5", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 2, - "HoleCollective": "9,10,11,12,13,14,15,16", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "d2d142f7eb164e96a9727875cf00880e", - "uuidPlanMaster": "bbd6dc765867466ca2a415525f5bdbdd", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H9 - 16, T2", - "Dosage": 25, - "AssistA": " 吹样(150ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 2, - "HoleCollective": "9,10,11,12,13,14,15,16", - "MixCount": 0, - "HeightFromBottom": 10, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "48ee438a5bc3462d81a6eec0fcef859b", - "uuidPlanMaster": "bbd6dc765867466ca2a415525f5bdbdd", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H9 - 16, T5", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 2, - "HoleCollective": "9,10,11,12,13,14,15,16", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "75ef4c395206416083e3959c08943020", - "uuidPlanMaster": "bbd6dc765867466ca2a415525f5bdbdd", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H17 - 24, T2", - "Dosage": 25, - "AssistA": " 吹样(150ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "17,18,19,20,21,22,23,24", - "MixCount": 0, - "HeightFromBottom": 10, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "16c81608fd99492b946d7ae1f2404e95", - "uuidPlanMaster": "bbd6dc765867466ca2a415525f5bdbdd", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H9 - 16, T5", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 2, - "HoleCollective": "9,10,11,12,13,14,15,16", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "7108e181988e42b7a4e05dbd706357cc", - "uuidPlanMaster": "bbd6dc765867466ca2a415525f5bdbdd", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H25 - 32, T2", - "Dosage": 25, - "AssistA": " 吹样(150ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 4, - "HoleCollective": "25,26,27,28,29,30,31,32", - "MixCount": 0, - "HeightFromBottom": 10, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "ed56447cf7b34e6fae9d951c177ab4ff", - "uuidPlanMaster": "bbd6dc765867466ca2a415525f5bdbdd", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H9 - 16, T5", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 2, - "HoleCollective": "9,10,11,12,13,14,15,16", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "3dd3ba90a5f54c8a93e87e688784a61c", - "uuidPlanMaster": "bbd6dc765867466ca2a415525f5bdbdd", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H33 - 40, T2", - "Dosage": 25, - "AssistA": " 吹样(150ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 5, - "HoleCollective": "33,34,35,36,37,38,39,40", - "MixCount": 0, - "HeightFromBottom": 10, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "fb9ce5120d5e40a0b83598837e0e06cf", - "uuidPlanMaster": "bbd6dc765867466ca2a415525f5bdbdd", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H9 - 16, T5", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 2, - "HoleCollective": "9,10,11,12,13,14,15,16", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "56e2f542ffab4a4e9a3ee2137833d729", - "uuidPlanMaster": "bbd6dc765867466ca2a415525f5bdbdd", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H41 - 48, T2", - "Dosage": 25, - "AssistA": " 吹样(150ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 6, - "HoleCollective": "41,42,43,44,45,46,47,48", - "MixCount": 0, - "HeightFromBottom": 10, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "3c8aff33052b4c9a99e6292cea5b487b", - "uuidPlanMaster": "bbd6dc765867466ca2a415525f5bdbdd", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H9 - 16, T5", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 2, - "HoleCollective": "9,10,11,12,13,14,15,16", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "1e6c155d621745c9bb8d14ac5107d999", - "uuidPlanMaster": "bbd6dc765867466ca2a415525f5bdbdd", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H49 - 56, T2", - "Dosage": 25, - "AssistA": " 吹样(150ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 7, - "HoleCollective": "49,50,51,52,53,54,55,56", - "MixCount": 0, - "HeightFromBottom": 10, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "3b526daa39a44212b5c068fdc299feab", - "uuidPlanMaster": "bbd6dc765867466ca2a415525f5bdbdd", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H9 - 16, T5", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 2, - "HoleCollective": "9,10,11,12,13,14,15,16", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "8447482b97254ce18f4ab33b7e353123", - "uuidPlanMaster": "bbd6dc765867466ca2a415525f5bdbdd", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H57 - 64, T2", - "Dosage": 25, - "AssistA": " 吹样(150ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 8, - "HoleCollective": "57,58,59,60,61,62,63,64", - "MixCount": 0, - "HeightFromBottom": 10, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "17729aee33f942f98711f6121f79990c", - "uuidPlanMaster": "bbd6dc765867466ca2a415525f5bdbdd", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H9 - 16, T5", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 2, - "HoleCollective": "9,10,11,12,13,14,15,16", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "7738e4709e0a4327ae441e14886865b2", - "uuidPlanMaster": "bbd6dc765867466ca2a415525f5bdbdd", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H65 - 72, T2", - "Dosage": 25, - "AssistA": " 吹样(150ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 9, - "HoleCollective": "65,66,67,68,69,70,71,72", - "MixCount": 0, - "HeightFromBottom": 10, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "89acabf30e4f44aaa13fd5dcf6788f00", - "uuidPlanMaster": "bbd6dc765867466ca2a415525f5bdbdd", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H9 - 16, T5", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 2, - "HoleCollective": "9,10,11,12,13,14,15,16", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "e96a3673fa36401dae12e880d54f1a3e", - "uuidPlanMaster": "bbd6dc765867466ca2a415525f5bdbdd", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H73 - 80, T2", - "Dosage": 25, - "AssistA": " 吹样(150ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 10, - "HoleCollective": "73,74,75,76,77,78,79,80", - "MixCount": 0, - "HeightFromBottom": 10, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "6c75cfeacd3b4fb6a993416d174eca88", - "uuidPlanMaster": "bbd6dc765867466ca2a415525f5bdbdd", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H9 - 16, T5", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 2, - "HoleCollective": "9,10,11,12,13,14,15,16", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "dde0fef2ca0b4bf7a067d818dd6219a0", - "uuidPlanMaster": "bbd6dc765867466ca2a415525f5bdbdd", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H81 - 88, T2", - "Dosage": 25, - "AssistA": " 吹样(150ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 11, - "HoleCollective": "81,82,83,84,85,86,87,88", - "MixCount": 0, - "HeightFromBottom": 10, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "8cd8286678b343b082a46b1ad8c3eb7d", - "uuidPlanMaster": "bbd6dc765867466ca2a415525f5bdbdd", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T6", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 6, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "a904d06dce564c0fbdecb7d460070c1b", - "uuidPlanMaster": "bbd6dc765867466ca2a415525f5bdbdd", - "Axis": "Left", - "ActOn": "Load", - "Place": "H33 - 40, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 5, - "HoleCollective": "33,34,35,36,37,38,39,40", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "918de5e5b75746138c3430b708bd9058", - "uuidPlanMaster": "bbd6dc765867466ca2a415525f5bdbdd", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H17 - 24, T5", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "17,18,19,20,21,22,23,24", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "82a0b7ff62eb45fba09fd44c30781c3d", - "uuidPlanMaster": "bbd6dc765867466ca2a415525f5bdbdd", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1 - 8, T2", - "Dosage": 25, - "AssistA": " 吹样(150ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 10, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "de6415addac44fe5997294d32543eab6", - "uuidPlanMaster": "bbd6dc765867466ca2a415525f5bdbdd", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H17 - 24, T5", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "17,18,19,20,21,22,23,24", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "223bc91726af43d5b7ab163046278dd1", - "uuidPlanMaster": "bbd6dc765867466ca2a415525f5bdbdd", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H9 - 16, T2", - "Dosage": 25, - "AssistA": " 吹样(150ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 2, - "HoleCollective": "9,10,11,12,13,14,15,16", - "MixCount": 0, - "HeightFromBottom": 10, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "b3954f4751a24534a970e80366cfeb9b", - "uuidPlanMaster": "bbd6dc765867466ca2a415525f5bdbdd", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H17 - 24, T5", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "17,18,19,20,21,22,23,24", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "f0ea453e6eaf47b88ca0ff0b7bde3d1b", - "uuidPlanMaster": "bbd6dc765867466ca2a415525f5bdbdd", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H17 - 24, T2", - "Dosage": 25, - "AssistA": " 吹样(150ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "17,18,19,20,21,22,23,24", - "MixCount": 0, - "HeightFromBottom": 10, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "8c472c41a87a4326aad2cad929d05389", - "uuidPlanMaster": "bbd6dc765867466ca2a415525f5bdbdd", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H17 - 24, T5", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "17,18,19,20,21,22,23,24", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "c2f61c630b774f9892c9a83a6d7ce8e6", - "uuidPlanMaster": "bbd6dc765867466ca2a415525f5bdbdd", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H25 - 32, T2", - "Dosage": 25, - "AssistA": " 吹样(150ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 4, - "HoleCollective": "25,26,27,28,29,30,31,32", - "MixCount": 0, - "HeightFromBottom": 10, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "a7b49fa4299d4e0898c0f4ba7775284f", - "uuidPlanMaster": "bbd6dc765867466ca2a415525f5bdbdd", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H17 - 24, T5", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "17,18,19,20,21,22,23,24", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "416b9e6c6fab496ab6ffda6d1e575112", - "uuidPlanMaster": "bbd6dc765867466ca2a415525f5bdbdd", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H33 - 40, T2", - "Dosage": 25, - "AssistA": " 吹样(150ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 5, - "HoleCollective": "33,34,35,36,37,38,39,40", - "MixCount": 0, - "HeightFromBottom": 10, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "82ed6931257044989a75801e685677d9", - "uuidPlanMaster": "bbd6dc765867466ca2a415525f5bdbdd", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H17 - 24, T5", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "17,18,19,20,21,22,23,24", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "a132e9ae4443420fa7993245830fa2ba", - "uuidPlanMaster": "bbd6dc765867466ca2a415525f5bdbdd", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H41 - 48, T2", - "Dosage": 25, - "AssistA": " 吹样(150ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 6, - "HoleCollective": "41,42,43,44,45,46,47,48", - "MixCount": 0, - "HeightFromBottom": 10, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "92796e995f964fb0a880fbe1743e65fd", - "uuidPlanMaster": "bbd6dc765867466ca2a415525f5bdbdd", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H17 - 24, T5", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "17,18,19,20,21,22,23,24", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "1c0fee9d4a4545d49e09b59063b024b4", - "uuidPlanMaster": "bbd6dc765867466ca2a415525f5bdbdd", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H49 - 56, T2", - "Dosage": 25, - "AssistA": " 吹样(150ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 7, - "HoleCollective": "49,50,51,52,53,54,55,56", - "MixCount": 0, - "HeightFromBottom": 10, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "034d285e53d84764833cde040e73c2b8", - "uuidPlanMaster": "bbd6dc765867466ca2a415525f5bdbdd", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H17 - 24, T5", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "17,18,19,20,21,22,23,24", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "fc545d20c5784edd90ce4c6d5f9d0f28", - "uuidPlanMaster": "bbd6dc765867466ca2a415525f5bdbdd", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H57 - 64, T2", - "Dosage": 25, - "AssistA": " 吹样(150ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 8, - "HoleCollective": "57,58,59,60,61,62,63,64", - "MixCount": 0, - "HeightFromBottom": 10, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "8505c78d0a18433b8ae4192fb7c8a457", - "uuidPlanMaster": "bbd6dc765867466ca2a415525f5bdbdd", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H17 - 24, T5", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "17,18,19,20,21,22,23,24", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "9f351e486bef41129e5cb68f78cf8f6a", - "uuidPlanMaster": "bbd6dc765867466ca2a415525f5bdbdd", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H65 - 72, T2", - "Dosage": 25, - "AssistA": " 吹样(150ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 9, - "HoleCollective": "65,66,67,68,69,70,71,72", - "MixCount": 0, - "HeightFromBottom": 10, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "558aaf9ef9304f14aae73fc327ef74e3", - "uuidPlanMaster": "bbd6dc765867466ca2a415525f5bdbdd", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H17 - 24, T5", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "17,18,19,20,21,22,23,24", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "fb58c4928ee74d639b51564a8951f0fa", - "uuidPlanMaster": "bbd6dc765867466ca2a415525f5bdbdd", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H73 - 80, T2", - "Dosage": 25, - "AssistA": " 吹样(150ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 10, - "HoleCollective": "73,74,75,76,77,78,79,80", - "MixCount": 0, - "HeightFromBottom": 10, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "0177ce8b421b4e2b9d831f4e96882305", - "uuidPlanMaster": "bbd6dc765867466ca2a415525f5bdbdd", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H17 - 24, T5", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "17,18,19,20,21,22,23,24", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "306b68bcdf8140e9bd2c4ed2b5091eb3", - "uuidPlanMaster": "bbd6dc765867466ca2a415525f5bdbdd", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H81 - 88, T2", - "Dosage": 25, - "AssistA": " 吹样(150ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 11, - "HoleCollective": "81,82,83,84,85,86,87,88", - "MixCount": 0, - "HeightFromBottom": 10, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "3460b13048004da8a33d9342b18e70e2", - "uuidPlanMaster": "bbd6dc765867466ca2a415525f5bdbdd", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T6", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 6, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "5ee1e1a7361742d9855a69b5469de7fa", - "uuidPlanMaster": "f7282ecbfee44e91b05cefbc1beac1ae", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1 - 8, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "b413ef56f61a4e0296547a96ec4f3d82", - "uuidPlanMaster": "f7282ecbfee44e91b05cefbc1beac1ae", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H1 - 8, T5", - "Dosage": 300, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "446f02939a774ae185a53fe10a4c8069", - "uuidPlanMaster": "f7282ecbfee44e91b05cefbc1beac1ae", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1 - 8, T2", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "dc5c4b4a14534cb9a9df0e1774e47dee", - "uuidPlanMaster": "f7282ecbfee44e91b05cefbc1beac1ae", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H9 - 16, T2", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 2, - "HoleCollective": "9,10,11,12,13,14,15,16", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "51ffddaf04ff46679f97c1c42a25d456", - "uuidPlanMaster": "f7282ecbfee44e91b05cefbc1beac1ae", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H17 - 24, T2", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "17,18,19,20,21,22,23,24", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "5224c82a92b04b06b9790be3fd2eacaf", - "uuidPlanMaster": "f7282ecbfee44e91b05cefbc1beac1ae", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H25 - 32, T2", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 4, - "HoleCollective": "25,26,27,28,29,30,31,32", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "a0e97a364e5d4b11894b19954a6e023b", - "uuidPlanMaster": "f7282ecbfee44e91b05cefbc1beac1ae", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H33 - 40, T2", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 5, - "HoleCollective": "33,34,35,36,37,38,39,40", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "6d1611be024346cbaed91dc887b21695", - "uuidPlanMaster": "f7282ecbfee44e91b05cefbc1beac1ae", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H41 - 48, T2", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 6, - "HoleCollective": "41,42,43,44,45,46,47,48", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "1c453b2f1f8f4b3a95ada9dca41888b0", - "uuidPlanMaster": "f7282ecbfee44e91b05cefbc1beac1ae", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H49 - 56, T2", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 7, - "HoleCollective": "49,50,51,52,53,54,55,56", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "aa43f09e721e4b5c8d4a1502155d2b9c", - "uuidPlanMaster": "f7282ecbfee44e91b05cefbc1beac1ae", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H57 - 64, T2", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 8, - "HoleCollective": "57,58,59,60,61,62,63,64", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "f1c11318b59c4e9f847c80504b0385eb", - "uuidPlanMaster": "f7282ecbfee44e91b05cefbc1beac1ae", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H65 - 72, T2", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 9, - "HoleCollective": "65,66,67,68,69,70,71,72", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "88b06e6b08824476a1a82d309f1c5419", - "uuidPlanMaster": "f7282ecbfee44e91b05cefbc1beac1ae", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H73 - 80, T2", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 10, - "HoleCollective": "73,74,75,76,77,78,79,80", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "a52dad9236ca4976a09b601b075d381f", - "uuidPlanMaster": "f7282ecbfee44e91b05cefbc1beac1ae", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H81 - 88, T2", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 11, - "HoleCollective": "81,82,83,84,85,86,87,88", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "a50f1f5cecdb4cbf98b37f35b2b6a357", - "uuidPlanMaster": "f7282ecbfee44e91b05cefbc1beac1ae", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H89 - 96, T2", - "Dosage": 25, - "AssistA": " 吹样(10ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 12, - "HoleCollective": "89,90,91,92,93,94,95,96", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "4e1c87fdc92a49a7bbe0a28cc2cda88f", - "uuidPlanMaster": "f7282ecbfee44e91b05cefbc1beac1ae", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H1 - 8, T5", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "202e0f3e3a574e92b0a4b716e8aa5410", - "uuidPlanMaster": "f7282ecbfee44e91b05cefbc1beac1ae", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H89 - 96, T2", - "Dosage": 25, - "AssistA": " 吹样(10ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 12, - "HoleCollective": "89,90,91,92,93,94,95,96", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "4d9d62dad9f14960ba45d81f5a5c755e", - "uuidPlanMaster": "f7282ecbfee44e91b05cefbc1beac1ae", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T6", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 6, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "ffc09f4a9e7542c2aa92a172a1665f76", - "uuidPlanMaster": "f7282ecbfee44e91b05cefbc1beac1ae", - "Axis": "Left", - "ActOn": "Load", - "Place": "H16 - 16, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 2, - "HoleCollective": "16", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "42b5346528fc4310a56d354fdf1489c0", - "uuidPlanMaster": "f7282ecbfee44e91b05cefbc1beac1ae", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H0 - 4, T3", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "0,0,0,0,1,2,3,4", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "152483229bec4892bc7895d1a8beefe5", - "uuidPlanMaster": "f7282ecbfee44e91b05cefbc1beac1ae", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1 - 8, T2", - "Dosage": 25, - "AssistA": " 吹样(10ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "4fe51957732348b3b1c29cdee95c0d17", - "uuidPlanMaster": "f7282ecbfee44e91b05cefbc1beac1ae", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T6", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 6, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "b4d54f43b2ed4559ba0ca8ef3dccd01e", - "uuidPlanMaster": "f7282ecbfee44e91b05cefbc1beac1ae", - "Axis": "Left", - "ActOn": "Load", - "Place": "H0 - 16, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 7, - "HoleColum": 2, - "HoleCollective": "0,0,0,0,0,0,15,16", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "0ba51dae872c4bc8bc2d489a0234dae3", - "uuidPlanMaster": "f7282ecbfee44e91b05cefbc1beac1ae", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H0 - 4, T3", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 1, - "HoleCollective": "0,0,0,0,0,2,3,4", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "9aad3390e6924673a0a93b98a3a1d480", - "uuidPlanMaster": "f7282ecbfee44e91b05cefbc1beac1ae", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 8, T2", - "Dosage": 25, - "AssistA": " 吹样(10ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 1, - "HoleCollective": "0,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "bacfb9c5dba64786b2b8f2096e65fca2", - "uuidPlanMaster": "f7282ecbfee44e91b05cefbc1beac1ae", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T6", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 6, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "58370b26a75b4c32bd10b40cbfa3928d", - "uuidPlanMaster": "f7282ecbfee44e91b05cefbc1beac1ae", - "Axis": "Left", - "ActOn": "Load", - "Place": "H0 - 16, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 6, - "HoleColum": 2, - "HoleCollective": "0,0,0,0,0,14,15,16", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "f3f63ea73249457d84f54a5544ee2c93", - "uuidPlanMaster": "f7282ecbfee44e91b05cefbc1beac1ae", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H0 - 4, T3", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 1, - "HoleCollective": "0,0,0,0,0,0,3,4", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "a873e0aab63d4fee9cd5c592c2c6a60a", - "uuidPlanMaster": "f7282ecbfee44e91b05cefbc1beac1ae", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 8, T2", - "Dosage": 25, - "AssistA": " 吹样(10ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 1, - "HoleCollective": "0,0,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "039d59f515ec4977a06f453dff420285", - "uuidPlanMaster": "f7282ecbfee44e91b05cefbc1beac1ae", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T6", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 6, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "79f56e0c93c64acc8afcd9b6d516d13c", - "uuidPlanMaster": "f7282ecbfee44e91b05cefbc1beac1ae", - "Axis": "Left", - "ActOn": "Load", - "Place": "H0 - 16, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 2, - "HoleCollective": "0,0,0,0,13,14,15,16", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "738dbf37ba3248159790795403877b7b", - "uuidPlanMaster": "f7282ecbfee44e91b05cefbc1beac1ae", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H4 - 4, T3", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 1, - "HoleCollective": "4", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "47b3601c432948c7abe97d12f32d15ae", - "uuidPlanMaster": "f7282ecbfee44e91b05cefbc1beac1ae", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H0 - 8, T2", - "Dosage": 25, - "AssistA": " 吹样(10ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 1, - "HoleCollective": "0,0,0,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "9105250a301346f4ba948a979cd0bf4e", - "uuidPlanMaster": "f7282ecbfee44e91b05cefbc1beac1ae", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T6", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 6, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "5ddfe5c25f39422bad1ae419b82416e7", - "uuidPlanMaster": "f7282ecbfee44e91b05cefbc1beac1ae", - "Axis": "Left", - "ActOn": "Load", - "Place": "H0 - 16, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 2, - "HoleCollective": "0,0,0,12,13,14,15,16", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "02899cc898e54883a3742ecd501ac372", - "uuidPlanMaster": "f7282ecbfee44e91b05cefbc1beac1ae", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H0 - 8, T3", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 2, - "HoleCollective": "0,0,0,0,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "29a33c4d158f4470bb411f9dfb41c364", - "uuidPlanMaster": "f7282ecbfee44e91b05cefbc1beac1ae", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H5 - 8, T2", - "Dosage": 25, - "AssistA": " 吹样(10ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 1, - "HoleCollective": "5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "8728ff53296241fd85fc8c59b4bdd101", - "uuidPlanMaster": "f7282ecbfee44e91b05cefbc1beac1ae", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T6", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 6, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "388528a2efe3460f9f7540290a6e3858", - "uuidPlanMaster": "f7282ecbfee44e91b05cefbc1beac1ae", - "Axis": "Left", - "ActOn": "Load", - "Place": "H0 - 16, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 2, - "HoleCollective": "0,0,11,12,13,14,15,16", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "5333c4db3f25493b84cefcca83abf77d", - "uuidPlanMaster": "f7282ecbfee44e91b05cefbc1beac1ae", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H0 - 8, T3", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 2, - "HoleCollective": "0,0,0,0,0,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "22f3e5bf8e1a4b5ba08fb41076f630c4", - "uuidPlanMaster": "f7282ecbfee44e91b05cefbc1beac1ae", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H6 - 8, T2", - "Dosage": 25, - "AssistA": " 吹样(10ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 6, - "HoleColum": 1, - "HoleCollective": "6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "b2f945abec5942789d639b3aff03dc6b", - "uuidPlanMaster": "f7282ecbfee44e91b05cefbc1beac1ae", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T6", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 6, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "a5123948c122463c861bc0c0f4077dd6", - "uuidPlanMaster": "f7282ecbfee44e91b05cefbc1beac1ae", - "Axis": "Left", - "ActOn": "Load", - "Place": "H0 - 16, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 2, - "HoleCollective": "0,10,11,12,13,14,15,16", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "7ff98518e4124bd89cadc3730191a81a", - "uuidPlanMaster": "f7282ecbfee44e91b05cefbc1beac1ae", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H0 - 8, T3", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 2, - "HoleCollective": "0,0,0,0,0,0,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "73ea3ea7f8d64d849b1882526e3a0acf", - "uuidPlanMaster": "f7282ecbfee44e91b05cefbc1beac1ae", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H7 - 8, T2", - "Dosage": 25, - "AssistA": " 吹样(10ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 7, - "HoleColum": 1, - "HoleCollective": "7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "f558e9be05124314b57b04fc08ce1d48", - "uuidPlanMaster": "f7282ecbfee44e91b05cefbc1beac1ae", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T6", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 6, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "b7e15c00158c4fe5bcd594461a915bc3", - "uuidPlanMaster": "f7282ecbfee44e91b05cefbc1beac1ae", - "Axis": "Left", - "ActOn": "Load", - "Place": "H9 - 16, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 2, - "HoleCollective": "9,10,11,12,13,14,15,16", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "1f55416ce9934a9fa371f749edb71d32", - "uuidPlanMaster": "f7282ecbfee44e91b05cefbc1beac1ae", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H8 - 8, T3", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 2, - "HoleCollective": "8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "ee36e0fb0b8b4cd4b5c28eb706e9862a", - "uuidPlanMaster": "f7282ecbfee44e91b05cefbc1beac1ae", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H8 - 8, T2", - "Dosage": 25, - "AssistA": " 吹样(10ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 1, - "HoleCollective": "8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "9265024b9616448db35ae0b879ba72f5", - "uuidPlanMaster": "f7282ecbfee44e91b05cefbc1beac1ae", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T6", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 6, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "9e90db6d685d4d91957f7b8306539072", - "uuidPlanMaster": "f7282ecbfee44e91b05cefbc1beac1ae", - "Axis": "Left", - "ActOn": "Load", - "Place": "H17 - 24, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "17,18,19,20,21,22,23,24", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "e04753033efb4df08abecf6153d48394", - "uuidPlanMaster": "f7282ecbfee44e91b05cefbc1beac1ae", - "Axis": "Left", - "ActOn": "Blending", - "Place": "H1 - 8, T2", - "Dosage": 40, - "AssistA": " 加样(25ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 10, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "22d1e8f666b6417fb5ce95a418f131c0", - "uuidPlanMaster": "f7282ecbfee44e91b05cefbc1beac1ae", - "Axis": "Left", - "ActOn": "Blending", - "Place": "H9 - 16, T2", - "Dosage": 40, - "AssistA": " 加样(25ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 2, - "HoleCollective": "9,10,11,12,13,14,15,16", - "MixCount": 10, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "7bad181f31564528b9b8ba007b82b42b", - "uuidPlanMaster": "f7282ecbfee44e91b05cefbc1beac1ae", - "Axis": "Left", - "ActOn": "Blending", - "Place": "H17 - 24, T2", - "Dosage": 40, - "AssistA": " 加样(25ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "17,18,19,20,21,22,23,24", - "MixCount": 10, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "9a850b4f173e4306afb504bd354035bb", - "uuidPlanMaster": "f7282ecbfee44e91b05cefbc1beac1ae", - "Axis": "Left", - "ActOn": "Blending", - "Place": "H25 - 32, T2", - "Dosage": 40, - "AssistA": " 加样(25ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 4, - "HoleCollective": "25,26,27,28,29,30,31,32", - "MixCount": 10, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "7e21ddb2799d4ae5ac077c41da79a868", - "uuidPlanMaster": "f7282ecbfee44e91b05cefbc1beac1ae", - "Axis": "Left", - "ActOn": "Blending", - "Place": "H33 - 40, T2", - "Dosage": 40, - "AssistA": " 加样(25ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 5, - "HoleCollective": "33,34,35,36,37,38,39,40", - "MixCount": 10, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "50817a7815c6433792ffd06b863f89a1", - "uuidPlanMaster": "f7282ecbfee44e91b05cefbc1beac1ae", - "Axis": "Left", - "ActOn": "Blending", - "Place": "H41 - 48, T2", - "Dosage": 40, - "AssistA": " 加样(25ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 6, - "HoleCollective": "41,42,43,44,45,46,47,48", - "MixCount": 10, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "47965cd9df164358b7714243d2bb2f94", - "uuidPlanMaster": "f7282ecbfee44e91b05cefbc1beac1ae", - "Axis": "Left", - "ActOn": "Blending", - "Place": "H49 - 56, T2", - "Dosage": 40, - "AssistA": " 加样(25ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 7, - "HoleCollective": "49,50,51,52,53,54,55,56", - "MixCount": 10, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "ddfdb92ec12949be9d0c04160e0b2039", - "uuidPlanMaster": "f7282ecbfee44e91b05cefbc1beac1ae", - "Axis": "Left", - "ActOn": "Blending", - "Place": "H57 - 64, T2", - "Dosage": 40, - "AssistA": " 加样(25ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 8, - "HoleCollective": "57,58,59,60,61,62,63,64", - "MixCount": 10, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "aec511109ff4465cb665163d40f4f761", - "uuidPlanMaster": "f7282ecbfee44e91b05cefbc1beac1ae", - "Axis": "Left", - "ActOn": "Blending", - "Place": "H65 - 72, T2", - "Dosage": 40, - "AssistA": " 加样(25ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 9, - "HoleCollective": "65,66,67,68,69,70,71,72", - "MixCount": 10, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "87c37ba5acd34fe1b880a61bd00569b2", - "uuidPlanMaster": "f7282ecbfee44e91b05cefbc1beac1ae", - "Axis": "Left", - "ActOn": "Blending", - "Place": "H73 - 80, T2", - "Dosage": 40, - "AssistA": " 加样(25ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 10, - "HoleCollective": "73,74,75,76,77,78,79,80", - "MixCount": 10, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "6d32dc4a412c4e3e8100d748f04cc7fd", - "uuidPlanMaster": "f7282ecbfee44e91b05cefbc1beac1ae", - "Axis": "Left", - "ActOn": "Blending", - "Place": "H81 - 88, T2", - "Dosage": 40, - "AssistA": " 加样(25ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 11, - "HoleCollective": "81,82,83,84,85,86,87,88", - "MixCount": 10, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "6349776c416148d0a61ad1422e5b283f", - "uuidPlanMaster": "f7282ecbfee44e91b05cefbc1beac1ae", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T6", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 6, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "2f3105100a8c4664a3156b352b5fd7a2", - "uuidPlanMaster": "f7282ecbfee44e91b05cefbc1beac1ae", - "Axis": "Left", - "ActOn": "Load", - "Place": "H25 - 32, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 4, - "HoleCollective": "25,26,27,28,29,30,31,32", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "e47d1e9103a441c3a1d5c11db7f72be6", - "uuidPlanMaster": "f7282ecbfee44e91b05cefbc1beac1ae", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H9 - 16, T5", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 2, - "HoleCollective": "9,10,11,12,13,14,15,16", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "836aec8822ea441cb9244fa7176d70bc", - "uuidPlanMaster": "f7282ecbfee44e91b05cefbc1beac1ae", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1 - 8, T2", - "Dosage": 25, - "AssistA": " 吹样(50ul)", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 10, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "9f4a8a8e332d4ac7b253f5f6e9b663c5", - "uuidPlanMaster": "f7282ecbfee44e91b05cefbc1beac1ae", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H9 - 16, T5", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 2, - "HoleCollective": "9,10,11,12,13,14,15,16", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "b3a5af8622b54d65a81f8ef44b036343", - "uuidPlanMaster": "f7282ecbfee44e91b05cefbc1beac1ae", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H9 - 16, T2", - "Dosage": 25, - "AssistA": " 吹样(50ul)", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 2, - "HoleCollective": "9,10,11,12,13,14,15,16", - "MixCount": 0, - "HeightFromBottom": 10, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "713e5bdebe4e4a7c85d109348d78d2ea", - "uuidPlanMaster": "f7282ecbfee44e91b05cefbc1beac1ae", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H9 - 16, T5", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 2, - "HoleCollective": "9,10,11,12,13,14,15,16", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "1c8b5532f6c5486e934c7c2f5e4046b2", - "uuidPlanMaster": "f7282ecbfee44e91b05cefbc1beac1ae", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H17 - 24, T2", - "Dosage": 25, - "AssistA": " 吹样(50ul)", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "17,18,19,20,21,22,23,24", - "MixCount": 0, - "HeightFromBottom": 10, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "dc81d62c4b7b46a5820feab4222dedba", - "uuidPlanMaster": "f7282ecbfee44e91b05cefbc1beac1ae", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H9 - 16, T5", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 2, - "HoleCollective": "9,10,11,12,13,14,15,16", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "e8ae866d826e49bc98bc7054507a2105", - "uuidPlanMaster": "f7282ecbfee44e91b05cefbc1beac1ae", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H25 - 32, T2", - "Dosage": 25, - "AssistA": " 吹样(50ul)", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 4, - "HoleCollective": "25,26,27,28,29,30,31,32", - "MixCount": 0, - "HeightFromBottom": 10, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "a27f077adaef4e2cb74fc662d191d47d", - "uuidPlanMaster": "f7282ecbfee44e91b05cefbc1beac1ae", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H9 - 16, T5", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 2, - "HoleCollective": "9,10,11,12,13,14,15,16", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "3c4de21fb7d0427ea54d7233203d2312", - "uuidPlanMaster": "f7282ecbfee44e91b05cefbc1beac1ae", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H33 - 40, T2", - "Dosage": 25, - "AssistA": " 吹样(50ul)", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 5, - "HoleCollective": "33,34,35,36,37,38,39,40", - "MixCount": 0, - "HeightFromBottom": 10, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "0fc63876cf5b45fdaaf47886ef73382c", - "uuidPlanMaster": "f7282ecbfee44e91b05cefbc1beac1ae", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H9 - 16, T5", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 2, - "HoleCollective": "9,10,11,12,13,14,15,16", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "29fe81fbd337463eb781542e6158bedb", - "uuidPlanMaster": "f7282ecbfee44e91b05cefbc1beac1ae", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H41 - 48, T2", - "Dosage": 25, - "AssistA": " 吹样(50ul)", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 6, - "HoleCollective": "41,42,43,44,45,46,47,48", - "MixCount": 0, - "HeightFromBottom": 10, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "9dfd7f515dfe41eb82e3b3b0591aa30c", - "uuidPlanMaster": "f7282ecbfee44e91b05cefbc1beac1ae", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H9 - 16, T5", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 2, - "HoleCollective": "9,10,11,12,13,14,15,16", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "203e54fcd3ed4a009f6c8de555071977", - "uuidPlanMaster": "f7282ecbfee44e91b05cefbc1beac1ae", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H49 - 56, T2", - "Dosage": 25, - "AssistA": " 吹样(50ul)", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 7, - "HoleCollective": "49,50,51,52,53,54,55,56", - "MixCount": 0, - "HeightFromBottom": 10, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "0910ec4fa7e64495acc98f9d789719e1", - "uuidPlanMaster": "f7282ecbfee44e91b05cefbc1beac1ae", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H9 - 16, T5", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 2, - "HoleCollective": "9,10,11,12,13,14,15,16", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "e1df774416b64ee5ac714c47d9f6a687", - "uuidPlanMaster": "f7282ecbfee44e91b05cefbc1beac1ae", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H57 - 64, T2", - "Dosage": 25, - "AssistA": " 吹样(50ul)", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 8, - "HoleCollective": "57,58,59,60,61,62,63,64", - "MixCount": 0, - "HeightFromBottom": 10, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "bebed1dfe71e4d5e8b03ddf726207d82", - "uuidPlanMaster": "f7282ecbfee44e91b05cefbc1beac1ae", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H9 - 16, T5", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 2, - "HoleCollective": "9,10,11,12,13,14,15,16", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "602ce9c982bc40e2bd62858d1ec659e0", - "uuidPlanMaster": "f7282ecbfee44e91b05cefbc1beac1ae", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H65 - 72, T2", - "Dosage": 25, - "AssistA": " 吹样(50ul)", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 9, - "HoleCollective": "65,66,67,68,69,70,71,72", - "MixCount": 0, - "HeightFromBottom": 10, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "57d64a52ccbd4a9d9e955acb800ab1de", - "uuidPlanMaster": "f7282ecbfee44e91b05cefbc1beac1ae", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H9 - 16, T5", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 2, - "HoleCollective": "9,10,11,12,13,14,15,16", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "eceee4715c674512a44b57128eb248e6", - "uuidPlanMaster": "f7282ecbfee44e91b05cefbc1beac1ae", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H73 - 80, T2", - "Dosage": 25, - "AssistA": " 吹样(50ul)", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 10, - "HoleCollective": "73,74,75,76,77,78,79,80", - "MixCount": 0, - "HeightFromBottom": 10, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "cdcd6e6ab4964c2fb01a71d541b82f2d", - "uuidPlanMaster": "f7282ecbfee44e91b05cefbc1beac1ae", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H9 - 16, T5", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 2, - "HoleCollective": "9,10,11,12,13,14,15,16", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "37a8b63fb402464bbc964da946e050fb", - "uuidPlanMaster": "f7282ecbfee44e91b05cefbc1beac1ae", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H81 - 88, T2", - "Dosage": 25, - "AssistA": " 吹样(50ul)", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 11, - "HoleCollective": "81,82,83,84,85,86,87,88", - "MixCount": 0, - "HeightFromBottom": 10, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "e84e01f238b14bd0a6ee0d1727e4ea32", - "uuidPlanMaster": "f7282ecbfee44e91b05cefbc1beac1ae", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T6", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 6, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "499e26ed5a4f446ba4c156cd75fd78a3", - "uuidPlanMaster": "f7282ecbfee44e91b05cefbc1beac1ae", - "Axis": "Left", - "ActOn": "Load", - "Place": "H33 - 40, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 5, - "HoleCollective": "33,34,35,36,37,38,39,40", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "2c7ea047cd7546c38d0e91ba89fab27c", - "uuidPlanMaster": "f7282ecbfee44e91b05cefbc1beac1ae", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H17 - 24, T5", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "17,18,19,20,21,22,23,24", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "769dab0d637d4375a485b59991523942", - "uuidPlanMaster": "f7282ecbfee44e91b05cefbc1beac1ae", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1 - 8, T2", - "Dosage": 25, - "AssistA": " 吹样(50ul)", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 10, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "42ad2c5ff97545f1ac223014ab840fe9", - "uuidPlanMaster": "f7282ecbfee44e91b05cefbc1beac1ae", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H17 - 24, T5", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "17,18,19,20,21,22,23,24", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "efc118941bc3490ba37877bab5924ecb", - "uuidPlanMaster": "f7282ecbfee44e91b05cefbc1beac1ae", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H9 - 16, T2", - "Dosage": 25, - "AssistA": " 吹样(50ul)", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 2, - "HoleCollective": "9,10,11,12,13,14,15,16", - "MixCount": 0, - "HeightFromBottom": 10, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "7b466365705e41c4839916a805f27217", - "uuidPlanMaster": "f7282ecbfee44e91b05cefbc1beac1ae", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H17 - 24, T5", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "17,18,19,20,21,22,23,24", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "82506b565f184bc7bb737fba28755a17", - "uuidPlanMaster": "f7282ecbfee44e91b05cefbc1beac1ae", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H17 - 24, T2", - "Dosage": 25, - "AssistA": " 吹样(50ul)", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "17,18,19,20,21,22,23,24", - "MixCount": 0, - "HeightFromBottom": 10, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "672edcfb5a754865ae6261b8b0a977d5", - "uuidPlanMaster": "f7282ecbfee44e91b05cefbc1beac1ae", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H17 - 24, T5", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "17,18,19,20,21,22,23,24", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "f6cc900b987c4daf9e9f6b60dc6fb6fc", - "uuidPlanMaster": "f7282ecbfee44e91b05cefbc1beac1ae", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H25 - 32, T2", - "Dosage": 25, - "AssistA": " 吹样(50ul)", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 4, - "HoleCollective": "25,26,27,28,29,30,31,32", - "MixCount": 0, - "HeightFromBottom": 10, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "a610bf182ccb4e348ea940c8df0d6116", - "uuidPlanMaster": "f7282ecbfee44e91b05cefbc1beac1ae", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H17 - 24, T5", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "17,18,19,20,21,22,23,24", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "d7fc74a98b5e4b8c809226e3170ad7c5", - "uuidPlanMaster": "f7282ecbfee44e91b05cefbc1beac1ae", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H33 - 40, T2", - "Dosage": 25, - "AssistA": " 吹样(50ul)", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 5, - "HoleCollective": "33,34,35,36,37,38,39,40", - "MixCount": 0, - "HeightFromBottom": 10, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "cf3d1145be324b0b8e3c9039980aee1c", - "uuidPlanMaster": "f7282ecbfee44e91b05cefbc1beac1ae", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H17 - 24, T5", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "17,18,19,20,21,22,23,24", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "84810fdf518742f3905f93ba4118efec", - "uuidPlanMaster": "f7282ecbfee44e91b05cefbc1beac1ae", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H41 - 48, T2", - "Dosage": 25, - "AssistA": " 吹样(50ul)", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 6, - "HoleCollective": "41,42,43,44,45,46,47,48", - "MixCount": 0, - "HeightFromBottom": 10, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "6b67eb046e0c40c19fe25e0011fb9b3d", - "uuidPlanMaster": "f7282ecbfee44e91b05cefbc1beac1ae", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H17 - 24, T5", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "17,18,19,20,21,22,23,24", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "f46a1815dec6437abd862830f85dd7cc", - "uuidPlanMaster": "f7282ecbfee44e91b05cefbc1beac1ae", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H49 - 56, T2", - "Dosage": 25, - "AssistA": " 吹样(50ul)", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 7, - "HoleCollective": "49,50,51,52,53,54,55,56", - "MixCount": 0, - "HeightFromBottom": 10, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "4c9ee5119bcf4a238d171546da9cc9be", - "uuidPlanMaster": "f7282ecbfee44e91b05cefbc1beac1ae", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H17 - 24, T5", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "17,18,19,20,21,22,23,24", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "bad7227310274031989a9d5cff55e262", - "uuidPlanMaster": "f7282ecbfee44e91b05cefbc1beac1ae", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H57 - 64, T2", - "Dosage": 25, - "AssistA": " 吹样(50ul)", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 8, - "HoleCollective": "57,58,59,60,61,62,63,64", - "MixCount": 0, - "HeightFromBottom": 10, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "e0903bb1e9c34e4fa24ff88ebf3c5a6a", - "uuidPlanMaster": "f7282ecbfee44e91b05cefbc1beac1ae", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H17 - 24, T5", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "17,18,19,20,21,22,23,24", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "418901c8f38a412d9b80ee168d6b18e6", - "uuidPlanMaster": "f7282ecbfee44e91b05cefbc1beac1ae", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H65 - 72, T2", - "Dosage": 25, - "AssistA": " 吹样(50ul)", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 9, - "HoleCollective": "65,66,67,68,69,70,71,72", - "MixCount": 0, - "HeightFromBottom": 10, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "a40faa4b4c4540c1b64d4d7075464647", - "uuidPlanMaster": "f7282ecbfee44e91b05cefbc1beac1ae", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H17 - 24, T5", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "17,18,19,20,21,22,23,24", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "85a55cf706e8480586b2f5764d6bf9fb", - "uuidPlanMaster": "f7282ecbfee44e91b05cefbc1beac1ae", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H73 - 80, T2", - "Dosage": 25, - "AssistA": " 吹样(50ul)", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 10, - "HoleCollective": "73,74,75,76,77,78,79,80", - "MixCount": 0, - "HeightFromBottom": 10, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "d9a0878215254831a8af24661452892e", - "uuidPlanMaster": "f7282ecbfee44e91b05cefbc1beac1ae", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H17 - 24, T5", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "17,18,19,20,21,22,23,24", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "6774edfd85ee4596999e88f1011949c0", - "uuidPlanMaster": "f7282ecbfee44e91b05cefbc1beac1ae", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H81 - 88, T2", - "Dosage": 25, - "AssistA": " 吹样(50ul)", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 11, - "HoleCollective": "81,82,83,84,85,86,87,88", - "MixCount": 0, - "HeightFromBottom": 10, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "b7738161116d43eb886e59893231c14e", - "uuidPlanMaster": "f7282ecbfee44e91b05cefbc1beac1ae", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H17 - 24, T5", - "Dosage": 25, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 5, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "17,18,19,20,21,22,23,24", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "2192881531284129b26948476d55c0b0", - "uuidPlanMaster": "f7282ecbfee44e91b05cefbc1beac1ae", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H89 - 96, T2", - "Dosage": 25, - "AssistA": " 吹样(50ul)", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 12, - "HoleCollective": "89,90,91,92,93,94,95,96", - "MixCount": 0, - "HeightFromBottom": 10, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "b2f0553a705d4f8bbe73fce8a0222268", - "uuidPlanMaster": "f7282ecbfee44e91b05cefbc1beac1ae", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T6", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 6, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "5606851469d24c879917a96782bd295c", - "uuidPlanMaster": "196e0d757c574020932b64b69e88fac9", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1 - 8, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "50ccdcfaacc94327b2af33bf5c35dc6d", - "uuidPlanMaster": "196e0d757c574020932b64b69e88fac9", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H1 - 8, T4", - "Dosage": 300, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "e2c0fffc25264d1692edc9fb3302576a", - "uuidPlanMaster": "196e0d757c574020932b64b69e88fac9", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1 - 15, T5", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,3,5,7,9,11,13,15", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "fa50010421734c079ea27e19528a1417", - "uuidPlanMaster": "196e0d757c574020932b64b69e88fac9", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H2 - 16, T5", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 1, - "HoleCollective": "2,4,6,8,10,12,14,16", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "0308ce3fbb5244b7bf4f31f422a1bfda", - "uuidPlanMaster": "196e0d757c574020932b64b69e88fac9", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H17 - 31, T5", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 2, - "HoleCollective": "17,19,21,23,25,27,29,31", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "8d11e0e168f64a3e8e12b27b045639ce", - "uuidPlanMaster": "196e0d757c574020932b64b69e88fac9", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H18 - 32, T5", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 2, - "HoleCollective": "18,20,22,24,26,28,30,32", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "949ef5c34e024d6eb1cbeab2f930001b", - "uuidPlanMaster": "196e0d757c574020932b64b69e88fac9", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H33 - 47, T5", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "33,35,37,39,41,43,45,47", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "7f4d66e9be354326a997c13977cd5a39", - "uuidPlanMaster": "196e0d757c574020932b64b69e88fac9", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H34 - 48, T5", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 3, - "HoleCollective": "34,36,38,40,42,44,46,48", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "c313422b384045aba06e76d47fab10e1", - "uuidPlanMaster": "196e0d757c574020932b64b69e88fac9", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H49 - 63, T5", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 4, - "HoleCollective": "49,51,53,55,57,59,61,63", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "84c9bfe62a144c4f885c31da2f3f860c", - "uuidPlanMaster": "196e0d757c574020932b64b69e88fac9", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H50 - 64, T5", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 4, - "HoleCollective": "50,52,54,56,58,60,62,64", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "4b48726521db478fac6d782fb8a2a96e", - "uuidPlanMaster": "196e0d757c574020932b64b69e88fac9", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H65 - 79, T5", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 5, - "HoleCollective": "65,67,69,71,73,75,77,79", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "207f85b339b04b21afb0f2c5e536d7f1", - "uuidPlanMaster": "196e0d757c574020932b64b69e88fac9", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H66 - 80, T5", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 5, - "HoleCollective": "66,68,70,72,74,76,78,80", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "2053da3d071c4bbdbe89bffa23159f9c", - "uuidPlanMaster": "196e0d757c574020932b64b69e88fac9", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H81 - 95, T5", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 6, - "HoleCollective": "81,83,85,87,89,91,93,95", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "338d4f2391b14d5e91c571460e00424e", - "uuidPlanMaster": "196e0d757c574020932b64b69e88fac9", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H82 - 96, T5", - "Dosage": 25, - "AssistA": " 吹样(50ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 6, - "HoleCollective": "82,84,86,88,90,92,94,96", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "a0039bc6427c457f8becaa560b21fbfb", - "uuidPlanMaster": "196e0d757c574020932b64b69e88fac9", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H1 - 8, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "f2a50c0ee9ef45059ca3831bc51ca1b1", - "uuidPlanMaster": "1c89eba44fa44141ba69894fe8f9da26", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1 - 8, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": 0, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "b3ccb79018f645b798e83273ad1c0b29", - "uuidPlanMaster": "1c89eba44fa44141ba69894fe8f9da26", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H1 - 8, T2", - "Dosage": 50, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": 0, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "af4c0d4f0cd646edb2001e13d229de5b", - "uuidPlanMaster": "1c89eba44fa44141ba69894fe8f9da26", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1 - 8, T5", - "Dosage": 50, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": 0, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "52331048aa924861a5b3779f63897176", - "uuidPlanMaster": "1c89eba44fa44141ba69894fe8f9da26", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T6", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 6, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": 0, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "b88a3191032949299ca2dd2f77326f2b", - "uuidPlanMaster": "1c89eba44fa44141ba69894fe8f9da26", - "Axis": "Left", - "ActOn": "Load", - "Place": "H9 - 16, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 2, - "HoleCollective": "9,10,11,12,13,14,15,16", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": 0, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "93d2ed45930b41efb25548a82adee357", - "uuidPlanMaster": "1c89eba44fa44141ba69894fe8f9da26", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H1 - 8, T2", - "Dosage": 50, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": 0, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "0a54b99e651b4c92882baeb7efa102c4", - "uuidPlanMaster": "1c89eba44fa44141ba69894fe8f9da26", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H9 - 16, T5", - "Dosage": 50, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 2, - "HoleCollective": "9,10,11,12,13,14,15,16", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": 0, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "70f20e5534284a2f806e42996dce9656", - "uuidPlanMaster": "1c89eba44fa44141ba69894fe8f9da26", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T6", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 6, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": 0, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "ffab63037d05468497bb333b24f8ec80", - "uuidPlanMaster": "1c89eba44fa44141ba69894fe8f9da26", - "Axis": "Left", - "ActOn": "Load", - "Place": "H17 - 24, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "17,18,19,20,21,22,23,24", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": 0, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "d8e03fa3cfeb49fea3afb0101aecafac", - "uuidPlanMaster": "1c89eba44fa44141ba69894fe8f9da26", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H1 - 8, T2", - "Dosage": 50, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": 0, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "568f11949e6644ae958856cfc6f9e433", - "uuidPlanMaster": "1c89eba44fa44141ba69894fe8f9da26", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H17 - 24, T5", - "Dosage": 50, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "17,18,19,20,21,22,23,24", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": 0, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "69cb16d99d344904b1a13689051de0f1", - "uuidPlanMaster": "1c89eba44fa44141ba69894fe8f9da26", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T6", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 6, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": 0, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "223f5479bfa5469793a08ed9bab795c6", - "uuidPlanMaster": "1c89eba44fa44141ba69894fe8f9da26", - "Axis": "Left", - "ActOn": "Load", - "Place": "H25 - 32, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 4, - "HoleCollective": "25,26,27,28,29,30,31,32", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": 0, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "4bd1119ff49844bdb0c0a588f315bf8b", - "uuidPlanMaster": "1c89eba44fa44141ba69894fe8f9da26", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H1 - 8, T2", - "Dosage": 50, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": 0, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "b1f9cfee513f49828f35c9ae5dc1fcbf", - "uuidPlanMaster": "1c89eba44fa44141ba69894fe8f9da26", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H25 - 32, T5", - "Dosage": 50, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 4, - "HoleCollective": "25,26,27,28,29,30,31,32", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": 0, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "d667696e5b304e6a9dce3cd4622ab450", - "uuidPlanMaster": "1c89eba44fa44141ba69894fe8f9da26", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T6", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 6, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": 0, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "61ed7ceea43442118f513bd3355d3f2a", - "uuidPlanMaster": "1c89eba44fa44141ba69894fe8f9da26", - "Axis": "Left", - "ActOn": "Load", - "Place": "H33 - 40, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 5, - "HoleCollective": "33,34,35,36,37,38,39,40", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": 0, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "f03086748b054cdcbd4430eaa94a9db6", - "uuidPlanMaster": "1c89eba44fa44141ba69894fe8f9da26", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H1 - 8, T2", - "Dosage": 50, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": 0, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "c7a9893ae850412889f830d96999dc98", - "uuidPlanMaster": "1c89eba44fa44141ba69894fe8f9da26", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H33 - 40, T5", - "Dosage": 50, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 5, - "HoleCollective": "33,34,35,36,37,38,39,40", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": 0, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "017f3513fe324a5b8c15abbe7d3c61f5", - "uuidPlanMaster": "1c89eba44fa44141ba69894fe8f9da26", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T6", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 6, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": 0, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "54a29734d8844114b621909c98aa9c61", - "uuidPlanMaster": "1c89eba44fa44141ba69894fe8f9da26", - "Axis": "Left", - "ActOn": "Load", - "Place": "H41 - 48, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 6, - "HoleCollective": "41,42,43,44,45,46,47,48", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": 0, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "b36f2a45a3264b819e0895a1a1bc04cc", - "uuidPlanMaster": "1c89eba44fa44141ba69894fe8f9da26", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H1 - 8, T2", - "Dosage": 50, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": 0, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "28b090f171574034af02a6454f407f6d", - "uuidPlanMaster": "1c89eba44fa44141ba69894fe8f9da26", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H41 - 48, T5", - "Dosage": 50, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 6, - "HoleCollective": "41,42,43,44,45,46,47,48", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": 0, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "9ba0b22450c64572b17a485e501738a4", - "uuidPlanMaster": "1c89eba44fa44141ba69894fe8f9da26", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T6", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 6, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": 0, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "51acac127702403c90fb3973524695e0", - "uuidPlanMaster": "1c89eba44fa44141ba69894fe8f9da26", - "Axis": "Left", - "ActOn": "Load", - "Place": "H49 - 56, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 7, - "HoleCollective": "49,50,51,52,53,54,55,56", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": 0, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "5bcfc504b5ef4cef846d7b571ba3468a", - "uuidPlanMaster": "1c89eba44fa44141ba69894fe8f9da26", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H1 - 8, T2", - "Dosage": 50, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": 0, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "48464f021f7e4545b0e0aef5490dd9b0", - "uuidPlanMaster": "1c89eba44fa44141ba69894fe8f9da26", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H49 - 56, T5", - "Dosage": 50, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 7, - "HoleCollective": "49,50,51,52,53,54,55,56", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": 0, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "c07c2ed2737d460296db0c00d5d1951c", - "uuidPlanMaster": "1c89eba44fa44141ba69894fe8f9da26", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T6", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 6, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": 0, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "723e892a8ba341fe8158780c65996f86", - "uuidPlanMaster": "1c89eba44fa44141ba69894fe8f9da26", - "Axis": "Left", - "ActOn": "Load", - "Place": "H57 - 64, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 8, - "HoleCollective": "57,58,59,60,61,62,63,64", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": 0, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "70af9a8e318a4bc1b5ecf5931b349b5d", - "uuidPlanMaster": "1c89eba44fa44141ba69894fe8f9da26", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H1 - 8, T2", - "Dosage": 50, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": 0, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "6934c790c544448a878c1884d5595975", - "uuidPlanMaster": "1c89eba44fa44141ba69894fe8f9da26", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H57 - 64, T5", - "Dosage": 50, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 8, - "HoleCollective": "57,58,59,60,61,62,63,64", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": 0, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "6ee5528941eb47f8af41d7a878a2ea7a", - "uuidPlanMaster": "1c89eba44fa44141ba69894fe8f9da26", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T6", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 6, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": 0, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "038c9b13761648ce96fab5fc1cc378fb", - "uuidPlanMaster": "1c89eba44fa44141ba69894fe8f9da26", - "Axis": "Left", - "ActOn": "Load", - "Place": "H65 - 72, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 9, - "HoleCollective": "65,66,67,68,69,70,71,72", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": 0, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "e017af1535734b47baf09ee32647c76c", - "uuidPlanMaster": "1c89eba44fa44141ba69894fe8f9da26", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H1 - 8, T2", - "Dosage": 50, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": 0, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "afa81ec0fce4499da46023a5d308d23b", - "uuidPlanMaster": "1c89eba44fa44141ba69894fe8f9da26", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H65 - 72, T5", - "Dosage": 50, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 9, - "HoleCollective": "65,66,67,68,69,70,71,72", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": 0, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "48bb8ea9d6cc4cdea2198d2e9fa98c14", - "uuidPlanMaster": "1c89eba44fa44141ba69894fe8f9da26", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T6", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 6, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": 0, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "adfaf0fc8826463f9cafe9ea2a8ba33f", - "uuidPlanMaster": "1c89eba44fa44141ba69894fe8f9da26", - "Axis": "Left", - "ActOn": "Load", - "Place": "H73 - 80, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 10, - "HoleCollective": "73,74,75,76,77,78,79,80", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": 0, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "9becb58a3dea426f9f3c0818d3145ad4", - "uuidPlanMaster": "1c89eba44fa44141ba69894fe8f9da26", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H1 - 8, T2", - "Dosage": 50, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": 0, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "a0fec1e76c2640dba399a197ed65be97", - "uuidPlanMaster": "1c89eba44fa44141ba69894fe8f9da26", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H73 - 80, T5", - "Dosage": 50, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 10, - "HoleCollective": "73,74,75,76,77,78,79,80", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": 0, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "20d21e1da3ca4189b7eca5ad9bdb29c0", - "uuidPlanMaster": "1c89eba44fa44141ba69894fe8f9da26", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T6", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 6, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": 0, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "838aad2709e947dc9e334d6e5b0c8d8c", - "uuidPlanMaster": "1c89eba44fa44141ba69894fe8f9da26", - "Axis": "Left", - "ActOn": "Load", - "Place": "H81 - 88, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 11, - "HoleCollective": "81,82,83,84,85,86,87,88", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": 0, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "9154ae41447c43a69abd45bfeaea83e7", - "uuidPlanMaster": "1c89eba44fa44141ba69894fe8f9da26", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H1 - 8, T2", - "Dosage": 50, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": 0, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "35b24772be5d4fe2b6b3e527150cea7b", - "uuidPlanMaster": "1c89eba44fa44141ba69894fe8f9da26", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H81 - 88, T5", - "Dosage": 50, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 11, - "HoleCollective": "81,82,83,84,85,86,87,88", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": 0, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "3c2afe30c0f84d72a2b9e84d8ff22db2", - "uuidPlanMaster": "1c89eba44fa44141ba69894fe8f9da26", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T6", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 6, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": 0, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "52c68c1abe804a798c2be75086b7ec04", - "uuidPlanMaster": "1c89eba44fa44141ba69894fe8f9da26", - "Axis": "Left", - "ActOn": "Load", - "Place": "H89 - 96, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 12, - "HoleCollective": "89,90,91,92,93,94,95,96", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": 0, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "fffcdf9f143448dcbe6f3fbfd6912835", - "uuidPlanMaster": "1c89eba44fa44141ba69894fe8f9da26", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H1 - 8, T2", - "Dosage": 50, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": 0, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "bb9094ef748743498f8151a3a73b083a", - "uuidPlanMaster": "1c89eba44fa44141ba69894fe8f9da26", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H89 - 96, T5", - "Dosage": 50, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 12, - "HoleCollective": "89,90,91,92,93,94,95,96", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": 0, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "b6758072a96548eb8d5fbb6ed030faa4", - "uuidPlanMaster": "1c89eba44fa44141ba69894fe8f9da26", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T6", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 6, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": 0, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "327a9038e02e4729b35eab4d4bbdbde2", - "uuidPlanMaster": "de7f702f473a41449ac2d974bef4f560", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1 - 8, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": 0, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "a242a67e5986465798f62633e529ca31", - "uuidPlanMaster": "de7f702f473a41449ac2d974bef4f560", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H1 - 8, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": 0, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "70b7b9183ec9419db9ed1d567c19867a", - "uuidPlanMaster": "24b0d894891841c296ccbc8740072304", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1 - 8, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": 0, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "012053abc7824a77a0f53005c7a3ce1e", - "uuidPlanMaster": "24b0d894891841c296ccbc8740072304", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "T2", - "Dosage": 5, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": 0, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "8ec0afd419b8448987708d4d84f77116", - "uuidPlanMaster": "24b0d894891841c296ccbc8740072304", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1 - 15, T4", - "Dosage": 5, - "AssistA": " 吹样(1ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,3,5,7,9,11,13,15", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": 0, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "5183d8b368a64c7988336a513156c9aa", - "uuidPlanMaster": "24b0d894891841c296ccbc8740072304", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "T2", - "Dosage": 5, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": 0, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "c87fbae9854e4cb59fc77d6a8bff853a", - "uuidPlanMaster": "24b0d894891841c296ccbc8740072304", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H2 - 16, T4", - "Dosage": 5, - "AssistA": " 吹样(1ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 1, - "HoleCollective": "2,4,6,8,10,12,14,16", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": 0, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "f3215792f0064931b9da064293429bf0", - "uuidPlanMaster": "07dad93828834d7c869782b151aac8af", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1 - 8, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": 0, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "1d04377699d64aa5bc4dd82af228007f", - "uuidPlanMaster": "07dad93828834d7c869782b151aac8af", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "T2", - "Dosage": 5, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": 0, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "85902a05c5ef4a0f9860a085ad7e4497", - "uuidPlanMaster": "07dad93828834d7c869782b151aac8af", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1 - 15, T4", - "Dosage": 5, - "AssistA": " 吹样(1ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,3,5,7,9,11,13,15", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": 0, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "4595c8042209446a9d27142bb7fbdad7", - "uuidPlanMaster": "07dad93828834d7c869782b151aac8af", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "T2", - "Dosage": 5, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": 0, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "f71420e354f14e6993709a03361fab29", - "uuidPlanMaster": "07dad93828834d7c869782b151aac8af", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H2 - 16, T4", - "Dosage": 5, - "AssistA": " 吹样(1ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 1, - "HoleCollective": "2,4,6,8,10,12,14,16", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": 0, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "7604dc13fe5949dda18be35f6d81be21", - "uuidPlanMaster": "07dad93828834d7c869782b151aac8af", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "T2", - "Dosage": 5, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": 0, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "096f7233a4f64893bc3d4131ed69afec", - "uuidPlanMaster": "07dad93828834d7c869782b151aac8af", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H17 - 31, T4", - "Dosage": 5, - "AssistA": " 吹样(1ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 2, - "HoleCollective": "17,19,21,23,25,27,29,31", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": 0, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "4a23632d6f52456788e46198f39d0430", - "uuidPlanMaster": "07dad93828834d7c869782b151aac8af", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "T2", - "Dosage": 5, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": 0, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "1d7560c6440a4883984c3fb62e02e631", - "uuidPlanMaster": "07dad93828834d7c869782b151aac8af", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H18 - 32, T4", - "Dosage": 5, - "AssistA": " 吹样(1ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 2, - "HoleCollective": "18,20,22,24,26,28,30,32", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": 0, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "7368c9f1d6c046ae8059b379b176c431", - "uuidPlanMaster": "07dad93828834d7c869782b151aac8af", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "T2", - "Dosage": 5, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": 0, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "b87fedf175dc4180b34c489e8048c8b5", - "uuidPlanMaster": "07dad93828834d7c869782b151aac8af", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H33 - 47, T4", - "Dosage": 5, - "AssistA": " 吹样(1ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "33,35,37,39,41,43,45,47", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": 0, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "31666adacf3d4a8084a424cf379873fb", - "uuidPlanMaster": "07dad93828834d7c869782b151aac8af", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "T2", - "Dosage": 5, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": 0, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "24c4c272c7b844e59e0fc49af96c1ed6", - "uuidPlanMaster": "07dad93828834d7c869782b151aac8af", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H34 - 48, T4", - "Dosage": 5, - "AssistA": " 吹样(1ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 3, - "HoleCollective": "34,36,38,40,42,44,46,48", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": 0, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "57c792fabb864904a7e1b95646961bcc", - "uuidPlanMaster": "07dad93828834d7c869782b151aac8af", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "T2", - "Dosage": 5, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": 0, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "778736fc93244ceaaeecae9269ac9122", - "uuidPlanMaster": "07dad93828834d7c869782b151aac8af", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H49 - 63, T4", - "Dosage": 5, - "AssistA": " 吹样(1ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 4, - "HoleCollective": "49,51,53,55,57,59,61,63", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": 0, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "d99d65630c6c410c91120e99a70d26bf", - "uuidPlanMaster": "07dad93828834d7c869782b151aac8af", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "T2", - "Dosage": 5, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": 0, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "1db683bfa8c749b882152d78930d577f", - "uuidPlanMaster": "07dad93828834d7c869782b151aac8af", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H50 - 64, T4", - "Dosage": 5, - "AssistA": " 吹样(1ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 4, - "HoleCollective": "50,52,54,56,58,60,62,64", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": 0, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "2b4aad131ed448a8a3f2efe35cdafa7f", - "uuidPlanMaster": "07dad93828834d7c869782b151aac8af", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "T2", - "Dosage": 5, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": 0, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "dfc8b7f4030047c2902b207268d18402", - "uuidPlanMaster": "07dad93828834d7c869782b151aac8af", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H65 - 79, T4", - "Dosage": 5, - "AssistA": " 吹样(1ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 5, - "HoleCollective": "65,67,69,71,73,75,77,79", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": 0, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "62a2ce8602da41efb6857cc58218b534", - "uuidPlanMaster": "07dad93828834d7c869782b151aac8af", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "T2", - "Dosage": 5, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": 0, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "3dd00f49f54d4dd38a2dcefb439a6338", - "uuidPlanMaster": "07dad93828834d7c869782b151aac8af", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H66 - 80, T4", - "Dosage": 5, - "AssistA": " 吹样(1ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 5, - "HoleCollective": "66,68,70,72,74,76,78,80", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": 0, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "ead9a29df6e84c3daf4569bef46ab5cb", - "uuidPlanMaster": "07dad93828834d7c869782b151aac8af", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "T2", - "Dosage": 5, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": 0, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "a3f634fe2007470391a77e01dbfaea6f", - "uuidPlanMaster": "07dad93828834d7c869782b151aac8af", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H81 - 95, T4", - "Dosage": 5, - "AssistA": " 吹样(1ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 6, - "HoleCollective": "81,83,85,87,89,91,93,95", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": 0, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "957b0a67f40440bcab0de129a0bdc601", - "uuidPlanMaster": "07dad93828834d7c869782b151aac8af", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "T2", - "Dosage": 5, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": 0, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "8b5286cced534f868847b9d9ab974718", - "uuidPlanMaster": "07dad93828834d7c869782b151aac8af", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H82 - 96, T4", - "Dosage": 5, - "AssistA": " 吹样(1ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 6, - "HoleCollective": "82,84,86,88,90,92,94,96", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": 0, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "ab542aa49c9543a8a2416a2b74501f5b", - "uuidPlanMaster": "07dad93828834d7c869782b151aac8af", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "T2", - "Dosage": 5, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": 0, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "ac8d50f16dae40b6abafeb4103ab69fb", - "uuidPlanMaster": "07dad93828834d7c869782b151aac8af", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H97 - 111, T4", - "Dosage": 5, - "AssistA": " 吹样(1ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 7, - "HoleCollective": "97,99,101,103,105,107,109,111", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": 0, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "c646dea77f17434984cecd769262e287", - "uuidPlanMaster": "07dad93828834d7c869782b151aac8af", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "T2", - "Dosage": 5, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": 0, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "ead5e5117b3a417ca8f22c068e74075c", - "uuidPlanMaster": "07dad93828834d7c869782b151aac8af", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H98 - 112, T4", - "Dosage": 5, - "AssistA": " 吹样(1ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 7, - "HoleCollective": "98,100,102,104,106,108,110,112", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": 0, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "69c1c58aa02c4528bad8ded6da5f7ade", - "uuidPlanMaster": "07dad93828834d7c869782b151aac8af", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "T2", - "Dosage": 5, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": 0, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "19030b484b8b48f4b86c87fdb162b586", - "uuidPlanMaster": "07dad93828834d7c869782b151aac8af", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H113 - 127, T4", - "Dosage": 5, - "AssistA": " 吹样(1ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 8, - "HoleCollective": "113,115,117,119,121,123,125,127", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": 0, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "81dd552b46a74914b0a4b9e89b03b2f5", - "uuidPlanMaster": "07dad93828834d7c869782b151aac8af", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "T2", - "Dosage": 5, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": 0, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "131b314a85bc45f4922ad5f8d8d64b3a", - "uuidPlanMaster": "07dad93828834d7c869782b151aac8af", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H114 - 128, T4", - "Dosage": 5, - "AssistA": " 吹样(1ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 8, - "HoleCollective": "114,116,118,120,122,124,126,128", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": 0, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "e6417f64625749d8bb539d61d0ccee2a", - "uuidPlanMaster": "07dad93828834d7c869782b151aac8af", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "T2", - "Dosage": 5, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": 0, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "2d552f08090b45b88726c50ab2553f6b", - "uuidPlanMaster": "07dad93828834d7c869782b151aac8af", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H129 - 143, T4", - "Dosage": 5, - "AssistA": " 吹样(1ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 9, - "HoleCollective": "129,131,133,135,137,139,141,143", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": 0, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "ca8055204b2b47beb01a2a7ddb5401cf", - "uuidPlanMaster": "07dad93828834d7c869782b151aac8af", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "T2", - "Dosage": 5, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": 0, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "92c3f254318a4387b43064e2f0d86737", - "uuidPlanMaster": "07dad93828834d7c869782b151aac8af", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H130 - 144, T4", - "Dosage": 5, - "AssistA": " 吹样(1ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 9, - "HoleCollective": "130,132,134,136,138,140,142,144", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": 0, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "9aabd9515e064dfda21d8ff332e56b92", - "uuidPlanMaster": "07dad93828834d7c869782b151aac8af", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "T2", - "Dosage": 5, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": 0, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "bad04c36c9e1408ab5d80f5e7277b787", - "uuidPlanMaster": "07dad93828834d7c869782b151aac8af", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H145 - 159, T4", - "Dosage": 5, - "AssistA": " 吹样(1ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 10, - "HoleCollective": "145,147,149,151,153,155,157,159", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": 0, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "d39dc227c8814effb0a1cb1eca88f671", - "uuidPlanMaster": "07dad93828834d7c869782b151aac8af", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "T2", - "Dosage": 5, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": 0, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "6f03680cc7304bd7963405988ab47dde", - "uuidPlanMaster": "07dad93828834d7c869782b151aac8af", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H146 - 160, T4", - "Dosage": 5, - "AssistA": " 吹样(1ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 10, - "HoleCollective": "146,148,150,152,154,156,158,160", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": 0, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "7221903c080b4d02b6c35d76c30355c1", - "uuidPlanMaster": "07dad93828834d7c869782b151aac8af", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "T2", - "Dosage": 5, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": 0, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "12914e53f99d4a15b4410336ec9f28c4", - "uuidPlanMaster": "07dad93828834d7c869782b151aac8af", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H161 - 175, T4", - "Dosage": 5, - "AssistA": " 吹样(1ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 11, - "HoleCollective": "161,163,165,167,169,171,173,175", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": 0, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "1b37af123d834f55a6ed66599353acfe", - "uuidPlanMaster": "07dad93828834d7c869782b151aac8af", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "T2", - "Dosage": 5, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": 0, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "915ba34241b84d429a0ab85832abd908", - "uuidPlanMaster": "07dad93828834d7c869782b151aac8af", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H162 - 176, T4", - "Dosage": 5, - "AssistA": " 吹样(1ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 11, - "HoleCollective": "162,164,166,168,170,172,174,176", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": 0, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "b05e63d654c94f3daa0f81474bb7131c", - "uuidPlanMaster": "07dad93828834d7c869782b151aac8af", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "T2", - "Dosage": 5, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": 0, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "a7d2c438c1ee4bd8b198482344f1b1b1", - "uuidPlanMaster": "07dad93828834d7c869782b151aac8af", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H177 - 191, T4", - "Dosage": 5, - "AssistA": " 吹样(1ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 12, - "HoleCollective": "177,179,181,183,185,187,189,191", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": 0, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "ef407d36dd554ddd9cde4c17263cc75c", - "uuidPlanMaster": "07dad93828834d7c869782b151aac8af", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "T2", - "Dosage": 5, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": 0, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "68429dca0db44919b731ebcc3d34458a", - "uuidPlanMaster": "07dad93828834d7c869782b151aac8af", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H178 - 192, T4", - "Dosage": 5, - "AssistA": " 吹样(1ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 12, - "HoleCollective": "178,180,182,184,186,188,190,192", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": 0, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "2ca3f8e3c65a4555aaa86569d1e3a97d", - "uuidPlanMaster": "07dad93828834d7c869782b151aac8af", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "T2", - "Dosage": 5, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": 0, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "87cf62ead8084061a8bb0e9046219014", - "uuidPlanMaster": "07dad93828834d7c869782b151aac8af", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H193 - 207, T4", - "Dosage": 5, - "AssistA": " 吹样(1ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 13, - "HoleCollective": "193,195,197,199,201,203,205,207", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": 0, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "4ba9dd1c5528428a8bb8dfea210b35ff", - "uuidPlanMaster": "07dad93828834d7c869782b151aac8af", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "T2", - "Dosage": 5, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": 0, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "a552d8e448344d6c9b7690675b85a13f", - "uuidPlanMaster": "07dad93828834d7c869782b151aac8af", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H194 - 208, T4", - "Dosage": 5, - "AssistA": " 吹样(1ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 13, - "HoleCollective": "194,196,198,200,202,204,206,208", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": 0, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "c38049073bb949f794a48364e591ec3e", - "uuidPlanMaster": "07dad93828834d7c869782b151aac8af", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "T2", - "Dosage": 5, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": 0, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "268a8bbc91f54e298f528c00e699ab49", - "uuidPlanMaster": "07dad93828834d7c869782b151aac8af", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H209 - 223, T4", - "Dosage": 5, - "AssistA": " 吹样(1ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 14, - "HoleCollective": "209,211,213,215,217,219,221,223", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": 0, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "838b57648e4345eea5359d5b4fe4c9c2", - "uuidPlanMaster": "07dad93828834d7c869782b151aac8af", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "T2", - "Dosage": 5, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": 0, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "9eca8652b279426bb9526c91d0b75214", - "uuidPlanMaster": "07dad93828834d7c869782b151aac8af", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H210 - 224, T4", - "Dosage": 5, - "AssistA": " 吹样(1ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 14, - "HoleCollective": "210,212,214,216,218,220,222,224", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": 0, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "cbdc1174cc4b4eedad6298d8d19cee38", - "uuidPlanMaster": "07dad93828834d7c869782b151aac8af", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "T2", - "Dosage": 5, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": 0, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "1c149b3002ee4a5e8d5e79414ef7a69c", - "uuidPlanMaster": "07dad93828834d7c869782b151aac8af", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H225 - 239, T4", - "Dosage": 5, - "AssistA": " 吹样(1ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 15, - "HoleCollective": "225,227,229,231,233,235,237,239", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": 0, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "3b699f32d4f849f28c771c576f2ded95", - "uuidPlanMaster": "07dad93828834d7c869782b151aac8af", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "T2", - "Dosage": 5, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": 0, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "5e816c68f14a4bebb6285f7580016a66", - "uuidPlanMaster": "07dad93828834d7c869782b151aac8af", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H226 - 240, T4", - "Dosage": 5, - "AssistA": " 吹样(1ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 15, - "HoleCollective": "226,228,230,232,234,236,238,240", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": 0, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "4b65e798935241249685c2b7ee6a216b", - "uuidPlanMaster": "07dad93828834d7c869782b151aac8af", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "T2", - "Dosage": 5, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": 0, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "2e192d7e52854fa6b9a595f823e70480", - "uuidPlanMaster": "07dad93828834d7c869782b151aac8af", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H241 - 255, T4", - "Dosage": 5, - "AssistA": " 吹样(1ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 16, - "HoleCollective": "241,243,245,247,249,251,253,255", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": 0, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "566bfece946a4edd88f815c6ff8290dd", - "uuidPlanMaster": "07dad93828834d7c869782b151aac8af", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "T2", - "Dosage": 5, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": 0, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "0625e03f3125426c98fa71ad3053df51", - "uuidPlanMaster": "07dad93828834d7c869782b151aac8af", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H242 - 256, T4", - "Dosage": 5, - "AssistA": " 吹样(1ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 16, - "HoleCollective": "242,244,246,248,250,252,254,256", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": 0, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "b339f26e1ec54659899fcbf8b4cfee41", - "uuidPlanMaster": "07dad93828834d7c869782b151aac8af", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "T2", - "Dosage": 5, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": 0, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "3bafb4fd60334e3fabef1fd133b9572c", - "uuidPlanMaster": "07dad93828834d7c869782b151aac8af", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H257 - 271, T4", - "Dosage": 5, - "AssistA": " 吹样(1ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 17, - "HoleCollective": "257,259,261,263,265,267,269,271", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": 0, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "c914fd03b70d476988c405ab8555c0b3", - "uuidPlanMaster": "07dad93828834d7c869782b151aac8af", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "T2", - "Dosage": 5, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": 0, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "7ad18c33ef524ff58bb32bae1eac7de0", - "uuidPlanMaster": "07dad93828834d7c869782b151aac8af", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H258 - 272, T4", - "Dosage": 5, - "AssistA": " 吹样(1ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 17, - "HoleCollective": "258,260,262,264,266,268,270,272", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": 0, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "e9d934472bd8413b94357d6df5bbdcc6", - "uuidPlanMaster": "07dad93828834d7c869782b151aac8af", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "T2", - "Dosage": 5, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": 0, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "c38126c628d54d2cbd59e39601ba4b32", - "uuidPlanMaster": "07dad93828834d7c869782b151aac8af", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H273 - 287, T4", - "Dosage": 5, - "AssistA": " 吹样(1ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 18, - "HoleCollective": "273,275,277,279,281,283,285,287", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": 0, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "a71dc2773165410a9bf64057b05f0e34", - "uuidPlanMaster": "07dad93828834d7c869782b151aac8af", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "T2", - "Dosage": 5, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": 0, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "38d01ceecf9b4c1d816eb28c489977e1", - "uuidPlanMaster": "07dad93828834d7c869782b151aac8af", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H274 - 288, T4", - "Dosage": 5, - "AssistA": " 吹样(1ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 18, - "HoleCollective": "274,276,278,280,282,284,286,288", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": 0, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "e5af09611acf4b2aa929dd23a1a1d5b4", - "uuidPlanMaster": "07dad93828834d7c869782b151aac8af", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "T2", - "Dosage": 5, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": 0, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "a02b96c302814397b68da5347eca43b4", - "uuidPlanMaster": "07dad93828834d7c869782b151aac8af", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H289 - 303, T4", - "Dosage": 5, - "AssistA": " 吹样(1ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 19, - "HoleCollective": "289,291,293,295,297,299,301,303", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": 0, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "94ffdf6effc54027ac473083b353097b", - "uuidPlanMaster": "07dad93828834d7c869782b151aac8af", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "T2", - "Dosage": 5, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": 0, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "81309b0b47504bf5a26b2c363c586a43", - "uuidPlanMaster": "07dad93828834d7c869782b151aac8af", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H290 - 304, T4", - "Dosage": 5, - "AssistA": " 吹样(1ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 19, - "HoleCollective": "290,292,294,296,298,300,302,304", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": 0, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "92e0abe11c77485a99368d2ae58d2a43", - "uuidPlanMaster": "07dad93828834d7c869782b151aac8af", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "T2", - "Dosage": 5, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": 0, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "a58ae4a17abc4f9fb3b3e824e38296b6", - "uuidPlanMaster": "07dad93828834d7c869782b151aac8af", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H305 - 319, T4", - "Dosage": 5, - "AssistA": " 吹样(1ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 20, - "HoleCollective": "305,307,309,311,313,315,317,319", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": 0, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "86d5a8923bf74547aeb3ae8a61df39d8", - "uuidPlanMaster": "07dad93828834d7c869782b151aac8af", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "T2", - "Dosage": 5, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": 0, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "03a12d5754454d03ac279385628e4841", - "uuidPlanMaster": "07dad93828834d7c869782b151aac8af", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H306 - 320, T4", - "Dosage": 5, - "AssistA": " 吹样(1ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 20, - "HoleCollective": "306,308,310,312,314,316,318,320", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": 0, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "0e675473517a42068005a78554df8404", - "uuidPlanMaster": "07dad93828834d7c869782b151aac8af", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "T2", - "Dosage": 5, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": 0, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "11dced0cb5c748648206c4ed7c35af15", - "uuidPlanMaster": "07dad93828834d7c869782b151aac8af", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H321 - 335, T4", - "Dosage": 5, - "AssistA": " 吹样(1ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 21, - "HoleCollective": "321,323,325,327,329,331,333,335", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": 0, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "113d796ac7b24178a48318ed6c51b652", - "uuidPlanMaster": "07dad93828834d7c869782b151aac8af", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "T2", - "Dosage": 5, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": 0, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "c1b774cf445a4c85ac855fda783c25fd", - "uuidPlanMaster": "07dad93828834d7c869782b151aac8af", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H322 - 336, T4", - "Dosage": 5, - "AssistA": " 吹样(1ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 21, - "HoleCollective": "322,324,326,328,330,332,334,336", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": 0, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "af66a1e906b84538a5a5513107170182", - "uuidPlanMaster": "07dad93828834d7c869782b151aac8af", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "T2", - "Dosage": 5, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": 0, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "2743f991e0fb4f5e941b554c54dabc86", - "uuidPlanMaster": "07dad93828834d7c869782b151aac8af", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H337 - 351, T4", - "Dosage": 5, - "AssistA": " 吹样(1ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 22, - "HoleCollective": "337,339,341,343,345,347,349,351", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": 0, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "50b47a8e5d324a1091b9077587db1811", - "uuidPlanMaster": "07dad93828834d7c869782b151aac8af", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "T2", - "Dosage": 5, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": 0, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "d07986d132de43d397ea15b81ec7c413", - "uuidPlanMaster": "07dad93828834d7c869782b151aac8af", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H338 - 352, T4", - "Dosage": 5, - "AssistA": " 吹样(1ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 22, - "HoleCollective": "338,340,342,344,346,348,350,352", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": 0, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "5d57ae0c16404ea0ab698d0e54768728", - "uuidPlanMaster": "07dad93828834d7c869782b151aac8af", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "T2", - "Dosage": 5, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": 0, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "641c77c70b6e4d19a6848fa822e63859", - "uuidPlanMaster": "07dad93828834d7c869782b151aac8af", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H353 - 367, T4", - "Dosage": 5, - "AssistA": " 吹样(1ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 23, - "HoleCollective": "353,355,357,359,361,363,365,367", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": 0, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "58a1ecb20e554585ab3bf978a5451d64", - "uuidPlanMaster": "07dad93828834d7c869782b151aac8af", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "T2", - "Dosage": 5, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": 0, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "9686aebb22264c4cb034a02b78cc7fbb", - "uuidPlanMaster": "07dad93828834d7c869782b151aac8af", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H354 - 368, T4", - "Dosage": 5, - "AssistA": " 吹样(1ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 23, - "HoleCollective": "354,356,358,360,362,364,366,368", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": 0, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "caa735e1223c48049de39b84925ab9b0", - "uuidPlanMaster": "07dad93828834d7c869782b151aac8af", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "T2", - "Dosage": 5, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": 0, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "7e8dc1ca240e4c0e94f8d79a75388601", - "uuidPlanMaster": "07dad93828834d7c869782b151aac8af", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H369 - 383, T4", - "Dosage": 5, - "AssistA": " 吹样(1ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 24, - "HoleCollective": "369,371,373,375,377,379,381,383", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": 0, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "9f424da3df824b0a82d64787ec0b1a82", - "uuidPlanMaster": "07dad93828834d7c869782b151aac8af", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "T2", - "Dosage": 5, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": 0, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "d695997a493b4d66a3236d9e771d45f9", - "uuidPlanMaster": "07dad93828834d7c869782b151aac8af", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H370 - 384, T4", - "Dosage": 5, - "AssistA": " 吹样(1ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 24, - "HoleCollective": "370,372,374,376,378,380,382,384", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": 0, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "2f2236ecdd3545d7ae3a54f73b8f5ed8", - "uuidPlanMaster": "07dad93828834d7c869782b151aac8af", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H1 - 8, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": 0, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "e73207f7c0b8474bb23db343189e3852", - "uuidPlanMaster": "60574c850876451aa983db8838cd5b36", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1 - 8, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": 0, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "ccadf60593b44249bb4c11f93555ad8d", - "uuidPlanMaster": "60574c850876451aa983db8838cd5b36", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "T2", - "Dosage": 100, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 2, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": 0, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "5a4d06afee1e4a4380e9a8fd487b7708", - "uuidPlanMaster": "60574c850876451aa983db8838cd5b36", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1 - 8, T4", - "Dosage": 100, - "AssistA": " 吹样(5ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": 0, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "0d85cf8361f94d549ecc23df9291e253", - "uuidPlanMaster": "60574c850876451aa983db8838cd5b36", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T6", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 6, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": 0, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "19aa7be59a28444096379b6c108580e8", - "uuidPlanMaster": "aedd8f3fb8bb49a998b75b029d5f2627", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1 - 8, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": 0, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "1754eb93934048c3b185149882bd6a76", - "uuidPlanMaster": "aedd8f3fb8bb49a998b75b029d5f2627", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "T2", - "Dosage": 50, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 2, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": 0, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "97368d13f501408798dd5b5ea322bb8e", - "uuidPlanMaster": "aedd8f3fb8bb49a998b75b029d5f2627", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1 - 8, T4", - "Dosage": 50, - "AssistA": " 吹样(5ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": 0, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "d5e43cd217374bbbaf116ce94c3dceea", - "uuidPlanMaster": "aedd8f3fb8bb49a998b75b029d5f2627", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H1 - 8, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": 0, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "39a7fe32cca943e29a3285d5fe8ec492", - "uuidPlanMaster": "6babe98a8de144a7a30b56d62cdcd6c7", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1 - 8, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": 0, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "a5d0beda323540119acc34e5e33170d4", - "uuidPlanMaster": "6babe98a8de144a7a30b56d62cdcd6c7", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H1 - 8, T2", - "Dosage": 50, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 2, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": 0, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "12de204ef834479cb7f43ec7c5fcf23e", - "uuidPlanMaster": "6babe98a8de144a7a30b56d62cdcd6c7", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1 - 8, T4", - "Dosage": 50, - "AssistA": " 吹样(5ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": 0, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "b4510966408d41e6a99be75e61359e3e", - "uuidPlanMaster": "6babe98a8de144a7a30b56d62cdcd6c7", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T3", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": 0, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "8409836f5a4041acaf4e03012be9a79a", - "uuidPlanMaster": "6babe98a8de144a7a30b56d62cdcd6c7", - "Axis": "Left", - "ActOn": "Load", - "Place": "H9 - 16, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 2, - "HoleCollective": "9,10,11,12,13,14,15,16", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": 0, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "3c093868bd68405fbdd4d02945c3566d", - "uuidPlanMaster": "6babe98a8de144a7a30b56d62cdcd6c7", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H9 - 16, T2", - "Dosage": 50, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 2, - "HoleCollective": "9,10,11,12,13,14,15,16", - "MixCount": 0, - "HeightFromBottom": 2, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": 0, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "dd8862fa2ce847dbbbeea4a25a7abb15", - "uuidPlanMaster": "6babe98a8de144a7a30b56d62cdcd6c7", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H9 - 16, T4", - "Dosage": 50, - "AssistA": " 吹样(5ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 2, - "HoleCollective": "9,10,11,12,13,14,15,16", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": 0, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "09a5dc4a504f46b1bc90eeac62ada508", - "uuidPlanMaster": "6babe98a8de144a7a30b56d62cdcd6c7", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T3", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": 0, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "cd405057cbab49e199739e6edc3c5d67", - "uuidPlanMaster": "6babe98a8de144a7a30b56d62cdcd6c7", - "Axis": "Left", - "ActOn": "Load", - "Place": "H17 - 24, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "17,18,19,20,21,22,23,24", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": 0, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "d58dfdfef8494a7d8a44f718fd3bbd7f", - "uuidPlanMaster": "6babe98a8de144a7a30b56d62cdcd6c7", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H17 - 24, T2", - "Dosage": 50, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "17,18,19,20,21,22,23,24", - "MixCount": 0, - "HeightFromBottom": 2, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": 0, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "4b6e4fe0218c42bfa2697e891bd032d5", - "uuidPlanMaster": "6babe98a8de144a7a30b56d62cdcd6c7", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H17 - 24, T4", - "Dosage": 50, - "AssistA": " 吹样(5ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "17,18,19,20,21,22,23,24", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": 0, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "ba9872b68cf7438885547217644786c1", - "uuidPlanMaster": "6babe98a8de144a7a30b56d62cdcd6c7", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T3", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": 0, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "f76febe6c7d9463fa68ad3c9c8b3d562", - "uuidPlanMaster": "6babe98a8de144a7a30b56d62cdcd6c7", - "Axis": "Left", - "ActOn": "Load", - "Place": "H25 - 32, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 4, - "HoleCollective": "25,26,27,28,29,30,31,32", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": 0, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "c76653455021443c8f9569cd634a7b29", - "uuidPlanMaster": "6babe98a8de144a7a30b56d62cdcd6c7", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H25 - 32, T2", - "Dosage": 50, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 4, - "HoleCollective": "25,26,27,28,29,30,31,32", - "MixCount": 0, - "HeightFromBottom": 2, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": 0, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "282c585e80fb41f4b4062107df671ab9", - "uuidPlanMaster": "6babe98a8de144a7a30b56d62cdcd6c7", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H25 - 32, T4", - "Dosage": 50, - "AssistA": " 吹样(5ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 4, - "HoleCollective": "25,26,27,28,29,30,31,32", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": 0, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "21abe40940e24011a18b66458a3e64e9", - "uuidPlanMaster": "6babe98a8de144a7a30b56d62cdcd6c7", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T3", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": 0, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "e01d90d2f73549f5a747ce2c900b9bf2", - "uuidPlanMaster": "6babe98a8de144a7a30b56d62cdcd6c7", - "Axis": "Left", - "ActOn": "Load", - "Place": "H33 - 40, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 5, - "HoleCollective": "33,34,35,36,37,38,39,40", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": 0, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "8435f6a5de014429ba8b55a876eae47b", - "uuidPlanMaster": "6babe98a8de144a7a30b56d62cdcd6c7", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H33 - 40, T2", - "Dosage": 50, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 5, - "HoleCollective": "33,34,35,36,37,38,39,40", - "MixCount": 0, - "HeightFromBottom": 2, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": 0, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "6347645f740848dbb9f8e09e043b14bf", - "uuidPlanMaster": "6babe98a8de144a7a30b56d62cdcd6c7", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H33 - 40, T4", - "Dosage": 50, - "AssistA": " 吹样(5ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 5, - "HoleCollective": "33,34,35,36,37,38,39,40", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": 0, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "656fd6189dbe454191c897d5134189d7", - "uuidPlanMaster": "6babe98a8de144a7a30b56d62cdcd6c7", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T3", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": 0, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "9401a4d60594445d8348a706ba8818cf", - "uuidPlanMaster": "6babe98a8de144a7a30b56d62cdcd6c7", - "Axis": "Left", - "ActOn": "Load", - "Place": "H41 - 48, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 6, - "HoleCollective": "41,42,43,44,45,46,47,48", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": 0, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "a6b6ffd79c1c489c8c1dcd371bd7510e", - "uuidPlanMaster": "6babe98a8de144a7a30b56d62cdcd6c7", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H41 - 48, T2", - "Dosage": 50, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 6, - "HoleCollective": "41,42,43,44,45,46,47,48", - "MixCount": 0, - "HeightFromBottom": 2, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": 0, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "a4af7e8620c741d1b62bdf241ac91d4b", - "uuidPlanMaster": "6babe98a8de144a7a30b56d62cdcd6c7", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H41 - 48, T4", - "Dosage": 50, - "AssistA": " 吹样(5ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 6, - "HoleCollective": "41,42,43,44,45,46,47,48", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": 0, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "2b37ec9c414f43028bec38f80f474bf4", - "uuidPlanMaster": "6babe98a8de144a7a30b56d62cdcd6c7", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T3", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": 0, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "c5db7cdc09e747a094c1427643d4cd85", - "uuidPlanMaster": "6babe98a8de144a7a30b56d62cdcd6c7", - "Axis": "Left", - "ActOn": "Load", - "Place": "H49 - 56, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 7, - "HoleCollective": "49,50,51,52,53,54,55,56", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": 0, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "be3cdbee42c84f509b6e62dc9c528f1a", - "uuidPlanMaster": "6babe98a8de144a7a30b56d62cdcd6c7", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H49 - 56, T2", - "Dosage": 50, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 7, - "HoleCollective": "49,50,51,52,53,54,55,56", - "MixCount": 0, - "HeightFromBottom": 2, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": 0, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "7e78999ee8424c0ca8e2ceffea904cc3", - "uuidPlanMaster": "6babe98a8de144a7a30b56d62cdcd6c7", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H49 - 56, T4", - "Dosage": 50, - "AssistA": " 吹样(5ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 7, - "HoleCollective": "49,50,51,52,53,54,55,56", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": 0, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "75689c302fed47d39751c2f8a586f461", - "uuidPlanMaster": "6babe98a8de144a7a30b56d62cdcd6c7", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T3", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": 0, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "02ab34ceaa9e408bb9e878d2297842e2", - "uuidPlanMaster": "6babe98a8de144a7a30b56d62cdcd6c7", - "Axis": "Left", - "ActOn": "Load", - "Place": "H57 - 64, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 8, - "HoleCollective": "57,58,59,60,61,62,63,64", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": 0, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "dc1a8cda0deb43528bbcafe650fefcff", - "uuidPlanMaster": "6babe98a8de144a7a30b56d62cdcd6c7", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H57 - 64, T2", - "Dosage": 50, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 8, - "HoleCollective": "57,58,59,60,61,62,63,64", - "MixCount": 0, - "HeightFromBottom": 2, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": 0, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "cb982df2b7ee43ab81511b7181385ccd", - "uuidPlanMaster": "6babe98a8de144a7a30b56d62cdcd6c7", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H57 - 64, T4", - "Dosage": 50, - "AssistA": " 吹样(5ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 8, - "HoleCollective": "57,58,59,60,61,62,63,64", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": 0, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "ceab462ca2c04d3286dea57c7853ff44", - "uuidPlanMaster": "6babe98a8de144a7a30b56d62cdcd6c7", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T3", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": 0, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "42b16c97508a44d3bfd0dab9df296d80", - "uuidPlanMaster": "6babe98a8de144a7a30b56d62cdcd6c7", - "Axis": "Left", - "ActOn": "Load", - "Place": "H65 - 72, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 9, - "HoleCollective": "65,66,67,68,69,70,71,72", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": 0, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "43e716566b3640648a105d44aab42041", - "uuidPlanMaster": "6babe98a8de144a7a30b56d62cdcd6c7", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H65 - 72, T2", - "Dosage": 50, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 9, - "HoleCollective": "65,66,67,68,69,70,71,72", - "MixCount": 0, - "HeightFromBottom": 2, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": 0, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "ee6c85d933c14a48bd888d5159b4b8e5", - "uuidPlanMaster": "6babe98a8de144a7a30b56d62cdcd6c7", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H65 - 72, T4", - "Dosage": 50, - "AssistA": " 吹样(5ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 9, - "HoleCollective": "65,66,67,68,69,70,71,72", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": 0, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "5e4b4cf0f9154f39998378891b1dbe14", - "uuidPlanMaster": "6babe98a8de144a7a30b56d62cdcd6c7", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T3", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": 0, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "6c35d29de8d048ae9ac06cc95ffdeb7c", - "uuidPlanMaster": "6babe98a8de144a7a30b56d62cdcd6c7", - "Axis": "Left", - "ActOn": "Load", - "Place": "H73 - 80, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 10, - "HoleCollective": "73,74,75,76,77,78,79,80", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": 0, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "9cd3859eb37a4dc480450fb48050c657", - "uuidPlanMaster": "6babe98a8de144a7a30b56d62cdcd6c7", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H73 - 80, T2", - "Dosage": 50, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 10, - "HoleCollective": "73,74,75,76,77,78,79,80", - "MixCount": 0, - "HeightFromBottom": 2, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": 0, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "21886316b26545d1b11c73949fc3045f", - "uuidPlanMaster": "6babe98a8de144a7a30b56d62cdcd6c7", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H73 - 80, T4", - "Dosage": 50, - "AssistA": " 吹样(5ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 10, - "HoleCollective": "73,74,75,76,77,78,79,80", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": 0, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "50f2abeed4f34914aaa96a23c6211518", - "uuidPlanMaster": "6babe98a8de144a7a30b56d62cdcd6c7", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T3", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": 0, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "dc562e652ca747a1bea59f2fba69e17d", - "uuidPlanMaster": "6babe98a8de144a7a30b56d62cdcd6c7", - "Axis": "Left", - "ActOn": "Load", - "Place": "H81 - 88, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 11, - "HoleCollective": "81,82,83,84,85,86,87,88", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": 0, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "31cc97227ef64a479801a10628c17f1d", - "uuidPlanMaster": "6babe98a8de144a7a30b56d62cdcd6c7", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H81 - 88, T2", - "Dosage": 50, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 11, - "HoleCollective": "81,82,83,84,85,86,87,88", - "MixCount": 0, - "HeightFromBottom": 2, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": 0, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "f4f4308f85c64835a5109cd56c2eeccd", - "uuidPlanMaster": "6babe98a8de144a7a30b56d62cdcd6c7", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H81 - 88, T4", - "Dosage": 50, - "AssistA": " 吹样(5ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 11, - "HoleCollective": "81,82,83,84,85,86,87,88", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": 0, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "831bde5f55644c0db1d0c6eba778a896", - "uuidPlanMaster": "6babe98a8de144a7a30b56d62cdcd6c7", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T3", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": 0, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "03866f9a7c1046c88df0b1446063acfd", - "uuidPlanMaster": "6babe98a8de144a7a30b56d62cdcd6c7", - "Axis": "Left", - "ActOn": "Load", - "Place": "H89 - 96, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 12, - "HoleCollective": "89,90,91,92,93,94,95,96", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": 0, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "e15fc7bed0844aab826e9c938b9acc0a", - "uuidPlanMaster": "6babe98a8de144a7a30b56d62cdcd6c7", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H89 - 96, T2", - "Dosage": 50, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 12, - "HoleCollective": "89,90,91,92,93,94,95,96", - "MixCount": 0, - "HeightFromBottom": 2, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": 0, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "e294483701514537a70df70ed17e4b5c", - "uuidPlanMaster": "6babe98a8de144a7a30b56d62cdcd6c7", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H89 - 96, T4", - "Dosage": 50, - "AssistA": " 吹样(5ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 12, - "HoleCollective": "89,90,91,92,93,94,95,96", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": 0, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "e254ece1b9cd448bab3a1374c3312928", - "uuidPlanMaster": "6babe98a8de144a7a30b56d62cdcd6c7", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T3", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": 0, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "9f2bb43e89dd4223b768a4d818793a9a", - "uuidPlanMaster": "4a1c49a1bc704765bf7ac07fcddf4f75", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1 - 8, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": 0, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "662316a0beee43de95e2492e31e6bedf", - "uuidPlanMaster": "4a1c49a1bc704765bf7ac07fcddf4f75", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H1 - 8, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": 0, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "d8b5dbe94af34065a5b37f32bc9b90c3", - "uuidPlanMaster": "4a1c49a1bc704765bf7ac07fcddf4f75", - "Axis": "Left", - "ActOn": "Load", - "Place": "H9 - 16, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 2, - "HoleCollective": "9,10,11,12,13,14,15,16", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": 0, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "6b54c69bbdca43f4820ffb22e3501343", - "uuidPlanMaster": "4a1c49a1bc704765bf7ac07fcddf4f75", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H9 - 16, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 2, - "HoleCollective": "9,10,11,12,13,14,15,16", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": 0, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "b946ddb9b6764adfa72f9dea8348c8d1", - "uuidPlanMaster": "4a1c49a1bc704765bf7ac07fcddf4f75", - "Axis": "Left", - "ActOn": "Load", - "Place": "H17 - 24, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "17,18,19,20,21,22,23,24", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": 0, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "e1970b4c2bd74847adb8d2b2176dd496", - "uuidPlanMaster": "4a1c49a1bc704765bf7ac07fcddf4f75", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H17 - 24, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "17,18,19,20,21,22,23,24", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": 0, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "a47e14db69684b878eba16c3baaef22e", - "uuidPlanMaster": "4a1c49a1bc704765bf7ac07fcddf4f75", - "Axis": "Left", - "ActOn": "Load", - "Place": "H25 - 32, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 4, - "HoleCollective": "25,26,27,28,29,30,31,32", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": 0, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "d535d459a167436fbd95f00c432be9aa", - "uuidPlanMaster": "4a1c49a1bc704765bf7ac07fcddf4f75", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H25 - 32, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 4, - "HoleCollective": "25,26,27,28,29,30,31,32", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": 0, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "f1a66843987b4c44b9186f0ac628d445", - "uuidPlanMaster": "4a1c49a1bc704765bf7ac07fcddf4f75", - "Axis": "Left", - "ActOn": "Load", - "Place": "H33 - 40, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 5, - "HoleCollective": "33,34,35,36,37,38,39,40", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": 0, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "0cc4fc118e2847a1a552e1a7cc0502a0", - "uuidPlanMaster": "4a1c49a1bc704765bf7ac07fcddf4f75", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H33 - 40, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 5, - "HoleCollective": "33,34,35,36,37,38,39,40", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": 0, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "f1b1214ea6be4e3699c8ec612185a925", - "uuidPlanMaster": "4a1c49a1bc704765bf7ac07fcddf4f75", - "Axis": "Left", - "ActOn": "Load", - "Place": "H41 - 48, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 6, - "HoleCollective": "41,42,43,44,45,46,47,48", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": 0, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "9df7d918b69f444bba6b7bb95bef48e9", - "uuidPlanMaster": "4a1c49a1bc704765bf7ac07fcddf4f75", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H41 - 48, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 6, - "HoleCollective": "41,42,43,44,45,46,47,48", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": 0, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "9b6f639660ac45519b16f243d893ca9f", - "uuidPlanMaster": "4a1c49a1bc704765bf7ac07fcddf4f75", - "Axis": "Left", - "ActOn": "Load", - "Place": "H49 - 56, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 7, - "HoleCollective": "49,50,51,52,53,54,55,56", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": 0, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "c2b11667a2f24e4f9fa957e26818f7e0", - "uuidPlanMaster": "4a1c49a1bc704765bf7ac07fcddf4f75", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H49 - 56, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 7, - "HoleCollective": "49,50,51,52,53,54,55,56", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": 0, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "48c522ef26834a06aede4deb330a630a", - "uuidPlanMaster": "4a1c49a1bc704765bf7ac07fcddf4f75", - "Axis": "Left", - "ActOn": "Load", - "Place": "H57 - 64, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 8, - "HoleCollective": "57,58,59,60,61,62,63,64", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": 0, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "d43629fa74174a3fbd4f1e38f4f006fd", - "uuidPlanMaster": "4a1c49a1bc704765bf7ac07fcddf4f75", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H57 - 64, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 8, - "HoleCollective": "57,58,59,60,61,62,63,64", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": 0, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "f88299723fbb4914a09c30e4ed9d7734", - "uuidPlanMaster": "4a1c49a1bc704765bf7ac07fcddf4f75", - "Axis": "Left", - "ActOn": "Load", - "Place": "H65 - 72, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 9, - "HoleCollective": "65,66,67,68,69,70,71,72", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": 0, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "f10b4ad56c8a476c853a752b0b61705a", - "uuidPlanMaster": "4a1c49a1bc704765bf7ac07fcddf4f75", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H65 - 72, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 9, - "HoleCollective": "65,66,67,68,69,70,71,72", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": 0, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "4c1b33cf8b58403ea082c3810e57d9c4", - "uuidPlanMaster": "4a1c49a1bc704765bf7ac07fcddf4f75", - "Axis": "Left", - "ActOn": "Load", - "Place": "H73 - 80, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 10, - "HoleCollective": "73,74,75,76,77,78,79,80", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": 0, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "147eea8d31154e799470429bf723003a", - "uuidPlanMaster": "4a1c49a1bc704765bf7ac07fcddf4f75", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H73 - 80, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 10, - "HoleCollective": "73,74,75,76,77,78,79,80", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": 0, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "5e9d15f73f0b49f5bc2c212946bc5b76", - "uuidPlanMaster": "4a1c49a1bc704765bf7ac07fcddf4f75", - "Axis": "Left", - "ActOn": "Load", - "Place": "H81 - 88, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 11, - "HoleCollective": "81,82,83,84,85,86,87,88", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": 0, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "cd893c84db9e46c3b0ec6d15df00fc70", - "uuidPlanMaster": "4a1c49a1bc704765bf7ac07fcddf4f75", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H81 - 88, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 11, - "HoleCollective": "81,82,83,84,85,86,87,88", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": 0, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "077c76c27fd44b12bdadfd4f1275e688", - "uuidPlanMaster": "4a1c49a1bc704765bf7ac07fcddf4f75", - "Axis": "Left", - "ActOn": "Load", - "Place": "H89 - 96, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 12, - "HoleCollective": "89,90,91,92,93,94,95,96", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": 0, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "ea391764ef674bd58fa43b1463d78a82", - "uuidPlanMaster": "4a1c49a1bc704765bf7ac07fcddf4f75", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H89 - 96, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 12, - "HoleCollective": "89,90,91,92,93,94,95,96", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": 0, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "eacfab392e6048028e64b24941815f22", - "uuidPlanMaster": "b6ffa9147cd74c0eb0355ca035f22792", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1 - 8, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": 0, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "6f5eb0020be243aa994d4633a1045aa3", - "uuidPlanMaster": "b6ffa9147cd74c0eb0355ca035f22792", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H1 - 8, T2", - "Dosage": 50, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 2, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": 0, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "4fb556d293594083b0e5cc760592120b", - "uuidPlanMaster": "b6ffa9147cd74c0eb0355ca035f22792", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1 - 8, T4", - "Dosage": 50, - "AssistA": " 吹样(5ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": 0, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "86c346b78d154b81a90ebcd066de51cb", - "uuidPlanMaster": "b6ffa9147cd74c0eb0355ca035f22792", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T3", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": 0, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "14f5b717dc764bdeaa0142715119e224", - "uuidPlanMaster": "b6ffa9147cd74c0eb0355ca035f22792", - "Axis": "Left", - "ActOn": "Load", - "Place": "H9 - 16, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 2, - "HoleCollective": "9,10,11,12,13,14,15,16", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": 0, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "ce28974a8bb84257bac377fe455acea3", - "uuidPlanMaster": "b6ffa9147cd74c0eb0355ca035f22792", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H9 - 16, T2", - "Dosage": 50, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 2, - "HoleCollective": "9,10,11,12,13,14,15,16", - "MixCount": 0, - "HeightFromBottom": 2, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": 0, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "f2c213e42abd485491f821d1715a545e", - "uuidPlanMaster": "b6ffa9147cd74c0eb0355ca035f22792", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H9 - 16, T4", - "Dosage": 50, - "AssistA": " 吹样(5ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 2, - "HoleCollective": "9,10,11,12,13,14,15,16", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": 0, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "f9ef4640a14842e889fb2dc6d187d7ca", - "uuidPlanMaster": "b6ffa9147cd74c0eb0355ca035f22792", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T3", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": 0, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "565b3b8ef5f84f60b16c86b63727307f", - "uuidPlanMaster": "b6ffa9147cd74c0eb0355ca035f22792", - "Axis": "Left", - "ActOn": "Load", - "Place": "H17 - 24, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "17,18,19,20,21,22,23,24", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": 0, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "5f36ae4d6e7b4ae09992b5579ff12527", - "uuidPlanMaster": "b6ffa9147cd74c0eb0355ca035f22792", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H17 - 24, T2", - "Dosage": 50, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "17,18,19,20,21,22,23,24", - "MixCount": 0, - "HeightFromBottom": 2, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": 0, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "add4f1bec4be4e319af9bee6fb37343f", - "uuidPlanMaster": "b6ffa9147cd74c0eb0355ca035f22792", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H17 - 24, T4", - "Dosage": 50, - "AssistA": " 吹样(5ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "17,18,19,20,21,22,23,24", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": 0, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "53ecde655fa34e1e972c2e32bd3f589f", - "uuidPlanMaster": "b6ffa9147cd74c0eb0355ca035f22792", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T3", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": 0, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "d11e88e01c224621a8ef2902515d813b", - "uuidPlanMaster": "b6ffa9147cd74c0eb0355ca035f22792", - "Axis": "Left", - "ActOn": "Load", - "Place": "H25 - 32, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 4, - "HoleCollective": "25,26,27,28,29,30,31,32", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": 0, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "8200b27b13d946f5a2ff3f20de8c6a30", - "uuidPlanMaster": "b6ffa9147cd74c0eb0355ca035f22792", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H25 - 32, T2", - "Dosage": 50, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 4, - "HoleCollective": "25,26,27,28,29,30,31,32", - "MixCount": 0, - "HeightFromBottom": 2, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": 0, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "90361cc4badd4692b92d5ee2c886cb21", - "uuidPlanMaster": "b6ffa9147cd74c0eb0355ca035f22792", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H25 - 32, T4", - "Dosage": 50, - "AssistA": " 吹样(5ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 4, - "HoleCollective": "25,26,27,28,29,30,31,32", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": 0, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "a1b7e502277349c5ab4d315ab2c4496c", - "uuidPlanMaster": "b6ffa9147cd74c0eb0355ca035f22792", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T3", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": 0, - "LiquidDispensingMethod": null, - "Time": null, - "Module": null, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": null, - "ImbSpeed": null - }, - { - "uuid": "a28873caf6794828bd6a6c4889fa8998", - "uuidPlanMaster": "e080335e5302480da0bc85fd467d386c", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1 - 8, T12", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 12, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "54190ca08456498ba6395a8abcb83e70", - "uuidPlanMaster": "e080335e5302480da0bc85fd467d386c", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H1 - 8, T9", - "Dosage": 220, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 9, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "4b013a35f7cc41a98b9be1fc143ce7b2", - "uuidPlanMaster": "e080335e5302480da0bc85fd467d386c", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1 - 8, T4", - "Dosage": 220, - "AssistA": " 吹样(10ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "b1e060bb63a54ebc8c8f8cd25f6484c4", - "uuidPlanMaster": "e080335e5302480da0bc85fd467d386c", - "Axis": "Left", - "ActOn": "Shaking", - "Place": null, - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 0, - "IsFullPage": 1, - "HoleRow": 0, - "HoleColum": 0, - "HoleCollective": "", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "180", - "Module": 1, - "Temperature": null, - "Amplitude": "1200", - "Height": null, - "IsWait": 1, - "ImbSpeed": 0 - }, - { - "uuid": "f77ad00072fe4ee1be1422bb220d1b35", - "uuidPlanMaster": "e080335e5302480da0bc85fd467d386c", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T19", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 19, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "11f594387ccc4c0bbc74111cb2d09c5e", - "uuidPlanMaster": "e080335e5302480da0bc85fd467d386c", - "Axis": "Left", - "ActOn": "Load", - "Place": "H9 - 16, T12", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 12, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 2, - "HoleCollective": "9,10,11,12,13,14,15,16", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "b3ddb0ec564743e4be53b7405ec5fac2", - "uuidPlanMaster": "e080335e5302480da0bc85fd467d386c", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H9 - 16, T9", - "Dosage": 220, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 9, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 2, - "HoleCollective": "9,10,11,12,13,14,15,16", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "92658edee37c4e1fae392ffd703888e1", - "uuidPlanMaster": "e080335e5302480da0bc85fd467d386c", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1 - 8, T4", - "Dosage": 220, - "AssistA": " 吹样(10ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "9505c9bfa0cf4d15aacbc893f5662a82", - "uuidPlanMaster": "e080335e5302480da0bc85fd467d386c", - "Axis": "Left", - "ActOn": "Shaking", - "Place": null, - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 0, - "IsFullPage": 1, - "HoleRow": 0, - "HoleColum": 0, - "HoleCollective": "", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "180", - "Module": 1, - "Temperature": null, - "Amplitude": "1200", - "Height": null, - "IsWait": 1, - "ImbSpeed": 0 - }, - { - "uuid": "fe1db735fcd7433aa7ea7d4292471260", - "uuidPlanMaster": "e080335e5302480da0bc85fd467d386c", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T19", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 19, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "b21421aaf77145519874b059ffcf6de1", - "uuidPlanMaster": "e080335e5302480da0bc85fd467d386c", - "Axis": "Left", - "ActOn": "Load", - "Place": "H17 - 24, T12", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 12, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "17,18,19,20,21,22,23,24", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "c60c44c93459468292797a9592754c55", - "uuidPlanMaster": "e080335e5302480da0bc85fd467d386c", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H17 - 24, T9", - "Dosage": 220, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 9, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "17,18,19,20,21,22,23,24", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "7992fe13cc1e40f9a2f7810fdd5ae209", - "uuidPlanMaster": "e080335e5302480da0bc85fd467d386c", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1 - 8, T4", - "Dosage": 220, - "AssistA": " 吹样(10ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "f90a015548c14803b3b7a7cf6fecd509", - "uuidPlanMaster": "e080335e5302480da0bc85fd467d386c", - "Axis": "Left", - "ActOn": "Shaking", - "Place": null, - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 0, - "IsFullPage": 1, - "HoleRow": 0, - "HoleColum": 0, - "HoleCollective": "", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "180", - "Module": 1, - "Temperature": null, - "Amplitude": "1200", - "Height": null, - "IsWait": 1, - "ImbSpeed": 0 - }, - { - "uuid": "ac7e78d287a24eb2b899a58071c840ab", - "uuidPlanMaster": "e080335e5302480da0bc85fd467d386c", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T19", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 19, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "6002e8404eb5407aa85a9f1cadcde683", - "uuidPlanMaster": "e080335e5302480da0bc85fd467d386c", - "Axis": "Left", - "ActOn": "Load", - "Place": "H25 - 32, T12", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 12, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 4, - "HoleCollective": "25,26,27,28,29,30,31,32", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "4d4b4f684c6f47d1975d3fe467fb7177", - "uuidPlanMaster": "e080335e5302480da0bc85fd467d386c", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H25 - 32, T9", - "Dosage": 40, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 9, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 4, - "HoleCollective": "25,26,27,28,29,30,31,32", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "9979c136f1804f30928dcea76c6960d6", - "uuidPlanMaster": "e080335e5302480da0bc85fd467d386c", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1 - 8, T4", - "Dosage": 40, - "AssistA": " 吹样(10ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "6098fd3ac4ae4069ab4aded9efa774e3", - "uuidPlanMaster": "e080335e5302480da0bc85fd467d386c", - "Axis": "Left", - "ActOn": "Shaking", - "Place": null, - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 0, - "IsFullPage": 1, - "HoleRow": 0, - "HoleColum": 0, - "HoleCollective": "", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "180", - "Module": 1, - "Temperature": null, - "Amplitude": "1200", - "Height": null, - "IsWait": 1, - "ImbSpeed": 0 - }, - { - "uuid": "1f01b9f837bf4ae696a539ebdbc2a033", - "uuidPlanMaster": "e080335e5302480da0bc85fd467d386c", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T19", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 19, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "79b3084d966242c4b64a419712fd46e5", - "uuidPlanMaster": "e080335e5302480da0bc85fd467d386c", - "Axis": "ClampingJaw", - "ActOn": "DefectiveLift", - "Place": "T4", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 1, - "HoleRow": 0, - "HoleColum": 0, - "HoleCollective": "", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "80d597082637490c9be42e538768caf7", - "uuidPlanMaster": "e080335e5302480da0bc85fd467d386c", - "Axis": "ClampingJaw", - "ActOn": "PutDown", - "Place": "T6", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 6, - "IsFullPage": 1, - "HoleRow": 0, - "HoleColum": 0, - "HoleCollective": "", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "bb45b04f8dbb45a9b58fad7b02dedc5f", - "uuidPlanMaster": "e080335e5302480da0bc85fd467d386c", - "Axis": "Left", - "ActOn": "Magnetic", - "Place": null, - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 0, - "IsFullPage": 1, - "HoleRow": 0, - "HoleColum": 0, - "HoleCollective": "", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "300", - "Module": 2, - "Temperature": null, - "Amplitude": null, - "Height": "10", - "IsWait": 1, - "ImbSpeed": 0 - }, - { - "uuid": "ab484c3284a94467b60e7815494a055f", - "uuidPlanMaster": "e080335e5302480da0bc85fd467d386c", - "Axis": "Left", - "ActOn": "Load", - "Place": "H33 - 40, T12", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 12, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 5, - "HoleCollective": "33,34,35,36,37,38,39,40", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "543f5f0fd4e640d6a32964bdaf4e2515", - "uuidPlanMaster": "e080335e5302480da0bc85fd467d386c", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H1 - 8, T6", - "Dosage": 350, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 6, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "327afe196bf64a66975b59a52dd01752", - "uuidPlanMaster": "e080335e5302480da0bc85fd467d386c", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1 - 8, T10", - "Dosage": 300, - "AssistA": " 吹样(10ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 10, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "e8d768997fb044948d3c4ecfc88ddc75", - "uuidPlanMaster": "e080335e5302480da0bc85fd467d386c", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T19", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 19, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "24960756b8a34ebc88af9c5ba4cb7bc2", - "uuidPlanMaster": "e080335e5302480da0bc85fd467d386c", - "Axis": "ClampingJaw", - "ActOn": "DefectiveLift", - "Place": "T6", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 6, - "IsFullPage": 1, - "HoleRow": 0, - "HoleColum": 0, - "HoleCollective": "", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "6102f62d25624394bac179487344c7f6", - "uuidPlanMaster": "e080335e5302480da0bc85fd467d386c", - "Axis": "ClampingJaw", - "ActOn": "PutDown", - "Place": "T7", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 7, - "IsFullPage": 1, - "HoleRow": 0, - "HoleColum": 0, - "HoleCollective": "", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "6b4f0169f9bb4d08b6da4f15ce0e054e", - "uuidPlanMaster": "e080335e5302480da0bc85fd467d386c", - "Axis": "Left", - "ActOn": "Load", - "Place": "H41 - 48, T12", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 12, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 6, - "HoleCollective": "41,42,43,44,45,46,47,48", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "28b9eec592ba49b48567d9e572f20fa9", - "uuidPlanMaster": "e080335e5302480da0bc85fd467d386c", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H33 - 40, T9", - "Dosage": 40, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 9, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 5, - "HoleCollective": "33,34,35,36,37,38,39,40", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "861b09e2d9b04bde8e5d93e901a03723", - "uuidPlanMaster": "e080335e5302480da0bc85fd467d386c", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1 - 8, T10", - "Dosage": 40, - "AssistA": " 吹样(10ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 10, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "dbf3d176216e4a60b4283f1024b47942", - "uuidPlanMaster": "e080335e5302480da0bc85fd467d386c", - "Axis": "ClampingJaw", - "ActOn": "DefectiveLift", - "Place": "T10", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 10, - "IsFullPage": 1, - "HoleRow": 0, - "HoleColum": 0, - "HoleCollective": "", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "c1317809d43844dc90a5828fa5bcdade", - "uuidPlanMaster": "e080335e5302480da0bc85fd467d386c", - "Axis": "ClampingJaw", - "ActOn": "PutDown", - "Place": "T4", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 1, - "HoleRow": 0, - "HoleColum": 0, - "HoleCollective": "", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "077dabaf892049849d83149cc8d5a9bc", - "uuidPlanMaster": "e080335e5302480da0bc85fd467d386c", - "Axis": "Left", - "ActOn": "Shaking", - "Place": null, - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 0, - "IsFullPage": 1, - "HoleRow": 0, - "HoleColum": 0, - "HoleCollective": "", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "300", - "Module": 2, - "Temperature": null, - "Amplitude": "1200", - "Height": null, - "IsWait": 1, - "ImbSpeed": 0 - }, - { - "uuid": "1431c2d132e546b69572e68a38d7dbce", - "uuidPlanMaster": "e080335e5302480da0bc85fd467d386c", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T19", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 19, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "ef9533fadc4b460a9de35352588ffc8c", - "uuidPlanMaster": "e080335e5302480da0bc85fd467d386c", - "Axis": "ClampingJaw", - "ActOn": "DefectiveLift", - "Place": "T4", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 1, - "HoleRow": 0, - "HoleColum": 0, - "HoleCollective": "", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "c20238aea04d4b53ac627d117126a067", - "uuidPlanMaster": "e080335e5302480da0bc85fd467d386c", - "Axis": "ClampingJaw", - "ActOn": "PutDown", - "Place": "T6", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 6, - "IsFullPage": 1, - "HoleRow": 0, - "HoleColum": 0, - "HoleCollective": "", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "9b77e4a79bd24f01b9069d50b501e379", - "uuidPlanMaster": "e080335e5302480da0bc85fd467d386c", - "Axis": "Left", - "ActOn": "Magnetic", - "Place": null, - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 0, - "IsFullPage": 1, - "HoleRow": 0, - "HoleColum": 0, - "HoleCollective": "", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "100", - "Module": 3, - "Temperature": null, - "Amplitude": null, - "Height": "10", - "IsWait": 1, - "ImbSpeed": 0 - }, - { - "uuid": "7cb7f0add2394d938c0656c657eaa224", - "uuidPlanMaster": "e080335e5302480da0bc85fd467d386c", - "Axis": "ClampingJaw", - "ActOn": "DefectiveLift", - "Place": "T6", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 6, - "IsFullPage": 1, - "HoleRow": 0, - "HoleColum": 0, - "HoleCollective": "", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "184c521ddb9b478da05618722e03a9ca", - "uuidPlanMaster": "e080335e5302480da0bc85fd467d386c", - "Axis": "Left", - "ActOn": "PutDown", - "Place": "T15", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 15, - "IsFullPage": 1, - "HoleRow": 0, - "HoleColum": 0, - "HoleCollective": "", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "6f351fd75a2e4ab0bd751408393cc7e8", - "uuidPlanMaster": "e080335e5302480da0bc85fd467d386c", - "Axis": "Left", - "ActOn": "Load", - "Place": "H49 - 56, T12", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 12, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 7, - "HoleCollective": "49,50,51,52,53,54,55,56", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "9f87454087a84956b7c99e4ea86da30a", - "uuidPlanMaster": "e080335e5302480da0bc85fd467d386c", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H1 - 8, T6", - "Dosage": 160, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 6, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "7437707cabb14c56ae53f3d60d2412e8", - "uuidPlanMaster": "e080335e5302480da0bc85fd467d386c", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1 - 8, T11", - "Dosage": 160, - "AssistA": " 吹样(10ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 11, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "4d4e068ce9204d4995cf125da45ca208", - "uuidPlanMaster": "e080335e5302480da0bc85fd467d386c", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T19", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 19, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "374720a9e18c410bb573f48a57f23015", - "uuidPlanMaster": "e080335e5302480da0bc85fd467d386c", - "Axis": "Left", - "ActOn": "Load", - "Place": "H57 - 64, T12", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 12, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 8, - "HoleCollective": "57,58,59,60,61,62,63,64", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "a1ee6b76b1fd42c39790f8d3811196b3", - "uuidPlanMaster": "e080335e5302480da0bc85fd467d386c", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H41 - 48, T9", - "Dosage": 200, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 9, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 6, - "HoleCollective": "41,42,43,44,45,46,47,48", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "1049fc2328274b9eb489af51dee49759", - "uuidPlanMaster": "e080335e5302480da0bc85fd467d386c", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1 - 8, T11", - "Dosage": 200, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 11, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "8bce17100bf949e1bb077261030c24e7", - "uuidPlanMaster": "e080335e5302480da0bc85fd467d386c", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T19", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 19, - "IsFullPage": 1, - "HoleRow": 0, - "HoleColum": 0, - "HoleCollective": "", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "28b7c50a6daf4e27ac8012a73bb62ced", - "uuidPlanMaster": "e080335e5302480da0bc85fd467d386c", - "Axis": "ClampingJaw", - "ActOn": "DefectiveLift", - "Place": "T11", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 11, - "IsFullPage": 1, - "HoleRow": 0, - "HoleColum": 0, - "HoleCollective": "", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "78bd527de22a41a09c20c80997444d94", - "uuidPlanMaster": "e080335e5302480da0bc85fd467d386c", - "Axis": "ClampingJaw", - "ActOn": "PutDown", - "Place": "T4", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 1, - "HoleRow": 0, - "HoleColum": 0, - "HoleCollective": "", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "b0c6cd4f82f24082a4c6b98e49ca6aee", - "uuidPlanMaster": "e080335e5302480da0bc85fd467d386c", - "Axis": "Left", - "ActOn": "Load", - "Place": "H65 - 72, T12", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 12, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 9, - "HoleCollective": "65,66,67,68,69,70,71,72", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "1d0aae4917c8402b97ae4a35c45e6cfe", - "uuidPlanMaster": "e080335e5302480da0bc85fd467d386c", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H49 - 56, T9", - "Dosage": 300, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 9, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 7, - "HoleCollective": "49,50,51,52,53,54,55,56", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "f5bdd6e393fd45f78af18a5c60110f45", - "uuidPlanMaster": "e080335e5302480da0bc85fd467d386c", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1 - 8, T4", - "Dosage": 300, - "AssistA": " 吹样(10ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "f9bbaebe537e46ae9eeb12b810e32028", - "uuidPlanMaster": "e080335e5302480da0bc85fd467d386c", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T19", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 19, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "ea30b12c0bbe4529abe82fc81b4f9aad", - "uuidPlanMaster": "e080335e5302480da0bc85fd467d386c", - "Axis": "Left", - "ActOn": "Load", - "Place": "H73 - 80, T12", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 12, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 10, - "HoleCollective": "73,74,75,76,77,78,79,80", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "b80403b465b543bd84b132ab23aa6ce3", - "uuidPlanMaster": "e080335e5302480da0bc85fd467d386c", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H57 - 64, T9", - "Dosage": 20, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 9, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 8, - "HoleCollective": "57,58,59,60,61,62,63,64", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "20a49d1f38ca46e89bf786c8b3744ba1", - "uuidPlanMaster": "e080335e5302480da0bc85fd467d386c", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1 - 8, T4", - "Dosage": 20, - "AssistA": " 吹样(20ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "394dd256ed654fb6ad11bdbcff3a432c", - "uuidPlanMaster": "e080335e5302480da0bc85fd467d386c", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T19", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 19, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "afd1168e67f74575a864ecd0ebde40b1", - "uuidPlanMaster": "e080335e5302480da0bc85fd467d386c", - "Axis": "Left", - "ActOn": "Shaking", - "Place": null, - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 0, - "IsFullPage": 1, - "HoleRow": 0, - "HoleColum": 0, - "HoleCollective": "", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "300", - "Module": 1, - "Temperature": null, - "Amplitude": "1200", - "Height": null, - "IsWait": 1, - "ImbSpeed": 0 - }, - { - "uuid": "b18b6c52207a4463b49e6e5191d410bb", - "uuidPlanMaster": "e080335e5302480da0bc85fd467d386c", - "Axis": "ClampingJaw", - "ActOn": "DefectiveLift", - "Place": "T4", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 1, - "HoleRow": 0, - "HoleColum": 0, - "HoleCollective": "", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "003c2ed057a04c39bda8442ed2b07962", - "uuidPlanMaster": "e080335e5302480da0bc85fd467d386c", - "Axis": "ClampingJaw", - "ActOn": "PutDown", - "Place": "T6", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 6, - "IsFullPage": 1, - "HoleRow": 0, - "HoleColum": 0, - "HoleCollective": "", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "ba65fda359bd4b12b15f8698fbf304c1", - "uuidPlanMaster": "e080335e5302480da0bc85fd467d386c", - "Axis": "Left", - "ActOn": "Magnetic", - "Place": null, - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 0, - "IsFullPage": 1, - "HoleRow": 0, - "HoleColum": 0, - "HoleCollective": "", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "120", - "Module": 2, - "Temperature": null, - "Amplitude": null, - "Height": "10", - "IsWait": 1, - "ImbSpeed": 0 - }, - { - "uuid": "92ad503d705947ed9f93bbe8073ae02d", - "uuidPlanMaster": "e080335e5302480da0bc85fd467d386c", - "Axis": "Left", - "ActOn": "Load", - "Place": "H81 - 88, T12", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 12, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 11, - "HoleCollective": "81,82,83,84,85,86,87,88", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "b982bf05c2284bbfaa4eda27613b1e25", - "uuidPlanMaster": "e080335e5302480da0bc85fd467d386c", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H1 - 8, T6", - "Dosage": 190, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 6, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "dfcdd66a4d294ba8af8fd8af3a70b29d", - "uuidPlanMaster": "e080335e5302480da0bc85fd467d386c", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "T16", - "Dosage": 190, - "AssistA": " 吹样(10ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 16, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "46223d25ca964ae599a6d7ff855f9616", - "uuidPlanMaster": "e080335e5302480da0bc85fd467d386c", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T19", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 19, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "26062e93ad1f4ab1ac214440941e4e93", - "uuidPlanMaster": "e080335e5302480da0bc85fd467d386c", - "Axis": "Right", - "ActOn": "Load", - "Place": "H1 - 8, T13", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 13, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "62f758151a5a4b53a54f8df6e075a5cc", - "uuidPlanMaster": "e080335e5302480da0bc85fd467d386c", - "Axis": "Right", - "ActOn": "Imbibing", - "Place": "H65 - 72, T9", - "Dosage": 850, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 9, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 9, - "HoleCollective": "65,66,67,68,69,70,71,72", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "7b280e2663ed4d89919534c4910cdba0", - "uuidPlanMaster": "e080335e5302480da0bc85fd467d386c", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H1 - 8, T6", - "Dosage": 850, - "AssistA": " 吹样(20ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 6, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "cd2598e248b948bd927ec337a285077b", - "uuidPlanMaster": "e080335e5302480da0bc85fd467d386c", - "Axis": "Right", - "ActOn": "UnLoad", - "Place": "T19", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 19, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "f0efb8c2f0ec419aadde556356070cfc", - "uuidPlanMaster": "e080335e5302480da0bc85fd467d386c", - "Axis": "ClampingJaw", - "ActOn": "DefectiveLift", - "Place": "T6", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 6, - "IsFullPage": 1, - "HoleRow": 0, - "HoleColum": 0, - "HoleCollective": "", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "f900c46f8096461bbe8055157ff5f3be", - "uuidPlanMaster": "e080335e5302480da0bc85fd467d386c", - "Axis": "ClampingJaw", - "ActOn": "PutDown", - "Place": "T4", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 1, - "HoleRow": 0, - "HoleColum": 0, - "HoleCollective": "", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "9d99c4b16a384c5fabaa9c30f5c35906", - "uuidPlanMaster": "e080335e5302480da0bc85fd467d386c", - "Axis": "Left", - "ActOn": "Shaking", - "Place": null, - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 0, - "IsFullPage": 1, - "HoleRow": 0, - "HoleColum": 0, - "HoleCollective": "", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "60", - "Module": 2, - "Temperature": null, - "Amplitude": "1200", - "Height": null, - "IsWait": 1, - "ImbSpeed": 0 - }, - { - "uuid": "515cd158878b4b3d91cacd7c40ab0cd9", - "uuidPlanMaster": "e080335e5302480da0bc85fd467d386c", - "Axis": "ClampingJaw", - "ActOn": "DefectiveLift", - "Place": "T4", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 1, - "HoleRow": 0, - "HoleColum": 0, - "HoleCollective": "", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "b972e92cc75a45dbb4119f5a341a2164", - "uuidPlanMaster": "e080335e5302480da0bc85fd467d386c", - "Axis": "ClampingJaw", - "ActOn": "PutDown", - "Place": "T6", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 6, - "IsFullPage": 1, - "HoleRow": 0, - "HoleColum": 0, - "HoleCollective": "", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "263047050fb14ec7be547bd5ec51f1f8", - "uuidPlanMaster": "e080335e5302480da0bc85fd467d386c", - "Axis": "Left", - "ActOn": "Magnetic", - "Place": null, - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 0, - "IsFullPage": 1, - "HoleRow": 0, - "HoleColum": 0, - "HoleCollective": "", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "120", - "Module": 3, - "Temperature": null, - "Amplitude": null, - "Height": "10", - "IsWait": 1, - "ImbSpeed": 0 - }, - { - "uuid": "0bb38d63cf614ccd8a3facaa111851bf", - "uuidPlanMaster": "e080335e5302480da0bc85fd467d386c", - "Axis": "Right", - "ActOn": "Load", - "Place": "H9 - 16, T13", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 13, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 2, - "HoleCollective": "9,10,11,12,13,14,15,16", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "bbd1322a456d4bfba0ce61f3fad89e23", - "uuidPlanMaster": "e080335e5302480da0bc85fd467d386c", - "Axis": "Right", - "ActOn": "Imbibing", - "Place": "H1 - 8, T6", - "Dosage": 500, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 6, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "2a6fe8c86ab643819b55b351d845e3bd", - "uuidPlanMaster": "e080335e5302480da0bc85fd467d386c", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "T16", - "Dosage": 500, - "AssistA": " 吹样(20ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 16, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "dcde54b8336a4a89b0551fdc8bd20df4", - "uuidPlanMaster": "e080335e5302480da0bc85fd467d386c", - "Axis": "Right", - "ActOn": "UnLoad", - "Place": "T19", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 19, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "5c498bbdc60f4679864e1502207f2443", - "uuidPlanMaster": "e080335e5302480da0bc85fd467d386c", - "Axis": "Right", - "ActOn": "Load", - "Place": "H17 - 24, T13", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 13, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "17,18,19,20,21,22,23,24", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "277ca001124a4047bbfbc04758648f08", - "uuidPlanMaster": "e080335e5302480da0bc85fd467d386c", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H73 - 80, T9", - "Dosage": 500, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 9, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 10, - "HoleCollective": "73,74,75,76,77,78,79,80", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "7e4541123ab04af1af0ea4f004349f71", - "uuidPlanMaster": "e080335e5302480da0bc85fd467d386c", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H1 - 8, T6", - "Dosage": 500, - "AssistA": " 吹样(20ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 6, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "06b4c2c82c0646de9dcdd94a64d17835", - "uuidPlanMaster": "e080335e5302480da0bc85fd467d386c", - "Axis": "Right", - "ActOn": "UnLoad", - "Place": "T19", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 19, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "586664143df042caa0dad8daf6441d48", - "uuidPlanMaster": "e080335e5302480da0bc85fd467d386c", - "Axis": "ClampingJaw", - "ActOn": "DefectiveLift", - "Place": "T6", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 6, - "IsFullPage": 1, - "HoleRow": 0, - "HoleColum": 0, - "HoleCollective": "", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "9ffacb90d84947fbb73eb5198b25d3e1", - "uuidPlanMaster": "e080335e5302480da0bc85fd467d386c", - "Axis": "ClampingJaw", - "ActOn": "PutDown", - "Place": "T4", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 1, - "HoleRow": 0, - "HoleColum": 0, - "HoleCollective": "", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "884121a0277b44fda19a84baebb2a2b2", - "uuidPlanMaster": "e080335e5302480da0bc85fd467d386c", - "Axis": "Left", - "ActOn": "Shaking", - "Place": null, - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 0, - "IsFullPage": 1, - "HoleRow": 0, - "HoleColum": 0, - "HoleCollective": "", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "60", - "Module": 1, - "Temperature": null, - "Amplitude": "1200", - "Height": null, - "IsWait": 1, - "ImbSpeed": 0 - }, - { - "uuid": "a2fcffbefd034e0ab7de2efe9170ee09", - "uuidPlanMaster": "e080335e5302480da0bc85fd467d386c", - "Axis": "ClampingJaw", - "ActOn": "DefectiveLift", - "Place": "T4", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 1, - "HoleRow": 0, - "HoleColum": 0, - "HoleCollective": "", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "ba476796f8a24cda86d8a971c1fc15b4", - "uuidPlanMaster": "e080335e5302480da0bc85fd467d386c", - "Axis": "ClampingJaw", - "ActOn": "PutDown", - "Place": "T6", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 6, - "IsFullPage": 1, - "HoleRow": 0, - "HoleColum": 0, - "HoleCollective": "", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "7a6bc47f462c4734995b07f01aab4225", - "uuidPlanMaster": "e080335e5302480da0bc85fd467d386c", - "Axis": "Left", - "ActOn": "Magnetic", - "Place": null, - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 0, - "IsFullPage": 1, - "HoleRow": 0, - "HoleColum": 0, - "HoleCollective": "", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "120", - "Module": 3, - "Temperature": null, - "Amplitude": null, - "Height": "10", - "IsWait": 1, - "ImbSpeed": 0 - }, - { - "uuid": "e1a373d2e88345319556202d286a490a", - "uuidPlanMaster": "e080335e5302480da0bc85fd467d386c", - "Axis": "Right", - "ActOn": "Load", - "Place": "H25 - 32, T13", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 13, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 4, - "HoleCollective": "25,26,27,28,29,30,31,32", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "c091d864619e4d0cab09373d7510a467", - "uuidPlanMaster": "e080335e5302480da0bc85fd467d386c", - "Axis": "Right", - "ActOn": "Imbibing", - "Place": "H1 - 8, T6", - "Dosage": 400, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 6, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "fe5a21da4589402e815550d3b8fd635b", - "uuidPlanMaster": "e080335e5302480da0bc85fd467d386c", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "T16", - "Dosage": 400, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 16, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "cd480d1704b1447f8ba1ebcc06090fbc", - "uuidPlanMaster": "e080335e5302480da0bc85fd467d386c", - "Axis": "Right", - "ActOn": "UnLoad", - "Place": "T19", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 19, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "8e158ca258514c0894cf906aead67167", - "uuidPlanMaster": "e080335e5302480da0bc85fd467d386c", - "Axis": "Right", - "ActOn": "Load", - "Place": "H33 - 40, T13", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 13, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 5, - "HoleCollective": "33,34,35,36,37,38,39,40", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "ea366d4aaa864eaca5ca35a94aae3533", - "uuidPlanMaster": "e080335e5302480da0bc85fd467d386c", - "Axis": "Right", - "ActOn": "Imbibing", - "Place": "H73 - 80, T9", - "Dosage": 500, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 9, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 10, - "HoleCollective": "73,74,75,76,77,78,79,80", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "5672eaf3db9348b48b93f63692684114", - "uuidPlanMaster": "e080335e5302480da0bc85fd467d386c", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H1 - 8, T6", - "Dosage": 500, - "AssistA": " 吹样(20ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 6, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "54f68f5b261645138a9d5f8644eb3db4", - "uuidPlanMaster": "e080335e5302480da0bc85fd467d386c", - "Axis": "Right", - "ActOn": "UnLoad", - "Place": "T19", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 19, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "c334431f868d4f67b9d9c42e6888f542", - "uuidPlanMaster": "e080335e5302480da0bc85fd467d386c", - "Axis": "ClampingJaw", - "ActOn": "DefectiveLift", - "Place": "T6", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 6, - "IsFullPage": 1, - "HoleRow": 0, - "HoleColum": 0, - "HoleCollective": "", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "44270672075a42b38a657145a7abe47a", - "uuidPlanMaster": "e080335e5302480da0bc85fd467d386c", - "Axis": "ClampingJaw", - "ActOn": "PutDown", - "Place": "T4", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 1, - "HoleRow": 0, - "HoleColum": 0, - "HoleCollective": "", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "3ae8829185174636826c17fde552e44f", - "uuidPlanMaster": "e080335e5302480da0bc85fd467d386c", - "Axis": "Left", - "ActOn": "Shaking", - "Place": null, - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 0, - "IsFullPage": 1, - "HoleRow": 0, - "HoleColum": 0, - "HoleCollective": "", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "60", - "Module": 1, - "Temperature": null, - "Amplitude": "1200", - "Height": null, - "IsWait": 1, - "ImbSpeed": 0 - }, - { - "uuid": "3fbb86138a874ba5b2d161d3eb4775ce", - "uuidPlanMaster": "e080335e5302480da0bc85fd467d386c", - "Axis": "ClampingJaw", - "ActOn": "DefectiveLift", - "Place": "T4", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 1, - "HoleRow": 0, - "HoleColum": 0, - "HoleCollective": "", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "16548dd32e5d4d499819ff0a8423c5f8", - "uuidPlanMaster": "e080335e5302480da0bc85fd467d386c", - "Axis": "ClampingJaw", - "ActOn": "PutDown", - "Place": "T6", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 6, - "IsFullPage": 1, - "HoleRow": 0, - "HoleColum": 0, - "HoleCollective": "", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "c42e16860ec54fbdbecfc0b1f92d9bd9", - "uuidPlanMaster": "e080335e5302480da0bc85fd467d386c", - "Axis": "Left", - "ActOn": "Magnetic", - "Place": null, - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 0, - "IsFullPage": 1, - "HoleRow": 0, - "HoleColum": 0, - "HoleCollective": "", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "120", - "Module": 3, - "Temperature": null, - "Amplitude": null, - "Height": "10", - "IsWait": 1, - "ImbSpeed": 0 - }, - { - "uuid": "728c71f677f542f8927cf862722e3c3d", - "uuidPlanMaster": "e080335e5302480da0bc85fd467d386c", - "Axis": "Right", - "ActOn": "Load", - "Place": "H41 - 48, T13", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 13, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 6, - "HoleCollective": "41,42,43,44,45,46,47,48", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "dad6deaf7cfe4e3fa2e860e54c7bf9ae", - "uuidPlanMaster": "e080335e5302480da0bc85fd467d386c", - "Axis": "Right", - "ActOn": "Imbibing", - "Place": "H1 - 8, T6", - "Dosage": 400, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 6, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "d16af99f0ce54c1b8694d0afe24ad1cc", - "uuidPlanMaster": "e080335e5302480da0bc85fd467d386c", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "T16", - "Dosage": 400, - "AssistA": " 吹样(20ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 16, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "e3b6052a73094a97b99479bff0f6c019", - "uuidPlanMaster": "e080335e5302480da0bc85fd467d386c", - "Axis": "ClampingJaw", - "ActOn": "UnLoad", - "Place": "T19", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 19, - "IsFullPage": 1, - "HoleRow": 0, - "HoleColum": 0, - "HoleCollective": "", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "2dd94617eee44197b549bce183961ff5", - "uuidPlanMaster": "e080335e5302480da0bc85fd467d386c", - "Axis": "ClampingJaw", - "ActOn": "DefectiveLift", - "Place": "T6", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 6, - "IsFullPage": 1, - "HoleRow": 0, - "HoleColum": 0, - "HoleCollective": "", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "3da92ea574fa4342a67112144f397963", - "uuidPlanMaster": "e080335e5302480da0bc85fd467d386c", - "Axis": "ClampingJaw", - "ActOn": "PutDown", - "Place": "T5", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 1, - "HoleRow": 0, - "HoleColum": 0, - "HoleCollective": "", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "88366e6630d74f5b8b8152dd958c9a06", - "uuidPlanMaster": "e080335e5302480da0bc85fd467d386c", - "Axis": "Left", - "ActOn": "Shaking_Incubation", - "Place": null, - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 0, - "IsFullPage": 1, - "HoleRow": 0, - "HoleColum": 0, - "HoleCollective": "", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "300", - "Module": 2, - "Temperature": "55", - "Amplitude": "0", - "Height": null, - "IsWait": 1, - "ImbSpeed": 0 - }, - { - "uuid": "29fd0e17859b4bc2973e36dbe48a4aaa", - "uuidPlanMaster": "e080335e5302480da0bc85fd467d386c", - "Axis": "Left", - "ActOn": "Load", - "Place": "H89 - 96, T12", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 12, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 12, - "HoleCollective": "89,90,91,92,93,94,95,96", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "4590e080f5334c278a544a9f2102cbbb", - "uuidPlanMaster": "e080335e5302480da0bc85fd467d386c", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H81 - 88, T9", - "Dosage": 50, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 9, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 11, - "HoleCollective": "81,82,83,84,85,86,87,88", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "e6c5c5f0d2b0419eadeeda355d0eda31", - "uuidPlanMaster": "e080335e5302480da0bc85fd467d386c", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1 - 8, T5", - "Dosage": 50, - "AssistA": " 吹样(10ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "78c4f2bfa35f4954b77fa04c0012632d", - "uuidPlanMaster": "e080335e5302480da0bc85fd467d386c", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T19", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 19, - "IsFullPage": 1, - "HoleRow": 0, - "HoleColum": 0, - "HoleCollective": "", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "f624a45e63e042868233719f5cfbb386", - "uuidPlanMaster": "e080335e5302480da0bc85fd467d386c", - "Axis": "Left", - "ActOn": "Shaking_Incubation", - "Place": null, - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 0, - "IsFullPage": 1, - "HoleRow": 0, - "HoleColum": 0, - "HoleCollective": "", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "300", - "Module": 2, - "Temperature": "0", - "Amplitude": "1200", - "Height": null, - "IsWait": 1, - "ImbSpeed": 0 - }, - { - "uuid": "cf577104fecc43a0abffcc8fa9d7ea81", - "uuidPlanMaster": "e080335e5302480da0bc85fd467d386c", - "Axis": "ClampingJaw", - "ActOn": "DefectiveLift", - "Place": "T5", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 1, - "HoleRow": 0, - "HoleColum": 0, - "HoleCollective": "", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "0aeca4a8c08e4ad68076f122a338a971", - "uuidPlanMaster": "e080335e5302480da0bc85fd467d386c", - "Axis": "ClampingJaw", - "ActOn": "PutDown", - "Place": "T6", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 6, - "IsFullPage": 1, - "HoleRow": 0, - "HoleColum": 0, - "HoleCollective": "", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "3720864ffe9a410fb3b68c38c0ed7fc6", - "uuidPlanMaster": "e080335e5302480da0bc85fd467d386c", - "Axis": "Left", - "ActOn": "Magnetic", - "Place": null, - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 0, - "IsFullPage": 1, - "HoleRow": 0, - "HoleColum": 0, - "HoleCollective": "", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "300", - "Module": 3, - "Temperature": null, - "Amplitude": null, - "Height": "10", - "IsWait": 1, - "ImbSpeed": 0 - }, - { - "uuid": "c721405718794021a1f13d712e5c2109", - "uuidPlanMaster": "1fbf38d5c3e945f18cc38fdb36ea9634", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1 - 8, T12", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 12, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "82f20450ff404fc1bf5e38f569aa1ca8", - "uuidPlanMaster": "1fbf38d5c3e945f18cc38fdb36ea9634", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H1 - 8, T9", - "Dosage": 220, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 9, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "05354e3a7f64413597e4afccec06c0d2", - "uuidPlanMaster": "1fbf38d5c3e945f18cc38fdb36ea9634", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1 - 8, T4", - "Dosage": 220, - "AssistA": " 吹样(10ul)", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "b9869cc4a8cd4395a2593ee79759e2d6", - "uuidPlanMaster": "1fbf38d5c3e945f18cc38fdb36ea9634", - "Axis": "Left", - "ActOn": "Shaking", - "Place": "", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 0, - "IsFullPage": 1, - "HoleRow": 0, - "HoleColum": 0, - "HoleCollective": "", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "180", - "Module": 1, - "Temperature": "", - "Amplitude": "1200", - "Height": "", - "IsWait": 1, - "ImbSpeed": 0 - }, - { - "uuid": "348d3f813ca74c1fa5322bf489512431", - "uuidPlanMaster": "1fbf38d5c3e945f18cc38fdb36ea9634", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T19", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 19, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "2ce1ee9f1d22422da2bf5ad59113fb4d", - "uuidPlanMaster": "1fbf38d5c3e945f18cc38fdb36ea9634", - "Axis": "Left", - "ActOn": "Load", - "Place": "H9 - 16, T12", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 12, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 2, - "HoleCollective": "9,10,11,12,13,14,15,16", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "baffee6fa4d84a57803694c33dce679e", - "uuidPlanMaster": "1fbf38d5c3e945f18cc38fdb36ea9634", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H9 - 16, T9", - "Dosage": 220, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 9, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 2, - "HoleCollective": "9,10,11,12,13,14,15,16", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "5d9b744c6237444981482e1f0c96ac70", - "uuidPlanMaster": "1fbf38d5c3e945f18cc38fdb36ea9634", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1 - 8, T4", - "Dosage": 220, - "AssistA": " 吹样(10ul)", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "391a99813e06414981378bfeab8f1b4d", - "uuidPlanMaster": "1fbf38d5c3e945f18cc38fdb36ea9634", - "Axis": "Left", - "ActOn": "Shaking", - "Place": "", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 0, - "IsFullPage": 1, - "HoleRow": 0, - "HoleColum": 0, - "HoleCollective": "", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "180", - "Module": 1, - "Temperature": "", - "Amplitude": "1200", - "Height": "", - "IsWait": 1, - "ImbSpeed": 0 - }, - { - "uuid": "de8f937e13d041289ea5baac930dad24", - "uuidPlanMaster": "1fbf38d5c3e945f18cc38fdb36ea9634", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T19", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 19, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "f243c256e83f4ef99ca465c01bc237bd", - "uuidPlanMaster": "1fbf38d5c3e945f18cc38fdb36ea9634", - "Axis": "Left", - "ActOn": "Load", - "Place": "H17 - 24, T12", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 12, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "17,18,19,20,21,22,23,24", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "b74bc98b455b4efda5586d03174d293b", - "uuidPlanMaster": "1fbf38d5c3e945f18cc38fdb36ea9634", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H17 - 24, T9", - "Dosage": 220, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 9, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "17,18,19,20,21,22,23,24", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "525c188a2e4042928aa8d0f6616fd63a", - "uuidPlanMaster": "1fbf38d5c3e945f18cc38fdb36ea9634", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1 - 8, T4", - "Dosage": 220, - "AssistA": " 吹样(10ul)", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "d53930ce37a84d569b31cdb7724e4174", - "uuidPlanMaster": "1fbf38d5c3e945f18cc38fdb36ea9634", - "Axis": "Left", - "ActOn": "Shaking", - "Place": "", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 0, - "IsFullPage": 1, - "HoleRow": 0, - "HoleColum": 0, - "HoleCollective": "", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "180", - "Module": 1, - "Temperature": "", - "Amplitude": "1200", - "Height": "", - "IsWait": 1, - "ImbSpeed": 0 - }, - { - "uuid": "8857bba105414449bce92ec043484d43", - "uuidPlanMaster": "1fbf38d5c3e945f18cc38fdb36ea9634", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T19", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 19, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "759e9923a5974d8fad5fa56c37ee2544", - "uuidPlanMaster": "1fbf38d5c3e945f18cc38fdb36ea9634", - "Axis": "Left", - "ActOn": "Load", - "Place": "H25 - 32, T12", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 12, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 4, - "HoleCollective": "25,26,27,28,29,30,31,32", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "cc54f7ab64e8471886fd3de65687fcc9", - "uuidPlanMaster": "1fbf38d5c3e945f18cc38fdb36ea9634", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H25 - 32, T9", - "Dosage": 40, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 9, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 4, - "HoleCollective": "25,26,27,28,29,30,31,32", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "7712ad8853d140b3bef37ce0b4de0dc3", - "uuidPlanMaster": "1fbf38d5c3e945f18cc38fdb36ea9634", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1 - 8, T4", - "Dosage": 40, - "AssistA": " 吹样(10ul)", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "0da7d040023e45b89384d0eea5c2f081", - "uuidPlanMaster": "1fbf38d5c3e945f18cc38fdb36ea9634", - "Axis": "Left", - "ActOn": "Shaking", - "Place": "", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 0, - "IsFullPage": 1, - "HoleRow": 0, - "HoleColum": 0, - "HoleCollective": "", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "180", - "Module": 1, - "Temperature": "", - "Amplitude": "1200", - "Height": "", - "IsWait": 1, - "ImbSpeed": 0 - }, - { - "uuid": "eed88da310114816925dff3ed01275c5", - "uuidPlanMaster": "1fbf38d5c3e945f18cc38fdb36ea9634", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T19", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 19, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "bad90d0cb20f48bfa4f4527da27b2014", - "uuidPlanMaster": "1fbf38d5c3e945f18cc38fdb36ea9634", - "Axis": "ClampingJaw", - "ActOn": "DefectiveLift", - "Place": "T4", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 1, - "HoleRow": 0, - "HoleColum": 0, - "HoleCollective": "", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "a0ebfd26c2e5445f84b467fe24880e47", - "uuidPlanMaster": "1fbf38d5c3e945f18cc38fdb36ea9634", - "Axis": "ClampingJaw", - "ActOn": "PutDown", - "Place": "T6", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 6, - "IsFullPage": 1, - "HoleRow": 0, - "HoleColum": 0, - "HoleCollective": "", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "601eb849841c4360bf9280b81577f4b2", - "uuidPlanMaster": "1fbf38d5c3e945f18cc38fdb36ea9634", - "Axis": "Left", - "ActOn": "Magnetic", - "Place": "", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 0, - "IsFullPage": 1, - "HoleRow": 0, - "HoleColum": 0, - "HoleCollective": "", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "300", - "Module": 2, - "Temperature": "", - "Amplitude": "", - "Height": "10", - "IsWait": 1, - "ImbSpeed": 0 - }, - { - "uuid": "69a2f43b31264e12bbef819507d0c0b2", - "uuidPlanMaster": "1fbf38d5c3e945f18cc38fdb36ea9634", - "Axis": "Left", - "ActOn": "Load", - "Place": "H33 - 40, T12", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 12, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 5, - "HoleCollective": "33,34,35,36,37,38,39,40", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "fdf88342537441a681f4bfa26788f7ec", - "uuidPlanMaster": "1fbf38d5c3e945f18cc38fdb36ea9634", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H1 - 8, T6", - "Dosage": 350, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 6, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "ea964ccbeaba4ad1ac3ad34a6eef6b6c", - "uuidPlanMaster": "1fbf38d5c3e945f18cc38fdb36ea9634", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1 - 8, T10", - "Dosage": 300, - "AssistA": " 吹样(10ul)", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 10, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "027d8881844a4866ae70729a508ff62e", - "uuidPlanMaster": "1fbf38d5c3e945f18cc38fdb36ea9634", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T19", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 19, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "e0c8acdf46b8411fa0182eed893b896c", - "uuidPlanMaster": "1fbf38d5c3e945f18cc38fdb36ea9634", - "Axis": "ClampingJaw", - "ActOn": "DefectiveLift", - "Place": "T6", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 6, - "IsFullPage": 1, - "HoleRow": 0, - "HoleColum": 0, - "HoleCollective": "", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "01dd13ec46f74ae6baf317eba72cb3a1", - "uuidPlanMaster": "1fbf38d5c3e945f18cc38fdb36ea9634", - "Axis": "ClampingJaw", - "ActOn": "PutDown", - "Place": "T7", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 7, - "IsFullPage": 1, - "HoleRow": 0, - "HoleColum": 0, - "HoleCollective": "", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "526d4f1d860b472aae9ae115240fa8ea", - "uuidPlanMaster": "1fbf38d5c3e945f18cc38fdb36ea9634", - "Axis": "Left", - "ActOn": "Load", - "Place": "H41 - 48, T12", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 12, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 6, - "HoleCollective": "41,42,43,44,45,46,47,48", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "f069b2de096d4823881d1c11cfe833cc", - "uuidPlanMaster": "1fbf38d5c3e945f18cc38fdb36ea9634", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H33 - 40, T9", - "Dosage": 40, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 9, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 5, - "HoleCollective": "33,34,35,36,37,38,39,40", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "50efa145a48648d1bda539ff248aac38", - "uuidPlanMaster": "1fbf38d5c3e945f18cc38fdb36ea9634", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1 - 8, T10", - "Dosage": 40, - "AssistA": " 吹样(10ul)", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 10, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "5b2c4f56a682407986d11f74caa989cb", - "uuidPlanMaster": "1fbf38d5c3e945f18cc38fdb36ea9634", - "Axis": "ClampingJaw", - "ActOn": "DefectiveLift", - "Place": "T10", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 10, - "IsFullPage": 1, - "HoleRow": 0, - "HoleColum": 0, - "HoleCollective": "", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "0b273c0dc7ad4d74b17adaf55e28344b", - "uuidPlanMaster": "1fbf38d5c3e945f18cc38fdb36ea9634", - "Axis": "ClampingJaw", - "ActOn": "PutDown", - "Place": "T4", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 1, - "HoleRow": 0, - "HoleColum": 0, - "HoleCollective": "", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "af412f044fd84e9a9d8453ac72146235", - "uuidPlanMaster": "1fbf38d5c3e945f18cc38fdb36ea9634", - "Axis": "Left", - "ActOn": "Shaking", - "Place": "", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 0, - "IsFullPage": 1, - "HoleRow": 0, - "HoleColum": 0, - "HoleCollective": "", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "300", - "Module": 2, - "Temperature": "", - "Amplitude": "1200", - "Height": "", - "IsWait": 1, - "ImbSpeed": 0 - }, - { - "uuid": "3d8ee57993894aa3b065937e3e4ddfd0", - "uuidPlanMaster": "1fbf38d5c3e945f18cc38fdb36ea9634", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T19", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 19, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "800cc66022da42fca5429d1f7b26306d", - "uuidPlanMaster": "1fbf38d5c3e945f18cc38fdb36ea9634", - "Axis": "ClampingJaw", - "ActOn": "DefectiveLift", - "Place": "T4", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 1, - "HoleRow": 0, - "HoleColum": 0, - "HoleCollective": "", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "c8ef19e2e29542c4854998ccb97609cc", - "uuidPlanMaster": "1fbf38d5c3e945f18cc38fdb36ea9634", - "Axis": "ClampingJaw", - "ActOn": "PutDown", - "Place": "T6", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 6, - "IsFullPage": 1, - "HoleRow": 0, - "HoleColum": 0, - "HoleCollective": "", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "cfc3372a81344d4097a4d5f786659213", - "uuidPlanMaster": "1fbf38d5c3e945f18cc38fdb36ea9634", - "Axis": "Left", - "ActOn": "Magnetic", - "Place": "", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 0, - "IsFullPage": 1, - "HoleRow": 0, - "HoleColum": 0, - "HoleCollective": "", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "100", - "Module": 3, - "Temperature": "", - "Amplitude": "", - "Height": "10", - "IsWait": 1, - "ImbSpeed": 0 - }, - { - "uuid": "a1f32f6e81d44ffb8481d9665b02e7ca", - "uuidPlanMaster": "1fbf38d5c3e945f18cc38fdb36ea9634", - "Axis": "ClampingJaw", - "ActOn": "DefectiveLift", - "Place": "T6", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 6, - "IsFullPage": 1, - "HoleRow": 0, - "HoleColum": 0, - "HoleCollective": "", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "781fc6f7429348c196a5698a633e7af4", - "uuidPlanMaster": "1fbf38d5c3e945f18cc38fdb36ea9634", - "Axis": "Left", - "ActOn": "PutDown", - "Place": "T15", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 15, - "IsFullPage": 1, - "HoleRow": 0, - "HoleColum": 0, - "HoleCollective": "", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "03a60003513e47e8939e77d330af350d", - "uuidPlanMaster": "1fbf38d5c3e945f18cc38fdb36ea9634", - "Axis": "Left", - "ActOn": "Load", - "Place": "H49 - 56, T12", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 12, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 7, - "HoleCollective": "49,50,51,52,53,54,55,56", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "07e12059230645d09428bbc6a885ecaf", - "uuidPlanMaster": "1fbf38d5c3e945f18cc38fdb36ea9634", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H1 - 8, T6", - "Dosage": 160, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 6, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "1dbd0a2ee3b343669f8a0cdab2cee032", - "uuidPlanMaster": "1fbf38d5c3e945f18cc38fdb36ea9634", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1 - 8, T11", - "Dosage": 160, - "AssistA": " 吹样(10ul)", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 11, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "b77ddf6bf8ad4e4c8aa0f667de6734bf", - "uuidPlanMaster": "1fbf38d5c3e945f18cc38fdb36ea9634", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T19", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 19, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "ece6b2e30d8c4317881550b961a13911", - "uuidPlanMaster": "1fbf38d5c3e945f18cc38fdb36ea9634", - "Axis": "Left", - "ActOn": "Load", - "Place": "H57 - 64, T12", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 12, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 8, - "HoleCollective": "57,58,59,60,61,62,63,64", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "511c9aaa98804d629ad6c7d46e30a086", - "uuidPlanMaster": "1fbf38d5c3e945f18cc38fdb36ea9634", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H41 - 48, T9", - "Dosage": 200, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 9, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 6, - "HoleCollective": "41,42,43,44,45,46,47,48", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "a5ad8b3325314098947d4da6f9c3d69e", - "uuidPlanMaster": "1fbf38d5c3e945f18cc38fdb36ea9634", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1 - 8, T11", - "Dosage": 200, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 11, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "111ad8810ca94fba80874c046dfbda50", - "uuidPlanMaster": "1fbf38d5c3e945f18cc38fdb36ea9634", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T19", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 19, - "IsFullPage": 1, - "HoleRow": 0, - "HoleColum": 0, - "HoleCollective": "", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "9cbb217839de4e2fbfacf4bb3ebec5dd", - "uuidPlanMaster": "1fbf38d5c3e945f18cc38fdb36ea9634", - "Axis": "ClampingJaw", - "ActOn": "DefectiveLift", - "Place": "T11", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 11, - "IsFullPage": 1, - "HoleRow": 0, - "HoleColum": 0, - "HoleCollective": "", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "cab69f47fe174193857798a855378dcb", - "uuidPlanMaster": "1fbf38d5c3e945f18cc38fdb36ea9634", - "Axis": "ClampingJaw", - "ActOn": "PutDown", - "Place": "T4", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 1, - "HoleRow": 0, - "HoleColum": 0, - "HoleCollective": "", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "4c3ab1410068400aa46bc26680cd3cdc", - "uuidPlanMaster": "1fbf38d5c3e945f18cc38fdb36ea9634", - "Axis": "Left", - "ActOn": "Load", - "Place": "H65 - 72, T12", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 12, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 9, - "HoleCollective": "65,66,67,68,69,70,71,72", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "27b08e87a922482696ff61e52baeb12f", - "uuidPlanMaster": "1fbf38d5c3e945f18cc38fdb36ea9634", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H49 - 56, T9", - "Dosage": 300, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 9, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 7, - "HoleCollective": "49,50,51,52,53,54,55,56", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "9960079d78fa495893f56a6eeeb52bf0", - "uuidPlanMaster": "1fbf38d5c3e945f18cc38fdb36ea9634", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1 - 8, T4", - "Dosage": 300, - "AssistA": " 吹样(10ul)", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "7585376e4d934edcb6cc6474a886c5ce", - "uuidPlanMaster": "1fbf38d5c3e945f18cc38fdb36ea9634", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T19", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 19, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "5b0c71af84624b0298cf92612709b7c8", - "uuidPlanMaster": "1fbf38d5c3e945f18cc38fdb36ea9634", - "Axis": "Left", - "ActOn": "Load", - "Place": "H73 - 80, T12", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 12, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 10, - "HoleCollective": "73,74,75,76,77,78,79,80", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "9a4569f65e554b4f9f5c2b6b28daed10", - "uuidPlanMaster": "1fbf38d5c3e945f18cc38fdb36ea9634", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H57 - 64, T9", - "Dosage": 20, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 9, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 8, - "HoleCollective": "57,58,59,60,61,62,63,64", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "3dd19eb88bd944099d71ab643bf4c9b5", - "uuidPlanMaster": "1fbf38d5c3e945f18cc38fdb36ea9634", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1 - 8, T4", - "Dosage": 20, - "AssistA": " 吹样(20ul)", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "ea35fb777766428c9c8c6bc3e03da5e9", - "uuidPlanMaster": "1fbf38d5c3e945f18cc38fdb36ea9634", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T19", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 19, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "70822ad290ff4fc38b45b363a36e4330", - "uuidPlanMaster": "1fbf38d5c3e945f18cc38fdb36ea9634", - "Axis": "Left", - "ActOn": "Shaking", - "Place": "", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 0, - "IsFullPage": 1, - "HoleRow": 0, - "HoleColum": 0, - "HoleCollective": "", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "300", - "Module": 1, - "Temperature": "", - "Amplitude": "1200", - "Height": "", - "IsWait": 1, - "ImbSpeed": 0 - }, - { - "uuid": "1ceda846fe26428bbfbd9d7c7223367a", - "uuidPlanMaster": "1fbf38d5c3e945f18cc38fdb36ea9634", - "Axis": "ClampingJaw", - "ActOn": "DefectiveLift", - "Place": "T4", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 1, - "HoleRow": 0, - "HoleColum": 0, - "HoleCollective": "", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "d91ec57af61945bbb45a1753c6480b6c", - "uuidPlanMaster": "1fbf38d5c3e945f18cc38fdb36ea9634", - "Axis": "ClampingJaw", - "ActOn": "PutDown", - "Place": "T6", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 6, - "IsFullPage": 1, - "HoleRow": 0, - "HoleColum": 0, - "HoleCollective": "", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "b4641496a9bd4a5695f78848ffd07291", - "uuidPlanMaster": "1fbf38d5c3e945f18cc38fdb36ea9634", - "Axis": "Left", - "ActOn": "Magnetic", - "Place": "", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 0, - "IsFullPage": 1, - "HoleRow": 0, - "HoleColum": 0, - "HoleCollective": "", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "120", - "Module": 2, - "Temperature": "", - "Amplitude": "", - "Height": "10", - "IsWait": 1, - "ImbSpeed": 0 - }, - { - "uuid": "d12cc34a169e4c2aa552a28ccb3d8180", - "uuidPlanMaster": "1fbf38d5c3e945f18cc38fdb36ea9634", - "Axis": "Left", - "ActOn": "Load", - "Place": "H81 - 88, T12", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 12, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 11, - "HoleCollective": "81,82,83,84,85,86,87,88", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "b69d6c5291dd4152861bb0a261708f89", - "uuidPlanMaster": "1fbf38d5c3e945f18cc38fdb36ea9634", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H1 - 8, T6", - "Dosage": 190, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 6, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "b7e541be10e64b98a51576b7ec143017", - "uuidPlanMaster": "1fbf38d5c3e945f18cc38fdb36ea9634", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "T16", - "Dosage": 190, - "AssistA": " 吹样(10ul)", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 16, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "5d0a6ccdcdee422a806b8dde35bdabc0", - "uuidPlanMaster": "1fbf38d5c3e945f18cc38fdb36ea9634", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T19", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 19, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "0dca4b262df24c39835bff2b61d59bbe", - "uuidPlanMaster": "1fbf38d5c3e945f18cc38fdb36ea9634", - "Axis": "Right", - "ActOn": "Load", - "Place": "H1 - 8, T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 13, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "2f48fd242fe544088916e76ae8a8f6e5", - "uuidPlanMaster": "1fbf38d5c3e945f18cc38fdb36ea9634", - "Axis": "Right", - "ActOn": "Imbibing", - "Place": "H65 - 72, T9", - "Dosage": 850, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 9, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 9, - "HoleCollective": "65,66,67,68,69,70,71,72", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "824ffaf24bca46248cee1064b21c1f67", - "uuidPlanMaster": "1fbf38d5c3e945f18cc38fdb36ea9634", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H1 - 8, T6", - "Dosage": 850, - "AssistA": " 吹样(20ul)", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 6, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "2bed1e63413d41f68c0b0c77006df538", - "uuidPlanMaster": "1fbf38d5c3e945f18cc38fdb36ea9634", - "Axis": "Right", - "ActOn": "UnLoad", - "Place": "T19", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 19, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "80d11859056f4d1bad24febc5192e6ac", - "uuidPlanMaster": "1fbf38d5c3e945f18cc38fdb36ea9634", - "Axis": "ClampingJaw", - "ActOn": "DefectiveLift", - "Place": "T6", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 6, - "IsFullPage": 1, - "HoleRow": 0, - "HoleColum": 0, - "HoleCollective": "", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "87db0844437d4b35863561fbc7220077", - "uuidPlanMaster": "1fbf38d5c3e945f18cc38fdb36ea9634", - "Axis": "ClampingJaw", - "ActOn": "PutDown", - "Place": "T4", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 1, - "HoleRow": 0, - "HoleColum": 0, - "HoleCollective": "", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "b846c56c0fd04a029514c208b02e9f4b", - "uuidPlanMaster": "1fbf38d5c3e945f18cc38fdb36ea9634", - "Axis": "Left", - "ActOn": "Shaking", - "Place": "", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 0, - "IsFullPage": 1, - "HoleRow": 0, - "HoleColum": 0, - "HoleCollective": "", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "60", - "Module": 2, - "Temperature": "", - "Amplitude": "1200", - "Height": "", - "IsWait": 1, - "ImbSpeed": 0 - }, - { - "uuid": "c52a8de7fc24471d88798322c1eddff5", - "uuidPlanMaster": "1fbf38d5c3e945f18cc38fdb36ea9634", - "Axis": "ClampingJaw", - "ActOn": "DefectiveLift", - "Place": "T4", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 1, - "HoleRow": 0, - "HoleColum": 0, - "HoleCollective": "", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "abaaf4f0762a47b5a95153207585b657", - "uuidPlanMaster": "1fbf38d5c3e945f18cc38fdb36ea9634", - "Axis": "ClampingJaw", - "ActOn": "PutDown", - "Place": "T6", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 6, - "IsFullPage": 1, - "HoleRow": 0, - "HoleColum": 0, - "HoleCollective": "", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "6675e011c7cc45789a6f4653a134730d", - "uuidPlanMaster": "1fbf38d5c3e945f18cc38fdb36ea9634", - "Axis": "Left", - "ActOn": "Magnetic", - "Place": "", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 0, - "IsFullPage": 1, - "HoleRow": 0, - "HoleColum": 0, - "HoleCollective": "", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "120", - "Module": 3, - "Temperature": "", - "Amplitude": "", - "Height": "10", - "IsWait": 1, - "ImbSpeed": 0 - }, - { - "uuid": "1d5b8d49b7b5422faa590d4c88e5ee04", - "uuidPlanMaster": "1fbf38d5c3e945f18cc38fdb36ea9634", - "Axis": "Right", - "ActOn": "Load", - "Place": "H9 - 16, T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 13, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 2, - "HoleCollective": "9,10,11,12,13,14,15,16", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "166f3b1744de4dbda61e7f3f2979db0c", - "uuidPlanMaster": "1fbf38d5c3e945f18cc38fdb36ea9634", - "Axis": "Right", - "ActOn": "Imbibing", - "Place": "H1 - 8, T6", - "Dosage": 500, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 6, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "d41b1394fd5e4896bdb121734b544b26", - "uuidPlanMaster": "1fbf38d5c3e945f18cc38fdb36ea9634", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "T16", - "Dosage": 500, - "AssistA": " 吹样(20ul)", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 16, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "aacc9bfadd18482bb4adb62eea222629", - "uuidPlanMaster": "1fbf38d5c3e945f18cc38fdb36ea9634", - "Axis": "Right", - "ActOn": "UnLoad", - "Place": "T19", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 19, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "dd729ecda4be414a817486035d095af0", - "uuidPlanMaster": "1fbf38d5c3e945f18cc38fdb36ea9634", - "Axis": "Right", - "ActOn": "Load", - "Place": "H17 - 24, T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 13, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "17,18,19,20,21,22,23,24", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "80884b6522bb4523a30a5b6f98d7b2d3", - "uuidPlanMaster": "1fbf38d5c3e945f18cc38fdb36ea9634", - "Axis": "Right", - "ActOn": "Imbibing", - "Place": "H73 - 80, T9", - "Dosage": 500, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 9, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 10, - "HoleCollective": "73,74,75,76,77,78,79,80", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "e99e350f1fda4828bceedb675f828f49", - "uuidPlanMaster": "1fbf38d5c3e945f18cc38fdb36ea9634", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H1 - 8, T6", - "Dosage": 500, - "AssistA": " 吹样(20ul)", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 6, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "60600469a54e4ee2906eb4363be043d7", - "uuidPlanMaster": "1fbf38d5c3e945f18cc38fdb36ea9634", - "Axis": "Right", - "ActOn": "UnLoad", - "Place": "T19", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 19, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "bf5e07f3fd954c128c24d46776872893", - "uuidPlanMaster": "1fbf38d5c3e945f18cc38fdb36ea9634", - "Axis": "ClampingJaw", - "ActOn": "DefectiveLift", - "Place": "T6", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 6, - "IsFullPage": 1, - "HoleRow": 0, - "HoleColum": 0, - "HoleCollective": "", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "a351fc96be124ec184e9e98f3cbb8ca0", - "uuidPlanMaster": "1fbf38d5c3e945f18cc38fdb36ea9634", - "Axis": "ClampingJaw", - "ActOn": "PutDown", - "Place": "T4", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 1, - "HoleRow": 0, - "HoleColum": 0, - "HoleCollective": "", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "c756c3e5a70a4b13819445f7cb041139", - "uuidPlanMaster": "1fbf38d5c3e945f18cc38fdb36ea9634", - "Axis": "Left", - "ActOn": "Shaking", - "Place": "", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 0, - "IsFullPage": 1, - "HoleRow": 0, - "HoleColum": 0, - "HoleCollective": "", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "60", - "Module": 1, - "Temperature": "", - "Amplitude": "1200", - "Height": "", - "IsWait": 1, - "ImbSpeed": 0 - }, - { - "uuid": "266f0a652c97414984d207ed35c32d21", - "uuidPlanMaster": "1fbf38d5c3e945f18cc38fdb36ea9634", - "Axis": "ClampingJaw", - "ActOn": "DefectiveLift", - "Place": "T4", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 1, - "HoleRow": 0, - "HoleColum": 0, - "HoleCollective": "", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "34aa86cd004a4cb6b68fd309769ace15", - "uuidPlanMaster": "1fbf38d5c3e945f18cc38fdb36ea9634", - "Axis": "ClampingJaw", - "ActOn": "PutDown", - "Place": "T6", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 6, - "IsFullPage": 1, - "HoleRow": 0, - "HoleColum": 0, - "HoleCollective": "", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "d1a8b6ce9ae2446e8671e4148ea9d6bf", - "uuidPlanMaster": "1fbf38d5c3e945f18cc38fdb36ea9634", - "Axis": "Left", - "ActOn": "Magnetic", - "Place": "", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 0, - "IsFullPage": 1, - "HoleRow": 0, - "HoleColum": 0, - "HoleCollective": "", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "120", - "Module": 3, - "Temperature": "", - "Amplitude": "", - "Height": "10", - "IsWait": 1, - "ImbSpeed": 0 - }, - { - "uuid": "23c024eec6ea47af82d18eeaac6b5a7e", - "uuidPlanMaster": "1fbf38d5c3e945f18cc38fdb36ea9634", - "Axis": "Right", - "ActOn": "Load", - "Place": "H25 - 32, T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 13, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 4, - "HoleCollective": "25,26,27,28,29,30,31,32", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "bba2a353638e4c7c8dd563c5494e7cf1", - "uuidPlanMaster": "1fbf38d5c3e945f18cc38fdb36ea9634", - "Axis": "Right", - "ActOn": "Imbibing", - "Place": "H1 - 8, T6", - "Dosage": 400, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 6, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "5f172dfc2bbf4bfd9cd86712fcfd1433", - "uuidPlanMaster": "1fbf38d5c3e945f18cc38fdb36ea9634", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "T16", - "Dosage": 400, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 16, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "4eed6fa98cca4fcdac09d2e7346c2a3e", - "uuidPlanMaster": "1fbf38d5c3e945f18cc38fdb36ea9634", - "Axis": "Right", - "ActOn": "UnLoad", - "Place": "T19", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 19, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "e04c8a32e82f46e4be605bde9a8a0ace", - "uuidPlanMaster": "1fbf38d5c3e945f18cc38fdb36ea9634", - "Axis": "Right", - "ActOn": "Load", - "Place": "H33 - 40, T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 13, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 5, - "HoleCollective": "33,34,35,36,37,38,39,40", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "54f6d44214ce4795b6af0d4a9c933303", - "uuidPlanMaster": "1fbf38d5c3e945f18cc38fdb36ea9634", - "Axis": "Right", - "ActOn": "Imbibing", - "Place": "H73 - 80, T9", - "Dosage": 500, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 9, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 10, - "HoleCollective": "73,74,75,76,77,78,79,80", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "3c8a04656c344e1ba947754bd1ca7732", - "uuidPlanMaster": "1fbf38d5c3e945f18cc38fdb36ea9634", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H1 - 8, T6", - "Dosage": 500, - "AssistA": " 吹样(20ul)", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 6, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "ee8fbd8382724f10821da8d670503bd8", - "uuidPlanMaster": "1fbf38d5c3e945f18cc38fdb36ea9634", - "Axis": "Right", - "ActOn": "UnLoad", - "Place": "T19", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 19, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "3439469941934b56a0fa1ff78b8b863b", - "uuidPlanMaster": "1fbf38d5c3e945f18cc38fdb36ea9634", - "Axis": "ClampingJaw", - "ActOn": "DefectiveLift", - "Place": "T6", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 6, - "IsFullPage": 1, - "HoleRow": 0, - "HoleColum": 0, - "HoleCollective": "", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "d2d04b69f0aa491793703e790efd077f", - "uuidPlanMaster": "1fbf38d5c3e945f18cc38fdb36ea9634", - "Axis": "ClampingJaw", - "ActOn": "PutDown", - "Place": "T4", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 1, - "HoleRow": 0, - "HoleColum": 0, - "HoleCollective": "", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "661b2fd73da34af6bd20e1a3b1288fa7", - "uuidPlanMaster": "1fbf38d5c3e945f18cc38fdb36ea9634", - "Axis": "Left", - "ActOn": "Shaking", - "Place": "", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 0, - "IsFullPage": 1, - "HoleRow": 0, - "HoleColum": 0, - "HoleCollective": "", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "60", - "Module": 1, - "Temperature": "", - "Amplitude": "1200", - "Height": "", - "IsWait": 1, - "ImbSpeed": 0 - }, - { - "uuid": "e9cdb67c975049338014bbe7757f91e6", - "uuidPlanMaster": "1fbf38d5c3e945f18cc38fdb36ea9634", - "Axis": "ClampingJaw", - "ActOn": "DefectiveLift", - "Place": "T4", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 1, - "HoleRow": 0, - "HoleColum": 0, - "HoleCollective": "", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "3ba2c6d46e89402aaa9d15db27145048", - "uuidPlanMaster": "1fbf38d5c3e945f18cc38fdb36ea9634", - "Axis": "ClampingJaw", - "ActOn": "PutDown", - "Place": "T6", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 6, - "IsFullPage": 1, - "HoleRow": 0, - "HoleColum": 0, - "HoleCollective": "", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "2c5bfad12c60460db3c82bbc47af2153", - "uuidPlanMaster": "1fbf38d5c3e945f18cc38fdb36ea9634", - "Axis": "Left", - "ActOn": "Magnetic", - "Place": "", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 0, - "IsFullPage": 1, - "HoleRow": 0, - "HoleColum": 0, - "HoleCollective": "", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "120", - "Module": 3, - "Temperature": "", - "Amplitude": "", - "Height": "10", - "IsWait": 1, - "ImbSpeed": 0 - }, - { - "uuid": "6913c1445bfd4e6e85bc49118c026df2", - "uuidPlanMaster": "1fbf38d5c3e945f18cc38fdb36ea9634", - "Axis": "Right", - "ActOn": "Load", - "Place": "H41 - 48, T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 13, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 6, - "HoleCollective": "41,42,43,44,45,46,47,48", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "37fe2ee0b6574f08bf04088905763c03", - "uuidPlanMaster": "1fbf38d5c3e945f18cc38fdb36ea9634", - "Axis": "Right", - "ActOn": "Imbibing", - "Place": "H1 - 8, T6", - "Dosage": 400, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 6, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "497681830529479f9eab67dc05e76e3a", - "uuidPlanMaster": "1fbf38d5c3e945f18cc38fdb36ea9634", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "T16", - "Dosage": 400, - "AssistA": " 吹样(20ul)", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 16, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "0ced5f4012504354b736253889700509", - "uuidPlanMaster": "1fbf38d5c3e945f18cc38fdb36ea9634", - "Axis": "Right", - "ActOn": "UnLoad", - "Place": "T19", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 19, - "IsFullPage": 1, - "HoleRow": 0, - "HoleColum": 0, - "HoleCollective": "", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "14b8f034df9e4224b51962599db14c53", - "uuidPlanMaster": "1fbf38d5c3e945f18cc38fdb36ea9634", - "Axis": "ClampingJaw", - "ActOn": "DefectiveLift", - "Place": "T6", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 6, - "IsFullPage": 1, - "HoleRow": 0, - "HoleColum": 0, - "HoleCollective": "", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "4695c53f2bca498488a97aec4d0a1dfb", - "uuidPlanMaster": "1fbf38d5c3e945f18cc38fdb36ea9634", - "Axis": "ClampingJaw", - "ActOn": "PutDown", - "Place": "T5", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 1, - "HoleRow": 0, - "HoleColum": 0, - "HoleCollective": "", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "9256c93ea80e4508a5716c8d2c4e4ef1", - "uuidPlanMaster": "1fbf38d5c3e945f18cc38fdb36ea9634", - "Axis": "Left", - "ActOn": "Shaking_Incubation", - "Place": "", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 0, - "IsFullPage": 1, - "HoleRow": 0, - "HoleColum": 0, - "HoleCollective": "", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "300", - "Module": 2, - "Temperature": "55", - "Amplitude": "0", - "Height": "", - "IsWait": 1, - "ImbSpeed": 0 - }, - { - "uuid": "3a8840547e8846f2a001aac707ea4a67", - "uuidPlanMaster": "1fbf38d5c3e945f18cc38fdb36ea9634", - "Axis": "Left", - "ActOn": "Load", - "Place": "H89 - 96, T12", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 12, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 12, - "HoleCollective": "89,90,91,92,93,94,95,96", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "d552169dff6b4854abc20b20173e5d36", - "uuidPlanMaster": "1fbf38d5c3e945f18cc38fdb36ea9634", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H81 - 88, T9", - "Dosage": 50, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 9, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 11, - "HoleCollective": "81,82,83,84,85,86,87,88", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "9912cd177cf841d185ec61bbc8584410", - "uuidPlanMaster": "1fbf38d5c3e945f18cc38fdb36ea9634", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1 - 8, T5", - "Dosage": 50, - "AssistA": " 吹样(10ul)", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "8a0db4e8d81342bd9767bfdcb7615056", - "uuidPlanMaster": "1fbf38d5c3e945f18cc38fdb36ea9634", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T19", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 19, - "IsFullPage": 1, - "HoleRow": 0, - "HoleColum": 0, - "HoleCollective": "", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "88f0379dbfc2405f80c3d6e7290465a7", - "uuidPlanMaster": "1fbf38d5c3e945f18cc38fdb36ea9634", - "Axis": "Left", - "ActOn": "Shaking_Incubation", - "Place": "", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 0, - "IsFullPage": 1, - "HoleRow": 0, - "HoleColum": 0, - "HoleCollective": "", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "300", - "Module": 2, - "Temperature": "0", - "Amplitude": "1200", - "Height": "", - "IsWait": 1, - "ImbSpeed": 0 - }, - { - "uuid": "31c4b6149d7b43458ac2c094357fc576", - "uuidPlanMaster": "1fbf38d5c3e945f18cc38fdb36ea9634", - "Axis": "ClampingJaw", - "ActOn": "DefectiveLift", - "Place": "T5", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 1, - "HoleRow": 0, - "HoleColum": 0, - "HoleCollective": "", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "d5362fed7f8a4021862f66b17887f300", - "uuidPlanMaster": "1fbf38d5c3e945f18cc38fdb36ea9634", - "Axis": "ClampingJaw", - "ActOn": "PutDown", - "Place": "T6", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 6, - "IsFullPage": 1, - "HoleRow": 0, - "HoleColum": 0, - "HoleCollective": "", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "b5db9ea3aa1d4625b22d5b83068b60a4", - "uuidPlanMaster": "1fbf38d5c3e945f18cc38fdb36ea9634", - "Axis": "Left", - "ActOn": "Magnetic", - "Place": "", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 0, - "IsFullPage": 1, - "HoleRow": 0, - "HoleColum": 0, - "HoleCollective": "", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "300", - "Module": 3, - "Temperature": "", - "Amplitude": "", - "Height": "10", - "IsWait": 1, - "ImbSpeed": 0 - }, - { - "uuid": "e16c3f1032544fcfa36f440359eb1903", - "uuidPlanMaster": "1fbf38d5c3e945f18cc38fdb36ea9634", - "Axis": "Right", - "ActOn": "Load", - "Place": "H57 - 64, T13", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 13, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 8, - "HoleCollective": "57,58,59,60,61,62,63,64", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "4d2a4c86317e4ca69fc45635af61d2b4", - "uuidPlanMaster": "1fbf38d5c3e945f18cc38fdb36ea9634", - "Axis": "Right", - "ActOn": "Imbibing", - "Place": "H1 - 8, T6", - "Dosage": 300, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 6, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "28a1115c51364795b6a8b6dd89f1869f", - "uuidPlanMaster": "1fbf38d5c3e945f18cc38fdb36ea9634", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H1 - 8, T18", - "Dosage": 300, - "AssistA": " 吹样(20ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 18, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "60682f63fea244b1be01d79e44f9a294", - "uuidPlanMaster": "1fbf38d5c3e945f18cc38fdb36ea9634", - "Axis": "Right", - "ActOn": "UnLoad", - "Place": "T19", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 19, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "a554e853cf18402a8995e580bd380b4e", - "uuidPlanMaster": "26cb682fdeef45ea9cfb59183198b5ab", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1 - 8, T12", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 12, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "94024d9b0aec4571b06c769625e12b80", - "uuidPlanMaster": "26cb682fdeef45ea9cfb59183198b5ab", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H1 - 8, T8", - "Dosage": 100, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 8, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "5bcabba1fb214620a92abb987674a309", - "uuidPlanMaster": "26cb682fdeef45ea9cfb59183198b5ab", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H9 - 16, T8", - "Dosage": 100, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 8, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 2, - "HoleCollective": "9,10,11,12,13,14,15,16", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "b097f4419c3548a089c6d8546ec57abf", - "uuidPlanMaster": "26cb682fdeef45ea9cfb59183198b5ab", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H1 - 8, T12", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 12, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "8c6f5a44d48e4b66b40cf7fa48edabe8", - "uuidPlanMaster": "37b6b8f2762b46ad8288557d802d3cc0", - "Axis": "Right", - "ActOn": "Load", - "Place": "H1 - 8, T13", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 13, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "18a42071f87b45dd8cea34ad5c27ad27", - "uuidPlanMaster": "37b6b8f2762b46ad8288557d802d3cc0", - "Axis": "Right", - "ActOn": "Blending", - "Place": "H1 - 8, T14", - "Dosage": 500, - "AssistA": " 吹样(50ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 14, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 3, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "86497b576ffc4a1280c7cfc949cc39e8", - "uuidPlanMaster": "37b6b8f2762b46ad8288557d802d3cc0", - "Axis": "Right", - "ActOn": "Imbibing", - "Place": "H1 - 8, T14", - "Dosage": 500, - "AssistA": " 悬停(60s)", - "AssistB": " 反向吸液(150ul)", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 14, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "f3dc7cdaf33c4e92a70932349f547634", - "uuidPlanMaster": "37b6b8f2762b46ad8288557d802d3cc0", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H1 - 8, T14", - "Dosage": 500, - "AssistA": " 吹样(100ul)", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 14, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "d24e613a96624e0995f972a0d78fe389", - "uuidPlanMaster": "37b6b8f2762b46ad8288557d802d3cc0", - "Axis": "Right", - "ActOn": "UnLoad", - "Place": "H1 - 8, T13", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 13, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "670ff057d9394c50a0094bf377868f43", - "uuidPlanMaster": "c04009dd127e444fbd46fb210ad7afaa", - "Axis": "Right", - "ActOn": "Load", - "Place": "H1 - 8, T13", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 13, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "f6c83f9d4f98484dac1299cca22139c5", - "uuidPlanMaster": "c04009dd127e444fbd46fb210ad7afaa", - "Axis": "Right", - "ActOn": "Blending", - "Place": "H1 - 8, T14", - "Dosage": 500, - "AssistA": " 吹样(50ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 14, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 3, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "6efeaf1ed37143348c42eadd020b36b6", - "uuidPlanMaster": "c04009dd127e444fbd46fb210ad7afaa", - "Axis": "Right", - "ActOn": "Imbibing", - "Place": "H1 - 8, T14", - "Dosage": 500, - "AssistA": " 悬停(60s)", - "AssistB": " 反向吸液(50ul)", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 14, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "5da709009a1b4298a25a626906e48e95", - "uuidPlanMaster": "c04009dd127e444fbd46fb210ad7afaa", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H1 - 8, T14", - "Dosage": 500, - "AssistA": " 吹样(100ul)", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 14, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "0c6f81040b074c7abbf4bf8e92238777", - "uuidPlanMaster": "c04009dd127e444fbd46fb210ad7afaa", - "Axis": "Right", - "ActOn": "UnLoad", - "Place": "H1 - 8, T13", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 13, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "dcd5bfe96d4d47f08af6dcbf1ee0956f", - "uuidPlanMaster": "866f1d90aa5749609d20fc2cec991072", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1 - 8, T12", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 12, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "2ded090f843840ceb414bf67c3d1ced0", - "uuidPlanMaster": "866f1d90aa5749609d20fc2cec991072", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H1 - 8, T8", - "Dosage": 100, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 8, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "04fc53fa57334e7fa9ef491465047322", - "uuidPlanMaster": "866f1d90aa5749609d20fc2cec991072", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H9 - 16, T8", - "Dosage": 100, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 8, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 2, - "HoleCollective": "9,10,11,12,13,14,15,16", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "d71476b6fca344b5909d6660f88bcca2", - "uuidPlanMaster": "866f1d90aa5749609d20fc2cec991072", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H1 - 8, T12", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 12, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "6aadce9ad896460c84d2ac8a16d220e2", - "uuidPlanMaster": "d0cd9ffb87a54eca9d8d2d1d86df113f", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1 - 8, T12", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 12, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "9b7a7892f8804ad5a4cf701768506845", - "uuidPlanMaster": "d0cd9ffb87a54eca9d8d2d1d86df113f", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H1 - 8, T10", - "Dosage": 220, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 10, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "385d5e99283d4a80a8b674b5b457a5b3", - "uuidPlanMaster": "d0cd9ffb87a54eca9d8d2d1d86df113f", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1 - 8, T6", - "Dosage": 220, - "AssistA": " 吹样(20ul)", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 6, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "b93f4ac99b344ad6a3c69f9bceb85be4", - "uuidPlanMaster": "d0cd9ffb87a54eca9d8d2d1d86df113f", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T18", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 18, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "74239424f2f14550ac5b2f53f83e94eb", - "uuidPlanMaster": "d0cd9ffb87a54eca9d8d2d1d86df113f", - "Axis": "Left", - "ActOn": "Shaking", - "Place": "", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 0, - "IsFullPage": 1, - "HoleRow": 0, - "HoleColum": 0, - "HoleCollective": "", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "300", - "Module": 1, - "Temperature": "", - "Amplitude": "1200", - "Height": "", - "IsWait": 1, - "ImbSpeed": 0 - }, - { - "uuid": "f2a64396868b4048a903392a936c9723", - "uuidPlanMaster": "d0cd9ffb87a54eca9d8d2d1d86df113f", - "Axis": "Left", - "ActOn": "Load", - "Place": "H9 - 16, T12", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 12, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 2, - "HoleCollective": "9,10,11,12,13,14,15,16", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "202244adc6ec446f9c3ee1441a4d5f1b", - "uuidPlanMaster": "d0cd9ffb87a54eca9d8d2d1d86df113f", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H9 - 16, T10", - "Dosage": 220, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 10, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 2, - "HoleCollective": "9,10,11,12,13,14,15,16", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "c2b557948cfd425ab2115b9ed29cfda3", - "uuidPlanMaster": "d0cd9ffb87a54eca9d8d2d1d86df113f", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1 - 8, T6", - "Dosage": 220, - "AssistA": " 吹样(20ul)", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 6, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "994b45661636431fa14ab30dac7a06fa", - "uuidPlanMaster": "d0cd9ffb87a54eca9d8d2d1d86df113f", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T18", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 18, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "bfba7e5f6ecf4f40bd32200abe32eed1", - "uuidPlanMaster": "d0cd9ffb87a54eca9d8d2d1d86df113f", - "Axis": "Left", - "ActOn": "Shaking", - "Place": "", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 0, - "IsFullPage": 1, - "HoleRow": 0, - "HoleColum": 0, - "HoleCollective": "", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "300", - "Module": 1, - "Temperature": "", - "Amplitude": "1200", - "Height": "", - "IsWait": 1, - "ImbSpeed": 0 - }, - { - "uuid": "ff608b0695d84582b7671252a3889aa8", - "uuidPlanMaster": "d0cd9ffb87a54eca9d8d2d1d86df113f", - "Axis": "Left", - "ActOn": "Load", - "Place": "H17 - 24, T12", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 12, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "17,18,19,20,21,22,23,24", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "ba6a860b67334d1a94253af045ff0ac5", - "uuidPlanMaster": "d0cd9ffb87a54eca9d8d2d1d86df113f", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H17 - 24, T10", - "Dosage": 220, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 10, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "17,18,19,20,21,22,23,24", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "97fa6772e47649ca86f7649146b06e48", - "uuidPlanMaster": "d0cd9ffb87a54eca9d8d2d1d86df113f", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1 - 8, T6", - "Dosage": 220, - "AssistA": " 吹样(20ul)", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 6, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "919212348f0441c6a6c6cc22b109d9ec", - "uuidPlanMaster": "d0cd9ffb87a54eca9d8d2d1d86df113f", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T18", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 18, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "1edcfeafe4294e0b90dcc2748fa0ea6f", - "uuidPlanMaster": "d0cd9ffb87a54eca9d8d2d1d86df113f", - "Axis": "Left", - "ActOn": "Shaking", - "Place": "", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 0, - "IsFullPage": 1, - "HoleRow": 0, - "HoleColum": 0, - "HoleCollective": "", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "300", - "Module": 1, - "Temperature": "", - "Amplitude": "1200", - "Height": "", - "IsWait": 1, - "ImbSpeed": 0 - }, - { - "uuid": "05a16cb93cb144ba8e8f3eae5522271d", - "uuidPlanMaster": "d0cd9ffb87a54eca9d8d2d1d86df113f", - "Axis": "Right", - "ActOn": "Load", - "Place": "H1 - 8, T8", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 8, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "b29b52347b5449f58c1aeae7a1559ce0", - "uuidPlanMaster": "d0cd9ffb87a54eca9d8d2d1d86df113f", - "Axis": "Right", - "ActOn": "Imbibing", - "Place": "H1 - 8, T6", - "Dosage": 660, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 6, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "8c745dbe0ccb463ab4112e45d2082408", - "uuidPlanMaster": "d0cd9ffb87a54eca9d8d2d1d86df113f", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H1 - 8, T13", - "Dosage": 660, - "AssistA": " 吹样(50ul)", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 13, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "ac0e85eea284469387e02bd7a22ea04a", - "uuidPlanMaster": "d0cd9ffb87a54eca9d8d2d1d86df113f", - "Axis": "Right", - "ActOn": "UnLoad", - "Place": "T18", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 18, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "755eab45722f4a658b2897fcbfb76bc3", - "uuidPlanMaster": "d0cd9ffb87a54eca9d8d2d1d86df113f", - "Axis": "Left", - "ActOn": "Load", - "Place": "H25 - 32, T12", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 12, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 4, - "HoleCollective": "25,26,27,28,29,30,31,32", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "82b2d2ea2b8246899370b732fc9a1a5a", - "uuidPlanMaster": "d0cd9ffb87a54eca9d8d2d1d86df113f", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H25 - 32, T10", - "Dosage": 40, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 10, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 4, - "HoleCollective": "25,26,27,28,29,30,31,32", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "a32a59bf139542909e002eaf3cee938f", - "uuidPlanMaster": "d0cd9ffb87a54eca9d8d2d1d86df113f", - "Axis": "Left", - "ActOn": "Blending", - "Place": "H1 - 8, T13", - "Dosage": 200, - "AssistA": " 吹样(20ul)", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 13, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 5, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "f91b4c27f14848d196863acd42d55fea", - "uuidPlanMaster": "d0cd9ffb87a54eca9d8d2d1d86df113f", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T18", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 18, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "a1ff5f17ee74478e87d37bd1ad3cdccd", - "uuidPlanMaster": "d0cd9ffb87a54eca9d8d2d1d86df113f", - "Axis": "Left", - "ActOn": "Magnetic", - "Place": "", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 0, - "IsFullPage": 1, - "HoleRow": 0, - "HoleColum": 0, - "HoleCollective": "", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "300", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "31", - "IsWait": 1, - "ImbSpeed": 0 - }, - { - "uuid": "35340b7f434f42c0854f0144d1ef9c0c", - "uuidPlanMaster": "d0cd9ffb87a54eca9d8d2d1d86df113f", - "Axis": "Left", - "ActOn": "Load", - "Place": "H33 - 40, T12", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 12, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 5, - "HoleCollective": "33,34,35,36,37,38,39,40", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "b3f4f26b44af434ba66c4352894d6515", - "uuidPlanMaster": "d0cd9ffb87a54eca9d8d2d1d86df113f", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H1 - 8, T13", - "Dosage": 300, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 13, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "12d2fa60caf749bc9bdd913233d53216", - "uuidPlanMaster": "d0cd9ffb87a54eca9d8d2d1d86df113f", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1 - 8, T14", - "Dosage": 300, - "AssistA": " 吹样(20ul)", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 14, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "c5c94373ff094869b55d4a139f1de6ce", - "uuidPlanMaster": "d0cd9ffb87a54eca9d8d2d1d86df113f", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T18", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 18, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "b09241c9124041aba940430e8c24f65a", - "uuidPlanMaster": "d0cd9ffb87a54eca9d8d2d1d86df113f", - "Axis": "ClampingJaw", - "ActOn": "DefectiveLift", - "Place": "T6", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 6, - "IsFullPage": 1, - "HoleRow": 0, - "HoleColum": 0, - "HoleCollective": "", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "6ecb0aa1b19a4aabbdbbd9f23656c2dc", - "uuidPlanMaster": "d0cd9ffb87a54eca9d8d2d1d86df113f", - "Axis": "ClampingJaw", - "ActOn": "PutDown", - "Place": "T7", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 7, - "IsFullPage": 1, - "HoleRow": 0, - "HoleColum": 0, - "HoleCollective": "", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "5845f2e2fa3c4205abc0acd03fef2fe5", - "uuidPlanMaster": "d0cd9ffb87a54eca9d8d2d1d86df113f", - "Axis": "ClampingJaw", - "ActOn": "DefectiveLift", - "Place": "T14", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 14, - "IsFullPage": 1, - "HoleRow": 0, - "HoleColum": 0, - "HoleCollective": "", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "ce9151126932486e9185c8b1e6c4b37e", - "uuidPlanMaster": "d0cd9ffb87a54eca9d8d2d1d86df113f", - "Axis": "ClampingJaw", - "ActOn": "PutDown", - "Place": "T6", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 6, - "IsFullPage": 1, - "HoleRow": 0, - "HoleColum": 0, - "HoleCollective": "", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "40b5bb7d77e540519b1b61bd802d6f0d", - "uuidPlanMaster": "d0cd9ffb87a54eca9d8d2d1d86df113f", - "Axis": "Left", - "ActOn": "Load", - "Place": "H41 - 48, T12", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 12, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 6, - "HoleCollective": "41,42,43,44,45,46,47,48", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "5862af69ae11486ba21682bed0be0bc5", - "uuidPlanMaster": "d0cd9ffb87a54eca9d8d2d1d86df113f", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H33 - 40, T10", - "Dosage": 40, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 10, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 5, - "HoleCollective": "33,34,35,36,37,38,39,40", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "179b43a7d7dd48bc88a3cc3fdfa0f0f3", - "uuidPlanMaster": "d0cd9ffb87a54eca9d8d2d1d86df113f", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1 - 8, T6", - "Dosage": 40, - "AssistA": " 吹样(20ul)", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 6, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "2aa4f3a352714b638a2e46229930f134", - "uuidPlanMaster": "d0cd9ffb87a54eca9d8d2d1d86df113f", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T18", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 18, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "37b1144a413049ce9ffb5afab98f68c8", - "uuidPlanMaster": "d0cd9ffb87a54eca9d8d2d1d86df113f", - "Axis": "Left", - "ActOn": "Shaking", - "Place": "", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 0, - "IsFullPage": 1, - "HoleRow": 0, - "HoleColum": 0, - "HoleCollective": "", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "300", - "Module": 1, - "Temperature": "", - "Amplitude": "1200", - "Height": "", - "IsWait": 1, - "ImbSpeed": 0 - }, - { - "uuid": "58250b999d804dae965203ca0f013f1b", - "uuidPlanMaster": "d0cd9ffb87a54eca9d8d2d1d86df113f", - "Axis": "ClampingJaw", - "ActOn": "DefectiveLift", - "Place": "T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 13, - "IsFullPage": 1, - "HoleRow": 0, - "HoleColum": 0, - "HoleCollective": "", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "779be5d378bc49019babb4dc1fe128dd", - "uuidPlanMaster": "d0cd9ffb87a54eca9d8d2d1d86df113f", - "Axis": "ClampingJaw", - "ActOn": "PutDown", - "Place": "T7", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 7, - "IsFullPage": 1, - "HoleRow": 0, - "HoleColum": 0, - "HoleCollective": "", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "f69e177e738e4f27b7693d57e1b80e8a", - "uuidPlanMaster": "d0cd9ffb87a54eca9d8d2d1d86df113f", - "Axis": "ClampingJaw", - "ActOn": "DefectiveLift", - "Place": "T6", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 6, - "IsFullPage": 1, - "HoleRow": 0, - "HoleColum": 0, - "HoleCollective": "", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "fd1bfa0ba0bd4735a251f396e3056e65", - "uuidPlanMaster": "d0cd9ffb87a54eca9d8d2d1d86df113f", - "Axis": "ClampingJaw", - "ActOn": "PutDown", - "Place": "T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 13, - "IsFullPage": 1, - "HoleRow": 0, - "HoleColum": 0, - "HoleCollective": "", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "b2d447f48ffb4de794e101bac6e1b87c", - "uuidPlanMaster": "d0cd9ffb87a54eca9d8d2d1d86df113f", - "Axis": "ClampingJaw", - "ActOn": "DefectiveLift", - "Place": "T15", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 15, - "IsFullPage": 1, - "HoleRow": 0, - "HoleColum": 0, - "HoleCollective": "", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "c9862c52f26545db96fb7b9a4746164a", - "uuidPlanMaster": "d0cd9ffb87a54eca9d8d2d1d86df113f", - "Axis": "ClampingJaw", - "ActOn": "PutDown", - "Place": "T14", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 14, - "IsFullPage": 1, - "HoleRow": 0, - "HoleColum": 0, - "HoleCollective": "", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "806a6a87108c4290848766d4703b4977", - "uuidPlanMaster": "d0cd9ffb87a54eca9d8d2d1d86df113f", - "Axis": "Left", - "ActOn": "Magnetic", - "Place": "", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 0, - "IsFullPage": 1, - "HoleRow": 0, - "HoleColum": 0, - "HoleCollective": "", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "300", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "31", - "IsWait": 1, - "ImbSpeed": 0 - }, - { - "uuid": "d4ccf41fb8a94bbe9de39a42bec1d4d6", - "uuidPlanMaster": "d0cd9ffb87a54eca9d8d2d1d86df113f", - "Axis": "Left", - "ActOn": "Load", - "Place": "H49 - 56, T12", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 12, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 7, - "HoleCollective": "49,50,51,52,53,54,55,56", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "a7bebafd7cb841c7b11d19cea7e48b27", - "uuidPlanMaster": "d0cd9ffb87a54eca9d8d2d1d86df113f", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H1 - 8, T13", - "Dosage": 170, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 13, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "62ae9d441f2e4c4cb34e3d10871fb639", - "uuidPlanMaster": "d0cd9ffb87a54eca9d8d2d1d86df113f", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1 - 8, T14", - "Dosage": 170, - "AssistA": " 吹样(20ul)", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 14, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "f848b07d3461435b8d1a8d0d629e2073", - "uuidPlanMaster": "d0cd9ffb87a54eca9d8d2d1d86df113f", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T18", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 18, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "4bc40800a0424852a7c648ffd013f8e7", - "uuidPlanMaster": "d0cd9ffb87a54eca9d8d2d1d86df113f", - "Axis": "ClampingJaw", - "ActOn": "DefectiveLift", - "Place": "T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 13, - "IsFullPage": 1, - "HoleRow": 0, - "HoleColum": 0, - "HoleCollective": "", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "49290c319dee401baf3df0a75562f3eb", - "uuidPlanMaster": "d0cd9ffb87a54eca9d8d2d1d86df113f", - "Axis": "ClampingJaw", - "ActOn": "PutDown", - "Place": "T15", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 15, - "IsFullPage": 1, - "HoleRow": 0, - "HoleColum": 0, - "HoleCollective": "", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "90dc18b5447441978aac6fea88e47a3d", - "uuidPlanMaster": "d0cd9ffb87a54eca9d8d2d1d86df113f", - "Axis": "Left", - "ActOn": "Load", - "Place": "H57 - 64, T12", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 12, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 8, - "HoleCollective": "57,58,59,60,61,62,63,64", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "ddcf3f2931ff45bfbedde2810753a1bc", - "uuidPlanMaster": "d0cd9ffb87a54eca9d8d2d1d86df113f", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H41 - 48, T10", - "Dosage": 200, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 10, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 6, - "HoleCollective": "41,42,43,44,45,46,47,48", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "3e6c73547a3346b7bca5d5b9a2cd2c59", - "uuidPlanMaster": "d0cd9ffb87a54eca9d8d2d1d86df113f", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1 - 8, T14", - "Dosage": 200, - "AssistA": " 吹样(20ul)", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 14, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "1e991cbd413441abb60dd936696d625b", - "uuidPlanMaster": "d0cd9ffb87a54eca9d8d2d1d86df113f", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T18", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 18, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "a564b369a10e486c9ddf22dd0380054f", - "uuidPlanMaster": "d0cd9ffb87a54eca9d8d2d1d86df113f", - "Axis": "Left", - "ActOn": "Load", - "Place": "H65 - 72, T12", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 12, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 9, - "HoleCollective": "65,66,67,68,69,70,71,72", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "e71c94652545486da6a7f347f1d73a03", - "uuidPlanMaster": "d0cd9ffb87a54eca9d8d2d1d86df113f", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H49 - 56, T10", - "Dosage": 300, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 10, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 7, - "HoleCollective": "49,50,51,52,53,54,55,56", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "0e7c35d260424fb58c5b9e15dd771c72", - "uuidPlanMaster": "d0cd9ffb87a54eca9d8d2d1d86df113f", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1 - 8, T14", - "Dosage": 300, - "AssistA": " 吹样(20ul)", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 14, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "362283d037ea48b29c163d3f4a4e765d", - "uuidPlanMaster": "d0cd9ffb87a54eca9d8d2d1d86df113f", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T18", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 18, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "a054a41640894f0eb6da6ce5ec790935", - "uuidPlanMaster": "d0cd9ffb87a54eca9d8d2d1d86df113f", - "Axis": "Left", - "ActOn": "Load", - "Place": "H73 - 80, T12", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 12, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 10, - "HoleCollective": "73,74,75,76,77,78,79,80", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "40c353d92ef54f36a1dfecc04382c7d7", - "uuidPlanMaster": "d0cd9ffb87a54eca9d8d2d1d86df113f", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H57 - 64, T10", - "Dosage": 20, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 10, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 8, - "HoleCollective": "57,58,59,60,61,62,63,64", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "7f09209ee55f40e3b1ca59f30ca8534f", - "uuidPlanMaster": "d0cd9ffb87a54eca9d8d2d1d86df113f", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1 - 8, T14", - "Dosage": 20, - "AssistA": " 吹样(20ul)", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 14, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "bbb15d9c2f9d4f71ad344daa0fbda744", - "uuidPlanMaster": "d0cd9ffb87a54eca9d8d2d1d86df113f", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T18", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 18, - "IsFullPage": 1, - "HoleRow": 0, - "HoleColum": 0, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "b96bc719349f4f02943fa064973f87b6", - "uuidPlanMaster": "d0cd9ffb87a54eca9d8d2d1d86df113f", - "Axis": "ClampingJaw", - "ActOn": "DefectiveLift", - "Place": "T14", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 14, - "IsFullPage": 1, - "HoleRow": 0, - "HoleColum": 0, - "HoleCollective": "", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "2fd8b1b99cfd4655bf646a721fd3332d", - "uuidPlanMaster": "d0cd9ffb87a54eca9d8d2d1d86df113f", - "Axis": "ClampingJaw", - "ActOn": "PutDown", - "Place": "T6", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 6, - "IsFullPage": 1, - "HoleRow": 0, - "HoleColum": 0, - "HoleCollective": "", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "5fd798d7888044239ed98b7aab666ddf", - "uuidPlanMaster": "d0cd9ffb87a54eca9d8d2d1d86df113f", - "Axis": "Left", - "ActOn": "Shaking", - "Place": "", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 0, - "IsFullPage": 1, - "HoleRow": 0, - "HoleColum": 0, - "HoleCollective": "", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "300", - "Module": 1, - "Temperature": "", - "Amplitude": "1200", - "Height": "", - "IsWait": 1, - "ImbSpeed": 0 - }, - { - "uuid": "3b591f6090af43ca84154ed9ee1590bb", - "uuidPlanMaster": "d0cd9ffb87a54eca9d8d2d1d86df113f", - "Axis": "ClampingJaw", - "ActOn": "DefectiveLift", - "Place": "T6", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 6, - "IsFullPage": 1, - "HoleRow": 0, - "HoleColum": 0, - "HoleCollective": "", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "90a01080fb78431d9e6aebc16c9e95a7", - "uuidPlanMaster": "d0cd9ffb87a54eca9d8d2d1d86df113f", - "Axis": "ClampingJaw", - "ActOn": "PutDown", - "Place": "T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 13, - "IsFullPage": 1, - "HoleRow": 0, - "HoleColum": 0, - "HoleCollective": "", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "00fee873bd9443b28d46907d7faec776", - "uuidPlanMaster": "d0cd9ffb87a54eca9d8d2d1d86df113f", - "Axis": "Left", - "ActOn": "Magnetic", - "Place": "", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 0, - "IsFullPage": 1, - "HoleRow": 0, - "HoleColum": 0, - "HoleCollective": "", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "300", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "30", - "IsWait": 1, - "ImbSpeed": 0 - }, - { - "uuid": "d9da95af88124d758f68da2676d488ce", - "uuidPlanMaster": "d0cd9ffb87a54eca9d8d2d1d86df113f", - "Axis": "Left", - "ActOn": "Load", - "Place": "H81 - 88, T12", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 12, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 11, - "HoleCollective": "81,82,83,84,85,86,87,88", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "f93e89412ee243cd908bbf94a14140b7", - "uuidPlanMaster": "d0cd9ffb87a54eca9d8d2d1d86df113f", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H1 - 8, T13", - "Dosage": 130, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 13, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "7582c999b4b846289212e60f39b3a22c", - "uuidPlanMaster": "d0cd9ffb87a54eca9d8d2d1d86df113f", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "T16", - "Dosage": 130, - "AssistA": " 吹样(20ul)", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 16, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "52d7738bb1bc4e6f9154e16eacdc55b4", - "uuidPlanMaster": "d0cd9ffb87a54eca9d8d2d1d86df113f", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T18", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 18, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "176850fc01f54d6f9d99003a1b786245", - "uuidPlanMaster": "d0cd9ffb87a54eca9d8d2d1d86df113f", - "Axis": "ClampingJaw", - "ActOn": "DefectiveLift", - "Place": "T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 13, - "IsFullPage": 1, - "HoleRow": 0, - "HoleColum": 0, - "HoleCollective": "", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "fe3d1656c9b348c89fe1ae303ac60c5c", - "uuidPlanMaster": "d0cd9ffb87a54eca9d8d2d1d86df113f", - "Axis": "ClampingJaw", - "ActOn": "PutDown", - "Place": "T6", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 6, - "IsFullPage": 1, - "HoleRow": 0, - "HoleColum": 0, - "HoleCollective": "", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "9221f600a1d74efd8704cf0720151487", - "uuidPlanMaster": "d0cd9ffb87a54eca9d8d2d1d86df113f", - "Axis": "Right", - "ActOn": "Load", - "Place": "H9 - 16, T8", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 8, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 2, - "HoleCollective": "9,10,11,12,13,14,15,16", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "4ec90484dc834c92b0ba631fe79967ec", - "uuidPlanMaster": "d0cd9ffb87a54eca9d8d2d1d86df113f", - "Axis": "Right", - "ActOn": "Imbibing", - "Place": "H65 - 72, T10", - "Dosage": 850, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 10, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 9, - "HoleCollective": "65,66,67,68,69,70,71,72", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "66e636cd5d034243b97101cafe3a9dd4", - "uuidPlanMaster": "d0cd9ffb87a54eca9d8d2d1d86df113f", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H1 - 8, T6", - "Dosage": 850, - "AssistA": " 吹样(50ul)", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 6, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "dc47f833764c48b9beb87b76b2b26958", - "uuidPlanMaster": "d0cd9ffb87a54eca9d8d2d1d86df113f", - "Axis": "Right", - "ActOn": "UnLoad", - "Place": "T18", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 18, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "863886ecf82641cbb2d8908332fa2f5f", - "uuidPlanMaster": "d0cd9ffb87a54eca9d8d2d1d86df113f", - "Axis": "Left", - "ActOn": "Shaking", - "Place": "", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 0, - "IsFullPage": 1, - "HoleRow": 0, - "HoleColum": 0, - "HoleCollective": "", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "60", - "Module": 1, - "Temperature": "", - "Amplitude": "1200", - "Height": "", - "IsWait": 1, - "ImbSpeed": 0 - }, - { - "uuid": "9ffa09b56c1e4c3f9d3b49a7176ecc1b", - "uuidPlanMaster": "d0cd9ffb87a54eca9d8d2d1d86df113f", - "Axis": "ClampingJaw", - "ActOn": "DefectiveLift", - "Place": "T6", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 6, - "IsFullPage": 1, - "HoleRow": 0, - "HoleColum": 0, - "HoleCollective": "", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "7d62c08ab91248da9855c296c60c4e22", - "uuidPlanMaster": "d0cd9ffb87a54eca9d8d2d1d86df113f", - "Axis": "ClampingJaw", - "ActOn": "PutDown", - "Place": "T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 13, - "IsFullPage": 1, - "HoleRow": 0, - "HoleColum": 0, - "HoleCollective": "", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "7116e9ac5ff844e89deca057af532938", - "uuidPlanMaster": "d0cd9ffb87a54eca9d8d2d1d86df113f", - "Axis": "Left", - "ActOn": "Magnetic", - "Place": "", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 0, - "IsFullPage": 1, - "HoleRow": 0, - "HoleColum": 0, - "HoleCollective": "", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "300", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "31", - "IsWait": 1, - "ImbSpeed": 0 - }, - { - "uuid": "bf97235bcee74609849d8869e4a0893e", - "uuidPlanMaster": "d0cd9ffb87a54eca9d8d2d1d86df113f", - "Axis": "Left", - "ActOn": "Load", - "Place": "H89 - 96, T12", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 12, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 12, - "HoleCollective": "89,90,91,92,93,94,95,96", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "651fc4ef88e14a1e9cd266ebcee72634", - "uuidPlanMaster": "d0cd9ffb87a54eca9d8d2d1d86df113f", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H1 - 8, T13", - "Dosage": 300, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 13, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "204083e356414977bcff0e293275efd1", - "uuidPlanMaster": "d0cd9ffb87a54eca9d8d2d1d86df113f", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "T16", - "Dosage": 300, - "AssistA": " 吹样(20ul)", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 16, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "8a21e9ae52cb46749541f09d5546c641", - "uuidPlanMaster": "d0cd9ffb87a54eca9d8d2d1d86df113f", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H1 - 8, T13", - "Dosage": 100, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 13, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "1a4bc8bf0bb4439db9b8c1878a5e0e72", - "uuidPlanMaster": "d0cd9ffb87a54eca9d8d2d1d86df113f", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "T16", - "Dosage": 100, - "AssistA": " 吹样(20ul)", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 16, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "db3f9f1b257b4d5fb78fc07f544c6c23", - "uuidPlanMaster": "d0cd9ffb87a54eca9d8d2d1d86df113f", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T18", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 18, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "0121204d2a504c62b4f63fdc98bcd22f", - "uuidPlanMaster": "d0cd9ffb87a54eca9d8d2d1d86df113f", - "Axis": "ClampingJaw", - "ActOn": "DefectiveLift", - "Place": "T13", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 13, - "IsFullPage": 1, - "HoleRow": 0, - "HoleColum": 0, - "HoleCollective": "", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "8b9c92a4d296425cb307d09f0a7102a9", - "uuidPlanMaster": "d0cd9ffb87a54eca9d8d2d1d86df113f", - "Axis": "ClampingJaw", - "ActOn": "PutDown", - "Place": "T6", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 6, - "IsFullPage": 1, - "HoleRow": 0, - "HoleColum": 0, - "HoleCollective": "", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "cb98b8d79726473682f695229e5f4744", - "uuidPlanMaster": "d0cd9ffb87a54eca9d8d2d1d86df113f", - "Axis": "Right", - "ActOn": "Load", - "Place": "H17 - 24, T8", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 8, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "17,18,19,20,21,22,23,24", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "4dc7bd92d1eb465fa1d4de328585224f", - "uuidPlanMaster": "d0cd9ffb87a54eca9d8d2d1d86df113f", - "Axis": "Right", - "ActOn": "Imbibing", - "Place": "H73 - 80, T10", - "Dosage": 500, - "AssistA": " 反向吸液(50ul)", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 10, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 10, - "HoleCollective": "73,74,75,76,77,78,79,80", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "a55f910ff5754a558e6376b574541e6f", - "uuidPlanMaster": "d0cd9ffb87a54eca9d8d2d1d86df113f", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H1 - 8, T6", - "Dosage": 500, - "AssistA": " 吹样(50ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 6, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "7469b16ef6334ab0ba1525e947d5bf32", - "uuidPlanMaster": "d0cd9ffb87a54eca9d8d2d1d86df113f", - "Axis": "Right", - "ActOn": "UnLoad", - "Place": "T18", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 18, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "c827deea2e734a6cb6ab24f0463c8faf", - "uuidPlanMaster": "d0cd9ffb87a54eca9d8d2d1d86df113f", - "Axis": "Left", - "ActOn": "Shaking", - "Place": "T6", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 6, - "IsFullPage": 1, - "HoleRow": 0, - "HoleColum": 0, - "HoleCollective": "", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "60", - "Module": 1, - "Temperature": null, - "Amplitude": "1200", - "Height": null, - "IsWait": 1, - "ImbSpeed": 0 - }, - { - "uuid": "afbfd1f29b8c46cb91d86516aaa1f267", - "uuidPlanMaster": "d0cd9ffb87a54eca9d8d2d1d86df113f", - "Axis": "ClampingJaw", - "ActOn": "DefectiveLift", - "Place": "T6", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 6, - "IsFullPage": 1, - "HoleRow": 0, - "HoleColum": 0, - "HoleCollective": "", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "d7cb6dc1335c427e904678545471b9eb", - "uuidPlanMaster": "d0cd9ffb87a54eca9d8d2d1d86df113f", - "Axis": "ClampingJaw", - "ActOn": "PutDown", - "Place": "T13", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 13, - "IsFullPage": 1, - "HoleRow": 0, - "HoleColum": 0, - "HoleCollective": "", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "351ff70a827041b0bff8000a6d9af2d9", - "uuidPlanMaster": "d0cd9ffb87a54eca9d8d2d1d86df113f", - "Axis": "Left", - "ActOn": "Magnetic", - "Place": null, - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 0, - "IsFullPage": 1, - "HoleRow": 0, - "HoleColum": 0, - "HoleCollective": "", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "300", - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": "31", - "IsWait": 1, - "ImbSpeed": 0 - }, - { - "uuid": "c916c50d6a9343a1bdad3fcc8a53401e", - "uuidPlanMaster": "d0cd9ffb87a54eca9d8d2d1d86df113f", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1 - 8, T17", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 17, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "b7034ce79dff46a6910c3afbc0381416", - "uuidPlanMaster": "d0cd9ffb87a54eca9d8d2d1d86df113f", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H1 - 8, T13", - "Dosage": 300, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 13, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "f4aa785709004280b0a4cf06ddd76481", - "uuidPlanMaster": "d0cd9ffb87a54eca9d8d2d1d86df113f", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "T16", - "Dosage": 300, - "AssistA": " 吹样(20ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 16, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "eaab8bc4f9564c46be63ea14b8e4c011", - "uuidPlanMaster": "d0cd9ffb87a54eca9d8d2d1d86df113f", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T18", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 18, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "4fd67e821e85488c8dd0124d8c7c5454", - "uuidPlanMaster": "d0cd9ffb87a54eca9d8d2d1d86df113f", - "Axis": "ClampingJaw", - "ActOn": "DefectiveLift", - "Place": "T13", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 13, - "IsFullPage": 1, - "HoleRow": 0, - "HoleColum": 0, - "HoleCollective": "", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "7ee943c2c8fe46aa9436482004c949e5", - "uuidPlanMaster": "d0cd9ffb87a54eca9d8d2d1d86df113f", - "Axis": "ClampingJaw", - "ActOn": "PutDown", - "Place": "T6", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 6, - "IsFullPage": 1, - "HoleRow": 0, - "HoleColum": 0, - "HoleCollective": "", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "13ff7431f7ea4c0d90a0cff6a3c63fe3", - "uuidPlanMaster": "d0cd9ffb87a54eca9d8d2d1d86df113f", - "Axis": "Right", - "ActOn": "Load", - "Place": "H25 - 32, T8", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 8, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 4, - "HoleCollective": "25,26,27,28,29,30,31,32", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "a1b6e5ea0e184ce5b8fa52effa08e51e", - "uuidPlanMaster": "d0cd9ffb87a54eca9d8d2d1d86df113f", - "Axis": "Right", - "ActOn": "Imbibing", - "Place": "H73 - 80, T10", - "Dosage": 500, - "AssistA": " 反向吸液(50ul)", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 10, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 10, - "HoleCollective": "73,74,75,76,77,78,79,80", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "04fb679849574d129a97689ef697363c", - "uuidPlanMaster": "d0cd9ffb87a54eca9d8d2d1d86df113f", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H1 - 8, T6", - "Dosage": 500, - "AssistA": " 吹样(50ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 6, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "897b4752115441efb8545b03691d7882", - "uuidPlanMaster": "d0cd9ffb87a54eca9d8d2d1d86df113f", - "Axis": "Right", - "ActOn": "UnLoad", - "Place": "T18", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 18, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "07eda7aa653644f5a1a9cc8d36cf92da", - "uuidPlanMaster": "d0cd9ffb87a54eca9d8d2d1d86df113f", - "Axis": "Left", - "ActOn": "Shaking", - "Place": null, - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 0, - "IsFullPage": 1, - "HoleRow": 0, - "HoleColum": 0, - "HoleCollective": "", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "60", - "Module": 1, - "Temperature": null, - "Amplitude": "1200", - "Height": null, - "IsWait": 1, - "ImbSpeed": 0 - }, - { - "uuid": "177737ef452b4723bd165ac71ceaeac3", - "uuidPlanMaster": "d0cd9ffb87a54eca9d8d2d1d86df113f", - "Axis": "ClampingJaw", - "ActOn": "DefectiveLift", - "Place": "T6", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 6, - "IsFullPage": 1, - "HoleRow": 0, - "HoleColum": 0, - "HoleCollective": "", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "e1d96c50c49b45df99abb48b69ddf5b4", - "uuidPlanMaster": "d0cd9ffb87a54eca9d8d2d1d86df113f", - "Axis": "ClampingJaw", - "ActOn": "PutDown", - "Place": "T13", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 13, - "IsFullPage": 1, - "HoleRow": 0, - "HoleColum": 0, - "HoleCollective": "", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "c44fae6f69794f1b81d67cc2fe2c94b5", - "uuidPlanMaster": "d0cd9ffb87a54eca9d8d2d1d86df113f", - "Axis": "Left", - "ActOn": "Magnetic", - "Place": null, - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 0, - "IsFullPage": 1, - "HoleRow": 0, - "HoleColum": 0, - "HoleCollective": "", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "300", - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": "31", - "IsWait": 1, - "ImbSpeed": 0 - }, - { - "uuid": "85f3cde09bb74fb1aec60b286e461a5d", - "uuidPlanMaster": "d0cd9ffb87a54eca9d8d2d1d86df113f", - "Axis": "Left", - "ActOn": "Load", - "Place": "H9 - 16, T17", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 17, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 2, - "HoleCollective": "9,10,11,12,13,14,15,16", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "a992e43255c14dc9b31146dcc6a97c84", - "uuidPlanMaster": "d0cd9ffb87a54eca9d8d2d1d86df113f", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H1 - 8, T13", - "Dosage": 300, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 13, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "bcc8d535ca2e4f50a8b74fc114703e5c", - "uuidPlanMaster": "d0cd9ffb87a54eca9d8d2d1d86df113f", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "T16", - "Dosage": 300, - "AssistA": " 吹样(20ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 16, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "667c5ada023a4e76861dcfc5f328a2a5", - "uuidPlanMaster": "d0cd9ffb87a54eca9d8d2d1d86df113f", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H1 - 8, T13", - "Dosage": 100, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 13, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "7f637a9a52a2418ba00a22e60cf99eaa", - "uuidPlanMaster": "d0cd9ffb87a54eca9d8d2d1d86df113f", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "T16", - "Dosage": 100, - "AssistA": " 吹样(20ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 16, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "7b40e2ec18724661b1b2ae5408a78577", - "uuidPlanMaster": "d0cd9ffb87a54eca9d8d2d1d86df113f", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T18", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 18, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "acbccc5f09224c47b5e4b1e9b3e9c5e3", - "uuidPlanMaster": "d0cd9ffb87a54eca9d8d2d1d86df113f", - "Axis": "ClampingJaw", - "ActOn": "DefectiveLift", - "Place": "T13", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 13, - "IsFullPage": 1, - "HoleRow": 0, - "HoleColum": 0, - "HoleCollective": "", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "bddc6a27aca44ba3b81db97e2d52f573", - "uuidPlanMaster": "d0cd9ffb87a54eca9d8d2d1d86df113f", - "Axis": "ClampingJaw", - "ActOn": "PutDown", - "Place": "T4", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 1, - "HoleRow": 0, - "HoleColum": 0, - "HoleCollective": "", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "826ac87264804807b9f17686bac3ee2e", - "uuidPlanMaster": "d0cd9ffb87a54eca9d8d2d1d86df113f", - "Axis": "Left", - "ActOn": "Shaking_Incubation", - "Place": null, - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 0, - "IsFullPage": 1, - "HoleRow": 0, - "HoleColum": 0, - "HoleCollective": "", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "300", - "Module": 1, - "Temperature": "55", - "Amplitude": "0", - "Height": null, - "IsWait": 1, - "ImbSpeed": 0 - }, - { - "uuid": "2da0bbdf0f9548a48049d93bdb8ec69e", - "uuidPlanMaster": "d0cd9ffb87a54eca9d8d2d1d86df113f", - "Axis": "Left", - "ActOn": "Load", - "Place": "H17 - 24, T17", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 17, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "17,18,19,20,21,22,23,24", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "4081f86df98a43efb7179c005e3388ec", - "uuidPlanMaster": "d0cd9ffb87a54eca9d8d2d1d86df113f", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H81 - 88, T10", - "Dosage": 50, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 10, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 11, - "HoleCollective": "81,82,83,84,85,86,87,88", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "a32d9e97dad64fc69d4966f344456b8f", - "uuidPlanMaster": "d0cd9ffb87a54eca9d8d2d1d86df113f", - "Axis": "Left", - "ActOn": "Blending", - "Place": "H1 - 8, T4", - "Dosage": 100, - "AssistA": " 吹样(20ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 5, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "4ae364ae35b9422282df87aeab34e359", - "uuidPlanMaster": "d0cd9ffb87a54eca9d8d2d1d86df113f", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T18", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 18, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "736f782754a64e37a83af356ff1a9972", - "uuidPlanMaster": "d0cd9ffb87a54eca9d8d2d1d86df113f", - "Axis": "ClampingJaw", - "ActOn": "DefectiveLift", - "Place": "T4", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 1, - "HoleRow": 0, - "HoleColum": 0, - "HoleCollective": "", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "2c863339b5204159afd5eb056f6f591e", - "uuidPlanMaster": "d0cd9ffb87a54eca9d8d2d1d86df113f", - "Axis": "ClampingJaw", - "ActOn": "PutDown", - "Place": "T6", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 6, - "IsFullPage": 1, - "HoleRow": 0, - "HoleColum": 0, - "HoleCollective": "", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "9f9baad3267b4fa1bb1f5d2107aaacdc", - "uuidPlanMaster": "d0cd9ffb87a54eca9d8d2d1d86df113f", - "Axis": "Left", - "ActOn": "Shaking", - "Place": null, - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 0, - "IsFullPage": 1, - "HoleRow": 0, - "HoleColum": 0, - "HoleCollective": "", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "300", - "Module": 1, - "Temperature": null, - "Amplitude": "1200", - "Height": null, - "IsWait": 1, - "ImbSpeed": 0 - }, - { - "uuid": "7173e1c182f14d4eb272e20f8cdcb542", - "uuidPlanMaster": "d0cd9ffb87a54eca9d8d2d1d86df113f", - "Axis": "ClampingJaw", - "ActOn": "DefectiveLift", - "Place": "T6", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 6, - "IsFullPage": 1, - "HoleRow": 0, - "HoleColum": 0, - "HoleCollective": "", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "186bdf9d1ff343809833fa571a5d7247", - "uuidPlanMaster": "d0cd9ffb87a54eca9d8d2d1d86df113f", - "Axis": "ClampingJaw", - "ActOn": "PutDown", - "Place": "T13", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 13, - "IsFullPage": 1, - "HoleRow": 0, - "HoleColum": 0, - "HoleCollective": "", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "39b8061bfcb440439c75de2e94528d50", - "uuidPlanMaster": "d0cd9ffb87a54eca9d8d2d1d86df113f", - "Axis": "ClampingJaw", - "ActOn": "DefectiveLift", - "Place": "T19", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 19, - "IsFullPage": 1, - "HoleRow": 0, - "HoleColum": 0, - "HoleCollective": "", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "b01a53abc3614c629a342945914584aa", - "uuidPlanMaster": "d0cd9ffb87a54eca9d8d2d1d86df113f", - "Axis": "ClampingJaw", - "ActOn": "PutDown", - "Place": "T14", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 14, - "IsFullPage": 1, - "HoleRow": 0, - "HoleColum": 0, - "HoleCollective": "", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "904588c39268487babd0730f092d7b0d", - "uuidPlanMaster": "d0cd9ffb87a54eca9d8d2d1d86df113f", - "Axis": "Left", - "ActOn": "Magnetic", - "Place": null, - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 0, - "IsFullPage": 1, - "HoleRow": 0, - "HoleColum": 0, - "HoleCollective": "", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "300", - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": "31", - "IsWait": 1, - "ImbSpeed": 0 - }, - { - "uuid": "d68afc2509264f29bcc51d3f12259e8a", - "uuidPlanMaster": "d0cd9ffb87a54eca9d8d2d1d86df113f", - "Axis": "Left", - "ActOn": "Load", - "Place": "H25 - 32, T17", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 17, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 4, - "HoleCollective": "25,26,27,28,29,30,31,32", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "1b9ebaac4e2b44e6b1ac0fe9e12b3eff", - "uuidPlanMaster": "d0cd9ffb87a54eca9d8d2d1d86df113f", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H1 - 8, T13", - "Dosage": 150, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 13, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "194d1921082d4dd2b307643845175866", - "uuidPlanMaster": "d0cd9ffb87a54eca9d8d2d1d86df113f", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1 - 8, T14", - "Dosage": 150, - "AssistA": " 吹样(20ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 14, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "94586a9b97d94856a40f66e24cc80f4d", - "uuidPlanMaster": "d0cd9ffb87a54eca9d8d2d1d86df113f", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T18", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 18, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "d5d529ef3c9a4ba4bdce0b28ebe5f90b", - "uuidPlanMaster": "42c377c363dd412f9784edf8e5d2991e", - "Axis": "Left", - "ActOn": "Magnetic", - "Place": null, - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 0, - "IsFullPage": 1, - "HoleRow": 0, - "HoleColum": 0, - "HoleCollective": "", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "60", - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": "30", - "IsWait": 1, - "ImbSpeed": 0 - }, - { - "uuid": "93ef93ebd7e846c3bb2f0e40b1ee4627", - "uuidPlanMaster": "baf122cd16974c61953423f3ada43846", - "Axis": "Left", - "ActOn": "Shaking", - "Place": null, - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 0, - "IsFullPage": 1, - "HoleRow": 0, - "HoleColum": 0, - "HoleCollective": "", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "60", - "Module": 1, - "Temperature": null, - "Amplitude": "1200", - "Height": null, - "IsWait": 1, - "ImbSpeed": 0 - }, - { - "uuid": "db37574b96c54fd09b1c3bda5a7047be", - "uuidPlanMaster": "e0749e1a621c4038b105f21d24681f46", - "Axis": "Left", - "ActOn": "Shaking", - "Place": null, - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 0, - "IsFullPage": 1, - "HoleRow": 0, - "HoleColum": 0, - "HoleCollective": "", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "3", - "Module": 1, - "Temperature": null, - "Amplitude": "2200", - "Height": null, - "IsWait": 1, - "ImbSpeed": 0 - }, - { - "uuid": "fb45a531d35b43788a37e9c059bbe00d", - "uuidPlanMaster": "4b7ae8ae283f493fab130a31fdb27fd7", - "Axis": "Right", - "ActOn": "Load", - "Place": "H89 - 96, T5", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 12, - "HoleCollective": "89,90,91,92,93,94,95,96", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "7a0c1801e06e4c76acf0bb2983dd4e50", - "uuidPlanMaster": "4b7ae8ae283f493fab130a31fdb27fd7", - "Axis": "Right", - "ActOn": "Imbibing", - "Place": "H1 - 8, T13", - "Dosage": 100, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 13, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "df21868a6e534314985e2388b0906553", - "uuidPlanMaster": "4b7ae8ae283f493fab130a31fdb27fd7", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H1 - 8, T17", - "Dosage": 100, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 17, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 20, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "e11f7e16d59141e89126846d684b775e", - "uuidPlanMaster": "4b7ae8ae283f493fab130a31fdb27fd7", - "Axis": "Right", - "ActOn": "UnLoad", - "Place": "H89 - 96, T5", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 12, - "HoleCollective": "89,90,91,92,93,94,95,96", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "6c9edf7bbb8e40ec8cd17c73e90235c4", - "uuidPlanMaster": "34cfbb4451f046aaa6c4fd02b8709b06", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1 - 8, T4", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "c9cb543a4e39476897669defac1f32b3", - "uuidPlanMaster": "34cfbb4451f046aaa6c4fd02b8709b06", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H1 - 8, T12", - "Dosage": 250, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 12, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "07c0b0756e2f4a10bf7ce740f4dd0bc7", - "uuidPlanMaster": "34cfbb4451f046aaa6c4fd02b8709b06", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1 - 8, T6", - "Dosage": 250, - "AssistA": " 吹样(5ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 6, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "84dfd2e688a147f18c999b8c9b5477a8", - "uuidPlanMaster": "34cfbb4451f046aaa6c4fd02b8709b06", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H1 - 8, T12", - "Dosage": 250, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 12, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "e9de04b76a394812917def3d42a67fb8", - "uuidPlanMaster": "34cfbb4451f046aaa6c4fd02b8709b06", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H9 - 16, T6", - "Dosage": 250, - "AssistA": " 吹样(5ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 6, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 2, - "HoleCollective": "9,10,11,12,13,14,15,16", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "beded3568e174f25b3150455495d6b3e", - "uuidPlanMaster": "34cfbb4451f046aaa6c4fd02b8709b06", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T18", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 18, - "IsFullPage": 1, - "HoleRow": 0, - "HoleColum": 0, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "50b09f7e73ac40189126aa301798b778", - "uuidPlanMaster": "34cfbb4451f046aaa6c4fd02b8709b06", - "Axis": "Left", - "ActOn": "Shaking", - "Place": null, - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 0, - "IsFullPage": 1, - "HoleRow": 0, - "HoleColum": 0, - "HoleCollective": "", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "240", - "Module": 1, - "Temperature": null, - "Amplitude": "800", - "Height": null, - "IsWait": 1, - "ImbSpeed": 0 - }, - { - "uuid": "a231a2bd91624dc29a2b9be0b85f192c", - "uuidPlanMaster": "34cfbb4451f046aaa6c4fd02b8709b06", - "Axis": "Left", - "ActOn": "Load", - "Place": "H9 - 16, T4", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 2, - "HoleCollective": "9,10,11,12,13,14,15,16", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "1eaf95004f944b4480783f672b480dc0", - "uuidPlanMaster": "34cfbb4451f046aaa6c4fd02b8709b06", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H9 - 16, T12", - "Dosage": 250, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 12, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 2, - "HoleCollective": "9,10,11,12,13,14,15,16", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "70818a5f71a84e61b43c5ba0cb1d9395", - "uuidPlanMaster": "34cfbb4451f046aaa6c4fd02b8709b06", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1 - 8, T6", - "Dosage": 250, - "AssistA": " 吹样(5ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 6, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "b3ec9e29f7a449a6aff79b990e7e8bde", - "uuidPlanMaster": "34cfbb4451f046aaa6c4fd02b8709b06", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H9 - 16, T12", - "Dosage": 250, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 12, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 2, - "HoleCollective": "9,10,11,12,13,14,15,16", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "928b5d41625d4d88b0575ffbee162da9", - "uuidPlanMaster": "34cfbb4451f046aaa6c4fd02b8709b06", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H9 - 16, T6", - "Dosage": 250, - "AssistA": " 吹样(5ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 6, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 2, - "HoleCollective": "9,10,11,12,13,14,15,16", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "2bdc9266ca0a44ecada4f49072c6bd98", - "uuidPlanMaster": "34cfbb4451f046aaa6c4fd02b8709b06", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T18", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 18, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "67a162e8da36481f8e37fd3c364affeb", - "uuidPlanMaster": "34cfbb4451f046aaa6c4fd02b8709b06", - "Axis": "Left", - "ActOn": "Shaking", - "Place": null, - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 0, - "IsFullPage": 1, - "HoleRow": 0, - "HoleColum": 0, - "HoleCollective": "", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "180", - "Module": 1, - "Temperature": null, - "Amplitude": "800", - "Height": null, - "IsWait": 1, - "ImbSpeed": 0 - }, - { - "uuid": "e77ee3d04bf64425931b66da012f1c15", - "uuidPlanMaster": "34cfbb4451f046aaa6c4fd02b8709b06", - "Axis": "Left", - "ActOn": "Load", - "Place": "H17 - 24, T4", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "17,18,19,20,21,22,23,24", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "f4d629537c5f46ff97edce1136b9c371", - "uuidPlanMaster": "34cfbb4451f046aaa6c4fd02b8709b06", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H17 - 24, T12", - "Dosage": 250, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 12, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "17,18,19,20,21,22,23,24", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "6ae8ab32e36845f2819831520d1b9074", - "uuidPlanMaster": "34cfbb4451f046aaa6c4fd02b8709b06", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1 - 8, T6", - "Dosage": 250, - "AssistA": " 吹样(5ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 6, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "596897a24e484d4285b65479a93c2b23", - "uuidPlanMaster": "34cfbb4451f046aaa6c4fd02b8709b06", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H17 - 24, T12", - "Dosage": 250, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 12, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "17,18,19,20,21,22,23,24", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "1109b0b2c1ff4822bcf7d76526a930bc", - "uuidPlanMaster": "34cfbb4451f046aaa6c4fd02b8709b06", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H9 - 16, T6", - "Dosage": 250, - "AssistA": " 吹样(5ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 6, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 2, - "HoleCollective": "9,10,11,12,13,14,15,16", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "cf44f44d8d00479c9fed78c665d412c5", - "uuidPlanMaster": "34cfbb4451f046aaa6c4fd02b8709b06", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T18", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 18, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "35f95db19d38432ba775ca78b83470c4", - "uuidPlanMaster": "34cfbb4451f046aaa6c4fd02b8709b06", - "Axis": "Left", - "ActOn": "Shaking", - "Place": null, - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 0, - "IsFullPage": 1, - "HoleRow": 0, - "HoleColum": 0, - "HoleCollective": "", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "240", - "Module": 1, - "Temperature": null, - "Amplitude": "800", - "Height": null, - "IsWait": 1, - "ImbSpeed": 0 - }, - { - "uuid": "1e13fa12d1d948cab45177e15fd0107d", - "uuidPlanMaster": "34cfbb4451f046aaa6c4fd02b8709b06", - "Axis": "Left", - "ActOn": "Pause", - "Place": null, - "Dosage": 0, - "AssistA": "2", - "AssistB": "前处理1-21步骤", - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 0, - "IsFullPage": 0, - "HoleRow": 0, - "HoleColum": 0, - "HoleCollective": "", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "788c8e0a49ff42838c3c7860cbae630f", - "uuidPlanMaster": "34cfbb4451f046aaa6c4fd02b8709b06", - "Axis": "Left", - "ActOn": "Load", - "Place": "H25 - 32, T4", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 4, - "HoleCollective": "25,26,27,28,29,30,31,32", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "c17502610399471c82745c2b8e4c2f2b", - "uuidPlanMaster": "34cfbb4451f046aaa6c4fd02b8709b06", - "Axis": "Left", - "ActOn": "Blending", - "Place": "H1 - 8, T14", - "Dosage": 200, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 14, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 15, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 8 - }, - { - "uuid": "d4631868f27f437ebb7095338221fad9", - "uuidPlanMaster": "34cfbb4451f046aaa6c4fd02b8709b06", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H1 - 8, T14", - "Dosage": 40, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 14, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "007d769a7b2f458dbb0199957d71090d", - "uuidPlanMaster": "34cfbb4451f046aaa6c4fd02b8709b06", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1 - 8, T6", - "Dosage": 40, - "AssistA": " 吹样(5ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 6, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "3463d945edd143f287ea8675afe828a4", - "uuidPlanMaster": "34cfbb4451f046aaa6c4fd02b8709b06", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H1 - 8, T14", - "Dosage": 40, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 14, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "c7ed5cc896bd459bbea1f77a9f53caba", - "uuidPlanMaster": "34cfbb4451f046aaa6c4fd02b8709b06", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H9 - 16, T6", - "Dosage": 40, - "AssistA": " 吹样(5ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 6, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 2, - "HoleCollective": "9,10,11,12,13,14,15,16", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "462a74d45eca443bb66968768b4a7001", - "uuidPlanMaster": "34cfbb4451f046aaa6c4fd02b8709b06", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T18", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 18, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "b02b5925f3c04d0e9a8414699509bc88", - "uuidPlanMaster": "34cfbb4451f046aaa6c4fd02b8709b06", - "Axis": "Left", - "ActOn": "Shaking", - "Place": null, - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 0, - "IsFullPage": 1, - "HoleRow": 0, - "HoleColum": 0, - "HoleCollective": "", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "180", - "Module": 1, - "Temperature": null, - "Amplitude": "800", - "Height": null, - "IsWait": 1, - "ImbSpeed": 0 - }, - { - "uuid": "73fdf0a5a96844b4910ed0fe3e3509b0", - "uuidPlanMaster": "34cfbb4451f046aaa6c4fd02b8709b06", - "Axis": "ClampingJaw", - "ActOn": "DefectiveLift", - "Place": "T6", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 6, - "IsFullPage": 1, - "HoleRow": 0, - "HoleColum": 0, - "HoleCollective": "", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "1b3d7ed817a545e0983d2e52db8386c1", - "uuidPlanMaster": "34cfbb4451f046aaa6c4fd02b8709b06", - "Axis": "ClampingJaw", - "ActOn": "PutDown", - "Place": "T9", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 9, - "IsFullPage": 1, - "HoleRow": 0, - "HoleColum": 0, - "HoleCollective": "", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "a3b7b5a4ac78448e90cc6e33c0d06e21", - "uuidPlanMaster": "34cfbb4451f046aaa6c4fd02b8709b06", - "Axis": "Left", - "ActOn": "Pause", - "Place": null, - "Dosage": 0, - "AssistA": "1", - "AssistB": "120", - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 0, - "IsFullPage": 0, - "HoleRow": 0, - "HoleColum": 0, - "HoleCollective": "", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "678274603c434f0095e98776ac944037", - "uuidPlanMaster": "34cfbb4451f046aaa6c4fd02b8709b06", - "Axis": "Right", - "ActOn": "Load", - "Place": "H1 - 8, T5", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "38a5abff0e344de69ef13f60a8b8799e", - "uuidPlanMaster": "34cfbb4451f046aaa6c4fd02b8709b06", - "Axis": "Right", - "ActOn": "Imbibing", - "Place": "H1 - 8, T9", - "Dosage": 550, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 9, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "7bf64113aae5441bac6d7bff02739885", - "uuidPlanMaster": "34cfbb4451f046aaa6c4fd02b8709b06", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H1 - 8, T10", - "Dosage": 550, - "AssistA": " 吹样(5ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 10, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "3f3a26235edf4a03a1865eaabe687f43", - "uuidPlanMaster": "34cfbb4451f046aaa6c4fd02b8709b06", - "Axis": "Right", - "ActOn": "UnLoad", - "Place": "T18", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 18, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "390f9807dcb24f3a9aa52dcbeb766aa6", - "uuidPlanMaster": "34cfbb4451f046aaa6c4fd02b8709b06", - "Axis": "Right", - "ActOn": "Load", - "Place": "H9 - 16, T5", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 2, - "HoleCollective": "9,10,11,12,13,14,15,16", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "2da70c4418864d969fb3c0c0b5eda7d9", - "uuidPlanMaster": "34cfbb4451f046aaa6c4fd02b8709b06", - "Axis": "Right", - "ActOn": "Imbibing", - "Place": "H9 - 16, T9", - "Dosage": 550, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 9, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 2, - "HoleCollective": "9,10,11,12,13,14,15,16", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "3e46dfa215a04f628e8cf8ebc5fa9279", - "uuidPlanMaster": "34cfbb4451f046aaa6c4fd02b8709b06", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H9 - 16, T10", - "Dosage": 550, - "AssistA": " 吹样(5ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 10, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 2, - "HoleCollective": "9,10,11,12,13,14,15,16", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "ad928e3286324180953610d30bc5fc83", - "uuidPlanMaster": "34cfbb4451f046aaa6c4fd02b8709b06", - "Axis": "Right", - "ActOn": "UnLoad", - "Place": "T18", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 18, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "6fac1f3b87f347c696a5f81b4ede6d93", - "uuidPlanMaster": "34cfbb4451f046aaa6c4fd02b8709b06", - "Axis": "Left", - "ActOn": "Pause", - "Place": null, - "Dosage": 0, - "AssistA": "2", - "AssistB": "23-41除杂", - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 0, - "IsFullPage": 0, - "HoleRow": 0, - "HoleColum": 0, - "HoleCollective": "", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "b5d42eef4c3e43b68e7118d985485378", - "uuidPlanMaster": "34cfbb4451f046aaa6c4fd02b8709b06", - "Axis": "Left", - "ActOn": "Load", - "Place": "H33 - 40, T4", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 5, - "HoleCollective": "33,34,35,36,37,38,39,40", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "c9980663c7ce4c1ba65bb841422270a4", - "uuidPlanMaster": "34cfbb4451f046aaa6c4fd02b8709b06", - "Axis": "Left", - "ActOn": "Blending", - "Place": "H9 - 16, T14", - "Dosage": 200, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 14, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 2, - "HoleCollective": "9,10,11,12,13,14,15,16", - "MixCount": 15, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 8 - }, - { - "uuid": "08a968200b384e8a8c59bec9b82763d1", - "uuidPlanMaster": "34cfbb4451f046aaa6c4fd02b8709b06", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H9 - 16, T14", - "Dosage": 40, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 14, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 2, - "HoleCollective": "9,10,11,12,13,14,15,16", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "7d455fffc61b42478f6175f20e0e25dc", - "uuidPlanMaster": "34cfbb4451f046aaa6c4fd02b8709b06", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1 - 8, T10", - "Dosage": 40, - "AssistA": " 吹样(5ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 10, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "ce9471b394d4417c92a045755f7ea39b", - "uuidPlanMaster": "34cfbb4451f046aaa6c4fd02b8709b06", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H9 - 16, T14", - "Dosage": 40, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 14, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 2, - "HoleCollective": "9,10,11,12,13,14,15,16", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "d1283f2639fc4016b458c5ebbd085a35", - "uuidPlanMaster": "34cfbb4451f046aaa6c4fd02b8709b06", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H9 - 16, T10", - "Dosage": 40, - "AssistA": " 吹样(5ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 10, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 2, - "HoleCollective": "9,10,11,12,13,14,15,16", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "00d7038df3d64e3eb4778b9bd31d374d", - "uuidPlanMaster": "34cfbb4451f046aaa6c4fd02b8709b06", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T18", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 18, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "9e49bb2d9b824afc9d02d48ae188674b", - "uuidPlanMaster": "34cfbb4451f046aaa6c4fd02b8709b06", - "Axis": "ClampingJaw", - "ActOn": "DefectiveLift", - "Place": "T10", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 10, - "IsFullPage": 1, - "HoleRow": 0, - "HoleColum": 0, - "HoleCollective": "", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "b7c317cb742e4b828ddbee548e580716", - "uuidPlanMaster": "34cfbb4451f046aaa6c4fd02b8709b06", - "Axis": "ClampingJaw", - "ActOn": "PutDown", - "Place": "T6", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 6, - "IsFullPage": 1, - "HoleRow": 0, - "HoleColum": 0, - "HoleCollective": "", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "3ada0671d09444439555dce38efc7e45", - "uuidPlanMaster": "34cfbb4451f046aaa6c4fd02b8709b06", - "Axis": "Left", - "ActOn": "Shaking", - "Place": "T6", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 6, - "IsFullPage": 1, - "HoleRow": 0, - "HoleColum": 0, - "HoleCollective": "", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "300", - "Module": 1, - "Temperature": null, - "Amplitude": "800", - "Height": null, - "IsWait": 1, - "ImbSpeed": 0 - }, - { - "uuid": "175986b869804144bc202d7df103bb7a", - "uuidPlanMaster": "34cfbb4451f046aaa6c4fd02b8709b06", - "Axis": "Left", - "ActOn": "DefectiveLift", - "Place": "T6", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 6, - "IsFullPage": 1, - "HoleRow": 0, - "HoleColum": 0, - "HoleCollective": "", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "edb57ee040cd4c19986e9c92b7283a92", - "uuidPlanMaster": "34cfbb4451f046aaa6c4fd02b8709b06", - "Axis": "Left", - "ActOn": "PutDown", - "Place": "T17", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 17, - "IsFullPage": 1, - "HoleRow": 0, - "HoleColum": 0, - "HoleCollective": "", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "002ecb3c05424869aabb96c6d2088ba0", - "uuidPlanMaster": "34cfbb4451f046aaa6c4fd02b8709b06", - "Axis": "Left", - "ActOn": "Pause", - "Place": null, - "Dosage": 0, - "AssistA": "1", - "AssistB": "120", - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 0, - "IsFullPage": 0, - "HoleRow": 0, - "HoleColum": 0, - "HoleCollective": "", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "62af438b0c0b4880943ee9df703fc07f", - "uuidPlanMaster": "34cfbb4451f046aaa6c4fd02b8709b06", - "Axis": "Right", - "ActOn": "Load", - "Place": "H17 - 24, T5", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "17,18,19,20,21,22,23,24", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "aa189d4eaf0b476b9fa681ffbafe5ea4", - "uuidPlanMaster": "34cfbb4451f046aaa6c4fd02b8709b06", - "Axis": "Right", - "ActOn": "Imbibing", - "Place": "H1 - 8, T17", - "Dosage": 550, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 17, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "1407dba460da47cc9a6cb5c29f30056a", - "uuidPlanMaster": "34cfbb4451f046aaa6c4fd02b8709b06", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H1 - 8, T8", - "Dosage": 550, - "AssistA": " 吹样(5ul)", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 8, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "b53669e48cea4b9792d925a9df55a8d6", - "uuidPlanMaster": "34cfbb4451f046aaa6c4fd02b8709b06", - "Axis": "Right", - "ActOn": "UnLoad", - "Place": "H17 - 24, T5", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "17,18,19,20,21,22,23,24", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "4c107f335ac1488fa7a1fa131b49b85b", - "uuidPlanMaster": "34cfbb4451f046aaa6c4fd02b8709b06", - "Axis": "Right", - "ActOn": "Load", - "Place": "H25 - 32, T5", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 4, - "HoleCollective": "25,26,27,28,29,30,31,32", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "2d8e048c2f7f4224bfaa3572cc443daf", - "uuidPlanMaster": "34cfbb4451f046aaa6c4fd02b8709b06", - "Axis": "Right", - "ActOn": "Imbibing", - "Place": "H9 - 16, T17", - "Dosage": 550, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 17, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 2, - "HoleCollective": "9,10,11,12,13,14,15,16", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "c99e32e479294152925b0e347e659831", - "uuidPlanMaster": "34cfbb4451f046aaa6c4fd02b8709b06", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H9 - 16, T8", - "Dosage": 550, - "AssistA": " 吹样(5ul)", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 8, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 2, - "HoleCollective": "9,10,11,12,13,14,15,16", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "06f994510d7c473497ec8236f48a0fc0", - "uuidPlanMaster": "34cfbb4451f046aaa6c4fd02b8709b06", - "Axis": "Right", - "ActOn": "UnLoad", - "Place": "H25 - 32, T5", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 4, - "HoleCollective": "25,26,27,28,29,30,31,32", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "d9e55926c48a4166a31edfb39cdd52ce", - "uuidPlanMaster": "34cfbb4451f046aaa6c4fd02b8709b06", - "Axis": "Left", - "ActOn": "Load", - "Place": "H41 - 48, T4", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 6, - "HoleCollective": "41,42,43,44,45,46,47,48", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "219e3d2538484b20b54af536e4a94b2d", - "uuidPlanMaster": "34cfbb4451f046aaa6c4fd02b8709b06", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H25 - 32, T12", - "Dosage": 200, - "AssistA": " 悬停(10s)", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 12, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 4, - "HoleCollective": "25,26,27,28,29,30,31,32", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 4 - }, - { - "uuid": "f9e273cfe622463e98328139163bcb45", - "uuidPlanMaster": "34cfbb4451f046aaa6c4fd02b8709b06", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1 - 8, T8", - "Dosage": 200, - "AssistA": " 吹样(50ul)", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 8, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 20, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 3 - }, - { - "uuid": "a72b9c01d6b34344868940e9cb90ef84", - "uuidPlanMaster": "34cfbb4451f046aaa6c4fd02b8709b06", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H25 - 32, T12", - "Dosage": 200, - "AssistA": " 悬停(10s)", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 12, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 4, - "HoleCollective": "25,26,27,28,29,30,31,32", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 4 - }, - { - "uuid": "77a8d4d5b73f43dab36a84935381a54a", - "uuidPlanMaster": "34cfbb4451f046aaa6c4fd02b8709b06", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H9 - 16, T8", - "Dosage": 200, - "AssistA": " 吹样(50ul)", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 8, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 2, - "HoleCollective": "9,10,11,12,13,14,15,16", - "MixCount": 0, - "HeightFromBottom": 20, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 3 - }, - { - "uuid": "e9dc1777394c4c3dad79127d095e2869", - "uuidPlanMaster": "34cfbb4451f046aaa6c4fd02b8709b06", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T18", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 18, - "IsFullPage": 1, - "HoleRow": 0, - "HoleColum": 0, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "dad26a058a2c4656b22ecf1c7c6a7b85", - "uuidPlanMaster": "34cfbb4451f046aaa6c4fd02b8709b06", - "Axis": "Left", - "ActOn": "Load", - "Place": "H49 - 56, T4", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 7, - "HoleCollective": "49,50,51,52,53,54,55,56", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "0a2691c858a54198916ffb872a0f89cb", - "uuidPlanMaster": "34cfbb4451f046aaa6c4fd02b8709b06", - "Axis": "Left", - "ActOn": "Blending", - "Place": "H17 - 24, T14", - "Dosage": 200, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 14, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "17,18,19,20,21,22,23,24", - "MixCount": 10, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 8 - }, - { - "uuid": "7c63cb8afc104c56b7420858eb241b6d", - "uuidPlanMaster": "34cfbb4451f046aaa6c4fd02b8709b06", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H17 - 24, T14", - "Dosage": 20, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 14, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "17,18,19,20,21,22,23,24", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "760bd92f10904790af8c424530cc9802", - "uuidPlanMaster": "34cfbb4451f046aaa6c4fd02b8709b06", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1 - 8, T8", - "Dosage": 20, - "AssistA": " 吹样(5ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 8, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "cc9bad89abc44b388f6571a49504bc04", - "uuidPlanMaster": "34cfbb4451f046aaa6c4fd02b8709b06", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H17 - 24, T14", - "Dosage": 20, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 14, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "17,18,19,20,21,22,23,24", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "2f86270a332c482a97e52a5acdf5a41e", - "uuidPlanMaster": "34cfbb4451f046aaa6c4fd02b8709b06", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H9 - 16, T8", - "Dosage": 20, - "AssistA": " 吹样(5ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 8, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 2, - "HoleCollective": "9,10,11,12,13,14,15,16", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "bf0ca1e289324db281dcb7682db81ebc", - "uuidPlanMaster": "34cfbb4451f046aaa6c4fd02b8709b06", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T18", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 18, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "7914efcde2df40d0837a351a926e7e6b", - "uuidPlanMaster": "34cfbb4451f046aaa6c4fd02b8709b06", - "Axis": "Left", - "ActOn": "Load", - "Place": "H57 - 64, T4", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 8, - "HoleCollective": "57,58,59,60,61,62,63,64", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "e73aee1180ef46be97da4b89a7501e39", - "uuidPlanMaster": "34cfbb4451f046aaa6c4fd02b8709b06", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H1 - 8, T13", - "Dosage": 280, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 13, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "6a5814c2295846b7ad785906fb1bcfaa", - "uuidPlanMaster": "34cfbb4451f046aaa6c4fd02b8709b06", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1 - 8, T8", - "Dosage": 280, - "AssistA": " 吹样(20ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 8, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "f5ccb91785f442a682b363e7740a9369", - "uuidPlanMaster": "34cfbb4451f046aaa6c4fd02b8709b06", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H1 - 8, T13", - "Dosage": 280, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 13, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "fd9bb494b3e6475083ce4283ddf23cc7", - "uuidPlanMaster": "34cfbb4451f046aaa6c4fd02b8709b06", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H9 - 16, T8", - "Dosage": 280, - "AssistA": " 吹样(20ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 8, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 2, - "HoleCollective": "9,10,11,12,13,14,15,16", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "a82b05b18324458187be1701d0f9eb30", - "uuidPlanMaster": "34cfbb4451f046aaa6c4fd02b8709b06", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T18", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 18, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "67a496bdc95a4256a7cdba56f5bc69ef", - "uuidPlanMaster": "34cfbb4451f046aaa6c4fd02b8709b06", - "Axis": "ClampingJaw", - "ActOn": "DefectiveLift", - "Place": "T8", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 8, - "IsFullPage": 1, - "HoleRow": 0, - "HoleColum": 0, - "HoleCollective": "", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "1fc9e3d8b0d04de593327448df110072", - "uuidPlanMaster": "34cfbb4451f046aaa6c4fd02b8709b06", - "Axis": "ClampingJaw", - "ActOn": "PutDown", - "Place": "T6", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 6, - "IsFullPage": 1, - "HoleRow": 0, - "HoleColum": 0, - "HoleCollective": "", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "9d2ef95ea54d487e8648d470f99e41a9", - "uuidPlanMaster": "34cfbb4451f046aaa6c4fd02b8709b06", - "Axis": "Left", - "ActOn": "DefectiveLift", - "Place": "T17", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 17, - "IsFullPage": 1, - "HoleRow": 0, - "HoleColum": 0, - "HoleCollective": "", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "6ad71aef2a0f4f1fa3089da17eb698ac", - "uuidPlanMaster": "34cfbb4451f046aaa6c4fd02b8709b06", - "Axis": "Left", - "ActOn": "PutDown", - "Place": "T10", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 10, - "IsFullPage": 1, - "HoleRow": 0, - "HoleColum": 0, - "HoleCollective": "", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "09f99c5937de419c84c5212cdda152aa", - "uuidPlanMaster": "34cfbb4451f046aaa6c4fd02b8709b06", - "Axis": "Left", - "ActOn": "Shaking", - "Place": null, - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 0, - "IsFullPage": 1, - "HoleRow": 0, - "HoleColum": 0, - "HoleCollective": "", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "600", - "Module": 1, - "Temperature": null, - "Amplitude": "800", - "Height": null, - "IsWait": 1, - "ImbSpeed": 0 - }, - { - "uuid": "3d614275903541fbbc8ce0f1cda6aebb", - "uuidPlanMaster": "34cfbb4451f046aaa6c4fd02b8709b06", - "Axis": "ClampingJaw", - "ActOn": "DefectiveLift", - "Place": "T6", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 6, - "IsFullPage": 1, - "HoleRow": 0, - "HoleColum": 0, - "HoleCollective": "", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "15971453dcae4ea2a20e6dfb20cef6f2", - "uuidPlanMaster": "34cfbb4451f046aaa6c4fd02b8709b06", - "Axis": "ClampingJaw", - "ActOn": "PutDown", - "Place": "T17", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 17, - "IsFullPage": 1, - "HoleRow": 0, - "HoleColum": 0, - "HoleCollective": "", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "cdb68e1dfabe415582a20f53772ca410", - "uuidPlanMaster": "34cfbb4451f046aaa6c4fd02b8709b06", - "Axis": "Left", - "ActOn": "Pause", - "Place": null, - "Dosage": 0, - "AssistA": "1", - "AssistB": "180", - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 0, - "IsFullPage": 0, - "HoleRow": 0, - "HoleColum": 0, - "HoleCollective": "", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "0890efef05ce4868a22dbacaf3c3edff", - "uuidPlanMaster": "34cfbb4451f046aaa6c4fd02b8709b06", - "Axis": "Right", - "ActOn": "Load", - "Place": "H17 - 24, T5", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "17,18,19,20,21,22,23,24", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "398266409e874e5bbf756d072041d442", - "uuidPlanMaster": "34cfbb4451f046aaa6c4fd02b8709b06", - "Axis": "Right", - "ActOn": "Imbibing", - "Place": "H1 - 8, T17", - "Dosage": 1000, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 17, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "11e68a64f41d4e31a2611584904032ae", - "uuidPlanMaster": "34cfbb4451f046aaa6c4fd02b8709b06", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H1 - 8, T9", - "Dosage": 1000, - "AssistA": " 吹样(10ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 9, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "00c7089322464b7a881359b8158d7f6d", - "uuidPlanMaster": "34cfbb4451f046aaa6c4fd02b8709b06", - "Axis": "Right", - "ActOn": "UnLoad", - "Place": "H17 - 24, T5", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "17,18,19,20,21,22,23,24", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "511b9df0f3f549c080b7ead9d8979da7", - "uuidPlanMaster": "34cfbb4451f046aaa6c4fd02b8709b06", - "Axis": "Right", - "ActOn": "Load", - "Place": "H25 - 32, T5", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 4, - "HoleCollective": "25,26,27,28,29,30,31,32", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "9c9631b7319449c4888cc6e746acc089", - "uuidPlanMaster": "34cfbb4451f046aaa6c4fd02b8709b06", - "Axis": "Right", - "ActOn": "Imbibing", - "Place": "H9 - 16, T17", - "Dosage": 1000, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 17, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 2, - "HoleCollective": "9,10,11,12,13,14,15,16", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "3737fc532d9d41d88ab4df5544d229d5", - "uuidPlanMaster": "34cfbb4451f046aaa6c4fd02b8709b06", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H9 - 16, T9", - "Dosage": 1000, - "AssistA": " 吹样(10ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 9, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 2, - "HoleCollective": "9,10,11,12,13,14,15,16", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "c5ba6ad34ea346e5a4518d2abb836dbe", - "uuidPlanMaster": "34cfbb4451f046aaa6c4fd02b8709b06", - "Axis": "Right", - "ActOn": "UnLoad", - "Place": "H25 - 32, T5", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 4, - "HoleCollective": "25,26,27,28,29,30,31,32", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "6495be45e1d64ecab8f4391f68b072e3", - "uuidPlanMaster": "34cfbb4451f046aaa6c4fd02b8709b06", - "Axis": "Right", - "ActOn": "Load", - "Place": "H33 - 40, T5", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 5, - "HoleCollective": "33,34,35,36,37,38,39,40", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "d09276611d10426c80cd7ce7888f4605", - "uuidPlanMaster": "34cfbb4451f046aaa6c4fd02b8709b06", - "Axis": "Right", - "ActOn": "Imbibing", - "Place": "H9 - 16, T13", - "Dosage": 500, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 13, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 2, - "HoleCollective": "9,10,11,12,13,14,15,16", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "d23e2a012b164ba2a615c322da06ab63", - "uuidPlanMaster": "34cfbb4451f046aaa6c4fd02b8709b06", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H1 - 8, T17", - "Dosage": 500, - "AssistA": " 吹样(5ul)", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 17, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "45a3038e7a2c4b8c817b77b6a9da7c02", - "uuidPlanMaster": "34cfbb4451f046aaa6c4fd02b8709b06", - "Axis": "Right", - "ActOn": "Imbibing", - "Place": "H9 - 16, T13", - "Dosage": 500, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 13, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 2, - "HoleCollective": "9,10,11,12,13,14,15,16", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "80b4b29f20b1488daa21a58f5a0c2bb0", - "uuidPlanMaster": "34cfbb4451f046aaa6c4fd02b8709b06", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H9 - 16, T17", - "Dosage": 500, - "AssistA": " 吹样(5ul)", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 17, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 2, - "HoleCollective": "9,10,11,12,13,14,15,16", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "e40167de5da241ae8b4c8e777e67cba1", - "uuidPlanMaster": "34cfbb4451f046aaa6c4fd02b8709b06", - "Axis": "Right", - "ActOn": "UnLoad", - "Place": "H33 - 40, T5", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 5, - "HoleCollective": "33,34,35,36,37,38,39,40", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "0afce51bf87549a6ad0ab0eba1571d85", - "uuidPlanMaster": "34cfbb4451f046aaa6c4fd02b8709b06", - "Axis": "ClampingJaw", - "ActOn": "DefectiveLift", - "Place": "T17", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 17, - "IsFullPage": 1, - "HoleRow": 0, - "HoleColum": 0, - "HoleCollective": "", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "7022b811e765491a96cdea0bf333273c", - "uuidPlanMaster": "34cfbb4451f046aaa6c4fd02b8709b06", - "Axis": "ClampingJaw", - "ActOn": "PutDown", - "Place": "T6", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 6, - "IsFullPage": 1, - "HoleRow": 0, - "HoleColum": 0, - "HoleCollective": "", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "4cef6b22b165425cbe007d5d6b825e99", - "uuidPlanMaster": "34cfbb4451f046aaa6c4fd02b8709b06", - "Axis": "Left", - "ActOn": "Shaking", - "Place": null, - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 0, - "IsFullPage": 1, - "HoleRow": 0, - "HoleColum": 0, - "HoleCollective": "", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "120", - "Module": 1, - "Temperature": null, - "Amplitude": "800", - "Height": null, - "IsWait": 1, - "ImbSpeed": 0 - }, - { - "uuid": "ef58ad2208164c94852733bcdd44e4bd", - "uuidPlanMaster": "34cfbb4451f046aaa6c4fd02b8709b06", - "Axis": "ClampingJaw", - "ActOn": "DefectiveLift", - "Place": "T6", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 6, - "IsFullPage": 1, - "HoleRow": 0, - "HoleColum": 0, - "HoleCollective": "", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "d175dc1c14e941d7866b5e8998c106d4", - "uuidPlanMaster": "34cfbb4451f046aaa6c4fd02b8709b06", - "Axis": "ClampingJaw", - "ActOn": "PutDown", - "Place": "T17", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 17, - "IsFullPage": 1, - "HoleRow": 0, - "HoleColum": 0, - "HoleCollective": "", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "b5af0e8138734e4d96c65abd9c4746fd", - "uuidPlanMaster": "34cfbb4451f046aaa6c4fd02b8709b06", - "Axis": "Left", - "ActOn": "Pause", - "Place": null, - "Dosage": 0, - "AssistA": "1", - "AssistB": "120", - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 0, - "IsFullPage": 0, - "HoleRow": 0, - "HoleColum": 0, - "HoleCollective": "", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "1ec6580d84014cac98044236af7c361a", - "uuidPlanMaster": "34cfbb4451f046aaa6c4fd02b8709b06", - "Axis": "Right", - "ActOn": "Load", - "Place": "H17 - 24, T5", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "17,18,19,20,21,22,23,24", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "428f8e86949a4bbaa15185db32882493", - "uuidPlanMaster": "34cfbb4451f046aaa6c4fd02b8709b06", - "Axis": "Right", - "ActOn": "Imbibing", - "Place": "H1 - 8, T17", - "Dosage": 500, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 17, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "e10bdd47c6824f4aa1673c2d10cfdf5f", - "uuidPlanMaster": "34cfbb4451f046aaa6c4fd02b8709b06", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H1 - 8, T9", - "Dosage": 500, - "AssistA": " 吹样(5ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 9, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "9215c918adc44d56ba93a2b5add20ba0", - "uuidPlanMaster": "34cfbb4451f046aaa6c4fd02b8709b06", - "Axis": "Right", - "ActOn": "UnLoad", - "Place": "H17 - 24, T5", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "17,18,19,20,21,22,23,24", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "a1f953e6327f427f8167fee3afa4a303", - "uuidPlanMaster": "34cfbb4451f046aaa6c4fd02b8709b06", - "Axis": "Right", - "ActOn": "Load", - "Place": "H25 - 32, T5", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 4, - "HoleCollective": "25,26,27,28,29,30,31,32", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "bdc8ba4fbb5842cca094b7527f32aab8", - "uuidPlanMaster": "34cfbb4451f046aaa6c4fd02b8709b06", - "Axis": "Right", - "ActOn": "Imbibing", - "Place": "H9 - 16, T17", - "Dosage": 500, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 17, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 2, - "HoleCollective": "9,10,11,12,13,14,15,16", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "0d6776756ea24647b0f6b92138b80574", - "uuidPlanMaster": "34cfbb4451f046aaa6c4fd02b8709b06", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H9 - 16, T9", - "Dosage": 500, - "AssistA": " 吹样(5ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 9, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 2, - "HoleCollective": "9,10,11,12,13,14,15,16", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "7dedff667afb446191cbf97826f1ef1e", - "uuidPlanMaster": "34cfbb4451f046aaa6c4fd02b8709b06", - "Axis": "Right", - "ActOn": "UnLoad", - "Place": "H25 - 32, T5", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 4, - "HoleCollective": "25,26,27,28,29,30,31,32", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "614e7c15b64c4d53804223f71384e561", - "uuidPlanMaster": "34cfbb4451f046aaa6c4fd02b8709b06", - "Axis": "Right", - "ActOn": "Load", - "Place": "H41 - 48, T5", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 6, - "HoleCollective": "41,42,43,44,45,46,47,48", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "fd179c17623b4b9daadfbe2c2c724274", - "uuidPlanMaster": "34cfbb4451f046aaa6c4fd02b8709b06", - "Axis": "Right", - "ActOn": "Imbibing", - "Place": "H17 - 24, T13", - "Dosage": 500, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 13, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "17,18,19,20,21,22,23,24", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "290b7229f07749e6b00177890e5bf42f", - "uuidPlanMaster": "34cfbb4451f046aaa6c4fd02b8709b06", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H1 - 8, T17", - "Dosage": 500, - "AssistA": " 吹样(5ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 17, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "9189efb423c04b838bce3c82f9ca4a05", - "uuidPlanMaster": "34cfbb4451f046aaa6c4fd02b8709b06", - "Axis": "Right", - "ActOn": "Imbibing", - "Place": "H17 - 24, T13", - "Dosage": 500, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 13, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "17,18,19,20,21,22,23,24", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "c4583d2efd3c4a6cb316a81669c26bbe", - "uuidPlanMaster": "34cfbb4451f046aaa6c4fd02b8709b06", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H9 - 16, T17", - "Dosage": 500, - "AssistA": " 吹样(5ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 17, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 2, - "HoleCollective": "9,10,11,12,13,14,15,16", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "829c72638f004c56b8f7de7754914536", - "uuidPlanMaster": "34cfbb4451f046aaa6c4fd02b8709b06", - "Axis": "Right", - "ActOn": "UnLoad", - "Place": "H41 - 48, T5", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 6, - "HoleCollective": "41,42,43,44,45,46,47,48", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "acf7214c85b440ada1bc68793c88b8ce", - "uuidPlanMaster": "34cfbb4451f046aaa6c4fd02b8709b06", - "Axis": "ClampingJaw", - "ActOn": "DefectiveLift", - "Place": "T17", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 17, - "IsFullPage": 1, - "HoleRow": 0, - "HoleColum": 0, - "HoleCollective": "", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "dc5824a43a0244f7a04e474b50e02931", - "uuidPlanMaster": "34cfbb4451f046aaa6c4fd02b8709b06", - "Axis": "ClampingJaw", - "ActOn": "PutDown", - "Place": "T6", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 6, - "IsFullPage": 1, - "HoleRow": 0, - "HoleColum": 0, - "HoleCollective": "", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "8abcea46ffce47dca55bf3bb4b0fed7d", - "uuidPlanMaster": "34cfbb4451f046aaa6c4fd02b8709b06", - "Axis": "Left", - "ActOn": "Shaking", - "Place": null, - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 0, - "IsFullPage": 1, - "HoleRow": 0, - "HoleColum": 0, - "HoleCollective": "", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "120", - "Module": 1, - "Temperature": null, - "Amplitude": "800", - "Height": null, - "IsWait": 1, - "ImbSpeed": 0 - }, - { - "uuid": "2e43a679e2b949c6bc06a6c63163a456", - "uuidPlanMaster": "34cfbb4451f046aaa6c4fd02b8709b06", - "Axis": "ClampingJaw", - "ActOn": "DefectiveLift", - "Place": "T6", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 6, - "IsFullPage": 1, - "HoleRow": 0, - "HoleColum": 0, - "HoleCollective": "", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "27aa374cdda44b39afc9bed69749ca9e", - "uuidPlanMaster": "34cfbb4451f046aaa6c4fd02b8709b06", - "Axis": "ClampingJaw", - "ActOn": "PutDown", - "Place": "T17", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 17, - "IsFullPage": 1, - "HoleRow": 0, - "HoleColum": 0, - "HoleCollective": "", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "df0c9c17d9e44ccabbadecb5fb24543a", - "uuidPlanMaster": "34cfbb4451f046aaa6c4fd02b8709b06", - "Axis": "Left", - "ActOn": "Pause", - "Place": null, - "Dosage": 0, - "AssistA": "1", - "AssistB": "120", - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 0, - "IsFullPage": 0, - "HoleRow": 0, - "HoleColum": 0, - "HoleCollective": "", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "c471f24c8cb247419ce3ebc5f453de6b", - "uuidPlanMaster": "34cfbb4451f046aaa6c4fd02b8709b06", - "Axis": "Right", - "ActOn": "Load", - "Place": "H17 - 24, T5", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "17,18,19,20,21,22,23,24", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "f5865c742bb74bbf9eaa42f73bb88430", - "uuidPlanMaster": "34cfbb4451f046aaa6c4fd02b8709b06", - "Axis": "Right", - "ActOn": "Imbibing", - "Place": "H1 - 8, T17", - "Dosage": 500, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 17, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "46b0e97e4bd24afa9ddb8e5ae6bc43d6", - "uuidPlanMaster": "34cfbb4451f046aaa6c4fd02b8709b06", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H1 - 8, T9", - "Dosage": 500, - "AssistA": " 吹样(5ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 9, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "66853c01bfae4bb09cfc83b6ea82fef5", - "uuidPlanMaster": "34cfbb4451f046aaa6c4fd02b8709b06", - "Axis": "Right", - "ActOn": "UnLoad", - "Place": "H17 - 24, T5", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "17,18,19,20,21,22,23,24", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "b1fb18fc03e3439fa31605d0db0495e5", - "uuidPlanMaster": "34cfbb4451f046aaa6c4fd02b8709b06", - "Axis": "Right", - "ActOn": "Load", - "Place": "H25 - 32, T5", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 4, - "HoleCollective": "25,26,27,28,29,30,31,32", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "fb9267f90a1b43cd816b3a762e7b2099", - "uuidPlanMaster": "34cfbb4451f046aaa6c4fd02b8709b06", - "Axis": "Right", - "ActOn": "Imbibing", - "Place": "H9 - 16, T17", - "Dosage": 500, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 17, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 2, - "HoleCollective": "9,10,11,12,13,14,15,16", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "5a7fe4d84b034feab7bb065e1fb827df", - "uuidPlanMaster": "34cfbb4451f046aaa6c4fd02b8709b06", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H9 - 16, T9", - "Dosage": 500, - "AssistA": " 吹样(5ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 9, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 2, - "HoleCollective": "9,10,11,12,13,14,15,16", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "90b20879b18f40da9988b85bb4a79524", - "uuidPlanMaster": "34cfbb4451f046aaa6c4fd02b8709b06", - "Axis": "Right", - "ActOn": "UnLoad", - "Place": "H25 - 32, T5", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 4, - "HoleCollective": "25,26,27,28,29,30,31,32", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "971c21e79cb142f4acdb5d96acab5107", - "uuidPlanMaster": "34cfbb4451f046aaa6c4fd02b8709b06", - "Axis": "Right", - "ActOn": "Load", - "Place": "H49 - 56, T5", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 7, - "HoleCollective": "49,50,51,52,53,54,55,56", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "6da7ace9c3054706bef880382e32b175", - "uuidPlanMaster": "34cfbb4451f046aaa6c4fd02b8709b06", - "Axis": "Right", - "ActOn": "Imbibing", - "Place": "H17 - 24, T13", - "Dosage": 500, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 13, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "17,18,19,20,21,22,23,24", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "60a566e58f7c43cabc057c1ea74c544f", - "uuidPlanMaster": "34cfbb4451f046aaa6c4fd02b8709b06", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H1 - 8, T17", - "Dosage": 500, - "AssistA": " 吹样(5ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 17, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "2ecd4126f08b4644bb5a48a97948eaf4", - "uuidPlanMaster": "34cfbb4451f046aaa6c4fd02b8709b06", - "Axis": "Right", - "ActOn": "Imbibing", - "Place": "H17 - 24, T13", - "Dosage": 500, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 13, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "17,18,19,20,21,22,23,24", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "837c30da35ee47c4a11969f3ed21383f", - "uuidPlanMaster": "34cfbb4451f046aaa6c4fd02b8709b06", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H9 - 16, T17", - "Dosage": 500, - "AssistA": " 吹样(5ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 17, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 2, - "HoleCollective": "9,10,11,12,13,14,15,16", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "c41336cb5db445fbaa028b6e4f0c0a42", - "uuidPlanMaster": "34cfbb4451f046aaa6c4fd02b8709b06", - "Axis": "Right", - "ActOn": "UnLoad", - "Place": "H49 - 56, T5", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 7, - "HoleCollective": "49,50,51,52,53,54,55,56", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "31693897af4746628498f4ae95f8e7df", - "uuidPlanMaster": "34cfbb4451f046aaa6c4fd02b8709b06", - "Axis": "Left", - "ActOn": "Shaking_Incubation", - "Place": "T11", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 11, - "IsFullPage": 1, - "HoleRow": 0, - "HoleColum": 0, - "HoleCollective": "", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "0", - "Module": 1, - "Temperature": "55", - "Amplitude": "0", - "Height": null, - "IsWait": 1, - "ImbSpeed": 0 - }, - { - "uuid": "ab2c600e7fb5428d833942756f885f97", - "uuidPlanMaster": "34cfbb4451f046aaa6c4fd02b8709b06", - "Axis": "ClampingJaw", - "ActOn": "DefectiveLift", - "Place": "T17", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 17, - "IsFullPage": 1, - "HoleRow": 0, - "HoleColum": 0, - "HoleCollective": "", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "0c99f8fc99b8406eb5b85b8e326ae56f", - "uuidPlanMaster": "34cfbb4451f046aaa6c4fd02b8709b06", - "Axis": "ClampingJaw", - "ActOn": "PutDown", - "Place": "T6", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 6, - "IsFullPage": 1, - "HoleRow": 0, - "HoleColum": 0, - "HoleCollective": "", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "8d0fff094f2e4daba311b38e4403c925", - "uuidPlanMaster": "34cfbb4451f046aaa6c4fd02b8709b06", - "Axis": "Left", - "ActOn": "Shaking", - "Place": null, - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 0, - "IsFullPage": 1, - "HoleRow": 0, - "HoleColum": 0, - "HoleCollective": "", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "120", - "Module": 1, - "Temperature": null, - "Amplitude": "800", - "Height": null, - "IsWait": 1, - "ImbSpeed": 0 - }, - { - "uuid": "1808e84a502f46aa926f37349d437777", - "uuidPlanMaster": "34cfbb4451f046aaa6c4fd02b8709b06", - "Axis": "ClampingJaw", - "ActOn": "DefectiveLift", - "Place": "T6", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 6, - "IsFullPage": 1, - "HoleRow": 0, - "HoleColum": 0, - "HoleCollective": "", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "a143be73d99b4c1a8c7e8f9ce38a2ac3", - "uuidPlanMaster": "34cfbb4451f046aaa6c4fd02b8709b06", - "Axis": "ClampingJaw", - "ActOn": "PutDown", - "Place": "T17", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 17, - "IsFullPage": 1, - "HoleRow": 0, - "HoleColum": 0, - "HoleCollective": "", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "0d256a07b7ca4bbcb941b5c17622f6d7", - "uuidPlanMaster": "34cfbb4451f046aaa6c4fd02b8709b06", - "Axis": "Left", - "ActOn": "Pause", - "Place": null, - "Dosage": 0, - "AssistA": "1", - "AssistB": "120", - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 0, - "IsFullPage": 0, - "HoleRow": 0, - "HoleColum": 0, - "HoleCollective": "", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "1728f08511b5485db1107be9bcd9a8f3", - "uuidPlanMaster": "34cfbb4451f046aaa6c4fd02b8709b06", - "Axis": "Right", - "ActOn": "Load", - "Place": "H17 - 24, T5", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "17,18,19,20,21,22,23,24", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "29c5c5149f174367b1e5025fbfc67c76", - "uuidPlanMaster": "34cfbb4451f046aaa6c4fd02b8709b06", - "Axis": "Right", - "ActOn": "Imbibing", - "Place": "H1 - 8, T17", - "Dosage": 500, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 17, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "55bd2949a91c414cbb9896268121d134", - "uuidPlanMaster": "34cfbb4451f046aaa6c4fd02b8709b06", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H1 - 8, T9", - "Dosage": 500, - "AssistA": " 吹样(5ul)", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 9, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 20, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "047e916e6c6f4e5ab9cae9ba4a0c506f", - "uuidPlanMaster": "34cfbb4451f046aaa6c4fd02b8709b06", - "Axis": "Right", - "ActOn": "UnLoad", - "Place": "T18", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 18, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "1fc41f39ab934ba286291c6da1136a0a", - "uuidPlanMaster": "34cfbb4451f046aaa6c4fd02b8709b06", - "Axis": "Right", - "ActOn": "Load", - "Place": "H25 - 32, T5", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 4, - "HoleCollective": "25,26,27,28,29,30,31,32", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "1bad3ca2d3d240549c64e6ad966ffb8c", - "uuidPlanMaster": "34cfbb4451f046aaa6c4fd02b8709b06", - "Axis": "Right", - "ActOn": "Imbibing", - "Place": "H9 - 16, T17", - "Dosage": 500, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 17, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 2, - "HoleCollective": "9,10,11,12,13,14,15,16", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "bd9c3cf1a3af4f52bf8c51c590624ba7", - "uuidPlanMaster": "34cfbb4451f046aaa6c4fd02b8709b06", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H9 - 16, T9", - "Dosage": 500, - "AssistA": " 吹样(5ul)", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 9, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 2, - "HoleCollective": "9,10,11,12,13,14,15,16", - "MixCount": 0, - "HeightFromBottom": 20, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "a59abeff2f2b425f91ee9d8d78c26353", - "uuidPlanMaster": "34cfbb4451f046aaa6c4fd02b8709b06", - "Axis": "Right", - "ActOn": "UnLoad", - "Place": "T18", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 18, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 4, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "832490914715488da60c6f47a2058440", - "uuidPlanMaster": "34cfbb4451f046aaa6c4fd02b8709b06", - "Axis": "ClampingJaw", - "ActOn": "DefectiveLift", - "Place": "T17", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 17, - "IsFullPage": 1, - "HoleRow": 0, - "HoleColum": 0, - "HoleCollective": "", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "cca3a9e4861643ce9d007d3dae47116c", - "uuidPlanMaster": "34cfbb4451f046aaa6c4fd02b8709b06", - "Axis": "ClampingJaw", - "ActOn": "PutDown", - "Place": "T11", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 11, - "IsFullPage": 1, - "HoleRow": 0, - "HoleColum": 0, - "HoleCollective": "", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "453074741cd84d1ba9d3d69c416e195d", - "uuidPlanMaster": "34cfbb4451f046aaa6c4fd02b8709b06", - "Axis": "Left", - "ActOn": "Shaking_Incubation", - "Place": null, - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 0, - "IsFullPage": 1, - "HoleRow": 0, - "HoleColum": 0, - "HoleCollective": "", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "480", - "Module": 1, - "Temperature": "55", - "Amplitude": "0", - "Height": null, - "IsWait": 1, - "ImbSpeed": 0 - }, - { - "uuid": "b6665e815daa4c729b2323fe8a225237", - "uuidPlanMaster": "34cfbb4451f046aaa6c4fd02b8709b06", - "Axis": "ClampingJaw", - "ActOn": "DefectiveLift", - "Place": "T11", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 11, - "IsFullPage": 1, - "HoleRow": 0, - "HoleColum": 0, - "HoleCollective": "", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "d59337c6a5c84757a91859987aff8679", - "uuidPlanMaster": "34cfbb4451f046aaa6c4fd02b8709b06", - "Axis": "ClampingJaw", - "ActOn": "PutDown", - "Place": "T17", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 17, - "IsFullPage": 1, - "HoleRow": 0, - "HoleColum": 0, - "HoleCollective": "", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "56817b19cfc34b429605009c42288304", - "uuidPlanMaster": "34cfbb4451f046aaa6c4fd02b8709b06", - "Axis": "Left", - "ActOn": "Load", - "Place": "H65 - 72, T4", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 9, - "HoleCollective": "65,66,67,68,69,70,71,72", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "829aea244b8d4ea29deb7881bbbdd7ef", - "uuidPlanMaster": "34cfbb4451f046aaa6c4fd02b8709b06", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H25 - 32, T14", - "Dosage": 100, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 14, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 4, - "HoleCollective": "25,26,27,28,29,30,31,32", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "b845e739edfd4461abec79778b5ead0e", - "uuidPlanMaster": "34cfbb4451f046aaa6c4fd02b8709b06", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1 - 8, T17", - "Dosage": 100, - "AssistA": " 吹样(5ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 17, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "6eb396e29d1645799fe940e21fcc9bf3", - "uuidPlanMaster": "34cfbb4451f046aaa6c4fd02b8709b06", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H25 - 32, T14", - "Dosage": 100, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 14, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 4, - "HoleCollective": "25,26,27,28,29,30,31,32", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "877e8eb3225b43a0a929ce83898549cc", - "uuidPlanMaster": "34cfbb4451f046aaa6c4fd02b8709b06", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H9 - 16, T17", - "Dosage": 100, - "AssistA": " 吹样(5ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 17, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 2, - "HoleCollective": "9,10,11,12,13,14,15,16", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "7bf69e2f782a4b539bfd8dc0630189b4", - "uuidPlanMaster": "34cfbb4451f046aaa6c4fd02b8709b06", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T18", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 18, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "3d7355796cbd4f68887b2dbbf5c7034e", - "uuidPlanMaster": "34cfbb4451f046aaa6c4fd02b8709b06", - "Axis": "ClampingJaw", - "ActOn": "DefectiveLift", - "Place": "T17", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 17, - "IsFullPage": 1, - "HoleRow": 0, - "HoleColum": 0, - "HoleCollective": "", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "10aebbbd8dd5419b8a1a10e886401a18", - "uuidPlanMaster": "34cfbb4451f046aaa6c4fd02b8709b06", - "Axis": "ClampingJaw", - "ActOn": "PutDown", - "Place": "T6", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 6, - "IsFullPage": 1, - "HoleRow": 0, - "HoleColum": 0, - "HoleCollective": "", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "cbb45bcbc1a14998b87b55d9fb2162da", - "uuidPlanMaster": "34cfbb4451f046aaa6c4fd02b8709b06", - "Axis": "Left", - "ActOn": "Shaking", - "Place": null, - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 0, - "IsFullPage": 1, - "HoleRow": 0, - "HoleColum": 0, - "HoleCollective": "", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "600", - "Module": 1, - "Temperature": null, - "Amplitude": "800", - "Height": null, - "IsWait": 1, - "ImbSpeed": 0 - }, - { - "uuid": "0bcb65c490ed4ff2ac0f362d0990e0f2", - "uuidPlanMaster": "34cfbb4451f046aaa6c4fd02b8709b06", - "Axis": "ClampingJaw", - "ActOn": "DefectiveLift", - "Place": "T6", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 6, - "IsFullPage": 1, - "HoleRow": 0, - "HoleColum": 0, - "HoleCollective": "", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "71ad8b9acf7b4f7584669bdf77f6072a", - "uuidPlanMaster": "34cfbb4451f046aaa6c4fd02b8709b06", - "Axis": "ClampingJaw", - "ActOn": "PutDown", - "Place": "T17", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 17, - "IsFullPage": 1, - "HoleRow": 0, - "HoleColum": 0, - "HoleCollective": "", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "e684c624295d44fcafdb96cc073f0eb6", - "uuidPlanMaster": "34cfbb4451f046aaa6c4fd02b8709b06", - "Axis": "Left", - "ActOn": "Pause", - "Place": null, - "Dosage": 0, - "AssistA": "1", - "AssistB": "120", - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 0, - "IsFullPage": 0, - "HoleRow": 0, - "HoleColum": 0, - "HoleCollective": "", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "6efce1815c4041df9d02cdeff30599f1", - "uuidPlanMaster": "34cfbb4451f046aaa6c4fd02b8709b06", - "Axis": "Left", - "ActOn": "Load", - "Place": "H73 - 80, T4", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 10, - "HoleCollective": "73,74,75,76,77,78,79,80", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "a21f8a0c694c486781cf69120ad54423", - "uuidPlanMaster": "34cfbb4451f046aaa6c4fd02b8709b06", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H1 - 8, T17", - "Dosage": 100, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 17, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "62b891eac7674d9db102c6e5c254d9e7", - "uuidPlanMaster": "34cfbb4451f046aaa6c4fd02b8709b06", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1 - 8, T16", - "Dosage": 100, - "AssistA": " 吹样(5ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 16, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "6fbdaaf0ce6b497cb0463830941d3b8e", - "uuidPlanMaster": "34cfbb4451f046aaa6c4fd02b8709b06", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T18", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 18, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "44c064b2be414a63b3b20194056f5af2", - "uuidPlanMaster": "34cfbb4451f046aaa6c4fd02b8709b06", - "Axis": "Left", - "ActOn": "Load", - "Place": "H81 - 88, T4", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 11, - "HoleCollective": "81,82,83,84,85,86,87,88", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "c721d4e7ed03474db058883b26002d04", - "uuidPlanMaster": "34cfbb4451f046aaa6c4fd02b8709b06", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H9 - 16, T17", - "Dosage": 100, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 17, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 2, - "HoleCollective": "9,10,11,12,13,14,15,16", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "7be3d81fdb854b99afce10e37c13aacb", - "uuidPlanMaster": "34cfbb4451f046aaa6c4fd02b8709b06", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H9 - 16, T16", - "Dosage": 100, - "AssistA": " 吹样(5ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 16, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 2, - "HoleCollective": "9,10,11,12,13,14,15,16", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "2846ada298374ef680b2e2f998e91559", - "uuidPlanMaster": "34cfbb4451f046aaa6c4fd02b8709b06", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T18", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 18, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "d41026728db4481db2755c9161d50934", - "uuidPlanMaster": "eea604acde004d2a8f4e66a81d11437f", - "Axis": "Right", - "ActOn": "Load", - "Place": "H89 - 96, T5", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 12, - "HoleCollective": "89,90,91,92,93,94,95,96", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "61255c5627ef4897955db56cb11bdd47", - "uuidPlanMaster": "eea604acde004d2a8f4e66a81d11437f", - "Axis": "Right", - "ActOn": "Imbibing", - "Place": "H1 - 8, T13", - "Dosage": 500, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 13, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "8b2c27a3852c484c8ec2b2c111c899f0", - "uuidPlanMaster": "eea604acde004d2a8f4e66a81d11437f", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H1 - 8, T17", - "Dosage": 500, - "AssistA": " 吹样(20ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 17, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 20, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "b72f0155bf334d159c97c94eae339a20", - "uuidPlanMaster": "eea604acde004d2a8f4e66a81d11437f", - "Axis": "Right", - "ActOn": "UnLoad", - "Place": "H89 - 96, T5", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 12, - "HoleCollective": "89,90,91,92,93,94,95,96", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "e41a8f6aabf141d19b9f77353d497cab", - "uuidPlanMaster": "6b71404f4b414b08b12752272d16cf33", - "Axis": "Left", - "ActOn": "DefectiveLift", - "Place": "T17", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 17, - "IsFullPage": 1, - "HoleRow": 0, - "HoleColum": 0, - "HoleCollective": "", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "47a3149973d04bfdb798470dec6b1cf5", - "uuidPlanMaster": "6b71404f4b414b08b12752272d16cf33", - "Axis": "Left", - "ActOn": "PutDown", - "Place": "T6", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 6, - "IsFullPage": 1, - "HoleRow": 0, - "HoleColum": 0, - "HoleCollective": "", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "7d6df295ac694597ad762043515b8b1a", - "uuidPlanMaster": "6b71404f4b414b08b12752272d16cf33", - "Axis": "Left", - "ActOn": "Shaking", - "Place": null, - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 0, - "IsFullPage": 1, - "HoleRow": 0, - "HoleColum": 0, - "HoleCollective": "", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "10", - "Module": 1, - "Temperature": null, - "Amplitude": "800", - "Height": null, - "IsWait": 1, - "ImbSpeed": 0 - }, - { - "uuid": "b66d73cc5be041a2a9cffd704e8d7ee0", - "uuidPlanMaster": "6b71404f4b414b08b12752272d16cf33", - "Axis": "Left", - "ActOn": "DefectiveLift", - "Place": "T6", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 6, - "IsFullPage": 1, - "HoleRow": 0, - "HoleColum": 0, - "HoleCollective": "", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "0eeec749df1e4b05a110ad1bb2f00954", - "uuidPlanMaster": "6b71404f4b414b08b12752272d16cf33", - "Axis": "Left", - "ActOn": "PutDown", - "Place": "T17", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 17, - "IsFullPage": 1, - "HoleRow": 0, - "HoleColum": 0, - "HoleCollective": "", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "a9a15867de584c71b32f08a620c4d4e6", - "uuidPlanMaster": "6b71404f4b414b08b12752272d16cf33", - "Axis": "Right", - "ActOn": "Load", - "Place": "H89 - 96, T5", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 12, - "HoleCollective": "89,90,91,92,93,94,95,96", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "57bfdb2b53f147458f84cc0dff8c6ec6", - "uuidPlanMaster": "6b71404f4b414b08b12752272d16cf33", - "Axis": "Right", - "ActOn": "Imbibing", - "Place": "H1 - 8, T13", - "Dosage": 500, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 10, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "14f47e51cf2848319438b79cc78142e8", - "uuidPlanMaster": "6b71404f4b414b08b12752272d16cf33", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H1 - 8, T17", - "Dosage": 500, - "AssistA": " 吹样(20ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 17, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 20, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "d0424dc2dfd747898afdbd2e6ed53228", - "uuidPlanMaster": "6b71404f4b414b08b12752272d16cf33", - "Axis": "Right", - "ActOn": "UnLoad", - "Place": "H89 - 96, T5", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 12, - "HoleCollective": "89,90,91,92,93,94,95,96", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "e92c5363f3a840959d557cf892bc1559", - "uuidPlanMaster": "50cd9dadc035421c81a627f1a48982ab", - "Axis": "Right", - "ActOn": "Load", - "Place": "H89 - 96, T5", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 12, - "HoleCollective": "89,90,91,92,93,94,95,96", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "db3815d613f8490c8fa410ed8682c25b", - "uuidPlanMaster": "50cd9dadc035421c81a627f1a48982ab", - "Axis": "Right", - "ActOn": "Imbibing", - "Place": "H1 - 8, T13", - "Dosage": 500, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 13, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 10, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "9c5570a1a60a40dcbebc34c0d0fa6dbf", - "uuidPlanMaster": "50cd9dadc035421c81a627f1a48982ab", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H1 - 8, T17", - "Dosage": 500, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 17, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 20, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "10fe526195d44e108bb2003283bdb99e", - "uuidPlanMaster": "50cd9dadc035421c81a627f1a48982ab", - "Axis": "Right", - "ActOn": "UnLoad", - "Place": "H89 - 96, T5", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 12, - "HoleCollective": "89,90,91,92,93,94,95,96", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "e1f48fc2271540bdb18047f3ca78b801", - "uuidPlanMaster": "0bdf535156ed4ed29eb8b64fee6e1be9", - "Axis": "Right", - "ActOn": "Load", - "Place": "H89 - 96, T5", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 12, - "HoleCollective": "89,90,91,92,93,94,95,96", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "08fbbaa2431945b3b0ee3afacc478f88", - "uuidPlanMaster": "0bdf535156ed4ed29eb8b64fee6e1be9", - "Axis": "Right", - "ActOn": "Imbibing", - "Place": "H1 - 8, T13", - "Dosage": 500, - "AssistA": " 悬停(3s)", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 10, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "835b9043ee9e420ab2d82bd4bfc28e2f", - "uuidPlanMaster": "0bdf535156ed4ed29eb8b64fee6e1be9", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H1 - 8, T17", - "Dosage": 500, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 17, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 20, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "57edea36e73945d6b10f984305090ec2", - "uuidPlanMaster": "0bdf535156ed4ed29eb8b64fee6e1be9", - "Axis": "Right", - "ActOn": "UnLoad", - "Place": "H89 - 96, T5", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 12, - "HoleCollective": "89,90,91,92,93,94,95,96", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "bde87638202e4ae2991275f5d0acde45", - "uuidPlanMaster": "04508af82b2f4c7fa7cff02a47eb6afd", - "Axis": "Left", - "ActOn": "Load", - "Place": "H89 - 96, T4", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 12, - "HoleCollective": "89,90,91,92,93,94,95,96", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "3e38643c9714411e81cdacc55d0d01e4", - "uuidPlanMaster": "04508af82b2f4c7fa7cff02a47eb6afd", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H25 - 32, T12", - "Dosage": 200, - "AssistA": " 悬停(10s)", - "AssistB": " 反向吸液(10ul)", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 12, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 4, - "HoleCollective": "25,26,27,28,29,30,31,32", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 3 - }, - { - "uuid": "a85565f7dac2400398a367e3f129bdc5", - "uuidPlanMaster": "04508af82b2f4c7fa7cff02a47eb6afd", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H25 - 32, T12", - "Dosage": 200, - "AssistA": " 吹样(50ul)", - "AssistB": " 悬停(10s)", - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 12, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 4, - "HoleCollective": "25,26,27,28,29,30,31,32", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 3 - }, - { - "uuid": "9eae26ee02574b7bb100ab118eeb3393", - "uuidPlanMaster": "04508af82b2f4c7fa7cff02a47eb6afd", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H89 - 96, T4", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 12, - "HoleCollective": "89,90,91,92,93,94,95,96", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "342cb3d626eb4fa6bbfcb1636b583160", - "uuidPlanMaster": "7800873e3cd740cd8f4359424176410a", - "Axis": "Left", - "ActOn": "Load", - "Place": "H89 - 96, T4", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 12, - "HoleCollective": "89,90,91,92,93,94,95,96", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "f6e5e491eb7b4289ac1338628bb60639", - "uuidPlanMaster": "7800873e3cd740cd8f4359424176410a", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H25 - 32, T12", - "Dosage": 200, - "AssistA": " 悬停(10s)", - "AssistB": " 反向吸液(10ul)", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 12, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 4, - "HoleCollective": "25,26,27,28,29,30,31,32", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 1 - }, - { - "uuid": "b555f5175e034717ade71e312592def7", - "uuidPlanMaster": "7800873e3cd740cd8f4359424176410a", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H25 - 32, T12", - "Dosage": 200, - "AssistA": " 悬停(10s)", - "AssistB": " 吹样(10ul)", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 12, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 4, - "HoleCollective": "25,26,27,28,29,30,31,32", - "MixCount": 0, - "HeightFromBottom": 40, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 3 - }, - { - "uuid": "a844c4be7d1d46fe9b36e2a4af20decb", - "uuidPlanMaster": "7800873e3cd740cd8f4359424176410a", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H89 - 96, T4", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 12, - "HoleCollective": "89,90,91,92,93,94,95,96", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "aed00472efd94b72ab07cd1a403b7bc9", - "uuidPlanMaster": "87d4dc0846f2440a8a7e60d5072f7fdc", - "Axis": "Left", - "ActOn": "Load", - "Place": "H89 - 96, T4", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 12, - "HoleCollective": "89,90,91,92,93,94,95,96", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "532512c76d6e47a2addc6f96f7e3500d", - "uuidPlanMaster": "87d4dc0846f2440a8a7e60d5072f7fdc", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H25 - 32, T12", - "Dosage": 200, - "AssistA": " 悬停(10s)", - "AssistB": " 反向吸液(10ul)", - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 12, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 4, - "HoleCollective": "25,26,27,28,29,30,31,32", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "52c02dc2f9cd463cad6524564623d34a", - "uuidPlanMaster": "87d4dc0846f2440a8a7e60d5072f7fdc", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H25 - 32, T12", - "Dosage": 200, - "AssistA": " 吹样(0ul)", - "AssistB": " 悬停(5s)", - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 12, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 4, - "HoleCollective": "25,26,27,28,29,30,31,32", - "MixCount": 0, - "HeightFromBottom": 20, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "a51c4e73ec69481789cf66cc114aed38", - "uuidPlanMaster": "87d4dc0846f2440a8a7e60d5072f7fdc", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H89 - 96, T4", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 12, - "HoleCollective": "89,90,91,92,93,94,95,96", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "6f1955a34b654f17bce854a9e60a76bf", - "uuidPlanMaster": "bc8a054fa0af4196a0def15230034978", - "Axis": "Left", - "ActOn": "Load", - "Place": "H89 - 96, T4", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 12, - "HoleCollective": "89,90,91,92,93,94,95,96", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "9e1698dbb550475eb31190564f8c7273", - "uuidPlanMaster": "bc8a054fa0af4196a0def15230034978", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H25 - 32, T12", - "Dosage": 200, - "AssistA": " 悬停(10s)", - "AssistB": " 反向吸液(10ul)", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 12, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 4, - "HoleCollective": "25,26,27,28,29,30,31,32", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 1 - }, - { - "uuid": "63fc681abf104c4cb780c2dcb4779bf9", - "uuidPlanMaster": "bc8a054fa0af4196a0def15230034978", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H25 - 32, T12", - "Dosage": 200, - "AssistA": " 吹样(0ul)", - "AssistB": " 悬停(5s)", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 12, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 4, - "HoleCollective": "25,26,27,28,29,30,31,32", - "MixCount": 0, - "HeightFromBottom": 20, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 1 - }, - { - "uuid": "73768e7a564e493abe45dcae773b26aa", - "uuidPlanMaster": "bc8a054fa0af4196a0def15230034978", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H89 - 96, T4", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 12, - "HoleCollective": "89,90,91,92,93,94,95,96", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "fa6c7929b6954df1b64670e40001aee4", - "uuidPlanMaster": "9776ccb0c94e44a6804519ddabd4375c", - "Axis": "Left", - "ActOn": "Load", - "Place": "H89 - 96, T4", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 12, - "HoleCollective": "89,90,91,92,93,94,95,96", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "fd65382ca56347a8b418ae522ef3062f", - "uuidPlanMaster": "9776ccb0c94e44a6804519ddabd4375c", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H25 - 32, T12", - "Dosage": 200, - "AssistA": " 悬停(10s)", - "AssistB": " 反向吸液(10ul)", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 12, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 4, - "HoleCollective": "25,26,27,28,29,30,31,32", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 1 - }, - { - "uuid": "94763e200c9c4d2594e8469fe0362b5a", - "uuidPlanMaster": "9776ccb0c94e44a6804519ddabd4375c", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H25 - 32, T12", - "Dosage": 200, - "AssistA": " 吹样(0ul)", - "AssistB": " 悬停(5s)", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 12, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 4, - "HoleCollective": "25,26,27,28,29,30,31,32", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 1 - }, - { - "uuid": "60cef0b676684a528b27318eb60c2ab9", - "uuidPlanMaster": "9776ccb0c94e44a6804519ddabd4375c", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H89 - 96, T4", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 12, - "HoleCollective": "89,90,91,92,93,94,95,96", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "1120fcd221c04df59275ac86370ccc2f", - "uuidPlanMaster": "dc6da387887b496c8393d7285f78d17a", - "Axis": "Left", - "ActOn": "Load", - "Place": "H89 - 96, T4", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 12, - "HoleCollective": "89,90,91,92,93,94,95,96", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "864c5f579e4143e0ace0d76180264cd2", - "uuidPlanMaster": "dc6da387887b496c8393d7285f78d17a", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H25 - 32, T12", - "Dosage": 200, - "AssistA": " 悬停(10s)", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 12, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 4, - "HoleCollective": "25,26,27,28,29,30,31,32", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 1 - }, - { - "uuid": "d4ecc96a86334754a4b0bfb680e3866c", - "uuidPlanMaster": "dc6da387887b496c8393d7285f78d17a", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H25 - 32, T12", - "Dosage": 200, - "AssistA": " 吹样(5ul)", - "AssistB": " 悬停(5s)", - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 12, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 4, - "HoleCollective": "25,26,27,28,29,30,31,32", - "MixCount": 0, - "HeightFromBottom": 20, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "e6b3fdcd59e94d3ebd05501ca02ef83c", - "uuidPlanMaster": "dc6da387887b496c8393d7285f78d17a", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H89 - 96, T4", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 12, - "HoleCollective": "89,90,91,92,93,94,95,96", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "97217579f8e2487f8b6635e31c95d2e4", - "uuidPlanMaster": "6e961f74f401470daef898d0e04726eb", - "Axis": "Left", - "ActOn": "Load", - "Place": "H89 - 96, T4", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 12, - "HoleCollective": "89,90,91,92,93,94,95,96", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "ce48855e564f4503bb0f940f131cd9f6", - "uuidPlanMaster": "6e961f74f401470daef898d0e04726eb", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H25 - 32, T12", - "Dosage": 200, - "AssistA": " 悬停(10s)", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 12, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 4, - "HoleCollective": "25,26,27,28,29,30,31,32", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 1 - }, - { - "uuid": "f41773e36b2043e08c7478a455d4bc06", - "uuidPlanMaster": "6e961f74f401470daef898d0e04726eb", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H25 - 32, T12", - "Dosage": 200, - "AssistA": " 吹样(5ul)", - "AssistB": " 悬停(5s)", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 12, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 4, - "HoleCollective": "25,26,27,28,29,30,31,32", - "MixCount": 0, - "HeightFromBottom": 20, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 1 - }, - { - "uuid": "35e230fbfb164b428a24bb9fb70c8331", - "uuidPlanMaster": "6e961f74f401470daef898d0e04726eb", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H89 - 96, T4", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 12, - "HoleCollective": "89,90,91,92,93,94,95,96", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "b9af811d6d7e4bbb80bb166f32bcd60c", - "uuidPlanMaster": "c04eb6401d4441d98af113bb5ddb6ddd", - "Axis": "Left", - "ActOn": "DefectiveLift", - "Place": "T17", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 17, - "IsFullPage": 1, - "HoleRow": 0, - "HoleColum": 0, - "HoleCollective": "", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "2d4056db89664a80a6cca5c166b4d189", - "uuidPlanMaster": "c04eb6401d4441d98af113bb5ddb6ddd", - "Axis": "Left", - "ActOn": "PutDown", - "Place": "T6", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 6, - "IsFullPage": 1, - "HoleRow": 0, - "HoleColum": 0, - "HoleCollective": "", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "d361c3d83cb94a7791507c1c75857eeb", - "uuidPlanMaster": "c04eb6401d4441d98af113bb5ddb6ddd", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1 - 8, T4", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "86953a422225444eab11dcb5c5d75c30", - "uuidPlanMaster": "c04eb6401d4441d98af113bb5ddb6ddd", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H1 - 8, T8", - "Dosage": 1, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 8, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "fe0769f8d089461d8e40de639ba2f9d2", - "uuidPlanMaster": "c04eb6401d4441d98af113bb5ddb6ddd", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H9 - 16, T8", - "Dosage": 1, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 8, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 2, - "HoleCollective": "9,10,11,12,13,14,15,16", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "3c6434a7bc8c404685ff0678c2dcbdea", - "uuidPlanMaster": "c04eb6401d4441d98af113bb5ddb6ddd", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H1 - 8, T4", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "f6f52779bbca47f0af032be721aa3aca", - "uuidPlanMaster": "fd72228925a34653b00d8578bfbd156c", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1 - 8, T4", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "336b833ca7324c83871a0c3aa36a1594", - "uuidPlanMaster": "fd72228925a34653b00d8578bfbd156c", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H1 - 8, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "e4d55bec360841b9a2d2dbd0cad457d9", - "uuidPlanMaster": "fd72228925a34653b00d8578bfbd156c", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1 - 8, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "c343bc6a5d494b79a6cd44c4de28eccf", - "uuidPlanMaster": "fd72228925a34653b00d8578bfbd156c", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H1 - 8, T2", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "f0dde63437374e18acf2d4745f6625a2", - "uuidPlanMaster": "fd72228925a34653b00d8578bfbd156c", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1 - 8, T5", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "1942f0fac2cc40ce865bca5cd8edcfa6", - "uuidPlanMaster": "fd72228925a34653b00d8578bfbd156c", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H9 - 16, T5", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 5, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 2, - "HoleCollective": "9,10,11,12,13,14,15,16", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "c09abd09424340d8b19bead81e61ada4", - "uuidPlanMaster": "6e47614033714efebf616e56341ec2ad", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1 - 8, T1", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "0b19211aedb64b7c85bda654b6f957f3", - "uuidPlanMaster": "6e47614033714efebf616e56341ec2ad", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "T2", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "ba3f41d5977f4a1da8580ee4ba30ddaf", - "uuidPlanMaster": "6e47614033714efebf616e56341ec2ad", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1 - 8, T4", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "425e2f8ad18a4c04b17ef7fd77714a0c", - "uuidPlanMaster": "6e47614033714efebf616e56341ec2ad", - "Axis": "Left", - "ActOn": "Blending", - "Place": "T3", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 3, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 5, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "0a5ca34e7cec45aea8fed044cd4892a4", - "uuidPlanMaster": "6e47614033714efebf616e56341ec2ad", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H1 - 8, T1", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "69a7bde01be94b9f9e2fd1bf3a1b8a27", - "uuidPlanMaster": "40c12adfa4d64066bdcbbf80157f85c0", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1 - 8, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "5f140f141e3940c4be838b4229293523", - "uuidPlanMaster": "40c12adfa4d64066bdcbbf80157f85c0", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H1 - 8, T2", - "Dosage": 10, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "4be1ed66f52a4dbbb136ce0807adeabd", - "uuidPlanMaster": "40c12adfa4d64066bdcbbf80157f85c0", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H9 - 16, T2", - "Dosage": 10, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 2, - "HoleCollective": "9,10,11,12,13,14,15,16", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "2b13010ffea4475f8f717988f1b4ddf7", - "uuidPlanMaster": "40c12adfa4d64066bdcbbf80157f85c0", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H1 - 8, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "4cb93cfd2e0040e3899c97edd271728e", - "uuidPlanMaster": "d252083869bf468180e2430560af7282", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1 - 8, T1", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "4b7ae7a90e9f41f9822685499afebebb", - "uuidPlanMaster": "d252083869bf468180e2430560af7282", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H3 - 4, T2", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 2, - "HoleCollective": "3,4", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "b21ec4e992dc49dcb46fc169b6883a55", - "uuidPlanMaster": "d252083869bf468180e2430560af7282", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H9 - 16, T4", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 2, - "HoleCollective": "9,10,11,12,13,14,15,16", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "7cd841b77fed41c8a3f4670ee7f5fa61", - "uuidPlanMaster": "d252083869bf468180e2430560af7282", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T6", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 6, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "d4990b2040c74f2db6add1c75a1e6a7c", - "uuidPlanMaster": "2e42809446e54e6192f722515a872c7a", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1 - 1, T12", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 12, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "8c411d1701de4eb297096f3fa4648780", - "uuidPlanMaster": "2e42809446e54e6192f722515a872c7a", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "T13", - "Dosage": 300, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 13, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "648d0eff8aa24edcb1b19b206720f7a6", - "uuidPlanMaster": "69ce9af29c0949228cc1328e68473d3f", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1 - 1, T12", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 12, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "b1bb657f5bb04f02a06c2714d4e18337", - "uuidPlanMaster": "69ce9af29c0949228cc1328e68473d3f", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "T13", - "Dosage": 300, - "AssistA": " 悬停(60s)", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "8258661bec364eabb138dcb5577c5839", - "uuidPlanMaster": "69ce9af29c0949228cc1328e68473d3f", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "T13", - "Dosage": 300, - "AssistA": " 吹样(20ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 13, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "8b43d29553b64eccaabd2132a18cca54", - "uuidPlanMaster": "69ce9af29c0949228cc1328e68473d3f", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T15", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 15, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "e64b11a627da434d9686c154ce48bca4", - "uuidPlanMaster": "867f096308f44ad793df661d77947137", - "Axis": "Left", - "ActOn": "Load", - "Place": "H96 - 96, T12", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 12, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 12, - "HoleCollective": "96", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "bb44f19a65884709a0b70ab90db761a8", - "uuidPlanMaster": "867f096308f44ad793df661d77947137", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "T13", - "Dosage": 300, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "35e0b1e437e246cca8ca7073756362a2", - "uuidPlanMaster": "867f096308f44ad793df661d77947137", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H96 - 96, T14", - "Dosage": 300, - "AssistA": " 吹样(20ul)", - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 14, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 12, - "HoleCollective": "96", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "d6473f9422da4fcebc8676cc89ad1c2e", - "uuidPlanMaster": "867f096308f44ad793df661d77947137", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T15", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 15, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "49307cdc84cd4599a581f894174ec9e3", - "uuidPlanMaster": "23ca28ca034a498eac4ffa694e7d2cb9", - "Axis": "Left", - "ActOn": "Load", - "Place": "H96 - 96, T12", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 12, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 12, - "HoleCollective": "96", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "a2aa68d8201d429fb559421a87667db6", - "uuidPlanMaster": "23ca28ca034a498eac4ffa694e7d2cb9", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "T13", - "Dosage": 200, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "ef4903d20dc24e97a1cb5e5335837af8", - "uuidPlanMaster": "23ca28ca034a498eac4ffa694e7d2cb9", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H96 - 96, T14", - "Dosage": 200, - "AssistA": " 吹样(20ul)", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 14, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 12, - "HoleCollective": "96", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "d77a93b22eb74d14910affa1a4005be2", - "uuidPlanMaster": "23ca28ca034a498eac4ffa694e7d2cb9", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T15", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 15, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "c4736d81346341708bbe0a28544b070e", - "uuidPlanMaster": "a8c47a98d16c471595a744bdbec7087e", - "Axis": "Left", - "ActOn": "Load", - "Place": "H96 - 96, T12", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 12, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 12, - "HoleCollective": "96", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "439b80040f29428abe78573f0c9ce69a", - "uuidPlanMaster": "a8c47a98d16c471595a744bdbec7087e", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "T13", - "Dosage": 100, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "8b28f56f0f1e4e478fb427cd497111fa", - "uuidPlanMaster": "a8c47a98d16c471595a744bdbec7087e", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H96 - 96, T14", - "Dosage": 100, - "AssistA": " 吹样(20ul)", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 14, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 12, - "HoleCollective": "96", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "75027108a94f45be94930ca684af4dcc", - "uuidPlanMaster": "a8c47a98d16c471595a744bdbec7087e", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T15", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 15, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "b073e16872ba4da8bfbc42f0fd519764", - "uuidPlanMaster": "cc4035451a634c8a906ac37da305fcae", - "Axis": "Left", - "ActOn": "Load", - "Place": "H96 - 96, T12", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 12, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 12, - "HoleCollective": "96", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "f1c2da82161a4f5491afff6a086b8695", - "uuidPlanMaster": "cc4035451a634c8a906ac37da305fcae", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "T13", - "Dosage": 50, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "e3910db8f6e54ebfabae8e9aaaf8b1fd", - "uuidPlanMaster": "cc4035451a634c8a906ac37da305fcae", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H96 - 96, T14", - "Dosage": 50, - "AssistA": " 吹样(20ul)", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 14, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 12, - "HoleCollective": "96", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "0146042cec7a4dbeb3fb06ec56bb1fee", - "uuidPlanMaster": "cc4035451a634c8a906ac37da305fcae", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T15", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 15, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "327e3dd3ec46495783655c1eebe95837", - "uuidPlanMaster": "6e6ff08ac8df49c7ae877266c154d2e5", - "Axis": "Left", - "ActOn": "Load", - "Place": "H96 - 96, T12", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 12, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 12, - "HoleCollective": "96", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "c45bdde10ab9478699796ff6f6c65500", - "uuidPlanMaster": "6e6ff08ac8df49c7ae877266c154d2e5", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "T13", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "9adf59c8cea848c18a9f998b3f9ccc9d", - "uuidPlanMaster": "6e6ff08ac8df49c7ae877266c154d2e5", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H96 - 96, T14", - "Dosage": 10, - "AssistA": " 吹样(20ul)", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 14, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 12, - "HoleCollective": "96", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "c8c58e8593ff48158bc8504e3f75276e", - "uuidPlanMaster": "6e6ff08ac8df49c7ae877266c154d2e5", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T15", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 15, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "1356a3af87db436cacc008d1d746eb91", - "uuidPlanMaster": "8b794b8f78ad4d69a6a3f91b2d8574c2", - "Axis": "Left", - "ActOn": "Load", - "Place": "H96 - 96, T12", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 12, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 12, - "HoleCollective": "96", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "717d849eebb34243a4bc1f09460e4181", - "uuidPlanMaster": "8b794b8f78ad4d69a6a3f91b2d8574c2", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "T13", - "Dosage": 5, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "08ce25fe32e1416780ca669129c282c5", - "uuidPlanMaster": "8b794b8f78ad4d69a6a3f91b2d8574c2", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H96 - 96, T14", - "Dosage": 5, - "AssistA": " 吹样(20ul)", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 14, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 12, - "HoleCollective": "96", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "e43aed4373ca4ea79e9d8b85e7ae30c6", - "uuidPlanMaster": "8b794b8f78ad4d69a6a3f91b2d8574c2", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T15", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 15, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "105bf5ac87894919be1ac2aeedf49508", - "uuidPlanMaster": "78b73743917d491dbb10fe4fd7d4f308", - "Axis": "Left", - "ActOn": "Load", - "Place": "H96 - 96, T12", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 12, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 12, - "HoleCollective": "96", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "32674e6732a54553a3ce027514c5161b", - "uuidPlanMaster": "78b73743917d491dbb10fe4fd7d4f308", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "T13", - "Dosage": 3, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "d0b2fa76a2774029b3275d2dbbfc7929", - "uuidPlanMaster": "78b73743917d491dbb10fe4fd7d4f308", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H96 - 96, T14", - "Dosage": 3, - "AssistA": " 吹样(20ul)", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 14, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 12, - "HoleCollective": "96", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "de58cb74bfd040d29c06aa347e69ad9a", - "uuidPlanMaster": "78b73743917d491dbb10fe4fd7d4f308", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T15", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 15, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "c7b4fe67ab5648cba882978e7371f4e0", - "uuidPlanMaster": "83eb0b519308431ea7a16be804801d4b", - "Axis": "Right", - "ActOn": "Load", - "Place": "H1 - 1, T9", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 9, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "79f4684e4cbd4a15a0c597e112fbe697", - "uuidPlanMaster": "83eb0b519308431ea7a16be804801d4b", - "Axis": "Right", - "ActOn": "Imbibing", - "Place": "T13", - "Dosage": 10, - "AssistA": " 悬停(45s)", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "58aadbf0031e4fedaf38a35777711122", - "uuidPlanMaster": "83eb0b519308431ea7a16be804801d4b", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "T13", - "Dosage": 10, - "AssistA": " 吹样(1ul)", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "1f54f773d52443218c9b4f720f180019", - "uuidPlanMaster": "83eb0b519308431ea7a16be804801d4b", - "Axis": "Right", - "ActOn": "UnLoad", - "Place": "T15", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 15, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "36033eada00d4d528afc80613671a1b5", - "uuidPlanMaster": "5bb75f15171b4d3c815ea7bda6b3a000", - "Axis": "Right", - "ActOn": "Load", - "Place": "H1 - 1, T9", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 9, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "d498425b0b6d427bac1d1cdc56cb9540", - "uuidPlanMaster": "5bb75f15171b4d3c815ea7bda6b3a000", - "Axis": "Right", - "ActOn": "Imbibing", - "Place": "T13", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "8bdd762865824226adb5b2795d67287e", - "uuidPlanMaster": "f373b1f8440249eea71c4f93add0d38c", - "Axis": "Right", - "ActOn": "Load", - "Place": "H1 - 1, T9", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 9, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "103eb9787e5e4032a0cb69f4e54b09ef", - "uuidPlanMaster": "f373b1f8440249eea71c4f93add0d38c", - "Axis": "Right", - "ActOn": "Imbibing", - "Place": "T13", - "Dosage": 10, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 13, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "08ecc3a2973d4b5abc79960ff50c575c", - "uuidPlanMaster": "f373b1f8440249eea71c4f93add0d38c", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H96 - 96, T14", - "Dosage": 10, - "AssistA": " 吹样(1ul)", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 14, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 12, - "HoleCollective": "96", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "706d585f0e57437284857f2d4c81ba0b", - "uuidPlanMaster": "f373b1f8440249eea71c4f93add0d38c", - "Axis": "Right", - "ActOn": "UnLoad", - "Place": "T15", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 15, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "dd1a77041d0b4728b70128e2df8164a2", - "uuidPlanMaster": "8e74b779c0c14e6b8f8f81ae77db21fb", - "Axis": "Right", - "ActOn": "Load", - "Place": "H1 - 1, T9", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 9, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "405448ab8aef4c42bd2920ebce1c907a", - "uuidPlanMaster": "8e74b779c0c14e6b8f8f81ae77db21fb", - "Axis": "Right", - "ActOn": "Imbibing", - "Place": "T13", - "Dosage": 5, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "e6860877694d45f780cddcb3cf1eb19a", - "uuidPlanMaster": "8e74b779c0c14e6b8f8f81ae77db21fb", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H96 - 96, T14", - "Dosage": 5, - "AssistA": " 吹样(1ul)", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 14, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 12, - "HoleCollective": "96", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "d316751637454ea38e2628dad1c797b9", - "uuidPlanMaster": "8e74b779c0c14e6b8f8f81ae77db21fb", - "Axis": "Right", - "ActOn": "UnLoad", - "Place": "T15", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 15, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "019d6b3c20454475b4fdd93e8562d3d9", - "uuidPlanMaster": "54498151a0594ae4bd7c675b30eede45", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1 - 1, T12", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 12, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "33c85d2f4ecb45099c4495ac8987f299", - "uuidPlanMaster": "54498151a0594ae4bd7c675b30eede45", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "T13", - "Dosage": 300, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 13, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "3c291bdcde33484ba57a3956b63183c2", - "uuidPlanMaster": "54498151a0594ae4bd7c675b30eede45", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H4 - 4, T14", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 14, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 1, - "HoleCollective": "4", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "0e9b7f2d596f46c0baafe9345fbacb7a", - "uuidPlanMaster": "54498151a0594ae4bd7c675b30eede45", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H12 - 12, T14", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 14, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 2, - "HoleCollective": "12", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "1e67dbfeeecc4410a2dc444d09657e7d", - "uuidPlanMaster": "54498151a0594ae4bd7c675b30eede45", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H20 - 20, T14", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 14, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 3, - "HoleCollective": "20", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "bf3d8bed2ed441e38c40cbf8afb6247d", - "uuidPlanMaster": "54498151a0594ae4bd7c675b30eede45", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H28 - 28, T14", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 14, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 4, - "HoleCollective": "28", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "f54dc7f71d5f47a884bbce4aa5d7be59", - "uuidPlanMaster": "54498151a0594ae4bd7c675b30eede45", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H36 - 36, T14", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 14, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 5, - "HoleCollective": "36", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "e39288cf9a7f488a89afc826e62eb4d1", - "uuidPlanMaster": "54498151a0594ae4bd7c675b30eede45", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H44 - 44, T14", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 14, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 6, - "HoleCollective": "44", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "5f05452cfd1d46e0bb30e6ea6e22314a", - "uuidPlanMaster": "54498151a0594ae4bd7c675b30eede45", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H52 - 52, T14", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 14, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 7, - "HoleCollective": "52", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "b80438b457764f14b9b32395fe604b35", - "uuidPlanMaster": "54498151a0594ae4bd7c675b30eede45", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H60 - 60, T14", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 14, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 8, - "HoleCollective": "60", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "4fc42bb5f2f94f469fa7939d6efa4bc5", - "uuidPlanMaster": "54498151a0594ae4bd7c675b30eede45", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H68 - 68, T14", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 14, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 9, - "HoleCollective": "68", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "53588c71bf9a4f75a890bf1f50c47ab1", - "uuidPlanMaster": "54498151a0594ae4bd7c675b30eede45", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H76 - 76, T14", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 14, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 10, - "HoleCollective": "76", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "ee54de8f8f4945639afea677b600e4b5", - "uuidPlanMaster": "54498151a0594ae4bd7c675b30eede45", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H84 - 84, T14", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 14, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 11, - "HoleCollective": "84", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "e6d27e7a9b8a4493a01c46a63e358701", - "uuidPlanMaster": "54498151a0594ae4bd7c675b30eede45", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H92 - 92, T14", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 14, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 12, - "HoleCollective": "92", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "67b640359ac443e996a2d2ca10f2380b", - "uuidPlanMaster": "54498151a0594ae4bd7c675b30eede45", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T15", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 15, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "a653c345c8f747c9820af3523a405862", - "uuidPlanMaster": "bb1479d7151f4efba89b8a37287625dd", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1 - 1, T12", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 12, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "46a70425329e4f7ba0e5c1969706eaaa", - "uuidPlanMaster": "bb1479d7151f4efba89b8a37287625dd", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "T13", - "Dosage": 300, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 13, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "d25d2a0efa02432cb2634dc8c2879dc6", - "uuidPlanMaster": "bb1479d7151f4efba89b8a37287625dd", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H4 - 4, T14", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 14, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 1, - "HoleCollective": "4", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "0ed1c65f80324818b14c0196f542c519", - "uuidPlanMaster": "bb1479d7151f4efba89b8a37287625dd", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H12 - 12, T14", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 14, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 2, - "HoleCollective": "12", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "0b42263c4d8d49dab7701c6f51fa3671", - "uuidPlanMaster": "bb1479d7151f4efba89b8a37287625dd", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H20 - 20, T14", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 14, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 3, - "HoleCollective": "20", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "f7efe0cdd06f4caeae31b556e9bc52a0", - "uuidPlanMaster": "bb1479d7151f4efba89b8a37287625dd", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H28 - 28, T14", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 14, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 4, - "HoleCollective": "28", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "cc7dfe6afeb94e178d36024fa693d015", - "uuidPlanMaster": "bb1479d7151f4efba89b8a37287625dd", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H36 - 36, T14", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 14, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 5, - "HoleCollective": "36", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "ccc817a303bf49c78e95aed577f0bc87", - "uuidPlanMaster": "bb1479d7151f4efba89b8a37287625dd", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H44 - 44, T14", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 14, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 6, - "HoleCollective": "44", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "c43a2dcefc8e40308b0a90923c8eba94", - "uuidPlanMaster": "bb1479d7151f4efba89b8a37287625dd", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H52 - 52, T14", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 14, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 7, - "HoleCollective": "52", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "fe7f8c7ad76d4513b4d8529dd0f9189f", - "uuidPlanMaster": "bb1479d7151f4efba89b8a37287625dd", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H60 - 60, T14", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 14, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 8, - "HoleCollective": "60", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "4b26f7ca6c0940faa8799c2321209de1", - "uuidPlanMaster": "bb1479d7151f4efba89b8a37287625dd", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H68 - 68, T14", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 14, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 9, - "HoleCollective": "68", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "ec8e4682bc034a9bad33f14103549d7b", - "uuidPlanMaster": "bb1479d7151f4efba89b8a37287625dd", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H76 - 76, T14", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 14, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 10, - "HoleCollective": "76", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "53f1243e88814a589ffb27df6d00c9e0", - "uuidPlanMaster": "bb1479d7151f4efba89b8a37287625dd", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H84 - 84, T14", - "Dosage": 25, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 14, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 11, - "HoleCollective": "84", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "c28c8f1f935d4d88a56839ba0d7b4aa6", - "uuidPlanMaster": "bb1479d7151f4efba89b8a37287625dd", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H92 - 92, T14", - "Dosage": 25, - "AssistA": " 吹样(20ul)", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 14, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 12, - "HoleCollective": "92", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "8485295140814a98be3355367ac2a4ee", - "uuidPlanMaster": "bb1479d7151f4efba89b8a37287625dd", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T15", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 15, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "c418f1c916fd4a6794d74206bbcdd5e5", - "uuidPlanMaster": "dcb4160131b7458a827bc583f3aed54d", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1 - 1, T11", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 11, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "df84489a69c8402b9c9514ef8d39ba3d", - "uuidPlanMaster": "dcb4160131b7458a827bc583f3aed54d", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H1 - 1, T1", - "Dosage": 30, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "0bbe4d62bafb45229a770fe9f13a8524", - "uuidPlanMaster": "dcb4160131b7458a827bc583f3aed54d", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1 - 1, T6", - "Dosage": 30, - "AssistA": " 吹样(20ul)", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 6, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "963a3db5cf57485891423d64c9f137cb", - "uuidPlanMaster": "dcb4160131b7458a827bc583f3aed54d", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H2 - 2, T1", - "Dosage": 30, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 1, - "HoleCollective": "2", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "fcb6275e890b43369d9b9a02a3dc5d1b", - "uuidPlanMaster": "dcb4160131b7458a827bc583f3aed54d", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1 - 1, T6", - "Dosage": 30, - "AssistA": " 吹样(20ul)", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 6, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "e33fbfd9cf474b1dbbe59fed6544517e", - "uuidPlanMaster": "dcb4160131b7458a827bc583f3aed54d", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H3 - 3, T1", - "Dosage": 30, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 1, - "HoleCollective": "3", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "5f6d91884e824b4f95738dbb36dd3520", - "uuidPlanMaster": "dcb4160131b7458a827bc583f3aed54d", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1 - 1, T6", - "Dosage": 30, - "AssistA": " 吹样(20ul)", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 6, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "16aad6954bef449babeaa6d1ada4248c", - "uuidPlanMaster": "dcb4160131b7458a827bc583f3aed54d", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H4 - 4, T1", - "Dosage": 30, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 1, - "HoleCollective": "4", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "55057f25ed954431938e7296be24e26b", - "uuidPlanMaster": "dcb4160131b7458a827bc583f3aed54d", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1 - 1, T6", - "Dosage": 30, - "AssistA": " 吹样(20ul)", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 6, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "53c7fa43bbd44549853ab6eb8d096b12", - "uuidPlanMaster": "dcb4160131b7458a827bc583f3aed54d", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H5 - 5, T1", - "Dosage": 30, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 1, - "HoleCollective": "5", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "8c03318d403c46378e719b7da2c99ea5", - "uuidPlanMaster": "dcb4160131b7458a827bc583f3aed54d", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1 - 1, T6", - "Dosage": 30, - "AssistA": " 吹样(20ul)", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 6, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "0e033c821589408a9f65856da619f32f", - "uuidPlanMaster": "dcb4160131b7458a827bc583f3aed54d", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H6 - 6, T1", - "Dosage": 30, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 6, - "HoleColum": 1, - "HoleCollective": "6", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "a7dc22f458d0485fb1bdf242bdf2ac76", - "uuidPlanMaster": "dcb4160131b7458a827bc583f3aed54d", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1 - 1, T6", - "Dosage": 30, - "AssistA": " 吹样(20ul)", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 6, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "de8c1aaf008f432e8f020ad98bf736a6", - "uuidPlanMaster": "dcb4160131b7458a827bc583f3aed54d", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H7 - 7, T1", - "Dosage": 30, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 7, - "HoleColum": 1, - "HoleCollective": "7", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "b73e69e68e3046d5aef20a77e7a812ac", - "uuidPlanMaster": "dcb4160131b7458a827bc583f3aed54d", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1 - 1, T6", - "Dosage": 30, - "AssistA": " 吹样(20ul)", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 6, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "0b92c5a4ca61456eb52cc48e7687b274", - "uuidPlanMaster": "dcb4160131b7458a827bc583f3aed54d", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H8 - 8, T1", - "Dosage": 30, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 1, - "HoleCollective": "8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "4c05d68bcaa34945a393cb118cf22a33", - "uuidPlanMaster": "dcb4160131b7458a827bc583f3aed54d", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1 - 1, T6", - "Dosage": 30, - "AssistA": " 吹样(20ul)", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 6, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "97ce56af435c466d84e933b754328bbc", - "uuidPlanMaster": "dcb4160131b7458a827bc583f3aed54d", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T12", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 12, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "a1da79157a7a4d15bd707d396156ef5f", - "uuidPlanMaster": "dcb4160131b7458a827bc583f3aed54d", - "Axis": "Left", - "ActOn": "Load", - "Place": "H2 - 2, T11", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 11, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 1, - "HoleCollective": "2", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "b8b6c5e0608e4543b4acbe030b884ab3", - "uuidPlanMaster": "dcb4160131b7458a827bc583f3aed54d", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H9 - 9, T1", - "Dosage": 30, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 2, - "HoleCollective": "9", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "305ae0e78e444be7b5fc4e54d6ae0bcf", - "uuidPlanMaster": "dcb4160131b7458a827bc583f3aed54d", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H2 - 2, T6", - "Dosage": 30, - "AssistA": " 吹样(20ul)", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 6, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 1, - "HoleCollective": "2", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "f242d01c19f0437484be00c38793bd5a", - "uuidPlanMaster": "dcb4160131b7458a827bc583f3aed54d", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H10 - 10, T1", - "Dosage": 30, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 2, - "HoleCollective": "10", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "aec997a52afb42d9a27ba05b5bdeacc7", - "uuidPlanMaster": "dcb4160131b7458a827bc583f3aed54d", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H2 - 2, T6", - "Dosage": 30, - "AssistA": " 吹样(20ul)", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 6, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 1, - "HoleCollective": "2", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "32691ea8990141e1b4275ae6e00779d3", - "uuidPlanMaster": "dcb4160131b7458a827bc583f3aed54d", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H11 - 11, T1", - "Dosage": 30, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 2, - "HoleCollective": "11", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "678cc4637019416099c83ddecbfb9cb6", - "uuidPlanMaster": "dcb4160131b7458a827bc583f3aed54d", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H2 - 2, T6", - "Dosage": 30, - "AssistA": " 吹样(20ul)", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 6, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 1, - "HoleCollective": "2", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "1f8e51ef5de84ec99e77a7222a4f4c3f", - "uuidPlanMaster": "dcb4160131b7458a827bc583f3aed54d", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H12 - 12, T1", - "Dosage": 30, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 2, - "HoleCollective": "12", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "6c0976fa3148427698f4b1d659edd707", - "uuidPlanMaster": "dcb4160131b7458a827bc583f3aed54d", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H2 - 2, T6", - "Dosage": 30, - "AssistA": " 吹样(20ul)", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 6, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 1, - "HoleCollective": "2", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "2a70358797ff48beb54118f7dd27058d", - "uuidPlanMaster": "dcb4160131b7458a827bc583f3aed54d", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H13 - 13, T1", - "Dosage": 30, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 2, - "HoleCollective": "13", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "323bd4208ace47cab83c2586430f247e", - "uuidPlanMaster": "dcb4160131b7458a827bc583f3aed54d", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H2 - 2, T6", - "Dosage": 30, - "AssistA": " 吹样(20ul)", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 6, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 1, - "HoleCollective": "2", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "8573b89bd7e24ee791378181c1eac663", - "uuidPlanMaster": "dcb4160131b7458a827bc583f3aed54d", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H14 - 14, T1", - "Dosage": 30, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 6, - "HoleColum": 2, - "HoleCollective": "14", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "a3802c012f7a4e2f9deefa6d978b30c4", - "uuidPlanMaster": "dcb4160131b7458a827bc583f3aed54d", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H2 - 2, T6", - "Dosage": 30, - "AssistA": " 吹样(20ul)", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 6, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 1, - "HoleCollective": "2", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "d1fd55c614b7460f883c0f10fef29a6f", - "uuidPlanMaster": "dcb4160131b7458a827bc583f3aed54d", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H15 - 15, T1", - "Dosage": 30, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 7, - "HoleColum": 2, - "HoleCollective": "15", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "dfa7a4c1548c4599b7c2ba4d8bd30b4b", - "uuidPlanMaster": "dcb4160131b7458a827bc583f3aed54d", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H2 - 2, T6", - "Dosage": 30, - "AssistA": " 吹样(20ul)", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 6, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 1, - "HoleCollective": "2", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "4c50a6aa88214db2bcad09439245294b", - "uuidPlanMaster": "dcb4160131b7458a827bc583f3aed54d", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H16 - 16, T1", - "Dosage": 30, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 2, - "HoleCollective": "16", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "e5b8a19c644b4704979a8f61c467d77f", - "uuidPlanMaster": "dcb4160131b7458a827bc583f3aed54d", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H2 - 2, T6", - "Dosage": 30, - "AssistA": " 吹样(20ul)", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 6, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 1, - "HoleCollective": "2", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "67a798dce4a64791802db0afae21822d", - "uuidPlanMaster": "dcb4160131b7458a827bc583f3aed54d", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T12", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 12, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "cce8294be7df466ba1c1c3f67b0c391e", - "uuidPlanMaster": "dcb4160131b7458a827bc583f3aed54d", - "Axis": "Left", - "ActOn": "Load", - "Place": "H3 - 3, T11", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 11, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 1, - "HoleCollective": "3", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "8f825a017b4b4351876e98ef5f64ad69", - "uuidPlanMaster": "dcb4160131b7458a827bc583f3aed54d", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H17 - 17, T1", - "Dosage": 30, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "17", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "877bb32dec3643018d40506a4b94879c", - "uuidPlanMaster": "dcb4160131b7458a827bc583f3aed54d", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H3 - 3, T6", - "Dosage": 30, - "AssistA": " 吹样(20ul)", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 6, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 1, - "HoleCollective": "3", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "3717ec57b43e4a999c83bd87b36ec462", - "uuidPlanMaster": "dcb4160131b7458a827bc583f3aed54d", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H18 - 18, T1", - "Dosage": 30, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 3, - "HoleCollective": "18", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "646194f8ec0e49db9e4e0a3e3a0db1c1", - "uuidPlanMaster": "dcb4160131b7458a827bc583f3aed54d", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H3 - 3, T6", - "Dosage": 30, - "AssistA": " 吹样(20ul)", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 6, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 1, - "HoleCollective": "3", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "f49227a41fbc4acab8440baee23e6e58", - "uuidPlanMaster": "dcb4160131b7458a827bc583f3aed54d", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H19 - 19, T1", - "Dosage": 30, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 3, - "HoleCollective": "19", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "cb03d064bbc04f72a12be53562f1403d", - "uuidPlanMaster": "dcb4160131b7458a827bc583f3aed54d", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H3 - 3, T6", - "Dosage": 30, - "AssistA": " 吹样(20ul)", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 6, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 1, - "HoleCollective": "3", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "9961efefe1c74c158f14e7e9acc9f534", - "uuidPlanMaster": "dcb4160131b7458a827bc583f3aed54d", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H20 - 20, T1", - "Dosage": 30, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 3, - "HoleCollective": "20", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "f1c06fe807754eb08d9d69d92115db0d", - "uuidPlanMaster": "dcb4160131b7458a827bc583f3aed54d", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H3 - 3, T6", - "Dosage": 30, - "AssistA": " 吹样(20ul)", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 6, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 1, - "HoleCollective": "3", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "748a059fe619425ba8742742f851bdc3", - "uuidPlanMaster": "dcb4160131b7458a827bc583f3aed54d", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H21 - 21, T1", - "Dosage": 30, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 3, - "HoleCollective": "21", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "69766bf14835471bbc26f16ffc715fa5", - "uuidPlanMaster": "dcb4160131b7458a827bc583f3aed54d", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H3 - 3, T6", - "Dosage": 30, - "AssistA": " 吹样(20ul)", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 6, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 1, - "HoleCollective": "3", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "78740aa3bf384f14983f7829ba602dfc", - "uuidPlanMaster": "dcb4160131b7458a827bc583f3aed54d", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H22 - 22, T1", - "Dosage": 30, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 6, - "HoleColum": 3, - "HoleCollective": "22", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "28ac664b9a3741ed93eb4105813a0c63", - "uuidPlanMaster": "dcb4160131b7458a827bc583f3aed54d", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H3 - 3, T6", - "Dosage": 30, - "AssistA": " 吹样(20ul)", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 6, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 1, - "HoleCollective": "3", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "b66acc401e8a4e3691f45a935d22eb22", - "uuidPlanMaster": "dcb4160131b7458a827bc583f3aed54d", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H23 - 23, T1", - "Dosage": 30, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 7, - "HoleColum": 3, - "HoleCollective": "23", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "64419463d57e4da184e9c626184ef99f", - "uuidPlanMaster": "dcb4160131b7458a827bc583f3aed54d", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H3 - 3, T6", - "Dosage": 30, - "AssistA": " 吹样(20ul)", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 6, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 1, - "HoleCollective": "3", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "0c9b2072760149ea8f389351ed8b0ba5", - "uuidPlanMaster": "dcb4160131b7458a827bc583f3aed54d", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H24 - 24, T1", - "Dosage": 30, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 3, - "HoleCollective": "24", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "c0668923098f473b93ea88c87064e1d5", - "uuidPlanMaster": "dcb4160131b7458a827bc583f3aed54d", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H3 - 3, T6", - "Dosage": 30, - "AssistA": " 吹样(20ul)", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 6, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 1, - "HoleCollective": "3", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "0c3cf4a2159f470990b0a81e0f382097", - "uuidPlanMaster": "dcb4160131b7458a827bc583f3aed54d", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T12", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 12, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "b13d20dbd9b44ef08cda4d1a3a93a72e", - "uuidPlanMaster": "dcb4160131b7458a827bc583f3aed54d", - "Axis": "Left", - "ActOn": "Load", - "Place": "H4 - 4, T11", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 11, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 1, - "HoleCollective": "4", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "db4b6e15a7464487a643d02862380f0f", - "uuidPlanMaster": "dcb4160131b7458a827bc583f3aed54d", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H25 - 25, T1", - "Dosage": 30, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 4, - "HoleCollective": "25", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "fd19dfe7b9c249e7bf28d3c1509a9dc6", - "uuidPlanMaster": "dcb4160131b7458a827bc583f3aed54d", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H4 - 4, T6", - "Dosage": 30, - "AssistA": " 吹样(20ul)", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 6, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 1, - "HoleCollective": "4", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "3f5a6e0a61ee4ddabc7a101d233d9a5d", - "uuidPlanMaster": "dcb4160131b7458a827bc583f3aed54d", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H26 - 26, T1", - "Dosage": 30, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 4, - "HoleCollective": "26", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "c291771ee42344269a468da4fa40ef79", - "uuidPlanMaster": "dcb4160131b7458a827bc583f3aed54d", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H4 - 4, T6", - "Dosage": 30, - "AssistA": " 吹样(20ul)", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 6, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 1, - "HoleCollective": "4", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "2f1a586532274fe3b6f7bb012b91d712", - "uuidPlanMaster": "dcb4160131b7458a827bc583f3aed54d", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H27 - 27, T1", - "Dosage": 30, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 4, - "HoleCollective": "27", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "bd416c0503444144990a8adcc45caf9e", - "uuidPlanMaster": "dcb4160131b7458a827bc583f3aed54d", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H4 - 4, T6", - "Dosage": 30, - "AssistA": " 吹样(20ul)", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 6, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 1, - "HoleCollective": "4", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "64c4d7b8fec742e2bef4fcb1c433bbf9", - "uuidPlanMaster": "dcb4160131b7458a827bc583f3aed54d", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H28 - 28, T1", - "Dosage": 30, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 4, - "HoleCollective": "28", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "da0cd7c2da504279ad869185429aafca", - "uuidPlanMaster": "dcb4160131b7458a827bc583f3aed54d", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H4 - 4, T6", - "Dosage": 30, - "AssistA": " 吹样(20ul)", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 6, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 1, - "HoleCollective": "4", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "4a6d2531728c4a969bdd3978cb08be6b", - "uuidPlanMaster": "dcb4160131b7458a827bc583f3aed54d", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H29 - 29, T1", - "Dosage": 30, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 4, - "HoleCollective": "29", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "07a7430a6d3842d3a6ff482224a4c393", - "uuidPlanMaster": "dcb4160131b7458a827bc583f3aed54d", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H4 - 4, T6", - "Dosage": 30, - "AssistA": " 吹样(20ul)", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 6, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 1, - "HoleCollective": "4", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "44bfba9269db4272bb908f4d6e302565", - "uuidPlanMaster": "dcb4160131b7458a827bc583f3aed54d", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H30 - 30, T1", - "Dosage": 30, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 6, - "HoleColum": 4, - "HoleCollective": "30", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "927c906be7584a00ae7bd8b53b9a12f5", - "uuidPlanMaster": "dcb4160131b7458a827bc583f3aed54d", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H4 - 4, T6", - "Dosage": 30, - "AssistA": " 吹样(20ul)", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 6, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 1, - "HoleCollective": "4", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "fc6c49cfc21848748e6e321ebad5809c", - "uuidPlanMaster": "dcb4160131b7458a827bc583f3aed54d", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H31 - 31, T1", - "Dosage": 30, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 7, - "HoleColum": 4, - "HoleCollective": "31", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "ac3a9c9c871e489a9d344cb2f90e0b9e", - "uuidPlanMaster": "dcb4160131b7458a827bc583f3aed54d", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H4 - 4, T6", - "Dosage": 30, - "AssistA": " 吹样(20ul)", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 6, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 1, - "HoleCollective": "4", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "e425f5b64fce4d369f704480d851b029", - "uuidPlanMaster": "dcb4160131b7458a827bc583f3aed54d", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H32 - 32, T1", - "Dosage": 30, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 4, - "HoleCollective": "32", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "7f8a8be034cd4f4ea9d15c9dad3651fa", - "uuidPlanMaster": "dcb4160131b7458a827bc583f3aed54d", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H4 - 4, T6", - "Dosage": 30, - "AssistA": " 吹样(20ul)", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 6, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 1, - "HoleCollective": "4", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "3b98f4d40bde4a12b48a49b8d32fb6c1", - "uuidPlanMaster": "dcb4160131b7458a827bc583f3aed54d", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T12", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 12, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "2599f087d5ad4eb6b5a74c6b1c125c13", - "uuidPlanMaster": "dcb4160131b7458a827bc583f3aed54d", - "Axis": "Left", - "ActOn": "Load", - "Place": "H5 - 5, T11", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 11, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 1, - "HoleCollective": "5", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "0c87b7bb057145d3968a158f3e0bdd02", - "uuidPlanMaster": "dcb4160131b7458a827bc583f3aed54d", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H33 - 33, T1", - "Dosage": 30, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 5, - "HoleCollective": "33", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "35ec614dcc544c0c8f2c9b92f5343e10", - "uuidPlanMaster": "dcb4160131b7458a827bc583f3aed54d", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H5 - 5, T6", - "Dosage": 30, - "AssistA": " 吹样(20ul)", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 6, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 1, - "HoleCollective": "5", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "b02b43c9b79d4c95a449a2d1c9995acc", - "uuidPlanMaster": "dcb4160131b7458a827bc583f3aed54d", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H34 - 34, T1", - "Dosage": 30, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 5, - "HoleCollective": "34", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "2506844d73f240559b30843f44f3eb3a", - "uuidPlanMaster": "dcb4160131b7458a827bc583f3aed54d", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H5 - 5, T6", - "Dosage": 30, - "AssistA": " 吹样(20ul)", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 6, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 1, - "HoleCollective": "5", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "e16470e1802f45eab4268da96586a058", - "uuidPlanMaster": "dcb4160131b7458a827bc583f3aed54d", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H35 - 35, T1", - "Dosage": 30, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 5, - "HoleCollective": "35", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "b0632932b73b4be18d0a166a30506bdb", - "uuidPlanMaster": "dcb4160131b7458a827bc583f3aed54d", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H5 - 5, T6", - "Dosage": 30, - "AssistA": " 吹样(20ul)", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 6, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 1, - "HoleCollective": "5", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "b4d814e460af4a6b9d5e0dd15d5a4afa", - "uuidPlanMaster": "dcb4160131b7458a827bc583f3aed54d", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H36 - 36, T1", - "Dosage": 30, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 5, - "HoleCollective": "36", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "29d0df10fc21407da1a1838d5c55bb6f", - "uuidPlanMaster": "dcb4160131b7458a827bc583f3aed54d", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H5 - 5, T6", - "Dosage": 30, - "AssistA": " 吹样(20ul)", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 6, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 1, - "HoleCollective": "5", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "95fc6138113e428aa66b50c99ae158f0", - "uuidPlanMaster": "dcb4160131b7458a827bc583f3aed54d", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H37 - 37, T1", - "Dosage": 30, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 5, - "HoleCollective": "37", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "4761d98ef5ce490aa088d20b46c41b51", - "uuidPlanMaster": "dcb4160131b7458a827bc583f3aed54d", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H5 - 5, T6", - "Dosage": 30, - "AssistA": " 吹样(20ul)", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 6, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 1, - "HoleCollective": "5", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "b6c7fa5750414c4aae147917147c8e8d", - "uuidPlanMaster": "dcb4160131b7458a827bc583f3aed54d", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H38 - 38, T1", - "Dosage": 30, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 6, - "HoleColum": 5, - "HoleCollective": "38", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "089b0cadcbcf4822b48f3daa85417eac", - "uuidPlanMaster": "dcb4160131b7458a827bc583f3aed54d", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H5 - 5, T6", - "Dosage": 30, - "AssistA": " 吹样(20ul)", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 6, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 1, - "HoleCollective": "5", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "c3d108a3af6d4e85824b4f119e2d7de7", - "uuidPlanMaster": "dcb4160131b7458a827bc583f3aed54d", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H39 - 39, T1", - "Dosage": 30, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 7, - "HoleColum": 5, - "HoleCollective": "39", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "20d9060f24f2413ca6d2d3a2ae31177f", - "uuidPlanMaster": "dcb4160131b7458a827bc583f3aed54d", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H5 - 5, T6", - "Dosage": 30, - "AssistA": " 吹样(20ul)", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 6, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 1, - "HoleCollective": "5", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "099c207a5f5b4fc4a9e41dc91ac60d20", - "uuidPlanMaster": "dcb4160131b7458a827bc583f3aed54d", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H40 - 40, T1", - "Dosage": 30, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 5, - "HoleCollective": "40", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "1fa004a758d74e7eb6f3b74a7a83cce5", - "uuidPlanMaster": "dcb4160131b7458a827bc583f3aed54d", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H5 - 5, T6", - "Dosage": 30, - "AssistA": " 吹样(20ul)", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 6, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 1, - "HoleCollective": "5", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "be505d99ced0462a89d8742a4535cd64", - "uuidPlanMaster": "dcb4160131b7458a827bc583f3aed54d", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T12", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 12, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "9c76872a66d142999a57936eda17bdff", - "uuidPlanMaster": "dcb4160131b7458a827bc583f3aed54d", - "Axis": "Left", - "ActOn": "Load", - "Place": "H6 - 6, T11", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 11, - "IsFullPage": 0, - "HoleRow": 6, - "HoleColum": 1, - "HoleCollective": "6", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "221cf3e71cc04f5880540bd6ddecad61", - "uuidPlanMaster": "dcb4160131b7458a827bc583f3aed54d", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H41 - 41, T1", - "Dosage": 30, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 6, - "HoleCollective": "41", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "3bef264ea0384a32a5cfed089c975b8f", - "uuidPlanMaster": "dcb4160131b7458a827bc583f3aed54d", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H6 - 6, T6", - "Dosage": 30, - "AssistA": " 吹样(20ul)", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 6, - "IsFullPage": 0, - "HoleRow": 6, - "HoleColum": 1, - "HoleCollective": "6", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "8da6c06de2b64f67b7a01469bf73cd9c", - "uuidPlanMaster": "dcb4160131b7458a827bc583f3aed54d", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H42 - 42, T1", - "Dosage": 30, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 6, - "HoleCollective": "42", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "c8e7c2b75c5342d09ad3688086b6c060", - "uuidPlanMaster": "dcb4160131b7458a827bc583f3aed54d", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H6 - 6, T6", - "Dosage": 30, - "AssistA": " 吹样(20ul)", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 6, - "IsFullPage": 0, - "HoleRow": 6, - "HoleColum": 1, - "HoleCollective": "6", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "193b8d61de1c4d30a813a0262dc30818", - "uuidPlanMaster": "dcb4160131b7458a827bc583f3aed54d", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H43 - 43, T1", - "Dosage": 30, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 6, - "HoleCollective": "43", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "7263a22dd099487d9f485cdfac0abbd3", - "uuidPlanMaster": "dcb4160131b7458a827bc583f3aed54d", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H6 - 6, T6", - "Dosage": 30, - "AssistA": " 吹样(20ul)", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 6, - "IsFullPage": 0, - "HoleRow": 6, - "HoleColum": 1, - "HoleCollective": "6", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "e63f84c20ad0429693b930c9742fb847", - "uuidPlanMaster": "dcb4160131b7458a827bc583f3aed54d", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H44 - 44, T1", - "Dosage": 30, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 6, - "HoleCollective": "44", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "35873293f73b488186a1cdff559d07c8", - "uuidPlanMaster": "dcb4160131b7458a827bc583f3aed54d", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H6 - 6, T6", - "Dosage": 30, - "AssistA": " 吹样(20ul)", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 6, - "IsFullPage": 0, - "HoleRow": 6, - "HoleColum": 1, - "HoleCollective": "6", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "d99b0147926140aca609228751b24913", - "uuidPlanMaster": "dcb4160131b7458a827bc583f3aed54d", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H45 - 45, T1", - "Dosage": 30, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 6, - "HoleCollective": "45", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "a7d4259ddf394128a6eea1cb631af98e", - "uuidPlanMaster": "dcb4160131b7458a827bc583f3aed54d", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H6 - 6, T6", - "Dosage": 30, - "AssistA": " 吹样(20ul)", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 6, - "IsFullPage": 0, - "HoleRow": 6, - "HoleColum": 1, - "HoleCollective": "6", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "9acc669a283a48b6b250d347d984149e", - "uuidPlanMaster": "dcb4160131b7458a827bc583f3aed54d", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H46 - 46, T1", - "Dosage": 30, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 6, - "HoleColum": 6, - "HoleCollective": "46", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "8dda9666812b48a8a93003e0a046f1e2", - "uuidPlanMaster": "dcb4160131b7458a827bc583f3aed54d", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H6 - 6, T6", - "Dosage": 30, - "AssistA": " 吹样(20ul)", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 6, - "IsFullPage": 0, - "HoleRow": 6, - "HoleColum": 1, - "HoleCollective": "6", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "a1b314fc047249fbbb2aaf2c92431fb6", - "uuidPlanMaster": "dcb4160131b7458a827bc583f3aed54d", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H47 - 47, T1", - "Dosage": 30, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 7, - "HoleColum": 6, - "HoleCollective": "47", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "c9ac9e36f47e471783115c9860fae9e3", - "uuidPlanMaster": "dcb4160131b7458a827bc583f3aed54d", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H6 - 6, T6", - "Dosage": 30, - "AssistA": " 吹样(20ul)", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 6, - "IsFullPage": 0, - "HoleRow": 6, - "HoleColum": 1, - "HoleCollective": "6", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "8578b74fe585410bbe8b6741d73f3bab", - "uuidPlanMaster": "dcb4160131b7458a827bc583f3aed54d", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H48 - 48, T1", - "Dosage": 30, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 6, - "HoleCollective": "48", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "64a57fc5535a442bbe166f10785d316a", - "uuidPlanMaster": "dcb4160131b7458a827bc583f3aed54d", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H6 - 6, T6", - "Dosage": 30, - "AssistA": " 吹样(20ul)", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 6, - "IsFullPage": 0, - "HoleRow": 6, - "HoleColum": 1, - "HoleCollective": "6", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "ecb902276e8f46a889ff7e8869c2da73", - "uuidPlanMaster": "dcb4160131b7458a827bc583f3aed54d", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T12", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 12, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "d604bcfcc7db488f8df153dfad529bd5", - "uuidPlanMaster": "dcb4160131b7458a827bc583f3aed54d", - "Axis": "Left", - "ActOn": "Load", - "Place": "H7 - 7, T11", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 11, - "IsFullPage": 0, - "HoleRow": 7, - "HoleColum": 1, - "HoleCollective": "7", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "63e7799785b14a23a5a610fd5b29b312", - "uuidPlanMaster": "dcb4160131b7458a827bc583f3aed54d", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H49 - 49, T1", - "Dosage": 30, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 7, - "HoleCollective": "49", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "1989ecde84364b3191a33451b27f7da6", - "uuidPlanMaster": "dcb4160131b7458a827bc583f3aed54d", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H7 - 7, T6", - "Dosage": 30, - "AssistA": " 吹样(20ul)", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 6, - "IsFullPage": 0, - "HoleRow": 7, - "HoleColum": 1, - "HoleCollective": "7", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "9ee2e1e7b2f04bfea621c96f4ec6cbfa", - "uuidPlanMaster": "dcb4160131b7458a827bc583f3aed54d", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H50 - 50, T1", - "Dosage": 30, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 7, - "HoleCollective": "50", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "c70c3bd651bf42f9930165335e27dd5c", - "uuidPlanMaster": "dcb4160131b7458a827bc583f3aed54d", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H7 - 7, T6", - "Dosage": 30, - "AssistA": " 吹样(20ul)", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 6, - "IsFullPage": 0, - "HoleRow": 7, - "HoleColum": 1, - "HoleCollective": "7", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "083601beb7814bc999f772ea93f34d16", - "uuidPlanMaster": "dcb4160131b7458a827bc583f3aed54d", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H51 - 51, T1", - "Dosage": 30, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 7, - "HoleCollective": "51", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "f7fcab85e491447ab3a4f8bc5c0da3bd", - "uuidPlanMaster": "dcb4160131b7458a827bc583f3aed54d", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H7 - 7, T6", - "Dosage": 30, - "AssistA": " 吹样(20ul)", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 6, - "IsFullPage": 0, - "HoleRow": 7, - "HoleColum": 1, - "HoleCollective": "7", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "931e3e88b1c34962a413807d5463bd57", - "uuidPlanMaster": "dcb4160131b7458a827bc583f3aed54d", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H52 - 52, T1", - "Dosage": 30, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 7, - "HoleCollective": "52", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "36b6123f5aa643efb806bb630a7c44a8", - "uuidPlanMaster": "dcb4160131b7458a827bc583f3aed54d", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H7 - 7, T6", - "Dosage": 30, - "AssistA": " 吹样(20ul)", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 6, - "IsFullPage": 0, - "HoleRow": 7, - "HoleColum": 1, - "HoleCollective": "7", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "fa92f372d8e04004b9458922efe872dc", - "uuidPlanMaster": "dcb4160131b7458a827bc583f3aed54d", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H53 - 53, T1", - "Dosage": 30, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 7, - "HoleCollective": "53", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "d862294991f641a8950e93f9c69b645a", - "uuidPlanMaster": "dcb4160131b7458a827bc583f3aed54d", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H7 - 7, T6", - "Dosage": 30, - "AssistA": " 吹样(20ul)", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 6, - "IsFullPage": 0, - "HoleRow": 7, - "HoleColum": 1, - "HoleCollective": "7", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "4bfcde3ecd7c4a64b90fc654273ce3a5", - "uuidPlanMaster": "dcb4160131b7458a827bc583f3aed54d", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H54 - 54, T1", - "Dosage": 30, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 6, - "HoleColum": 7, - "HoleCollective": "54", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "7ed7f16c9fa6440fabf2ab6c93a14bd4", - "uuidPlanMaster": "dcb4160131b7458a827bc583f3aed54d", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H7 - 7, T6", - "Dosage": 30, - "AssistA": " 吹样(20ul)", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 6, - "IsFullPage": 0, - "HoleRow": 7, - "HoleColum": 1, - "HoleCollective": "7", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "0c885784ad7745dc826422b041b55668", - "uuidPlanMaster": "dcb4160131b7458a827bc583f3aed54d", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H55 - 55, T1", - "Dosage": 30, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 7, - "HoleColum": 7, - "HoleCollective": "55", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "82bb7c9a663e422bbf0021b7fb5e5d6c", - "uuidPlanMaster": "dcb4160131b7458a827bc583f3aed54d", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H7 - 7, T6", - "Dosage": 30, - "AssistA": " 吹样(20ul)", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 6, - "IsFullPage": 0, - "HoleRow": 7, - "HoleColum": 1, - "HoleCollective": "7", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "1a7d76a38d1146ae9a18184c277c7774", - "uuidPlanMaster": "dcb4160131b7458a827bc583f3aed54d", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H56 - 56, T1", - "Dosage": 30, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 7, - "HoleCollective": "56", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "7345ef8552df44c69b30f83a6c601fac", - "uuidPlanMaster": "dcb4160131b7458a827bc583f3aed54d", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H7 - 7, T6", - "Dosage": 30, - "AssistA": " 吹样(20ul)", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 6, - "IsFullPage": 0, - "HoleRow": 7, - "HoleColum": 1, - "HoleCollective": "7", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "a6a4db7348dd47b6bfbf82fcf1cba5f0", - "uuidPlanMaster": "dcb4160131b7458a827bc583f3aed54d", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T12", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 12, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "eeca44705ef94a73af83d96cb6752433", - "uuidPlanMaster": "dcb4160131b7458a827bc583f3aed54d", - "Axis": "Left", - "ActOn": "Load", - "Place": "H8 - 8, T11", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 11, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 1, - "HoleCollective": "8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "04c6232f336848508964fea030b450a4", - "uuidPlanMaster": "dcb4160131b7458a827bc583f3aed54d", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H57 - 57, T1", - "Dosage": 30, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 8, - "HoleCollective": "57", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "bd26e993ed3f44ccb5c6d5bacca4032f", - "uuidPlanMaster": "dcb4160131b7458a827bc583f3aed54d", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H8 - 8, T6", - "Dosage": 30, - "AssistA": " 吹样(20ul)", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 6, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 1, - "HoleCollective": "8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "66c6d869bff646d59262c5cb171cc9c5", - "uuidPlanMaster": "dcb4160131b7458a827bc583f3aed54d", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H58 - 58, T1", - "Dosage": 30, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 8, - "HoleCollective": "58", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "05a7786b37f6451f956bc6422ffe7e20", - "uuidPlanMaster": "dcb4160131b7458a827bc583f3aed54d", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H8 - 8, T6", - "Dosage": 30, - "AssistA": " 吹样(20ul)", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 6, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 1, - "HoleCollective": "8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "ea5fd0fadd9c403c9a974d1d37804e6c", - "uuidPlanMaster": "dcb4160131b7458a827bc583f3aed54d", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H59 - 59, T1", - "Dosage": 30, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 8, - "HoleCollective": "59", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "295230a8cbad47c0b2e8b34cbb814c28", - "uuidPlanMaster": "dcb4160131b7458a827bc583f3aed54d", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H8 - 8, T6", - "Dosage": 30, - "AssistA": " 吹样(20ul)", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 6, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 1, - "HoleCollective": "8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "bdfc84703a444685949d485f12f10075", - "uuidPlanMaster": "dcb4160131b7458a827bc583f3aed54d", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H60 - 60, T1", - "Dosage": 30, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 8, - "HoleCollective": "60", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "371d81fdf4be4af0bf1f0f00e0a70c9d", - "uuidPlanMaster": "dcb4160131b7458a827bc583f3aed54d", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H8 - 8, T6", - "Dosage": 30, - "AssistA": " 吹样(20ul)", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 6, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 1, - "HoleCollective": "8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "eb2efe6252754d1dadc4ffa9ca6845a0", - "uuidPlanMaster": "dcb4160131b7458a827bc583f3aed54d", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H61 - 61, T1", - "Dosage": 30, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 8, - "HoleCollective": "61", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "9272b262efa74d839a68ea30c9880c46", - "uuidPlanMaster": "dcb4160131b7458a827bc583f3aed54d", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H8 - 8, T6", - "Dosage": 30, - "AssistA": " 吹样(20ul)", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 6, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 1, - "HoleCollective": "8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "ba91f24354e74cdd8da68dab729dbb0e", - "uuidPlanMaster": "dcb4160131b7458a827bc583f3aed54d", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H62 - 62, T1", - "Dosage": 30, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 6, - "HoleColum": 8, - "HoleCollective": "62", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "ec256e7c30c04e949f51f69b6dd656b3", - "uuidPlanMaster": "dcb4160131b7458a827bc583f3aed54d", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H8 - 8, T6", - "Dosage": 30, - "AssistA": " 吹样(20ul)", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 6, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 1, - "HoleCollective": "8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "fafdedfc276d4d17ba4a6bbcaf6d6429", - "uuidPlanMaster": "dcb4160131b7458a827bc583f3aed54d", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H63 - 63, T1", - "Dosage": 30, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 7, - "HoleColum": 8, - "HoleCollective": "63", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "df4bc9302eed4a9d880e8fc1e5de827d", - "uuidPlanMaster": "dcb4160131b7458a827bc583f3aed54d", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H8 - 8, T6", - "Dosage": 30, - "AssistA": " 吹样(20ul)", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 6, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 1, - "HoleCollective": "8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "9b52038cd04b4accb99890057c6a98b4", - "uuidPlanMaster": "dcb4160131b7458a827bc583f3aed54d", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H64 - 64, T1", - "Dosage": 30, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 8, - "HoleCollective": "64", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "99a2b3a02000426292dabd732a038123", - "uuidPlanMaster": "dcb4160131b7458a827bc583f3aed54d", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H8 - 8, T6", - "Dosage": 30, - "AssistA": " 吹样(20ul)", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 6, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 1, - "HoleCollective": "8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "91e7bc7cdedd4cac94caa3c678adb81e", - "uuidPlanMaster": "dcb4160131b7458a827bc583f3aed54d", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T12", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 12, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "690f631ffcbc4f079f890b81804f5257", - "uuidPlanMaster": "dcb4160131b7458a827bc583f3aed54d", - "Axis": "Left", - "ActOn": "Load", - "Place": "H9 - 9, T11", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 11, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 2, - "HoleCollective": "9", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "e6692c0dfa9a4b9d8727af41c255ffc2", - "uuidPlanMaster": "dcb4160131b7458a827bc583f3aed54d", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H1 - 1, T6", - "Dosage": 150, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 6, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "726499c8309845e9b3a7badf03b29298", - "uuidPlanMaster": "dcb4160131b7458a827bc583f3aed54d", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1 - 1, T2", - "Dosage": 150, - "AssistA": " 吹样(20ul)", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "0c0d42ceec5545a7985cada035ac5b47", - "uuidPlanMaster": "dcb4160131b7458a827bc583f3aed54d", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T12", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 12, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "3b1e5d490da24c96a09fe23b5f3ba302", - "uuidPlanMaster": "dcb4160131b7458a827bc583f3aed54d", - "Axis": "Left", - "ActOn": "Load", - "Place": "H10 - 10, T11", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 11, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 2, - "HoleCollective": "10", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "2b538059902742fb8e6ed88e312b27b7", - "uuidPlanMaster": "dcb4160131b7458a827bc583f3aed54d", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H2 - 2, T6", - "Dosage": 150, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 6, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 1, - "HoleCollective": "2", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "0544139cf8fa4cc5b18a12161becb9e7", - "uuidPlanMaster": "dcb4160131b7458a827bc583f3aed54d", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H2 - 2, T2", - "Dosage": 150, - "AssistA": " 吹样(20ul)", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 1, - "HoleCollective": "2", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "1aee6e330f3b4f6685ca869d5b967450", - "uuidPlanMaster": "dcb4160131b7458a827bc583f3aed54d", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T12", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 12, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "8ce6107388b74067ba870430e674a10e", - "uuidPlanMaster": "dcb4160131b7458a827bc583f3aed54d", - "Axis": "Left", - "ActOn": "Load", - "Place": "H11 - 11, T11", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 11, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 2, - "HoleCollective": "11", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "ca137cc5a00f4474b7b1c067e29bcb23", - "uuidPlanMaster": "dcb4160131b7458a827bc583f3aed54d", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H3 - 3, T6", - "Dosage": 150, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 6, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 1, - "HoleCollective": "3", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "51bf6f036215420ba4db90111e7221f8", - "uuidPlanMaster": "dcb4160131b7458a827bc583f3aed54d", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H3 - 3, T2", - "Dosage": 150, - "AssistA": " 吹样(20ul)", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 1, - "HoleCollective": "3", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "f0ef44040d3a4065841bc06e9bdbd0dc", - "uuidPlanMaster": "dcb4160131b7458a827bc583f3aed54d", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T12", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 12, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "26a351f0c9d24408aecde17bf4cad41a", - "uuidPlanMaster": "dcb4160131b7458a827bc583f3aed54d", - "Axis": "Left", - "ActOn": "Load", - "Place": "H12 - 12, T11", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 11, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 2, - "HoleCollective": "12", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "8ef0487e6e0f413f88815d5d48683733", - "uuidPlanMaster": "dcb4160131b7458a827bc583f3aed54d", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H4 - 4, T6", - "Dosage": 150, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 6, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 1, - "HoleCollective": "4", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "c8b76ba835a04a6e95e916e0a456bb72", - "uuidPlanMaster": "dcb4160131b7458a827bc583f3aed54d", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H4 - 4, T2", - "Dosage": 150, - "AssistA": " 吹样(20ul)", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 1, - "HoleCollective": "4", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "bbe72a0107eb46c68fb0c67db0695350", - "uuidPlanMaster": "dcb4160131b7458a827bc583f3aed54d", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T12", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 12, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "0bc07c4909894e0bab0841cb199758ca", - "uuidPlanMaster": "dcb4160131b7458a827bc583f3aed54d", - "Axis": "Left", - "ActOn": "Load", - "Place": "H13 - 13, T11", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 11, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 2, - "HoleCollective": "13", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "16fd98b1fca646ffb8866e15f0e11545", - "uuidPlanMaster": "dcb4160131b7458a827bc583f3aed54d", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H5 - 5, T6", - "Dosage": 150, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 6, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 1, - "HoleCollective": "5", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "fff1900afbdd48bdbb3a3ad66f17cdc3", - "uuidPlanMaster": "dcb4160131b7458a827bc583f3aed54d", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H5 - 5, T2", - "Dosage": 150, - "AssistA": " 吹样(20ul)", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 1, - "HoleCollective": "5", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "dd958b76121341f1af43c49796898c68", - "uuidPlanMaster": "dcb4160131b7458a827bc583f3aed54d", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T12", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 12, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "20122ab29a144ca79677355908ee71d8", - "uuidPlanMaster": "dcb4160131b7458a827bc583f3aed54d", - "Axis": "Left", - "ActOn": "Load", - "Place": "H14 - 14, T11", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 11, - "IsFullPage": 0, - "HoleRow": 6, - "HoleColum": 2, - "HoleCollective": "14", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "f520f87878854a1aa306ab0e772a4130", - "uuidPlanMaster": "dcb4160131b7458a827bc583f3aed54d", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H6 - 6, T6", - "Dosage": 150, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 6, - "IsFullPage": 0, - "HoleRow": 6, - "HoleColum": 1, - "HoleCollective": "6", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "a51e08e96e414edd9ca298534cf715a5", - "uuidPlanMaster": "dcb4160131b7458a827bc583f3aed54d", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H6 - 6, T2", - "Dosage": 150, - "AssistA": " 吹样(20ul)", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 6, - "HoleColum": 1, - "HoleCollective": "6", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "ba24b1dd9af04bd6960ef0ab1ac78419", - "uuidPlanMaster": "dcb4160131b7458a827bc583f3aed54d", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T12", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 12, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "d24146248b844700a2580dc80231f7f0", - "uuidPlanMaster": "dcb4160131b7458a827bc583f3aed54d", - "Axis": "Left", - "ActOn": "Load", - "Place": "H15 - 15, T11", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 11, - "IsFullPage": 0, - "HoleRow": 7, - "HoleColum": 2, - "HoleCollective": "15", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "2a0a94d603f84decba63b962e9a87b01", - "uuidPlanMaster": "dcb4160131b7458a827bc583f3aed54d", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H7 - 7, T6", - "Dosage": 150, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 6, - "IsFullPage": 0, - "HoleRow": 7, - "HoleColum": 1, - "HoleCollective": "7", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "830cc966e72f4c138edc225670424ad5", - "uuidPlanMaster": "dcb4160131b7458a827bc583f3aed54d", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H7 - 7, T2", - "Dosage": 150, - "AssistA": " 吹样(20ul)", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 7, - "HoleColum": 1, - "HoleCollective": "7", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "f4033ae9c31c432cad8a45f5258e7e2f", - "uuidPlanMaster": "dcb4160131b7458a827bc583f3aed54d", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T12", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 12, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "e42e6882033945468fdc5a6cca323a19", - "uuidPlanMaster": "dcb4160131b7458a827bc583f3aed54d", - "Axis": "Left", - "ActOn": "Load", - "Place": "H16 - 16, T11", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 11, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 2, - "HoleCollective": "16", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "e65958d6d95b4f76a6767263f7b0ab57", - "uuidPlanMaster": "dcb4160131b7458a827bc583f3aed54d", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H8 - 8, T6", - "Dosage": 150, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 6, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 1, - "HoleCollective": "8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "b44641eabc764d97ade65918f16dfcac", - "uuidPlanMaster": "dcb4160131b7458a827bc583f3aed54d", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H8 - 8, T2", - "Dosage": 150, - "AssistA": " 吹样(20ul)", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 1, - "HoleCollective": "8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "f510672c8ddf417a94fe2b8b5ebd7370", - "uuidPlanMaster": "dcb4160131b7458a827bc583f3aed54d", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T12", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 12, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "ca08635702be4db48770e6d42df1bb16", - "uuidPlanMaster": "dcb4160131b7458a827bc583f3aed54d", - "Axis": "Left", - "ActOn": "Load", - "Place": "H17 - 17, T11", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 11, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "17", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "49dc4d8526ee4b6197e8a48f6751854a", - "uuidPlanMaster": "dcb4160131b7458a827bc583f3aed54d", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H1 - 1, T14", - "Dosage": 50, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 14, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "283dc83f2e72490a9fe3ca5450256fab", - "uuidPlanMaster": "dcb4160131b7458a827bc583f3aed54d", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1 - 1, T2", - "Dosage": 50, - "AssistA": " 吹样(20ul)", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "6601c9d12e264e789d054ab2958d20ad", - "uuidPlanMaster": "dcb4160131b7458a827bc583f3aed54d", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T12", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 12, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "49c10069e74a4d79924ebd0ce742d356", - "uuidPlanMaster": "dcb4160131b7458a827bc583f3aed54d", - "Axis": "Left", - "ActOn": "Load", - "Place": "H18 - 18, T11", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 11, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 3, - "HoleCollective": "18", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "9336305c66f547f88c287552951dc82a", - "uuidPlanMaster": "dcb4160131b7458a827bc583f3aed54d", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H2 - 2, T14", - "Dosage": 50, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 14, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 1, - "HoleCollective": "2", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "8be99afd8bae4f9f9ec575b365faa664", - "uuidPlanMaster": "dcb4160131b7458a827bc583f3aed54d", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H2 - 2, T2", - "Dosage": 50, - "AssistA": " 吹样(20ul)", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 1, - "HoleCollective": "2", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "edd42b502e4e49508920218884cdfae5", - "uuidPlanMaster": "dcb4160131b7458a827bc583f3aed54d", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T12", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 12, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "892f0e74a164409fb8a53f24f59de0d3", - "uuidPlanMaster": "dcb4160131b7458a827bc583f3aed54d", - "Axis": "Left", - "ActOn": "Load", - "Place": "H19 - 19, T11", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 11, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 3, - "HoleCollective": "19", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "23c2381a8e7043f1b599401358782ca6", - "uuidPlanMaster": "dcb4160131b7458a827bc583f3aed54d", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H3 - 3, T14", - "Dosage": 50, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 14, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 1, - "HoleCollective": "3", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "2982ce23c31b40ccb4885c699ac74692", - "uuidPlanMaster": "dcb4160131b7458a827bc583f3aed54d", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H3 - 3, T2", - "Dosage": 50, - "AssistA": " 吹样(20ul)", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 1, - "HoleCollective": "3", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "0449ae7d8ab045108115d5d6cdf51dc2", - "uuidPlanMaster": "dcb4160131b7458a827bc583f3aed54d", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T12", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 12, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "42c2205fa1244e67876d6f22572d71b7", - "uuidPlanMaster": "dcb4160131b7458a827bc583f3aed54d", - "Axis": "Left", - "ActOn": "Load", - "Place": "H20 - 20, T11", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 11, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 3, - "HoleCollective": "20", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "63e55ff661dc4cb28aabbe51edc7b46b", - "uuidPlanMaster": "dcb4160131b7458a827bc583f3aed54d", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H4 - 4, T14", - "Dosage": 50, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 14, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 1, - "HoleCollective": "4", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "74dd2af4d9e44e6f91f0ef72febd1620", - "uuidPlanMaster": "dcb4160131b7458a827bc583f3aed54d", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H4 - 4, T2", - "Dosage": 50, - "AssistA": " 吹样(20ul)", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 1, - "HoleCollective": "4", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "1d7ab94af07e4f6ebc2f932a3fb631a9", - "uuidPlanMaster": "dcb4160131b7458a827bc583f3aed54d", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T12", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 12, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "c476acc8b3514eb89706913f4fd06a4c", - "uuidPlanMaster": "dcb4160131b7458a827bc583f3aed54d", - "Axis": "Left", - "ActOn": "Load", - "Place": "H21 - 21, T11", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 11, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 3, - "HoleCollective": "21", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "2da21654f98f46f9a822075ee1db8243", - "uuidPlanMaster": "dcb4160131b7458a827bc583f3aed54d", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H5 - 5, T14", - "Dosage": 50, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 14, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 2, - "HoleCollective": "5", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "f91fd536202f4cd3b163e59ebf94dfe5", - "uuidPlanMaster": "dcb4160131b7458a827bc583f3aed54d", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H5 - 5, T2", - "Dosage": 50, - "AssistA": " 吹样(20ul)", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 1, - "HoleCollective": "5", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "6ddaab3709b947d8a404dcd05bc4bb3c", - "uuidPlanMaster": "dcb4160131b7458a827bc583f3aed54d", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T12", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 12, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "eda2dc2a1c3c461f9f881fb37a6531c8", - "uuidPlanMaster": "dcb4160131b7458a827bc583f3aed54d", - "Axis": "Left", - "ActOn": "Load", - "Place": "H22 - 22, T11", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 11, - "IsFullPage": 0, - "HoleRow": 6, - "HoleColum": 3, - "HoleCollective": "22", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "0240daa54dea47ddb249eaec5d2c1205", - "uuidPlanMaster": "dcb4160131b7458a827bc583f3aed54d", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H6 - 6, T14", - "Dosage": 50, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 14, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 2, - "HoleCollective": "6", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "b43b4f775b7947bdb593277095367d7c", - "uuidPlanMaster": "dcb4160131b7458a827bc583f3aed54d", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H6 - 6, T2", - "Dosage": 50, - "AssistA": " 吹样(20ul)", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 6, - "HoleColum": 1, - "HoleCollective": "6", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "5ba1d05b5d93478d9766b6705f99c224", - "uuidPlanMaster": "dcb4160131b7458a827bc583f3aed54d", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T12", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 12, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "f81d43e9fdc84059bfeff9c353ede286", - "uuidPlanMaster": "dcb4160131b7458a827bc583f3aed54d", - "Axis": "Left", - "ActOn": "Load", - "Place": "H23 - 23, T11", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 11, - "IsFullPage": 0, - "HoleRow": 7, - "HoleColum": 3, - "HoleCollective": "23", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "fb3a427aff0b4bdcb9fb0fcb2f670552", - "uuidPlanMaster": "dcb4160131b7458a827bc583f3aed54d", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H7 - 7, T14", - "Dosage": 50, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 14, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 2, - "HoleCollective": "7", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "399d8b2c8b5544b7a2966d3c9c07facd", - "uuidPlanMaster": "dcb4160131b7458a827bc583f3aed54d", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H7 - 7, T2", - "Dosage": 50, - "AssistA": " 吹样(20ul)", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 7, - "HoleColum": 1, - "HoleCollective": "7", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "cfc2410e2dd24463a7218b119d1f7964", - "uuidPlanMaster": "dcb4160131b7458a827bc583f3aed54d", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T12", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 12, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "926dd8081a04485f92cf2c2ff742f242", - "uuidPlanMaster": "dcb4160131b7458a827bc583f3aed54d", - "Axis": "Left", - "ActOn": "Load", - "Place": "H24 - 24, T11", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 11, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 3, - "HoleCollective": "24", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "c80495d4c76448eb96f07b096722af7e", - "uuidPlanMaster": "dcb4160131b7458a827bc583f3aed54d", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H8 - 8, T14", - "Dosage": 50, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 14, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 2, - "HoleCollective": "8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "c0c561550ade4da08fcf02c0226c5929", - "uuidPlanMaster": "dcb4160131b7458a827bc583f3aed54d", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H8 - 8, T2", - "Dosage": 50, - "AssistA": " 吹样(20ul)", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 1, - "HoleCollective": "8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "671b5cf9bd3843d7bee61a4fb7f021d1", - "uuidPlanMaster": "dcb4160131b7458a827bc583f3aed54d", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "T12", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": null, - "AssistE": null, - "Number": 12, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "", - "Module": 1, - "Temperature": "", - "Amplitude": "", - "Height": "", - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "a7b30acecad6422db2b50ca4c84e12e8", - "uuidPlanMaster": "dcb4160131b7458a827bc583f3aed54d", - "Axis": "ClampingJaw", - "ActOn": "DefectiveLift", - "Place": "T2", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 1, - "HoleRow": 0, - "HoleColum": 0, - "HoleCollective": "", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "24436ec701bd49aba89ca886293f735e", - "uuidPlanMaster": "dcb4160131b7458a827bc583f3aed54d", - "Axis": "ClampingJaw", - "ActOn": "PutDown", - "Place": "T4", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 4, - "IsFullPage": 1, - "HoleRow": 0, - "HoleColum": 0, - "HoleCollective": "", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "f5f991feba4c4c95b11029aaf93bed48", - "uuidPlanMaster": "dcb4160131b7458a827bc583f3aed54d", - "Axis": "Left", - "ActOn": "Shaking", - "Place": null, - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 0, - "IsFullPage": 1, - "HoleRow": 0, - "HoleColum": 0, - "HoleCollective": "", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "100", - "Module": 1, - "Temperature": null, - "Amplitude": "300", - "Height": null, - "IsWait": 1, - "ImbSpeed": 0 - }, - { - "uuid": "2041c8e28dd54508b24e84e9c79a3b70", - "uuidPlanMaster": "d01fe1d717874c6d93dc107537e60210", - "Axis": "Left", - "ActOn": "Load", - "Place": "H5-8,T5", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 5, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 5, - "HoleCollective": "35", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "791a7c24447e4f648136a1575fa8c506", - "uuidPlanMaster": "d01fe1d717874c6d93dc107537e60210", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H12-8,T9", - "Dosage": 5, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 9, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 12, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "61732e4eed884ce5b1ed7dac140816c4", - "uuidPlanMaster": "d01fe1d717874c6d93dc107537e60210", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H12-8,T10", - "Dosage": 5, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 10, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 12, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "b1203b5ace244b2ca0c0e54f62a92773", - "uuidPlanMaster": "d01fe1d717874c6d93dc107537e60210", - "Axis": "Left", - "ActOn": "Blending", - "Place": "H12-8,T10", - "Dosage": 5, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 10, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 12, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 3, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "f5f358179b734168af0c1c438d1297e9", - "uuidPlanMaster": "ad2e4d6b5bd74ef1b11448a5fece64af", - "Axis": "Left", - "ActOn": "Load", - "Place": "H5-8,T5", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 5, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 5, - "HoleCollective": "35", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "0ffa82586f104b43898cdd9fbc0474c3", - "uuidPlanMaster": "ad2e4d6b5bd74ef1b11448a5fece64af", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H12-8,T9", - "Dosage": 5, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 9, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 12, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "181dcde055ef498fba441a6c6b8fcaf2", - "uuidPlanMaster": "ad2e4d6b5bd74ef1b11448a5fece64af", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H12-8,T10", - "Dosage": 5, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 10, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 12, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "3caacbae4f6c489d9f236d895677dbe2", - "uuidPlanMaster": "ad2e4d6b5bd74ef1b11448a5fece64af", - "Axis": "Left", - "ActOn": "Blending", - "Place": "H12-8,T10", - "Dosage": 5, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 10, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 12, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 3, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "b1c0ddb7309f4067b899e6866977b012", - "uuidPlanMaster": "a20966e81ff140f8b7bcd5cdc9126026", - "Axis": "Left", - "ActOn": "Load", - "Place": "H5-8,T5", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 5, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 5, - "HoleCollective": "35", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "a32d94b484674f2993e316ba836b1019", - "uuidPlanMaster": "a20966e81ff140f8b7bcd5cdc9126026", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H12-8,T9", - "Dosage": 5, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 9, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 12, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "b06323a638d343f18f3a39462bda1bc1", - "uuidPlanMaster": "a20966e81ff140f8b7bcd5cdc9126026", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H12-8,T10", - "Dosage": 5, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 10, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 12, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "d02c23cbd6b54af98390411b167abce9", - "uuidPlanMaster": "a20966e81ff140f8b7bcd5cdc9126026", - "Axis": "Left", - "ActOn": "Blending", - "Place": "H12-8,T10", - "Dosage": 5, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 10, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 12, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 3, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "f6b02561763f4742bd69abb5b80f0a6b", - "uuidPlanMaster": "6287b01ab0274ddcb0df25ba6996b98e", - "Axis": "Right", - "ActOn": "Load", - "Place": "H5-8,T5", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 5, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 5, - "HoleCollective": "35", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "0b078611a37a4387b6284a5914e18ffc", - "uuidPlanMaster": "6287b01ab0274ddcb0df25ba6996b98e", - "Axis": "Right", - "ActOn": "Imbibing", - "Place": "H12-8,T9", - "Dosage": 5, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 9, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 12, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "158d391fc103489ba43f8c543a59b64c", - "uuidPlanMaster": "6287b01ab0274ddcb0df25ba6996b98e", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H12-8,T10", - "Dosage": 5, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 10, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 12, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "52ff072144b741b2b9c49e6e33076c25", - "uuidPlanMaster": "6287b01ab0274ddcb0df25ba6996b98e", - "Axis": "Right", - "ActOn": "Blending", - "Place": "H12-8,T10", - "Dosage": 5, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 10, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 12, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 3, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "f5bb2212d6e046cda5873ad42685c382", - "uuidPlanMaster": "900d6962ac274feb88e2ea6478448ccc", - "Axis": "Right", - "ActOn": "Load", - "Place": "H12-8,T5", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 5, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 12, - "HoleCollective": "91", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "c47a44472e4843d298d26866d89720f0", - "uuidPlanMaster": "900d6962ac274feb88e2ea6478448ccc", - "Axis": "Right", - "ActOn": "Imbibing", - "Place": "H4-8,T9", - "Dosage": 5, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 9, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 4, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "8c55fd32aaf542959f07fedb92680a9b", - "uuidPlanMaster": "900d6962ac274feb88e2ea6478448ccc", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H11-8,T13", - "Dosage": 5, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 7, - "HoleColum": 11, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "465c15cc04e246e09ea6db43400ca22c", - "uuidPlanMaster": "900d6962ac274feb88e2ea6478448ccc", - "Axis": "Right", - "ActOn": "UnLoad", - "Place": "H1-8,T16", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 16, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "253b71c5e007447ea06513ec5640775f", - "uuidPlanMaster": "40cd2acf863e41499110fb1401b76e64", - "Axis": "Right", - "ActOn": "Load", - "Place": "H12-8,T1", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 12, - "HoleCollective": "89", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "cdd64f7f40ce403a9f918de4403d56b4", - "uuidPlanMaster": "40cd2acf863e41499110fb1401b76e64", - "Axis": "Right", - "ActOn": "Imbibing", - "Place": "H12-8,T9", - "Dosage": 5, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 9, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 12, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "34a44a3cacf14b7a8a2d4178e53785dc", - "uuidPlanMaster": "40cd2acf863e41499110fb1401b76e64", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H5-8,T9", - "Dosage": 5, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 9, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "f7ea5e0448804e5aaf7c39a8942f6b24", - "uuidPlanMaster": "40cd2acf863e41499110fb1401b76e64", - "Axis": "Right", - "ActOn": "UnLoad", - "Place": "H1-8,T16", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 16, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "adcfe28c83d842be98ea8cded7941f60", - "uuidPlanMaster": "6372e69d32ad4212861465b12d64668a", - "Axis": "Right", - "ActOn": "Load", - "Place": "H5-8,T5", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 5, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 5, - "HoleCollective": "35", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "15c232df212e4befa56f25370284121b", - "uuidPlanMaster": "6372e69d32ad4212861465b12d64668a", - "Axis": "Right", - "ActOn": "Imbibing", - "Place": "H12-8,T9", - "Dosage": 5, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 9, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 12, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "1fcfb25a94464bac9cd2839649e32eb7", - "uuidPlanMaster": "6372e69d32ad4212861465b12d64668a", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H12-8,T10", - "Dosage": 1, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 10, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 12, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "6146fe17dd594964ad30d53b23307865", - "uuidPlanMaster": "6372e69d32ad4212861465b12d64668a", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H1-8,T13", - "Dosage": 1, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "f7f5b1b381c049c59ad73610a91a4d2c", - "uuidPlanMaster": "6372e69d32ad4212861465b12d64668a", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H5-8,T14", - "Dosage": 1, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 14, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "84fb591e90034a4abce99c5937093e70", - "uuidPlanMaster": "6372e69d32ad4212861465b12d64668a", - "Axis": "Right", - "ActOn": "Blending", - "Place": "H12-8,T10", - "Dosage": 5, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 10, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 12, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 3, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "766bce5db7384199ade6e127bb281c1c", - "uuidPlanMaster": "6372e69d32ad4212861465b12d64668a", - "Axis": "Right", - "ActOn": "UnLoad", - "Place": "H1-8,T16", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 16, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "21579c02e0804d329f20417e22a559fc", - "uuidPlanMaster": "c20d46afdad5442bae990594fd707489", - "Axis": "Right", - "ActOn": "Load", - "Place": "H5-8,T5", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 5, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 5, - "HoleCollective": "35", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "c9639a14eb534c5d9baa6c29706aeed5", - "uuidPlanMaster": "c20d46afdad5442bae990594fd707489", - "Axis": "Right", - "ActOn": "Imbibing", - "Place": "H12-8,T9", - "Dosage": 5, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 9, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 12, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "6d93e3dd593c4010a543254726fb24ba", - "uuidPlanMaster": "c20d46afdad5442bae990594fd707489", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H12-8,T10", - "Dosage": 1, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 10, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 12, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "b57aa68de72b4fb0bcaa3f715bd28150", - "uuidPlanMaster": "c20d46afdad5442bae990594fd707489", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H1-8,T13", - "Dosage": 1, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "1e99bbdcb18f410aacaffbf0643024bc", - "uuidPlanMaster": "c20d46afdad5442bae990594fd707489", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H5-8,T14", - "Dosage": 1, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 14, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "bfb811cd779244ce8b743b1d99c1ad51", - "uuidPlanMaster": "c20d46afdad5442bae990594fd707489", - "Axis": "Right", - "ActOn": "Blending", - "Place": "H12-8,T10", - "Dosage": 5, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 10, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 12, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 3, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "b1180aa186594b858c1cf64210dad4e3", - "uuidPlanMaster": "c20d46afdad5442bae990594fd707489", - "Axis": "Right", - "ActOn": "UnLoad", - "Place": "H1-8,T16", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 16, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "d6c638cf16aa4f8681915f26c4efe571", - "uuidPlanMaster": "83e1c0c3ecaa43989a64ed90e47cd747", - "Axis": "Right", - "ActOn": "Load", - "Place": "H5-8,T5", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 5, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 5, - "HoleCollective": "35", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "393a5607a2814754a9ce2a856bdbb9e2", - "uuidPlanMaster": "83e1c0c3ecaa43989a64ed90e47cd747", - "Axis": "Right", - "ActOn": "Imbibing", - "Place": "H12-8,T9", - "Dosage": 5, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 9, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 12, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "386c4c75667b4b7d9274fa756962d403", - "uuidPlanMaster": "83e1c0c3ecaa43989a64ed90e47cd747", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H12-8,T10", - "Dosage": 1, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 10, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 12, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "ad0d39da49504aed894ef25107a2a577", - "uuidPlanMaster": "83e1c0c3ecaa43989a64ed90e47cd747", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H1-8,T13", - "Dosage": 1, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "c501e7d7f256497b8084eeaa88f4d913", - "uuidPlanMaster": "83e1c0c3ecaa43989a64ed90e47cd747", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H5-8,T14", - "Dosage": 1, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 14, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "b7ea10f98c294e039691289232ff57ac", - "uuidPlanMaster": "83e1c0c3ecaa43989a64ed90e47cd747", - "Axis": "Right", - "ActOn": "Blending", - "Place": "H12-8,T10", - "Dosage": 5, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 10, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 12, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 3, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "9998d09793ef49f9ab1eeb14d2826f8d", - "uuidPlanMaster": "83e1c0c3ecaa43989a64ed90e47cd747", - "Axis": "Right", - "ActOn": "UnLoad", - "Place": "H1-8,T16", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 16, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "2a5a2f5dbea54603bc6e03ecf659071d", - "uuidPlanMaster": "828d210896db4902a46c0bf0736a16bf", - "Axis": "Right", - "ActOn": "Load", - "Place": "H5-8,T5", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 5, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 5, - "HoleCollective": "35", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "4f1e1847b2e6410ab06c9489baab9063", - "uuidPlanMaster": "828d210896db4902a46c0bf0736a16bf", - "Axis": "Right", - "ActOn": "Imbibing", - "Place": "H12-8,T9", - "Dosage": 5, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 9, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 12, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "659abc5a15d04c0fa190341972c88ad0", - "uuidPlanMaster": "828d210896db4902a46c0bf0736a16bf", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H12-8,T10", - "Dosage": 1, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 10, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 12, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "5df8857e13b343aa8b7825f8fa20a292", - "uuidPlanMaster": "828d210896db4902a46c0bf0736a16bf", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H1-8,T13", - "Dosage": 1, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "787528c9fee543eeb9ec191d124fe370", - "uuidPlanMaster": "828d210896db4902a46c0bf0736a16bf", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H5-8,T14", - "Dosage": 1, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 14, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "ebe9be6867e04202ac119cce8bdbd76d", - "uuidPlanMaster": "828d210896db4902a46c0bf0736a16bf", - "Axis": "Right", - "ActOn": "Blending", - "Place": "H12-8,T10", - "Dosage": 5, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 10, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 12, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 3, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "382caca47b5b4224bb6d980caced18eb", - "uuidPlanMaster": "828d210896db4902a46c0bf0736a16bf", - "Axis": "Right", - "ActOn": "UnLoad", - "Place": "H1-8,T16", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 16, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "fbde0ffa614b44e4b058152e7dcee106", - "uuidPlanMaster": "383c8e4584124ab3881ab5bf3a5995d8", - "Axis": "Right", - "ActOn": "Load", - "Place": "H5-8,T5", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 5, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 5, - "HoleCollective": "35", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "67516e0b7dd74a3aaec680f6cfd4d55e", - "uuidPlanMaster": "383c8e4584124ab3881ab5bf3a5995d8", - "Axis": "Right", - "ActOn": "Imbibing", - "Place": "H12-8,T9", - "Dosage": 5, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 9, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 12, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "67c8cfd15e234871ac0977bff37c0a60", - "uuidPlanMaster": "383c8e4584124ab3881ab5bf3a5995d8", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H12-8,T10", - "Dosage": 1, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 10, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 12, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "96b043bdfe984c3ab77ffd9d90404901", - "uuidPlanMaster": "383c8e4584124ab3881ab5bf3a5995d8", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H1-8,T13", - "Dosage": 1, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "3de9971e147a4abe839fc10b50a70e3f", - "uuidPlanMaster": "383c8e4584124ab3881ab5bf3a5995d8", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H5-8,T14", - "Dosage": 1, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 14, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "57f8ca75e730459e908495c189605298", - "uuidPlanMaster": "383c8e4584124ab3881ab5bf3a5995d8", - "Axis": "Right", - "ActOn": "Blending", - "Place": "H12-8,T10", - "Dosage": 5, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 10, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 12, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 3, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "fcdbb90844e24683b466ff20b2a94917", - "uuidPlanMaster": "383c8e4584124ab3881ab5bf3a5995d8", - "Axis": "Right", - "ActOn": "UnLoad", - "Place": "H1-8,T16", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 16, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "aaac5a350d1b404db036f66c8239a98d", - "uuidPlanMaster": "e8af04dd7b9c4d79975e021edccb07df", - "Axis": "Right", - "ActOn": "Load", - "Place": "H12-8,T1", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 12, - "HoleCollective": "89", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "cd99f5cb17de457ebf576dd9b8476df4", - "uuidPlanMaster": "e8af04dd7b9c4d79975e021edccb07df", - "Axis": "Right", - "ActOn": "Imbibing", - "Place": "H12-8,T9", - "Dosage": 5, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 9, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 12, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "5b9535e18b6a4a31af9e20b2101a4349", - "uuidPlanMaster": "e8af04dd7b9c4d79975e021edccb07df", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H5-8,T9", - "Dosage": 5, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 9, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "6e42cc826770468eba3ad1644e79f98e", - "uuidPlanMaster": "e8af04dd7b9c4d79975e021edccb07df", - "Axis": "Right", - "ActOn": "UnLoad", - "Place": "H1-8,T16", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 16, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "8d6fbd949bec4160a5c3f44fda389ba2", - "uuidPlanMaster": "a0e7e6e605f148cda91a3306b848cabd", - "Axis": "Right", - "ActOn": "Load", - "Place": "H5-8,T5", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 5, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 5, - "HoleCollective": "35", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "b206de5d551949ca9c59f83ee3bd8eaa", - "uuidPlanMaster": "a0e7e6e605f148cda91a3306b848cabd", - "Axis": "Right", - "ActOn": "Imbibing", - "Place": "H12-8,T9", - "Dosage": 5, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 9, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 12, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "abfcb0a0c0624d5f97397f17960d6ad9", - "uuidPlanMaster": "a0e7e6e605f148cda91a3306b848cabd", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H12-8,T10", - "Dosage": 1, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 10, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 12, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "7f056ff5f17c4d2a87f81270710aea03", - "uuidPlanMaster": "a0e7e6e605f148cda91a3306b848cabd", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H1-8,T13", - "Dosage": 1, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "3fc2cb0f91024f289615563f4e381865", - "uuidPlanMaster": "a0e7e6e605f148cda91a3306b848cabd", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H5-8,T14", - "Dosage": 1, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 14, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "50632c6dca91479d8d7ba88df50d89de", - "uuidPlanMaster": "a0e7e6e605f148cda91a3306b848cabd", - "Axis": "Right", - "ActOn": "Blending", - "Place": "H12-8,T10", - "Dosage": 5, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 10, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 12, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 3, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "de616790339d41f6813de2e570e95f07", - "uuidPlanMaster": "a0e7e6e605f148cda91a3306b848cabd", - "Axis": "Right", - "ActOn": "UnLoad", - "Place": "H1-8,T16", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 16, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "aa905c60872043f5a53a111470de308e", - "uuidPlanMaster": "322ada4d555c4882a02568b975d47899", - "Axis": "Right", - "ActOn": "Load", - "Place": "H12-8,T1", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 12, - "HoleCollective": "89", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "8bcec9156af74f9db5083752a24ddd27", - "uuidPlanMaster": "322ada4d555c4882a02568b975d47899", - "Axis": "Right", - "ActOn": "Imbibing", - "Place": "H12-8,T9", - "Dosage": 5, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 9, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 12, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "eaf61b844ba6415ba6fc2804365683dc", - "uuidPlanMaster": "322ada4d555c4882a02568b975d47899", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H5-8,T9", - "Dosage": 5, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 9, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "528193d5712140528ca06028cd63cb2c", - "uuidPlanMaster": "322ada4d555c4882a02568b975d47899", - "Axis": "Right", - "ActOn": "UnLoad", - "Place": "H1-8,T16", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 16, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "c1ed6d13576a4c098ea4d61e19b27eb2", - "uuidPlanMaster": "237434309186466ba1a84c8a0cd35a9c", - "Axis": "Right", - "ActOn": "Load", - "Place": "H12-8,T1", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 1, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 12, - "HoleCollective": "91", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "cb9a72945c534fe3acbbb6b6dc7a44aa", - "uuidPlanMaster": "237434309186466ba1a84c8a0cd35a9c", - "Axis": "Right", - "ActOn": "Imbibing", - "Place": "H12-8,T9", - "Dosage": 5, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 9, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 12, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "ae4501e6f5b447a1b67031ed074e1bb3", - "uuidPlanMaster": "237434309186466ba1a84c8a0cd35a9c", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H5-8,T9", - "Dosage": 5, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 9, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "f3b614269c5042dcb7e65356ef75d447", - "uuidPlanMaster": "237434309186466ba1a84c8a0cd35a9c", - "Axis": "Right", - "ActOn": "UnLoad", - "Place": "H1-8,T16", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 16, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "0f50cf7e09714675b3431784adb4e28e", - "uuidPlanMaster": "78ed740ccd62431aa08ebc74bfafa74c", - "Axis": "Right", - "ActOn": "Load", - "Place": "H8-8,T1", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 1, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 8, - "HoleCollective": "60", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "dee191efa1d2411b9d823e4260c3386b", - "uuidPlanMaster": "78ed740ccd62431aa08ebc74bfafa74c", - "Axis": "Right", - "ActOn": "Imbibing", - "Place": "H12-8,T9", - "Dosage": 5, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 9, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 12, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "5a7d07856582425688dfec48a810c5ad", - "uuidPlanMaster": "78ed740ccd62431aa08ebc74bfafa74c", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H5-8,T9", - "Dosage": 5, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 9, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "71f4acdd7d3e47bd9f5ddcf7252e6586", - "uuidPlanMaster": "78ed740ccd62431aa08ebc74bfafa74c", - "Axis": "Right", - "ActOn": "UnLoad", - "Place": "H1-8,T16", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 16, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "3b34c99c1d144520a12d552dd662a6e7", - "uuidPlanMaster": "54b6d94440834fdaa2c4d8243905b878", - "Axis": "Right", - "ActOn": "Load", - "Place": "H9-8,T1", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 1, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 9, - "HoleCollective": "68", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "33c7be5e42c5425ea5fea71e02c3c366", - "uuidPlanMaster": "54b6d94440834fdaa2c4d8243905b878", - "Axis": "Right", - "ActOn": "Imbibing", - "Place": "H12-8,T9", - "Dosage": 5, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 9, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 12, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "cd0a7e4c0b1a4588968ced141922ddcb", - "uuidPlanMaster": "54b6d94440834fdaa2c4d8243905b878", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H5-8,T9", - "Dosage": 5, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 9, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "e3ae0deef5a7418f9854efe4c983df8c", - "uuidPlanMaster": "54b6d94440834fdaa2c4d8243905b878", - "Axis": "Right", - "ActOn": "UnLoad", - "Place": "H1-8,T16", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 16, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "720055e3b3cb49de97f5aeddf80f90fa", - "uuidPlanMaster": "dc3385670fbd4662b7be100b6c5cf509", - "Axis": "Right", - "ActOn": "Load", - "Place": "H10-8,T1", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 1, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 10, - "HoleCollective": "76", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "ce617100761d4db1a10a3e74712faca5", - "uuidPlanMaster": "dc3385670fbd4662b7be100b6c5cf509", - "Axis": "Right", - "ActOn": "Imbibing", - "Place": "H12-8,T9", - "Dosage": 5, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 9, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 12, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "ee2f9cd0aaf14fe6914a1d5fa0d7b02e", - "uuidPlanMaster": "dc3385670fbd4662b7be100b6c5cf509", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H5-8,T9", - "Dosage": 5, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 9, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "e811be0baa484df4a5f855f13ea86d18", - "uuidPlanMaster": "dc3385670fbd4662b7be100b6c5cf509", - "Axis": "Right", - "ActOn": "UnLoad", - "Place": "H1-8,T16", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 16, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "2c1cf83cd912480dad24016749f0aa48", - "uuidPlanMaster": "20ca12ffe751495b95d3786d2b057d72", - "Axis": "Right", - "ActOn": "Load", - "Place": "H11-8,T1", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 1, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 11, - "HoleCollective": "84", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "d3f83dc019454d0e911804d15620fa0f", - "uuidPlanMaster": "20ca12ffe751495b95d3786d2b057d72", - "Axis": "Right", - "ActOn": "Imbibing", - "Place": "H12-8,T9", - "Dosage": 5, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 9, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 12, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "41ca5ad8777445039ce5bb8729a54c8e", - "uuidPlanMaster": "20ca12ffe751495b95d3786d2b057d72", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H5-8,T9", - "Dosage": 5, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 9, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "285ce47f49f64f98b5b6c1e84aaa6465", - "uuidPlanMaster": "20ca12ffe751495b95d3786d2b057d72", - "Axis": "Right", - "ActOn": "UnLoad", - "Place": "H1-8,T16", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 16, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "eaa99e1826964e8da13e6848eb688071", - "uuidPlanMaster": "e0b3510f41c448c69e2c886faa711532", - "Axis": "Right", - "ActOn": "Load", - "Place": "H12-8,T1", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 1, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 12, - "HoleCollective": "92", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "959b4ffdfb744989a903b5740824b73d", - "uuidPlanMaster": "e0b3510f41c448c69e2c886faa711532", - "Axis": "Right", - "ActOn": "Imbibing", - "Place": "H12-8,T9", - "Dosage": 5, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 9, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 12, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "9aa9ffde7da34c07be3fac218858e5ec", - "uuidPlanMaster": "e0b3510f41c448c69e2c886faa711532", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H5-8,T9", - "Dosage": 5, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 9, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "461d60731fcc4444a57d20f26e60ad56", - "uuidPlanMaster": "e0b3510f41c448c69e2c886faa711532", - "Axis": "Right", - "ActOn": "Blending", - "Place": "H5-8,T9", - "Dosage": 5, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 9, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 5, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "80cec6c9f60a4a869f59a9caf1c55da7", - "uuidPlanMaster": "e0b3510f41c448c69e2c886faa711532", - "Axis": "Right", - "ActOn": "UnLoad", - "Place": "H1-8,T16", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 16, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "c117358442754f99a8613bf3ca5a9dad", - "uuidPlanMaster": "34781933dabb4860a6f13e060dcd6da1", - "Axis": "Right", - "ActOn": "Load", - "Place": "H1-8,T1", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 1, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 1, - "HoleCollective": "3", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "45e6ec388de34d7090b698b189c5de21", - "uuidPlanMaster": "34781933dabb4860a6f13e060dcd6da1", - "Axis": "Right", - "ActOn": "Imbibing", - "Place": "H12-8,T9", - "Dosage": 5, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 9, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 12, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "31c03886e9fc4ae6920e115f3e8841a5", - "uuidPlanMaster": "34781933dabb4860a6f13e060dcd6da1", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H5-8,T9", - "Dosage": 5, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 9, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "fabc15c73f9d4187bda6ef9f7ccbb7d5", - "uuidPlanMaster": "34781933dabb4860a6f13e060dcd6da1", - "Axis": "Right", - "ActOn": "Blending", - "Place": "H5-8,T9", - "Dosage": 5, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 9, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 5, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "f2981424e1614695a97496a359d25e15", - "uuidPlanMaster": "34781933dabb4860a6f13e060dcd6da1", - "Axis": "Right", - "ActOn": "UnLoad", - "Place": "H1-8,T16", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 16, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "23f29ad6a1c14d91b4c0cef06cb8c0e2", - "uuidPlanMaster": "492cda5ce1344509aa7e6de74c3adb99", - "Axis": "Right", - "ActOn": "Load", - "Place": "H2-8,T1", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 1, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 2, - "HoleCollective": "11", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "273d1604af89471483084e226ac8b77a", - "uuidPlanMaster": "492cda5ce1344509aa7e6de74c3adb99", - "Axis": "Right", - "ActOn": "Imbibing", - "Place": "H12-8,T9", - "Dosage": 5, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 9, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 12, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "a7e96a266f2348a9bdc303cfc3ecfc71", - "uuidPlanMaster": "492cda5ce1344509aa7e6de74c3adb99", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H5-8,T9", - "Dosage": 5, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 9, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "7f0d2f9ddf674b11b66abd72578ab8f5", - "uuidPlanMaster": "492cda5ce1344509aa7e6de74c3adb99", - "Axis": "Right", - "ActOn": "Blending", - "Place": "H5-8,T9", - "Dosage": 5, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 9, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 5, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "bd37b1848a8542a29ce8189222741de7", - "uuidPlanMaster": "492cda5ce1344509aa7e6de74c3adb99", - "Axis": "Right", - "ActOn": "UnLoad", - "Place": "H1-8,T16", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 16, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "8c093e81f7814096a2c8ddedbd205a16", - "uuidPlanMaster": "4c6274aa17ca48208e4c53ce492c6600", - "Axis": "Right", - "ActOn": "Load", - "Place": "H2-8,T1", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 1, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 2, - "HoleCollective": "11", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "e1e3b8f38d4145ac8d4e2adf7b300d9b", - "uuidPlanMaster": "4c6274aa17ca48208e4c53ce492c6600", - "Axis": "Right", - "ActOn": "Imbibing", - "Place": "H12-8,T9", - "Dosage": 5, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 9, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 12, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "711725130a0c4ad48b0af71f50e27778", - "uuidPlanMaster": "4c6274aa17ca48208e4c53ce492c6600", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H5-8,T9", - "Dosage": 5, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 9, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "19cc2b35116d4f3c9ea3dc59c6be18b8", - "uuidPlanMaster": "4c6274aa17ca48208e4c53ce492c6600", - "Axis": "Right", - "ActOn": "Blending", - "Place": "H5-8,T9", - "Dosage": 5, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 9, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 5, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "158f1b355e1941a49740d5f0caa3004c", - "uuidPlanMaster": "4c6274aa17ca48208e4c53ce492c6600", - "Axis": "Right", - "ActOn": "UnLoad", - "Place": "H1-8,T16", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 16, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "013c560d183c4fa9b105e6f71627d680", - "uuidPlanMaster": "6ac6f11dd23a4b1ab236e0756637680e", - "Axis": "Right", - "ActOn": "Load", - "Place": "H12-8,T1", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 12, - "HoleCollective": "89", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "1226304ac40345f5b8c0f386362f9270", - "uuidPlanMaster": "6ac6f11dd23a4b1ab236e0756637680e", - "Axis": "Right", - "ActOn": "Imbibing", - "Place": "H12-8,T9", - "Dosage": 5, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 9, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 12, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "7757db46abdc4b81971708dcdcb3bc72", - "uuidPlanMaster": "6ac6f11dd23a4b1ab236e0756637680e", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H5-8,T9", - "Dosage": 5, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 9, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "b957fb5f3a724940b4855d57baf3d6b1", - "uuidPlanMaster": "6ac6f11dd23a4b1ab236e0756637680e", - "Axis": "Right", - "ActOn": "UnLoad", - "Place": "H1-8,T16", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 16, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "f1e7836185b44415b1e1ea14f647f133", - "uuidPlanMaster": "3308bab68ff8445f82e4f33737ad8367", - "Axis": "Right", - "ActOn": "Load", - "Place": "H2-8,T1", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 1, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 2, - "HoleCollective": "11", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "4201d362e77941f991be6067c79ac0a8", - "uuidPlanMaster": "3308bab68ff8445f82e4f33737ad8367", - "Axis": "Right", - "ActOn": "Imbibing", - "Place": "H12-8,T9", - "Dosage": 5, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 9, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 12, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "05e2ba2f9c07450ca86adff8107d8898", - "uuidPlanMaster": "3308bab68ff8445f82e4f33737ad8367", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H5-8,T9", - "Dosage": 5, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 9, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "79f4472826e3401e802366703e4c910d", - "uuidPlanMaster": "3308bab68ff8445f82e4f33737ad8367", - "Axis": "Right", - "ActOn": "Blending", - "Place": "H5-8,T9", - "Dosage": 5, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 9, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 5, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "d78628453c5c4b0d8272586865ade817", - "uuidPlanMaster": "3308bab68ff8445f82e4f33737ad8367", - "Axis": "Right", - "ActOn": "UnLoad", - "Place": "H1-8,T16", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 16, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "c7733ce1f6a14ede9cd99b224fb86be5", - "uuidPlanMaster": "1c5450323153441cb10161d1bb8c5101", - "Axis": "Right", - "ActOn": "Load", - "Place": "H12-8,T1", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 12, - "HoleCollective": "89", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "b868cac4c8934ebe9b31ecb3a30f72b6", - "uuidPlanMaster": "1c5450323153441cb10161d1bb8c5101", - "Axis": "Right", - "ActOn": "Imbibing", - "Place": "H12-8,T9", - "Dosage": 5, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 9, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 12, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "509bea9413d94fff9de097762ac9b665", - "uuidPlanMaster": "1c5450323153441cb10161d1bb8c5101", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H5-8,T9", - "Dosage": 5, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 9, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "64c987851d1a4229878d87aa20a5d170", - "uuidPlanMaster": "1c5450323153441cb10161d1bb8c5101", - "Axis": "Right", - "ActOn": "UnLoad", - "Place": "H1-8,T16", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 16, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "a60f9672b5664432a3a526a810f977b6", - "uuidPlanMaster": "ee0737c9ff094600a7f80b1fc490521f", - "Axis": "Right", - "ActOn": "Load", - "Place": "H12-8,T1", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 12, - "HoleCollective": "89", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "449302f6e65c4fe781e58411976f213d", - "uuidPlanMaster": "ee0737c9ff094600a7f80b1fc490521f", - "Axis": "Right", - "ActOn": "Imbibing", - "Place": "H12-8,T9", - "Dosage": 5, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 9, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 12, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "43ba54c26f6349269c15d297f3751bd6", - "uuidPlanMaster": "ee0737c9ff094600a7f80b1fc490521f", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H5-8,T9", - "Dosage": 5, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 9, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "32b14a5604814c9799ce759d8e3a0955", - "uuidPlanMaster": "ee0737c9ff094600a7f80b1fc490521f", - "Axis": "Right", - "ActOn": "UnLoad", - "Place": "H1-8,T16", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 16, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "0299a9463b264aeebee2d5f228572848", - "uuidPlanMaster": "c6dc03959f3d46dc94915b62549555a7", - "Axis": "Right", - "ActOn": "Load", - "Place": "H9-8,T1", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 1, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 9, - "HoleCollective": "68", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "ec7cedf4141744fe84423b17957a180a", - "uuidPlanMaster": "c6dc03959f3d46dc94915b62549555a7", - "Axis": "Right", - "ActOn": "Imbibing", - "Place": "H12-8,T9", - "Dosage": 5, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 9, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 12, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "3a034ab451274a01aa815f75aac40a60", - "uuidPlanMaster": "c6dc03959f3d46dc94915b62549555a7", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H5-8,T9", - "Dosage": 5, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 9, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "cf70e895ec18445ba2957e11f10bc64c", - "uuidPlanMaster": "c6dc03959f3d46dc94915b62549555a7", - "Axis": "Right", - "ActOn": "UnLoad", - "Place": "H1-8,T16", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 16, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "6203a859ee4543afa352b74a63a5ce65", - "uuidPlanMaster": "de42a53d85c845f99d77e7e60f59c602", - "Axis": "Right", - "ActOn": "Load", - "Place": "H9-8,T1", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 1, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 9, - "HoleCollective": "68", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "8b27aec9d06d4219b8432420a47db456", - "uuidPlanMaster": "de42a53d85c845f99d77e7e60f59c602", - "Axis": "Right", - "ActOn": "Imbibing", - "Place": "H12-8,T9", - "Dosage": 5, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 9, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 12, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "2312aeac91b54ace9dcb61d729eab51f", - "uuidPlanMaster": "de42a53d85c845f99d77e7e60f59c602", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H5-8,T9", - "Dosage": 5, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 9, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "c3362253c4954ca194f60c9865f54fea", - "uuidPlanMaster": "de42a53d85c845f99d77e7e60f59c602", - "Axis": "Right", - "ActOn": "UnLoad", - "Place": "H1-8,T16", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 16, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "4f26db99ba1040ee8a2c60325f0268b2", - "uuidPlanMaster": "56894b973f7247f381c1203c66d714a4", - "Axis": "Right", - "ActOn": "Load", - "Place": "H9-8,T1", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 1, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 9, - "HoleCollective": "68", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "c5117cf535ce4e2fa208fad264da6192", - "uuidPlanMaster": "56894b973f7247f381c1203c66d714a4", - "Axis": "Right", - "ActOn": "Imbibing", - "Place": "H12-8,T9", - "Dosage": 5, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 9, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 12, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "e57c92c3c7ab4ab5b4f3d03862725dd9", - "uuidPlanMaster": "56894b973f7247f381c1203c66d714a4", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H5-8,T9", - "Dosage": 5, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 9, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "f17f8de5d4da468c8d19bec6eeaa1bca", - "uuidPlanMaster": "56894b973f7247f381c1203c66d714a4", - "Axis": "Right", - "ActOn": "UnLoad", - "Place": "H1-8,T16", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 16, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "6558b781fabf490485bb1a5973bd9cfc", - "uuidPlanMaster": "6d7c789c50744f078681eff5c314a237", - "Axis": "Right", - "ActOn": "Load", - "Place": "H12-8,T1", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 12, - "HoleCollective": "89", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "5b59d1c352c24f43b399df552399d728", - "uuidPlanMaster": "6d7c789c50744f078681eff5c314a237", - "Axis": "Right", - "ActOn": "Imbibing", - "Place": "H12-8,T9", - "Dosage": 5, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 9, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 12, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "c0545c6ee4c54473b923bcf2df53b16e", - "uuidPlanMaster": "6d7c789c50744f078681eff5c314a237", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H5-8,T9", - "Dosage": 5, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 9, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "eb8679c32404427785f3858183696b6b", - "uuidPlanMaster": "6d7c789c50744f078681eff5c314a237", - "Axis": "Right", - "ActOn": "UnLoad", - "Place": "H1-8,T16", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 16, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "6a60f936339a4d0a92996d3668677286", - "uuidPlanMaster": "e6868dc2e1f7460cb0ecd3cc0cc79f7c", - "Axis": "Right", - "ActOn": "Load", - "Place": "H12-8,T1", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 12, - "HoleCollective": "89", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "560c3e44db844260893b6d0bd19c7f26", - "uuidPlanMaster": "e6868dc2e1f7460cb0ecd3cc0cc79f7c", - "Axis": "Right", - "ActOn": "Imbibing", - "Place": "H12-8,T9", - "Dosage": 5, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 9, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 12, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "dfe869df7cb44d3a8d4eae2a613c9c52", - "uuidPlanMaster": "e6868dc2e1f7460cb0ecd3cc0cc79f7c", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H5-8,T9", - "Dosage": 5, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 9, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "561b618e41ef42d5a889d92717e7427a", - "uuidPlanMaster": "e6868dc2e1f7460cb0ecd3cc0cc79f7c", - "Axis": "Right", - "ActOn": "UnLoad", - "Place": "H1-8,T16", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 16, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "1947d6424b914e849499d6f9f22e5a69", - "uuidPlanMaster": "7d0ead689a4547e4a0ea6adec69f4661", - "Axis": "Right", - "ActOn": "Load", - "Place": "H6-8,T1", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 1, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 6, - "HoleCollective": "48", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "8605e88622684ba0bee4f96916a78a39", - "uuidPlanMaster": "7d0ead689a4547e4a0ea6adec69f4661", - "Axis": "Right", - "ActOn": "Imbibing", - "Place": "H12-8,T9", - "Dosage": 5, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 9, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 12, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "4a33cfa845a04d2a823f4e273e025b22", - "uuidPlanMaster": "7d0ead689a4547e4a0ea6adec69f4661", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H5-8,T9", - "Dosage": 5, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 9, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "6e1be41e0199465896501b11fedf3d59", - "uuidPlanMaster": "7d0ead689a4547e4a0ea6adec69f4661", - "Axis": "Right", - "ActOn": "UnLoad", - "Place": "H1-8,T16", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 16, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "72d1e064f1bd4bcab17f55863bd74bdc", - "uuidPlanMaster": "10075ec6cf9b4e68989ff65ec973e1d5", - "Axis": "Right", - "ActOn": "Load", - "Place": "H9-8,T1", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 1, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 9, - "HoleCollective": "68", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "584ae2403e6f49469a324cc1555c0021", - "uuidPlanMaster": "10075ec6cf9b4e68989ff65ec973e1d5", - "Axis": "Right", - "ActOn": "Imbibing", - "Place": "H12-8,T9", - "Dosage": 5, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 9, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 12, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "e00ddeb5b43a4ed4a068c97b030fe064", - "uuidPlanMaster": "10075ec6cf9b4e68989ff65ec973e1d5", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H5-8,T9", - "Dosage": 5, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 9, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "9debe44a9f3d48b5b8cba4b04c75504a", - "uuidPlanMaster": "10075ec6cf9b4e68989ff65ec973e1d5", - "Axis": "Right", - "ActOn": "UnLoad", - "Place": "H1-8,T16", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 16, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "10efce52eb2c466680ad7d912155fa71", - "uuidPlanMaster": "44738f8cd700427988e3769859dc8644", - "Axis": "Right", - "ActOn": "Load", - "Place": "H9-8,T1", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 1, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 9, - "HoleCollective": "68", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "14a8b5f9904d4838b83c763a55652faf", - "uuidPlanMaster": "44738f8cd700427988e3769859dc8644", - "Axis": "Right", - "ActOn": "Imbibing", - "Place": "H12-8,T9", - "Dosage": 5, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 9, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 12, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "98bf2a15e0f5480998ec1951a5a210e4", - "uuidPlanMaster": "44738f8cd700427988e3769859dc8644", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H5-8,T9", - "Dosage": 5, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 9, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "d0a7b7fa053c46f9aa65eb50e42da208", - "uuidPlanMaster": "44738f8cd700427988e3769859dc8644", - "Axis": "Right", - "ActOn": "UnLoad", - "Place": "H1-8,T16", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 16, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "9c8c7f2ada324425ba2d4337d4650b07", - "uuidPlanMaster": "94b61d85e1004ba2bf5c0b25279b0e89", - "Axis": "Right", - "ActOn": "Load", - "Place": "H8-8,T1", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 1, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 8, - "HoleCollective": "60", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "82a667a34803442bb18cf1468dabb3d0", - "uuidPlanMaster": "94b61d85e1004ba2bf5c0b25279b0e89", - "Axis": "Right", - "ActOn": "Imbibing", - "Place": "H12-8,T9", - "Dosage": 5, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 9, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 12, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "bb03e7d888bd4e38a6528bef6bac98bf", - "uuidPlanMaster": "94b61d85e1004ba2bf5c0b25279b0e89", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H5-8,T9", - "Dosage": 5, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 9, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "e9ce7f5e114c443fb3a6e5c8e4b92868", - "uuidPlanMaster": "94b61d85e1004ba2bf5c0b25279b0e89", - "Axis": "Right", - "ActOn": "UnLoad", - "Place": "H1-8,T16", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 16, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "e7bf0d39bacc4ad28cfe52e8004f34f5", - "uuidPlanMaster": "855dc94f6514475aac8e6bb7699979f3", - "Axis": "Right", - "ActOn": "Load", - "Place": "H12-8,T1", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 1, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 12, - "HoleCollective": "91", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "8714c80ce3094cee9ab533491a1857cd", - "uuidPlanMaster": "855dc94f6514475aac8e6bb7699979f3", - "Axis": "Right", - "ActOn": "Imbibing", - "Place": "H12-8,T9", - "Dosage": 5, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 9, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 12, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "9ff92765daae447987bcbdfd72267cbf", - "uuidPlanMaster": "855dc94f6514475aac8e6bb7699979f3", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H5-8,T9", - "Dosage": 5, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 9, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "221cc942a6a64b52b7895f0e03f53d2b", - "uuidPlanMaster": "855dc94f6514475aac8e6bb7699979f3", - "Axis": "Right", - "ActOn": "UnLoad", - "Place": "H1-8,T16", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 16, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "4e0dbfe05a5e4c46abe06c8e8501f249", - "uuidPlanMaster": "20df19779aa044d291f8eaeb43c574e8", - "Axis": "Right", - "ActOn": "Load", - "Place": "H10-8,T1", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 1, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 10, - "HoleCollective": "76", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "28b922353bd44887ae964314ee2cebfd", - "uuidPlanMaster": "20df19779aa044d291f8eaeb43c574e8", - "Axis": "Right", - "ActOn": "Imbibing", - "Place": "H12-8,T9", - "Dosage": 5, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 9, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 12, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "c6714b4a3ea34403ad9aea6d41f49e60", - "uuidPlanMaster": "20df19779aa044d291f8eaeb43c574e8", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H5-8,T9", - "Dosage": 5, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 9, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "6f8536c6c2964b40b6c506d5d01a5ec8", - "uuidPlanMaster": "20df19779aa044d291f8eaeb43c574e8", - "Axis": "Right", - "ActOn": "UnLoad", - "Place": "H1-8,T16", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 16, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "9c69d1ae0711443ca9078ccccc24d044", - "uuidPlanMaster": "5c5d6046573f47098389f6e051e9b8f8", - "Axis": "Right", - "ActOn": "Load", - "Place": "H6-8,T1", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 1, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 6, - "HoleCollective": "48", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "459d684fd4da48e7b7ca81d61567f725", - "uuidPlanMaster": "5c5d6046573f47098389f6e051e9b8f8", - "Axis": "Right", - "ActOn": "Imbibing", - "Place": "H12-8,T9", - "Dosage": 5, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 9, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 12, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "d54d397e50534efd88ab2fedf6be2dab", - "uuidPlanMaster": "5c5d6046573f47098389f6e051e9b8f8", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H5-8,T9", - "Dosage": 5, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 9, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "fc1253ab73224136b679519d71cec087", - "uuidPlanMaster": "5c5d6046573f47098389f6e051e9b8f8", - "Axis": "Right", - "ActOn": "UnLoad", - "Place": "H1-8,T16", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 16, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "59483af6af6545eb86b751fa72996a2c", - "uuidPlanMaster": "6cf9fe918434498f957db8a9bbc890c2", - "Axis": "Right", - "ActOn": "Load", - "Place": "H6-8,T1", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 1, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 6, - "HoleCollective": "48", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "27144cd026d74fc5b6fbede937beb99f", - "uuidPlanMaster": "6cf9fe918434498f957db8a9bbc890c2", - "Axis": "Right", - "ActOn": "Imbibing", - "Place": "H12-8,T9", - "Dosage": 5, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 9, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 12, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "c7433b9171f34b27bfb19881ebd4ebd3", - "uuidPlanMaster": "6cf9fe918434498f957db8a9bbc890c2", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H5-8,T9", - "Dosage": 5, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 9, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "37b57a0917d8407cb8886980f73c0177", - "uuidPlanMaster": "6cf9fe918434498f957db8a9bbc890c2", - "Axis": "Right", - "ActOn": "UnLoad", - "Place": "H1-8,T16", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 16, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "3e5ba31f4c204f0c97e6a6ee10d28da7", - "uuidPlanMaster": "9b163a306fe742c69d62c8d72c745b47", - "Axis": "Right", - "ActOn": "Load", - "Place": "H5-8,T5", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 5, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 5, - "HoleCollective": "35", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "83af199ddbd040f7a253cdf7fb01f514", - "uuidPlanMaster": "9b163a306fe742c69d62c8d72c745b47", - "Axis": "Right", - "ActOn": "Imbibing", - "Place": "H12-8,T9", - "Dosage": 5, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 9, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 12, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "e36a60a778d94f47b7869e99265c26cd", - "uuidPlanMaster": "9b163a306fe742c69d62c8d72c745b47", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H12-8,T10", - "Dosage": 1, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 10, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 12, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "1818e1c255664fc587cc46c9fa48feb2", - "uuidPlanMaster": "9b163a306fe742c69d62c8d72c745b47", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H1-8,T13", - "Dosage": 1, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "197f96fa1e5d483a91f61fadac36219b", - "uuidPlanMaster": "9b163a306fe742c69d62c8d72c745b47", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H5-8,T14", - "Dosage": 1, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 14, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "4689e6803ff64ef1b0271c21ef39132e", - "uuidPlanMaster": "9b163a306fe742c69d62c8d72c745b47", - "Axis": "Right", - "ActOn": "Blending", - "Place": "H12-8,T10", - "Dosage": 5, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 10, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 12, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 3, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "c2c4377f8d8b4278ab15d155fc3480a4", - "uuidPlanMaster": "9b163a306fe742c69d62c8d72c745b47", - "Axis": "Right", - "ActOn": "UnLoad", - "Place": "H1-8,T16", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 16, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "487898e7f6424fdfbf6439c06379fc6f", - "uuidPlanMaster": "ef09cec147b64a15bdb3759e5dada10a", - "Axis": "Right", - "ActOn": "Load", - "Place": "H5-8,T5", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 5, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 5, - "HoleCollective": "35", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "3b803a1065f6460db96153bf838ee568", - "uuidPlanMaster": "ef09cec147b64a15bdb3759e5dada10a", - "Axis": "Right", - "ActOn": "Imbibing", - "Place": "H12-8,T9", - "Dosage": 5, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 9, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 12, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "2fc025bb72244f9a8f976bcd39dd1253", - "uuidPlanMaster": "ef09cec147b64a15bdb3759e5dada10a", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H12-8,T10", - "Dosage": 1, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 10, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 12, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "03bd0714c3734d98b168be0ddf0c3740", - "uuidPlanMaster": "ef09cec147b64a15bdb3759e5dada10a", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H1-8,T13", - "Dosage": 1, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "8c6605cae57e48c0b5be09cbd88ad594", - "uuidPlanMaster": "ef09cec147b64a15bdb3759e5dada10a", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H5-8,T14", - "Dosage": 1, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 14, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "892630546fab45f09b10a8d080eefb40", - "uuidPlanMaster": "ef09cec147b64a15bdb3759e5dada10a", - "Axis": "Right", - "ActOn": "Blending", - "Place": "H12-8,T10", - "Dosage": 5, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 10, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 12, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 3, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "1f3b990ba4b84bf0878066a779e18589", - "uuidPlanMaster": "ef09cec147b64a15bdb3759e5dada10a", - "Axis": "Right", - "ActOn": "UnLoad", - "Place": "H1-8,T16", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 16, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "5ea21c425fa04add92ef368c50d0262f", - "uuidPlanMaster": "1361bdd242704652a5a21949aa2cc94e", - "Axis": "Right", - "ActOn": "Load", - "Place": "H9-8,T1", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 1, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 9, - "HoleCollective": "68", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "86e2fd807e3944faa481db15f8673683", - "uuidPlanMaster": "1361bdd242704652a5a21949aa2cc94e", - "Axis": "Right", - "ActOn": "Imbibing", - "Place": "H12-8,T9", - "Dosage": 5, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 9, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 12, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "ddc30e613b6a403ab3a63a7fe8ca950b", - "uuidPlanMaster": "1361bdd242704652a5a21949aa2cc94e", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H5-8,T9", - "Dosage": 5, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 9, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "90d182672808435dbbe77831427fe2ef", - "uuidPlanMaster": "1361bdd242704652a5a21949aa2cc94e", - "Axis": "Right", - "ActOn": "UnLoad", - "Place": "H1-8,T16", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 16, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "df7fedd3aeb540889a92cafb971c5eb7", - "uuidPlanMaster": "e8784c290e6f4f43bc281fb696753b09", - "Axis": "Right", - "ActOn": "Load", - "Place": "H5-8,T5", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 5, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 5, - "HoleCollective": "35", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "1d6b3b4ebc2545019a9a1ea702379d02", - "uuidPlanMaster": "e8784c290e6f4f43bc281fb696753b09", - "Axis": "Right", - "ActOn": "Imbibing", - "Place": "H12-8,T9", - "Dosage": 5, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 9, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 12, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "c22ad117a1b446768896a10e2a42fa66", - "uuidPlanMaster": "e8784c290e6f4f43bc281fb696753b09", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H12-8,T10", - "Dosage": 1, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 10, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 12, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "b39a0bfa6b1e41d6b765c48a62201a22", - "uuidPlanMaster": "e8784c290e6f4f43bc281fb696753b09", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H1-8,T13", - "Dosage": 1, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "8894bb79e8ce44fb814b3153ff71052c", - "uuidPlanMaster": "e8784c290e6f4f43bc281fb696753b09", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H5-8,T14", - "Dosage": 1, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 14, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "0aed0d6154884e8e8540087de522201e", - "uuidPlanMaster": "e8784c290e6f4f43bc281fb696753b09", - "Axis": "Right", - "ActOn": "Blending", - "Place": "H12-8,T10", - "Dosage": 5, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 10, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 12, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 3, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "6e92e23b3a8447aab41ba70823adfaaa", - "uuidPlanMaster": "e8784c290e6f4f43bc281fb696753b09", - "Axis": "Right", - "ActOn": "UnLoad", - "Place": "H1-8,T16", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 16, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "bdffca53266a43efacae02749b3f6758", - "uuidPlanMaster": "1078c197e21f428eb13e19cbd2871acf", - "Axis": "Right", - "ActOn": "Load", - "Place": "H5-8,T5", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 5, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 5, - "HoleCollective": "35", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "da10fee28d024cf892a39c4a002ff54b", - "uuidPlanMaster": "1078c197e21f428eb13e19cbd2871acf", - "Axis": "Right", - "ActOn": "Imbibing", - "Place": "H12-8,T9", - "Dosage": 5, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 9, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 12, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "90ff13b698df4ec389d35e9b64221313", - "uuidPlanMaster": "1078c197e21f428eb13e19cbd2871acf", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H1-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "56e7e337f33643faaff976503fdff47f", - "uuidPlanMaster": "1078c197e21f428eb13e19cbd2871acf", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H1-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "44573058521541c9a28ce34640140304", - "uuidPlanMaster": "1078c197e21f428eb13e19cbd2871acf", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H1-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "e94318f2c58d4e508861663375398929", - "uuidPlanMaster": "1078c197e21f428eb13e19cbd2871acf", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H1-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "abcab404e5c84746809295377ef20cc5", - "uuidPlanMaster": "1078c197e21f428eb13e19cbd2871acf", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H1-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "efc684a9b7984c60aa3c47850525c21a", - "uuidPlanMaster": "1078c197e21f428eb13e19cbd2871acf", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H1-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 6, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "061968ada89641658fd5596aeb8e7c6b", - "uuidPlanMaster": "1078c197e21f428eb13e19cbd2871acf", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H1-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 7, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "f504fac3c10a4bfa9bba4545d1cc4be9", - "uuidPlanMaster": "1078c197e21f428eb13e19cbd2871acf", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H1-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "2faf107ab49b4278b1ea08f11cb43cac", - "uuidPlanMaster": "1078c197e21f428eb13e19cbd2871acf", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H2-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 2, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "7bf5514bc53545e2b10f86eb8db9924e", - "uuidPlanMaster": "1078c197e21f428eb13e19cbd2871acf", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H2-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 2, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "8e5db855b6e14cf3a9b270715a44bbb2", - "uuidPlanMaster": "1078c197e21f428eb13e19cbd2871acf", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H2-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 2, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "2bf0fd7e9ddf49a1b54245433d825a01", - "uuidPlanMaster": "1078c197e21f428eb13e19cbd2871acf", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H2-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 2, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "949ad78a3bff4f71b5940e2fa954e030", - "uuidPlanMaster": "1078c197e21f428eb13e19cbd2871acf", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H2-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 2, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "7933583ccc7745a3a2975f4540ae9055", - "uuidPlanMaster": "1078c197e21f428eb13e19cbd2871acf", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H2-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 6, - "HoleColum": 2, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "0babdac9ff8e4c80afb1768297fc1240", - "uuidPlanMaster": "1078c197e21f428eb13e19cbd2871acf", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H2-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 7, - "HoleColum": 2, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "8343896a86524c1a94e13f57fdd0f1e0", - "uuidPlanMaster": "1078c197e21f428eb13e19cbd2871acf", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H2-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 2, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "5b92346432d345c192cc4eaf5a88f51d", - "uuidPlanMaster": "1078c197e21f428eb13e19cbd2871acf", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H3-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "00e0ecdadf3d470fa783fa1c54e35520", - "uuidPlanMaster": "1078c197e21f428eb13e19cbd2871acf", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H3-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "a05cded56b624075af14609287902153", - "uuidPlanMaster": "1078c197e21f428eb13e19cbd2871acf", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H3-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "3db534eb8101480d84dc6ffdee3b689c", - "uuidPlanMaster": "1078c197e21f428eb13e19cbd2871acf", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H3-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "afae74176380424594cae1c6cdae5025", - "uuidPlanMaster": "1078c197e21f428eb13e19cbd2871acf", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H3-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "a57f68c1c36a40f18db9ce6b07eb1173", - "uuidPlanMaster": "1078c197e21f428eb13e19cbd2871acf", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H3-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 6, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "9764d5217f4f41bba9917b1926cf7036", - "uuidPlanMaster": "1078c197e21f428eb13e19cbd2871acf", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H3-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 7, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "0b485812b7cc4d6c86028ad1efeea291", - "uuidPlanMaster": "1078c197e21f428eb13e19cbd2871acf", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H3-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "0b66efca39a14f64a31f3a0bd73d0e33", - "uuidPlanMaster": "1078c197e21f428eb13e19cbd2871acf", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H4-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 4, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "9836d851aaa44e4d8d4e42ca67fa24e0", - "uuidPlanMaster": "1078c197e21f428eb13e19cbd2871acf", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H4-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 4, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "4adb6376c08e44a3854c1f6bba5838e5", - "uuidPlanMaster": "1078c197e21f428eb13e19cbd2871acf", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H4-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 4, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "5ec12b7b172144eaa3b57a00a246d440", - "uuidPlanMaster": "1078c197e21f428eb13e19cbd2871acf", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H4-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 4, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "d4872bdc5137448198f406b1d7dafbaf", - "uuidPlanMaster": "1078c197e21f428eb13e19cbd2871acf", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H4-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 4, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "9af5746e711d4d918eef3445ac5e9970", - "uuidPlanMaster": "1078c197e21f428eb13e19cbd2871acf", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H4-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 6, - "HoleColum": 4, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "169b89812bc54092b73ee58acc90cca2", - "uuidPlanMaster": "1078c197e21f428eb13e19cbd2871acf", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H4-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 7, - "HoleColum": 4, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "af1c4abd63a24069a2c10e2fa3392034", - "uuidPlanMaster": "1078c197e21f428eb13e19cbd2871acf", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H4-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 4, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "a84a5b9878364de3a65e8a5db99fea0e", - "uuidPlanMaster": "1078c197e21f428eb13e19cbd2871acf", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H5-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "24364c1e30d64d75af5600d212eef281", - "uuidPlanMaster": "1078c197e21f428eb13e19cbd2871acf", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H5-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "1b3653fb49f64ec5b87db41182f77589", - "uuidPlanMaster": "1078c197e21f428eb13e19cbd2871acf", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H5-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "13b7bd7cb84d4dfb876994664151e479", - "uuidPlanMaster": "1078c197e21f428eb13e19cbd2871acf", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H5-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "7c7ac6469f124648986523fd5902ed40", - "uuidPlanMaster": "1078c197e21f428eb13e19cbd2871acf", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H5-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "dcfea128d34d4463b78f3b7cbfce6cbd", - "uuidPlanMaster": "1078c197e21f428eb13e19cbd2871acf", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H5-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 6, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "393628aac32d40c0a5c0ef4aaad248a7", - "uuidPlanMaster": "1078c197e21f428eb13e19cbd2871acf", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H5-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 7, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "a01b244be7c44705bfeb20dbb8a044a1", - "uuidPlanMaster": "1078c197e21f428eb13e19cbd2871acf", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H5-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "a6cc17e3e8344b099094e52b519b964e", - "uuidPlanMaster": "1078c197e21f428eb13e19cbd2871acf", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H6-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 6, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "826af5b2912c456b8849271fa37cc36f", - "uuidPlanMaster": "1078c197e21f428eb13e19cbd2871acf", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H6-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 6, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "2ca08e0c58a04729a07cb97f40ed06ad", - "uuidPlanMaster": "1078c197e21f428eb13e19cbd2871acf", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H6-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 6, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "7fa3893d72e74e609e630be77c0ce0ad", - "uuidPlanMaster": "1078c197e21f428eb13e19cbd2871acf", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H6-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 6, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "2633b1e2058d4d32a4bb41464d9b9847", - "uuidPlanMaster": "1078c197e21f428eb13e19cbd2871acf", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H6-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 6, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "c60ec71553bf4fb6b6c2a058134a8929", - "uuidPlanMaster": "1078c197e21f428eb13e19cbd2871acf", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H6-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 6, - "HoleColum": 6, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "af9acf738dfc450da5a02899f617a5d7", - "uuidPlanMaster": "1078c197e21f428eb13e19cbd2871acf", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H6-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 7, - "HoleColum": 6, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "b871a946283545358d8caedbc7c23901", - "uuidPlanMaster": "1078c197e21f428eb13e19cbd2871acf", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H6-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 6, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "0b1a694aa92647cdbb6b8fed1ca81a1b", - "uuidPlanMaster": "1078c197e21f428eb13e19cbd2871acf", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H7-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 7, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "cf8286c00fbf44fda237c8c71b5015ec", - "uuidPlanMaster": "1078c197e21f428eb13e19cbd2871acf", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H7-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 7, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "e50b51a8d076452fa93ea332d7de1224", - "uuidPlanMaster": "1078c197e21f428eb13e19cbd2871acf", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H7-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 7, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "afacf577507a4e66bd9fce5a296951dd", - "uuidPlanMaster": "1078c197e21f428eb13e19cbd2871acf", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H7-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 7, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "01688309614e46c6a52ca07759f65220", - "uuidPlanMaster": "1078c197e21f428eb13e19cbd2871acf", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H7-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 7, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "2c09f45e8a454ff5bf1c0feed3fa7a39", - "uuidPlanMaster": "1078c197e21f428eb13e19cbd2871acf", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H7-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 6, - "HoleColum": 7, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "688cf43266814bbc9e0393e0f9eb3972", - "uuidPlanMaster": "1078c197e21f428eb13e19cbd2871acf", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H7-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 7, - "HoleColum": 7, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "f8f9aac2cf7a4cd6b303e97d956cdfd2", - "uuidPlanMaster": "1078c197e21f428eb13e19cbd2871acf", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H7-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 7, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "a063b1a2b1ee497b9acf7b03fba09cc1", - "uuidPlanMaster": "1078c197e21f428eb13e19cbd2871acf", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H8-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 8, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "fa35937643c9470d8ac14389d9de936d", - "uuidPlanMaster": "1078c197e21f428eb13e19cbd2871acf", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H8-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 8, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "0155a8f245bc4f459d6da0f5f1b32c91", - "uuidPlanMaster": "1078c197e21f428eb13e19cbd2871acf", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H8-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 8, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "34032672b7a74df9bc37787c4d52d1f5", - "uuidPlanMaster": "1078c197e21f428eb13e19cbd2871acf", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H8-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 8, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "a8f288dea9dc43e98b31ff0c9c4918a4", - "uuidPlanMaster": "1078c197e21f428eb13e19cbd2871acf", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H8-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 8, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "c7f822c682fd4e78aa5909f7599f7f56", - "uuidPlanMaster": "1078c197e21f428eb13e19cbd2871acf", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H8-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 6, - "HoleColum": 8, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "c97e971e519747eb9e4b14c3ed8467d4", - "uuidPlanMaster": "1078c197e21f428eb13e19cbd2871acf", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H8-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 7, - "HoleColum": 8, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "1327aac6f934481d88fc005782ad6e3f", - "uuidPlanMaster": "1078c197e21f428eb13e19cbd2871acf", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H8-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 8, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "6796626398b44880a0e5dbcecc0eba81", - "uuidPlanMaster": "1078c197e21f428eb13e19cbd2871acf", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H9-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 9, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "327b045917094d58a42d0485ab97b4b6", - "uuidPlanMaster": "1078c197e21f428eb13e19cbd2871acf", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H9-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 9, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "76bc2e66aeb6461bad205a5730296456", - "uuidPlanMaster": "1078c197e21f428eb13e19cbd2871acf", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H9-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 9, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "65374971605c49fca16f1e9b7082132e", - "uuidPlanMaster": "1078c197e21f428eb13e19cbd2871acf", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H9-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 9, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "1119406b4d644997972d6aaeb383755f", - "uuidPlanMaster": "1078c197e21f428eb13e19cbd2871acf", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H9-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 9, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "7ec44a6b38b947358c064cf69fe83191", - "uuidPlanMaster": "1078c197e21f428eb13e19cbd2871acf", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H9-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 6, - "HoleColum": 9, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "5ce36222a4f84ff69c9c8fc73bcefe33", - "uuidPlanMaster": "1078c197e21f428eb13e19cbd2871acf", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H9-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 7, - "HoleColum": 9, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "fc161e5c938a462bbc294a06598f3340", - "uuidPlanMaster": "1078c197e21f428eb13e19cbd2871acf", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H9-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 9, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "f6c995f52638461599f5de0b3b96f70a", - "uuidPlanMaster": "1078c197e21f428eb13e19cbd2871acf", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H10-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 10, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "4fd5ed35a6c348f5a751afa7b9a8b4a8", - "uuidPlanMaster": "1078c197e21f428eb13e19cbd2871acf", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H10-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 10, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "15daca9670e740beb191c1a45e6e8d28", - "uuidPlanMaster": "1078c197e21f428eb13e19cbd2871acf", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H10-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 10, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "415e917a4f56477790093ac1b57d17ef", - "uuidPlanMaster": "1078c197e21f428eb13e19cbd2871acf", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H10-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 10, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "fefc8ae4d5cd4ca5aa418fe816bbdbc7", - "uuidPlanMaster": "1078c197e21f428eb13e19cbd2871acf", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H10-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 10, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "32df123c92a84a038a0b2fb608673394", - "uuidPlanMaster": "1078c197e21f428eb13e19cbd2871acf", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H10-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 6, - "HoleColum": 10, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "b23634ca5add4083bb38b9cafce93e9f", - "uuidPlanMaster": "1078c197e21f428eb13e19cbd2871acf", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H10-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 7, - "HoleColum": 10, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "328d3ddba6d747e6a90d668de531f727", - "uuidPlanMaster": "1078c197e21f428eb13e19cbd2871acf", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H10-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 10, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "9d21c51b103e4e2996529bf98f9eca38", - "uuidPlanMaster": "1078c197e21f428eb13e19cbd2871acf", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H11-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 11, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "1add6204fde2410bb082c79ab92b1600", - "uuidPlanMaster": "1078c197e21f428eb13e19cbd2871acf", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H11-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 11, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "aad00dfa61bd4b13ba7af00b29814c4d", - "uuidPlanMaster": "1078c197e21f428eb13e19cbd2871acf", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H11-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 11, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "6e16fa6b39f2487590d255f8d2e77d45", - "uuidPlanMaster": "1078c197e21f428eb13e19cbd2871acf", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H11-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 11, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "d5b5bc76397c4829a9e6bc67060dadc1", - "uuidPlanMaster": "1078c197e21f428eb13e19cbd2871acf", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H11-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 11, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "2f7cd6cfafd447cd8d0bb7fe267966f9", - "uuidPlanMaster": "1078c197e21f428eb13e19cbd2871acf", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H11-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 6, - "HoleColum": 11, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "9abab6e383224542b662fa70419dc270", - "uuidPlanMaster": "1078c197e21f428eb13e19cbd2871acf", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H11-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 7, - "HoleColum": 11, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "b8917da039574359ae4b488161362849", - "uuidPlanMaster": "1078c197e21f428eb13e19cbd2871acf", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H11-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 11, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "7d36c9f208cb4cd79448e0c3adef85b7", - "uuidPlanMaster": "1078c197e21f428eb13e19cbd2871acf", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H12-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 12, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "6e0ed4ed371b4bd49b49d70f377f3e41", - "uuidPlanMaster": "1078c197e21f428eb13e19cbd2871acf", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H12-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 12, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "297b5ee8949249329382c6a047c4bb2c", - "uuidPlanMaster": "1078c197e21f428eb13e19cbd2871acf", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H12-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 12, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "70912a408ef24afcb8fa3a51a22ac09a", - "uuidPlanMaster": "1078c197e21f428eb13e19cbd2871acf", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H12-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 12, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "329319e2f3fc4d13aab4f598682be1f8", - "uuidPlanMaster": "1078c197e21f428eb13e19cbd2871acf", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H12-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 12, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "b9207cdb329e411d9ad45351f11eec06", - "uuidPlanMaster": "1078c197e21f428eb13e19cbd2871acf", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H12-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 6, - "HoleColum": 12, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "9477dd099604465782e8269344ba668f", - "uuidPlanMaster": "1078c197e21f428eb13e19cbd2871acf", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H12-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 7, - "HoleColum": 12, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "6cfb836904ba4a538cf53c13d14bff9a", - "uuidPlanMaster": "1078c197e21f428eb13e19cbd2871acf", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H12-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 12, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "a926801d53d34977ab9cf249ce834c09", - "uuidPlanMaster": "1078c197e21f428eb13e19cbd2871acf", - "Axis": "Right", - "ActOn": "Blending", - "Place": "H12-8,T10", - "Dosage": 5, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 10, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 12, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 3, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "0fdbe1bfd0b04dc3a169c8c3fb84f62b", - "uuidPlanMaster": "1078c197e21f428eb13e19cbd2871acf", - "Axis": "Right", - "ActOn": "UnLoad", - "Place": "H1-8,T16", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 16, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "7b2221d7e0494a729dc00554006fbffc", - "uuidPlanMaster": "0e319589c6fe4bd8a4b72342172e5d33", - "Axis": "Right", - "ActOn": "Load", - "Place": "H5-8,T5", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 5, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 5, - "HoleCollective": "35", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "2a7c5a2caa3c4528a151a7a48f0ae1b9", - "uuidPlanMaster": "0e319589c6fe4bd8a4b72342172e5d33", - "Axis": "Right", - "ActOn": "Imbibing", - "Place": "H12-8,T9", - "Dosage": 5, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 9, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 12, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "3d36ca34e20d4f0690b97d4c6a3704d7", - "uuidPlanMaster": "0e319589c6fe4bd8a4b72342172e5d33", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H1-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "f4cad3aeed6640d4bc81a1f2ba217b72", - "uuidPlanMaster": "0e319589c6fe4bd8a4b72342172e5d33", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H1-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "010eaf6328ed43b9873c587ad39eea3b", - "uuidPlanMaster": "0e319589c6fe4bd8a4b72342172e5d33", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H1-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "afc4ffd3aac546fca12c3eadacc857f1", - "uuidPlanMaster": "0e319589c6fe4bd8a4b72342172e5d33", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H1-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "e58ba16fd1b34c8bab78496cdf4cf802", - "uuidPlanMaster": "0e319589c6fe4bd8a4b72342172e5d33", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H1-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "722d3ba44e7f429f9f09c889ee008704", - "uuidPlanMaster": "0e319589c6fe4bd8a4b72342172e5d33", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H1-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 6, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "c9d236aeec0a4676a8a947e5d7e591df", - "uuidPlanMaster": "0e319589c6fe4bd8a4b72342172e5d33", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H1-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 7, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "fe6fba078d184bd7b993daeb2d397162", - "uuidPlanMaster": "0e319589c6fe4bd8a4b72342172e5d33", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H1-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "3e81c4d0f1a94d1192b35f9d335c54c9", - "uuidPlanMaster": "0e319589c6fe4bd8a4b72342172e5d33", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H2-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 2, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "415c2071a8504de9a3bf1ed6e66ca5fe", - "uuidPlanMaster": "0e319589c6fe4bd8a4b72342172e5d33", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H2-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 2, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "7a6422c9c41744559bfb69c69c62f1d8", - "uuidPlanMaster": "0e319589c6fe4bd8a4b72342172e5d33", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H2-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 2, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "f90558f3f3004aaeabb4ce4bc87a0e09", - "uuidPlanMaster": "0e319589c6fe4bd8a4b72342172e5d33", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H2-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 2, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "7439c247c518467dbae6b6cddf9d16a4", - "uuidPlanMaster": "0e319589c6fe4bd8a4b72342172e5d33", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H2-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 2, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "33cbaae041ec40e9b711088b14599008", - "uuidPlanMaster": "0e319589c6fe4bd8a4b72342172e5d33", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H2-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 6, - "HoleColum": 2, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "a7a5530e7830493cbbf946a6aacc5444", - "uuidPlanMaster": "0e319589c6fe4bd8a4b72342172e5d33", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H2-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 7, - "HoleColum": 2, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "1ac8b62c773f48a995f7dd31c8b04c8d", - "uuidPlanMaster": "0e319589c6fe4bd8a4b72342172e5d33", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H2-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 2, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "e3bc4b203e8f4c33b9af8134cf641373", - "uuidPlanMaster": "0e319589c6fe4bd8a4b72342172e5d33", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H3-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "109f99d99bc14859853bc3b038e8438b", - "uuidPlanMaster": "0e319589c6fe4bd8a4b72342172e5d33", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H3-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "2a552b0b4f56435bb29a1b0c784ce5d7", - "uuidPlanMaster": "0e319589c6fe4bd8a4b72342172e5d33", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H3-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "6e788cde28854d82a407125d86fde8ca", - "uuidPlanMaster": "0e319589c6fe4bd8a4b72342172e5d33", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H3-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "8f917233aba642af8afc7c7a05616a97", - "uuidPlanMaster": "0e319589c6fe4bd8a4b72342172e5d33", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H3-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "f1d2e7dbad64419e90e2fa8cdf701bcb", - "uuidPlanMaster": "0e319589c6fe4bd8a4b72342172e5d33", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H3-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 6, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "a4c5be91634545f9a1e122bafcf9eaa1", - "uuidPlanMaster": "0e319589c6fe4bd8a4b72342172e5d33", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H3-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 7, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "f52a4a4432ea4cfcb22796f15106e16b", - "uuidPlanMaster": "0e319589c6fe4bd8a4b72342172e5d33", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H3-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "2060af8fb06e48c69ac10df30b6c5ded", - "uuidPlanMaster": "0e319589c6fe4bd8a4b72342172e5d33", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H4-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 4, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "d0f639d8c89b43d7a5f973ad81b77a67", - "uuidPlanMaster": "0e319589c6fe4bd8a4b72342172e5d33", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H4-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 4, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "c855f848fc9a4854af7af8eea76d70e2", - "uuidPlanMaster": "0e319589c6fe4bd8a4b72342172e5d33", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H4-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 4, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "8ad8d1a93bea43e0b07a75042b2eb82f", - "uuidPlanMaster": "0e319589c6fe4bd8a4b72342172e5d33", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H4-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 4, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "409f31575a3d4fe1ba831648551bde4e", - "uuidPlanMaster": "0e319589c6fe4bd8a4b72342172e5d33", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H4-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 4, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "4267c277ae194e6b991e6617da505657", - "uuidPlanMaster": "0e319589c6fe4bd8a4b72342172e5d33", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H4-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 6, - "HoleColum": 4, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "20ff0d86d3e54c1d820170e00d91a0ab", - "uuidPlanMaster": "0e319589c6fe4bd8a4b72342172e5d33", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H4-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 7, - "HoleColum": 4, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "4cf73c627e054cccb230d15b0736ff24", - "uuidPlanMaster": "0e319589c6fe4bd8a4b72342172e5d33", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H4-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 4, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "41df20fa698043418fdb7dec5dbf413a", - "uuidPlanMaster": "0e319589c6fe4bd8a4b72342172e5d33", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H5-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "4f5a664b84f04d7285ac0411d488a45d", - "uuidPlanMaster": "0e319589c6fe4bd8a4b72342172e5d33", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H5-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "36f5d8967e1c43d18e7f07dbfa0ee6a8", - "uuidPlanMaster": "0e319589c6fe4bd8a4b72342172e5d33", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H5-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "29587cfaa9c34d5892b66766f1da6f49", - "uuidPlanMaster": "0e319589c6fe4bd8a4b72342172e5d33", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H5-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "6045674a8c1f4bd982dd7ce813a1c5b5", - "uuidPlanMaster": "0e319589c6fe4bd8a4b72342172e5d33", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H5-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "a95842f0cee342e097ef46529ac8983e", - "uuidPlanMaster": "0e319589c6fe4bd8a4b72342172e5d33", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H5-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 6, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "98ec07f965c344feb605973ff8983540", - "uuidPlanMaster": "0e319589c6fe4bd8a4b72342172e5d33", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H5-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 7, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "bff557263e3b4f3993ee6d61f029079a", - "uuidPlanMaster": "0e319589c6fe4bd8a4b72342172e5d33", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H5-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "45c14f213dd74d03b2f1d705fddbdaea", - "uuidPlanMaster": "0e319589c6fe4bd8a4b72342172e5d33", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H6-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 6, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "8dac23fc927c403bb8b8c4b995729d34", - "uuidPlanMaster": "0e319589c6fe4bd8a4b72342172e5d33", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H6-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 6, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "c0390f05064247548744141b6fd2c0f3", - "uuidPlanMaster": "0e319589c6fe4bd8a4b72342172e5d33", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H6-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 6, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "a9af323fb1a74291a38629f7dd999f69", - "uuidPlanMaster": "0e319589c6fe4bd8a4b72342172e5d33", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H6-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 6, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "c15f5ee566a34600a2183b336a0e1de0", - "uuidPlanMaster": "0e319589c6fe4bd8a4b72342172e5d33", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H6-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 6, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "7745b2ad7ca248cea1f28bb969c00af1", - "uuidPlanMaster": "0e319589c6fe4bd8a4b72342172e5d33", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H6-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 6, - "HoleColum": 6, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "2f72fce143e447c89495cf87379a6fa9", - "uuidPlanMaster": "0e319589c6fe4bd8a4b72342172e5d33", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H6-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 7, - "HoleColum": 6, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "ac2e31d89cfa4437bfbe69674dfd1f82", - "uuidPlanMaster": "0e319589c6fe4bd8a4b72342172e5d33", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H6-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 6, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "b86ed304aad54e87aec03718924618a1", - "uuidPlanMaster": "0e319589c6fe4bd8a4b72342172e5d33", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H7-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 7, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "1195a10bd5a64f3889bca0b73e88b987", - "uuidPlanMaster": "0e319589c6fe4bd8a4b72342172e5d33", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H7-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 7, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "45243b6aaa6e42d0b85e1835177ade86", - "uuidPlanMaster": "0e319589c6fe4bd8a4b72342172e5d33", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H7-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 7, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "392b320c03fd4ffc8168439ed3452cc5", - "uuidPlanMaster": "0e319589c6fe4bd8a4b72342172e5d33", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H7-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 7, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "5786d19618764951bd0ad97c1e6ffa00", - "uuidPlanMaster": "0e319589c6fe4bd8a4b72342172e5d33", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H7-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 7, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "9b62134f66f54ce9b70a877af6602ae8", - "uuidPlanMaster": "0e319589c6fe4bd8a4b72342172e5d33", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H7-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 6, - "HoleColum": 7, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "880a790e13014725bec3e61fed60b41b", - "uuidPlanMaster": "0e319589c6fe4bd8a4b72342172e5d33", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H7-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 7, - "HoleColum": 7, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "3da874b293d243e5b9be66054e483bf4", - "uuidPlanMaster": "0e319589c6fe4bd8a4b72342172e5d33", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H7-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 7, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "9d9c08275aad48d8af19ba5c8f40cef8", - "uuidPlanMaster": "0e319589c6fe4bd8a4b72342172e5d33", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H8-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 8, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "8d39a909111c41918b971341a47e7e4f", - "uuidPlanMaster": "0e319589c6fe4bd8a4b72342172e5d33", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H8-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 8, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "b7b9d6115ca64f2484067d184925f641", - "uuidPlanMaster": "0e319589c6fe4bd8a4b72342172e5d33", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H8-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 8, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "971671625a7c4a71b7fe189405b9c78a", - "uuidPlanMaster": "0e319589c6fe4bd8a4b72342172e5d33", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H8-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 8, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "27c370c4919c48779c2c9991faa9b1c6", - "uuidPlanMaster": "0e319589c6fe4bd8a4b72342172e5d33", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H8-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 8, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "d315ef0e088e446fa11082b0b4a4fc61", - "uuidPlanMaster": "0e319589c6fe4bd8a4b72342172e5d33", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H8-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 6, - "HoleColum": 8, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "152baaa1e39447918718abdb7be939f9", - "uuidPlanMaster": "0e319589c6fe4bd8a4b72342172e5d33", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H8-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 7, - "HoleColum": 8, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "62bbe57e08914430a1b81d17e12cd505", - "uuidPlanMaster": "0e319589c6fe4bd8a4b72342172e5d33", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H8-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 8, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "41afbf8999c64bb48285dc320bfe6424", - "uuidPlanMaster": "0e319589c6fe4bd8a4b72342172e5d33", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H9-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 9, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "8069cb4a0aea4f7b9baddd3f022d0c18", - "uuidPlanMaster": "0e319589c6fe4bd8a4b72342172e5d33", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H9-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 9, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "22e9361df0b24a239c03bdd03b6e6632", - "uuidPlanMaster": "0e319589c6fe4bd8a4b72342172e5d33", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H9-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 9, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "68e7b340f4ca4c77a73da6005507afde", - "uuidPlanMaster": "0e319589c6fe4bd8a4b72342172e5d33", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H9-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 9, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "0c56bf5706544b92ab950640e8c69e98", - "uuidPlanMaster": "0e319589c6fe4bd8a4b72342172e5d33", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H9-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 9, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "6c51491af3da4be2be0fd1c66cc6bf92", - "uuidPlanMaster": "0e319589c6fe4bd8a4b72342172e5d33", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H9-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 6, - "HoleColum": 9, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "8835e8eac668484f80c9c223148acbc9", - "uuidPlanMaster": "0e319589c6fe4bd8a4b72342172e5d33", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H9-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 7, - "HoleColum": 9, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "179c5e2b517d4762b66ddc36a3c439ca", - "uuidPlanMaster": "0e319589c6fe4bd8a4b72342172e5d33", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H9-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 9, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "df46c8b961ab4fd3a8933fa9348e7b04", - "uuidPlanMaster": "0e319589c6fe4bd8a4b72342172e5d33", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H10-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 10, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "5029beb5e7c94ff08537e733138238c5", - "uuidPlanMaster": "0e319589c6fe4bd8a4b72342172e5d33", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H10-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 10, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "01bb7086a9434505bfb260d5a44f4922", - "uuidPlanMaster": "0e319589c6fe4bd8a4b72342172e5d33", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H10-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 10, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "3e5bccce5c3943ddbfc1b39f0c966d91", - "uuidPlanMaster": "0e319589c6fe4bd8a4b72342172e5d33", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H10-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 10, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "1072b6bf48a246ef89c4695056f2cbb1", - "uuidPlanMaster": "0e319589c6fe4bd8a4b72342172e5d33", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H10-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 10, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "6ea477c3f6a440038acc4c5558db9216", - "uuidPlanMaster": "0e319589c6fe4bd8a4b72342172e5d33", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H10-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 6, - "HoleColum": 10, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "f07069d963ed4975b7d22129f50f00cb", - "uuidPlanMaster": "0e319589c6fe4bd8a4b72342172e5d33", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H10-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 7, - "HoleColum": 10, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "5832b85bc36346029a1262c68d627242", - "uuidPlanMaster": "0e319589c6fe4bd8a4b72342172e5d33", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H10-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 10, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "94087cdeb0b7449dbf75f551cbb6dc37", - "uuidPlanMaster": "0e319589c6fe4bd8a4b72342172e5d33", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H11-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 11, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "8e19068a424f4e3faf36c441a51abc2e", - "uuidPlanMaster": "0e319589c6fe4bd8a4b72342172e5d33", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H11-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 11, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "84e066f0cd584ff6bd5143a2c4d6906d", - "uuidPlanMaster": "0e319589c6fe4bd8a4b72342172e5d33", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H11-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 11, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "4ad5b2136c964bd5ba0e4a5e745d3d8d", - "uuidPlanMaster": "0e319589c6fe4bd8a4b72342172e5d33", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H11-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 11, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "971780a13bcb459cb3e3d34fa06e9d12", - "uuidPlanMaster": "0e319589c6fe4bd8a4b72342172e5d33", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H11-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 11, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "5a4626218c1b473ab68721221a5a0b65", - "uuidPlanMaster": "0e319589c6fe4bd8a4b72342172e5d33", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H11-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 6, - "HoleColum": 11, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "de42a8780ef24500933b9eda30cdd9c9", - "uuidPlanMaster": "0e319589c6fe4bd8a4b72342172e5d33", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H11-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 7, - "HoleColum": 11, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "456d1b5d823f4b58a7851366e912d189", - "uuidPlanMaster": "0e319589c6fe4bd8a4b72342172e5d33", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H11-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 11, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "c524b675bbbf4c21bee743cbaf1f4750", - "uuidPlanMaster": "0e319589c6fe4bd8a4b72342172e5d33", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H12-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 12, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "3ee4e3d5ef134a9e9f09e2d6932d85db", - "uuidPlanMaster": "0e319589c6fe4bd8a4b72342172e5d33", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H12-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 12, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "d36e43c0de0745afb5f6364b430fa33c", - "uuidPlanMaster": "0e319589c6fe4bd8a4b72342172e5d33", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H12-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 12, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "4f5782030c60417ab9a8f58125dfd954", - "uuidPlanMaster": "0e319589c6fe4bd8a4b72342172e5d33", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H12-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 12, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "cea0a352135542dba72a20444d349963", - "uuidPlanMaster": "0e319589c6fe4bd8a4b72342172e5d33", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H12-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 12, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "830709dcdc194ee8ad5a2a59ba705c55", - "uuidPlanMaster": "0e319589c6fe4bd8a4b72342172e5d33", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H12-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 6, - "HoleColum": 12, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "05bbb9b8f57045e38e172ef5edf49428", - "uuidPlanMaster": "0e319589c6fe4bd8a4b72342172e5d33", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H12-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 7, - "HoleColum": 12, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "3e064031d7934ecdaf3d2c286b4014f9", - "uuidPlanMaster": "0e319589c6fe4bd8a4b72342172e5d33", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H12-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 12, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "5fe4de1a40ae49ad91f1741c8a1e4080", - "uuidPlanMaster": "0e319589c6fe4bd8a4b72342172e5d33", - "Axis": "Right", - "ActOn": "Blending", - "Place": "H12-8,T10", - "Dosage": 5, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 10, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 12, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 3, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "6b8670ab193240b99a1c9bb72a4c5b7f", - "uuidPlanMaster": "0e319589c6fe4bd8a4b72342172e5d33", - "Axis": "Right", - "ActOn": "UnLoad", - "Place": "H1-8,T16", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 16, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "f7e5039925d742f79ead1faf3cbefcf3", - "uuidPlanMaster": "6032b88f082d4bee9c8bf7c4f790bd03", - "Axis": "Right", - "ActOn": "Load", - "Place": "H5-8,T5", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 5, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 5, - "HoleCollective": "35", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "038d6d70dc3a4ef89cb17662262be9e7", - "uuidPlanMaster": "6032b88f082d4bee9c8bf7c4f790bd03", - "Axis": "Right", - "ActOn": "Imbibing", - "Place": "H12-8,T9", - "Dosage": 5, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 9, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 12, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "d53b806b2a6a4b039f89e7d55e1931d8", - "uuidPlanMaster": "6032b88f082d4bee9c8bf7c4f790bd03", - "Axis": "Right", - "ActOn": "Blending", - "Place": "H12-8,T10", - "Dosage": 5, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 10, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 12, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 3, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "88e97c8eea274b8f90842cb542499634", - "uuidPlanMaster": "6032b88f082d4bee9c8bf7c4f790bd03", - "Axis": "Right", - "ActOn": "UnLoad", - "Place": "H1-8,T16", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 16, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "2133e3ef90fa44de9b21710f285f9a02", - "uuidPlanMaster": "e64758d2eaf74186b6d16b331039c949", - "Axis": "Right", - "ActOn": "Load", - "Place": "H5-8,T5", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 5, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 5, - "HoleCollective": "35", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "a07eaca4b02b46759b20a1d44d5d5d4d", - "uuidPlanMaster": "e64758d2eaf74186b6d16b331039c949", - "Axis": "Right", - "ActOn": "Imbibing", - "Place": "H12-8,T9", - "Dosage": 5, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 9, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 12, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "a161f8297597447c9895c07d7aad8b23", - "uuidPlanMaster": "e64758d2eaf74186b6d16b331039c949", - "Axis": "Right", - "ActOn": "Blending", - "Place": "H12-8,T10", - "Dosage": 5, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 10, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 12, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 3, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "d916ba23ae3f421ca8a8a2cc926a51ed", - "uuidPlanMaster": "e64758d2eaf74186b6d16b331039c949", - "Axis": "Right", - "ActOn": "UnLoad", - "Place": "H1-8,T16", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 16, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "0ea3b34400444fb1ae4b0a6391454b6c", - "uuidPlanMaster": "8293b7931347441bb9d44bbae41ab509", - "Axis": "Right", - "ActOn": "Load", - "Place": "H5-8,T5", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 5, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 5, - "HoleCollective": "35", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "8aedd1ccdcaf4b2eb2bf2e7c6c6c890d", - "uuidPlanMaster": "8293b7931347441bb9d44bbae41ab509", - "Axis": "Right", - "ActOn": "Imbibing", - "Place": "H12-8,T9", - "Dosage": 5, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 9, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 12, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "edf90975d50a44e8970457a3a47a160a", - "uuidPlanMaster": "8293b7931347441bb9d44bbae41ab509", - "Axis": "Right", - "ActOn": "Blending", - "Place": "H12-8,T10", - "Dosage": 5, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 10, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 12, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 3, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "2c27591c339b430daf518860018f9584", - "uuidPlanMaster": "8293b7931347441bb9d44bbae41ab509", - "Axis": "Right", - "ActOn": "UnLoad", - "Place": "H1-8,T16", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 16, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "e60d7bc99a2c486b87e00f48cdeee98f", - "uuidPlanMaster": "98c1218b15dd4cfdb1952457fd7caec7", - "Axis": "Right", - "ActOn": "Load", - "Place": "H5-8,T5", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 5, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 5, - "HoleCollective": "35", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "1dd1643e03404a43ad8149a44d43a8fd", - "uuidPlanMaster": "98c1218b15dd4cfdb1952457fd7caec7", - "Axis": "Right", - "ActOn": "Imbibing", - "Place": "H12-8,T9", - "Dosage": 5, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 9, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 12, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "ffda984fedc34107a1ffdc3ae7453296", - "uuidPlanMaster": "98c1218b15dd4cfdb1952457fd7caec7", - "Axis": "Right", - "ActOn": "Blending", - "Place": "H12-8,T10", - "Dosage": 5, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 10, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 12, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 3, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "6663d06e8f8a4160963e43069b7b5364", - "uuidPlanMaster": "98c1218b15dd4cfdb1952457fd7caec7", - "Axis": "Right", - "ActOn": "UnLoad", - "Place": "H1-8,T16", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 16, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "8e20d626f7d74912b5a9f9d266192691", - "uuidPlanMaster": "7c3912e6245842beae669e7a2e8680ef", - "Axis": "Right", - "ActOn": "Load", - "Place": "H5-8,T5", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 5, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 5, - "HoleCollective": "35", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "cd0d1f5f7f3b428dabe55cc3ccaad864", - "uuidPlanMaster": "7c3912e6245842beae669e7a2e8680ef", - "Axis": "Right", - "ActOn": "Imbibing", - "Place": "H12-8,T9", - "Dosage": 5, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 9, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 12, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "9aaed73f6b374e47b4f7ee57637006d5", - "uuidPlanMaster": "7c3912e6245842beae669e7a2e8680ef", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H1-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "faaad8fd0d2d430383676c170aedcb2a", - "uuidPlanMaster": "7c3912e6245842beae669e7a2e8680ef", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H2-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 2, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "9c38b834d4644b08a9979b3a5633729c", - "uuidPlanMaster": "7c3912e6245842beae669e7a2e8680ef", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H3-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "b030c9d3ca744eb894f936260a621162", - "uuidPlanMaster": "7c3912e6245842beae669e7a2e8680ef", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H4-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 4, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "684ac13a28d34d6798e78e99847a4976", - "uuidPlanMaster": "7c3912e6245842beae669e7a2e8680ef", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H5-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "33629b822b964376af94657182f31149", - "uuidPlanMaster": "7c3912e6245842beae669e7a2e8680ef", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H6-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 6, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "3ba197f83303401cafcb1a5f0f2ce3c8", - "uuidPlanMaster": "7c3912e6245842beae669e7a2e8680ef", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H7-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 7, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "fe4ee2f0130e45d5b6cd8824c3d94b4d", - "uuidPlanMaster": "7c3912e6245842beae669e7a2e8680ef", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H8-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 8, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "1c7d4c122d6b46adab4d1de5ca9d6bb6", - "uuidPlanMaster": "7c3912e6245842beae669e7a2e8680ef", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H9-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 9, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "90f83d87be50423cafa2d22b6ea73313", - "uuidPlanMaster": "7c3912e6245842beae669e7a2e8680ef", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H10-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 10, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "39828e71e47940a5af249481a2c714e9", - "uuidPlanMaster": "7c3912e6245842beae669e7a2e8680ef", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H11-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 11, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "7247cd2306f149c7a407491dbfb302ed", - "uuidPlanMaster": "7c3912e6245842beae669e7a2e8680ef", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H12-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 12, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "c962455873544fe1bd7b1c7cef3af0f0", - "uuidPlanMaster": "7c3912e6245842beae669e7a2e8680ef", - "Axis": "Right", - "ActOn": "Blending", - "Place": "H12-8,T10", - "Dosage": 5, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 10, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 12, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 3, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "b9d2697f91194527862e7a4d25ba87e4", - "uuidPlanMaster": "7c3912e6245842beae669e7a2e8680ef", - "Axis": "Right", - "ActOn": "UnLoad", - "Place": "H1-8,T16", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 16, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "deb7dabf1aeb4c4ea75c34a9c9b9a337", - "uuidPlanMaster": "87fe99b5b1d34c9b81b4e02d54746fbe", - "Axis": "Right", - "ActOn": "Load", - "Place": "H5-8,T5", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 5, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 5, - "HoleCollective": "35", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "8b84d88b7f3d47b191719623732b4302", - "uuidPlanMaster": "87fe99b5b1d34c9b81b4e02d54746fbe", - "Axis": "Right", - "ActOn": "Imbibing", - "Place": "H12-8,T9", - "Dosage": 5, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 9, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 12, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "49933d09d3d142cabf7f48cdf373135d", - "uuidPlanMaster": "87fe99b5b1d34c9b81b4e02d54746fbe", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H1-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "934021cca39249209c3529c55435fbd3", - "uuidPlanMaster": "87fe99b5b1d34c9b81b4e02d54746fbe", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H2-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 2, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "63f714ae653a4d84bc71c0568382ddb7", - "uuidPlanMaster": "87fe99b5b1d34c9b81b4e02d54746fbe", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H3-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "ef517c0a83014fa28cbc80c133d03690", - "uuidPlanMaster": "87fe99b5b1d34c9b81b4e02d54746fbe", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H4-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 4, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "aaff5c312b1343c28c5fb6d34a170f53", - "uuidPlanMaster": "87fe99b5b1d34c9b81b4e02d54746fbe", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H5-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "1603283a105446afacaa4bcfde0723e4", - "uuidPlanMaster": "87fe99b5b1d34c9b81b4e02d54746fbe", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H6-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 6, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "6ae662538920499f837da6881b55082d", - "uuidPlanMaster": "87fe99b5b1d34c9b81b4e02d54746fbe", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H7-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 7, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "e5634cf6f38946cd84ab46b175f2c800", - "uuidPlanMaster": "87fe99b5b1d34c9b81b4e02d54746fbe", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H8-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 8, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "850dd334002b4e7497e2b670e641148c", - "uuidPlanMaster": "87fe99b5b1d34c9b81b4e02d54746fbe", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H9-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 9, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "ed49c751812541ee8aabc5d92539d3d2", - "uuidPlanMaster": "87fe99b5b1d34c9b81b4e02d54746fbe", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H10-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 10, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "bbb1bf1a243948c0827b473b9dcf5bfc", - "uuidPlanMaster": "87fe99b5b1d34c9b81b4e02d54746fbe", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H11-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 11, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "e42bd11428f1477193e76582315f3266", - "uuidPlanMaster": "87fe99b5b1d34c9b81b4e02d54746fbe", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H12-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 12, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "740aa725bc17466f8d220cb35f7206e9", - "uuidPlanMaster": "87fe99b5b1d34c9b81b4e02d54746fbe", - "Axis": "Right", - "ActOn": "Blending", - "Place": "H12-8,T10", - "Dosage": 5, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 10, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 12, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 3, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "7c439678a4a64d8584dec0cde3146171", - "uuidPlanMaster": "87fe99b5b1d34c9b81b4e02d54746fbe", - "Axis": "Right", - "ActOn": "UnLoad", - "Place": "H1-8,T16", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 16, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "78aa6d3469aa4b0f8938c584030b1ea4", - "uuidPlanMaster": "c7c4f8b718e7431289b11f1c7915fb1b", - "Axis": "Right", - "ActOn": "Load", - "Place": "H5-8,T5", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 5, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 5, - "HoleCollective": "35", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "ee3add84b6084d32a8ad8e6573289a2b", - "uuidPlanMaster": "c7c4f8b718e7431289b11f1c7915fb1b", - "Axis": "Right", - "ActOn": "Imbibing", - "Place": "H12-8,T9", - "Dosage": 5, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 9, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 12, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "11d6f4c171214b77a51300368f5a4f28", - "uuidPlanMaster": "c7c4f8b718e7431289b11f1c7915fb1b", - "Axis": "Right", - "ActOn": "Blending", - "Place": "H12-8,T10", - "Dosage": 5, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 10, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 12, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 3, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "903c995253a1464eb24d84468ad20ecd", - "uuidPlanMaster": "c7c4f8b718e7431289b11f1c7915fb1b", - "Axis": "Right", - "ActOn": "UnLoad", - "Place": "H1-8,T16", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 16, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "25b1279dc1e740f58ba5a8bda97d4bd6", - "uuidPlanMaster": "6c957d5235364c4f8fb7a34bce55e8e8", - "Axis": "Right", - "ActOn": "Load", - "Place": "H5-8,T5", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 5, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 5, - "HoleCollective": "35", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "e24950fbe34b4df6947c1eb75e64ef5e", - "uuidPlanMaster": "6c957d5235364c4f8fb7a34bce55e8e8", - "Axis": "Right", - "ActOn": "Imbibing", - "Place": "H12-8,T9", - "Dosage": 5, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 9, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 12, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "d5db559cba10421ca0d74664cf472d31", - "uuidPlanMaster": "6c957d5235364c4f8fb7a34bce55e8e8", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H1-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "ddeacfa6c4484b21bc3b936ec5aa0396", - "uuidPlanMaster": "6c957d5235364c4f8fb7a34bce55e8e8", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H1-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "379b5035cab64020829d889990e747a2", - "uuidPlanMaster": "6c957d5235364c4f8fb7a34bce55e8e8", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H1-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "932c4d28a08e4a84a49aa41d8a1ea481", - "uuidPlanMaster": "6c957d5235364c4f8fb7a34bce55e8e8", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H1-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "9fc54082313241639e96aeb9c7169fe2", - "uuidPlanMaster": "6c957d5235364c4f8fb7a34bce55e8e8", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H1-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "fc3116827dda4e14919bc5d770e8e1d5", - "uuidPlanMaster": "6c957d5235364c4f8fb7a34bce55e8e8", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H1-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 6, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "488c9f3e4dbc4e5e9e82c632005b05b4", - "uuidPlanMaster": "6c957d5235364c4f8fb7a34bce55e8e8", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H1-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 7, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "eb102ed8bdcf4692995bffc0f4c8a1ec", - "uuidPlanMaster": "6c957d5235364c4f8fb7a34bce55e8e8", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H1-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "c5b859e4739f4dddbe88abb3381dd51c", - "uuidPlanMaster": "6c957d5235364c4f8fb7a34bce55e8e8", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H2-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 2, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "54da48d255b9464c9e0f373b0af3071e", - "uuidPlanMaster": "6c957d5235364c4f8fb7a34bce55e8e8", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H2-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 2, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "fa5fc5aa8932403c8b9d030598fa1ef3", - "uuidPlanMaster": "6c957d5235364c4f8fb7a34bce55e8e8", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H2-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 2, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "ca0185fb75f24ccbb7fa30a549865699", - "uuidPlanMaster": "6c957d5235364c4f8fb7a34bce55e8e8", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H2-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 2, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "7d131bf02e7742749d03622446276802", - "uuidPlanMaster": "6c957d5235364c4f8fb7a34bce55e8e8", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H2-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 2, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "b88f0fd05a65421e86e73cfe93d574d1", - "uuidPlanMaster": "6c957d5235364c4f8fb7a34bce55e8e8", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H2-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 6, - "HoleColum": 2, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "7b4f65ca9e224debb2b2ead1b571faa6", - "uuidPlanMaster": "6c957d5235364c4f8fb7a34bce55e8e8", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H2-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 7, - "HoleColum": 2, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "2530a79bf90c4e83baa551ac86f9ebaf", - "uuidPlanMaster": "6c957d5235364c4f8fb7a34bce55e8e8", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H2-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 2, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "af66ea17d2fa4267934e27bab5ff557a", - "uuidPlanMaster": "6c957d5235364c4f8fb7a34bce55e8e8", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H3-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "0959142bef4d404899c0308cfc365eb7", - "uuidPlanMaster": "6c957d5235364c4f8fb7a34bce55e8e8", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H3-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "fc9fb93329f94f848c47019cba641244", - "uuidPlanMaster": "6c957d5235364c4f8fb7a34bce55e8e8", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H3-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "1b111e647a2e4aa4a5a25b6ad0c8f2c6", - "uuidPlanMaster": "6c957d5235364c4f8fb7a34bce55e8e8", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H3-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "c321cfcb18c4444f99c7f1c4bc67de73", - "uuidPlanMaster": "6c957d5235364c4f8fb7a34bce55e8e8", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H3-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "2b69734b7fd84d66b46936faf84dbf7e", - "uuidPlanMaster": "6c957d5235364c4f8fb7a34bce55e8e8", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H3-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 6, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "99396ee1a8da4e0b9b873bc6e9320502", - "uuidPlanMaster": "6c957d5235364c4f8fb7a34bce55e8e8", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H3-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 7, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "289efa3024a14053881728b2fbe62808", - "uuidPlanMaster": "6c957d5235364c4f8fb7a34bce55e8e8", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H3-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "7ca9509699df40b7970828f5117821bf", - "uuidPlanMaster": "6c957d5235364c4f8fb7a34bce55e8e8", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H4-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 4, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "57b8935fa5294050bd36b0ebbaa5b0aa", - "uuidPlanMaster": "6c957d5235364c4f8fb7a34bce55e8e8", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H4-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 4, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "0ed4135273a34d319348e4bf2d92d685", - "uuidPlanMaster": "6c957d5235364c4f8fb7a34bce55e8e8", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H4-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 4, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "77a7f76d87c143f7ab23e8f299d66911", - "uuidPlanMaster": "6c957d5235364c4f8fb7a34bce55e8e8", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H4-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 4, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "47b239c5e52d40338e955320d8a150e1", - "uuidPlanMaster": "6c957d5235364c4f8fb7a34bce55e8e8", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H4-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 4, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "4288a029d26f42b0a56e445f734a00d3", - "uuidPlanMaster": "6c957d5235364c4f8fb7a34bce55e8e8", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H4-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 6, - "HoleColum": 4, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "9e2878f064a34a94a5c6c4d6db7a0cd5", - "uuidPlanMaster": "6c957d5235364c4f8fb7a34bce55e8e8", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H4-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 7, - "HoleColum": 4, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "60ea7663e75747dcaa0587526f07e4a3", - "uuidPlanMaster": "6c957d5235364c4f8fb7a34bce55e8e8", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H4-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 4, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "14c7e17323254739a4e58ef17009beee", - "uuidPlanMaster": "6c957d5235364c4f8fb7a34bce55e8e8", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H5-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "785fa1450d4f45bba13d11d1eee7a7bb", - "uuidPlanMaster": "6c957d5235364c4f8fb7a34bce55e8e8", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H5-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "1c3f8fd436b246bf8b1d6e0e2e665b89", - "uuidPlanMaster": "6c957d5235364c4f8fb7a34bce55e8e8", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H5-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "26b5b9ac0c0e4b62b25f184b75e9a15e", - "uuidPlanMaster": "6c957d5235364c4f8fb7a34bce55e8e8", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H5-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "eb5bad034d0c4df3a1a79d8795fb980f", - "uuidPlanMaster": "6c957d5235364c4f8fb7a34bce55e8e8", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H5-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "f7582af2a6434a31a4efa7833ed4f462", - "uuidPlanMaster": "6c957d5235364c4f8fb7a34bce55e8e8", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H5-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 6, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "f078c3a06065421088d41183aecde437", - "uuidPlanMaster": "6c957d5235364c4f8fb7a34bce55e8e8", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H5-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 7, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "3ce0e06d1810460ea28614129c82028c", - "uuidPlanMaster": "6c957d5235364c4f8fb7a34bce55e8e8", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H5-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "b9f960a8af0a42ad9414357d3a54b767", - "uuidPlanMaster": "6c957d5235364c4f8fb7a34bce55e8e8", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H6-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 6, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "36d40b696226496b93bd35db6930e387", - "uuidPlanMaster": "6c957d5235364c4f8fb7a34bce55e8e8", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H6-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 6, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "d3f63b1d74db4501801667ee260843cb", - "uuidPlanMaster": "6c957d5235364c4f8fb7a34bce55e8e8", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H6-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 6, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "36faa9d4702b4a2694351984d3be05b1", - "uuidPlanMaster": "6c957d5235364c4f8fb7a34bce55e8e8", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H6-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 6, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "a3def9788f49453f8c9d90838d120dac", - "uuidPlanMaster": "6c957d5235364c4f8fb7a34bce55e8e8", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H6-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 6, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "502b6d0429f2464bb4b038ada680d4d6", - "uuidPlanMaster": "6c957d5235364c4f8fb7a34bce55e8e8", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H6-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 6, - "HoleColum": 6, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "631a44e527d942fca6c8db4814a1cc76", - "uuidPlanMaster": "6c957d5235364c4f8fb7a34bce55e8e8", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H6-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 7, - "HoleColum": 6, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "87e52d991e6842058b761d3564cffd02", - "uuidPlanMaster": "6c957d5235364c4f8fb7a34bce55e8e8", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H6-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 6, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "da33d6bd7a5649c482d3b64a4a5a1c7e", - "uuidPlanMaster": "6c957d5235364c4f8fb7a34bce55e8e8", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H7-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 7, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "a184de810d9248ae942a797d8b73a4ad", - "uuidPlanMaster": "6c957d5235364c4f8fb7a34bce55e8e8", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H7-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 7, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "9ac3581c0c6e48798e4f528ec094463b", - "uuidPlanMaster": "6c957d5235364c4f8fb7a34bce55e8e8", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H7-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 7, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "887c13a225474e84aa65e4b6d6df0327", - "uuidPlanMaster": "6c957d5235364c4f8fb7a34bce55e8e8", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H7-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 7, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "8384460f298146958053a9dc26d3f8c6", - "uuidPlanMaster": "6c957d5235364c4f8fb7a34bce55e8e8", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H7-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 7, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "eb701d9d8f2b4393ba116d13f8433025", - "uuidPlanMaster": "6c957d5235364c4f8fb7a34bce55e8e8", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H7-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 6, - "HoleColum": 7, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "5a0fcfdf14454c038ba3e178811ad201", - "uuidPlanMaster": "6c957d5235364c4f8fb7a34bce55e8e8", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H7-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 7, - "HoleColum": 7, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "5dbca4179b144779b3bc92a1545c694c", - "uuidPlanMaster": "6c957d5235364c4f8fb7a34bce55e8e8", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H7-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 7, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "884a44416715448c8f7ff43db42974df", - "uuidPlanMaster": "6c957d5235364c4f8fb7a34bce55e8e8", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H8-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 8, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "ff89d4e6f7b648958ad9a61edeffeec1", - "uuidPlanMaster": "6c957d5235364c4f8fb7a34bce55e8e8", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H8-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 8, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "0d81d53c2ed54a1784720dd5d9e60f64", - "uuidPlanMaster": "6c957d5235364c4f8fb7a34bce55e8e8", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H8-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 8, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "337ea5d2bbf7408eb612fc7d40658816", - "uuidPlanMaster": "6c957d5235364c4f8fb7a34bce55e8e8", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H8-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 8, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "cecc92e67a5142b081ad5b8676cac8d3", - "uuidPlanMaster": "6c957d5235364c4f8fb7a34bce55e8e8", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H8-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 8, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "15193a1ea207481394792d76b4bfb149", - "uuidPlanMaster": "6c957d5235364c4f8fb7a34bce55e8e8", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H8-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 6, - "HoleColum": 8, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "eff376e0430d4293be392310da01986b", - "uuidPlanMaster": "6c957d5235364c4f8fb7a34bce55e8e8", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H8-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 7, - "HoleColum": 8, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "0f989852e6d1463eaf0653b811bc245d", - "uuidPlanMaster": "6c957d5235364c4f8fb7a34bce55e8e8", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H8-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 8, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "fa1ea26234ea4782b00039246606aa09", - "uuidPlanMaster": "6c957d5235364c4f8fb7a34bce55e8e8", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H9-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 9, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "65dc913686d84836a7248cd959162d57", - "uuidPlanMaster": "6c957d5235364c4f8fb7a34bce55e8e8", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H9-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 9, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "3349edeb52054da9aecb11f160668d12", - "uuidPlanMaster": "6c957d5235364c4f8fb7a34bce55e8e8", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H9-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 9, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "91a0bfeae7c74a1f86b813a7afb494ab", - "uuidPlanMaster": "6c957d5235364c4f8fb7a34bce55e8e8", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H9-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 9, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "c4a2b3cc45d34e78be774b989c75a82c", - "uuidPlanMaster": "6c957d5235364c4f8fb7a34bce55e8e8", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H9-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 9, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "87d7de9b47e046e39eb4a6716b44f8bf", - "uuidPlanMaster": "6c957d5235364c4f8fb7a34bce55e8e8", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H9-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 6, - "HoleColum": 9, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "8779b7d437fe4abf86744c6daf003729", - "uuidPlanMaster": "6c957d5235364c4f8fb7a34bce55e8e8", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H9-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 7, - "HoleColum": 9, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "6bb2e7395e1d4d4c8fa24810fec48791", - "uuidPlanMaster": "6c957d5235364c4f8fb7a34bce55e8e8", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H9-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 9, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "e26d4d6893c24cceb3433ac8c46545bf", - "uuidPlanMaster": "6c957d5235364c4f8fb7a34bce55e8e8", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H10-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 10, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "2367673c51624ee797afcfc385e5a611", - "uuidPlanMaster": "6c957d5235364c4f8fb7a34bce55e8e8", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H10-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 10, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "a008d642a087417a8a2158cdecd2fe6e", - "uuidPlanMaster": "6c957d5235364c4f8fb7a34bce55e8e8", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H10-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 10, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "00e036dadfc74d7ba2738c95ade70aab", - "uuidPlanMaster": "6c957d5235364c4f8fb7a34bce55e8e8", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H10-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 10, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "ea4b784cc3fe4ab1abaf3907c1527736", - "uuidPlanMaster": "6c957d5235364c4f8fb7a34bce55e8e8", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H10-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 10, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "01616cdc19a540b88c796173dc4d09e0", - "uuidPlanMaster": "6c957d5235364c4f8fb7a34bce55e8e8", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H10-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 6, - "HoleColum": 10, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "24a33db714f24b36b12e7c41f57ce3b3", - "uuidPlanMaster": "6c957d5235364c4f8fb7a34bce55e8e8", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H10-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 7, - "HoleColum": 10, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "1e4a2d6495764737af47d90eca3aceea", - "uuidPlanMaster": "6c957d5235364c4f8fb7a34bce55e8e8", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H10-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 10, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "04be40c24c69464eb9c6216532ca824a", - "uuidPlanMaster": "6c957d5235364c4f8fb7a34bce55e8e8", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H11-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 11, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "227c12d8c55e4c7dafe9696ce78c7173", - "uuidPlanMaster": "6c957d5235364c4f8fb7a34bce55e8e8", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H11-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 11, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "ddcf11f234b04dad86c34a34cca0dea7", - "uuidPlanMaster": "6c957d5235364c4f8fb7a34bce55e8e8", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H11-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 11, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "d56004e0538448f4ac701ebaa264bd12", - "uuidPlanMaster": "6c957d5235364c4f8fb7a34bce55e8e8", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H11-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 11, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "0e728e895bc04c6e996e4d9d54bbf90c", - "uuidPlanMaster": "6c957d5235364c4f8fb7a34bce55e8e8", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H11-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 11, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "449f95af5f394167a4477e232ad2e312", - "uuidPlanMaster": "6c957d5235364c4f8fb7a34bce55e8e8", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H11-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 6, - "HoleColum": 11, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "664584bc05594c5b8d179fb08e148db2", - "uuidPlanMaster": "6c957d5235364c4f8fb7a34bce55e8e8", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H11-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 7, - "HoleColum": 11, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "1c492a23f267404287fdd2baf5fa5499", - "uuidPlanMaster": "6c957d5235364c4f8fb7a34bce55e8e8", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H11-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 11, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "f1d02debe2c245678ec12d4a394a4fdf", - "uuidPlanMaster": "6c957d5235364c4f8fb7a34bce55e8e8", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H12-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 12, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "05c979322af94640bb2fe34ec0f654ba", - "uuidPlanMaster": "6c957d5235364c4f8fb7a34bce55e8e8", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H12-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 12, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "25392652793445018cf4d8ff91f22ca9", - "uuidPlanMaster": "6c957d5235364c4f8fb7a34bce55e8e8", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H12-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 12, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "14352efba1844dc5a74bdd486006ec06", - "uuidPlanMaster": "6c957d5235364c4f8fb7a34bce55e8e8", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H12-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 12, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "066fb5e332634d5095b22bd0892c210e", - "uuidPlanMaster": "6c957d5235364c4f8fb7a34bce55e8e8", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H12-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 12, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "0647cdc094a44225ac8d0e1a64ebefcb", - "uuidPlanMaster": "6c957d5235364c4f8fb7a34bce55e8e8", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H12-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 6, - "HoleColum": 12, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "a7e8a6830163422bb792caf3ff5e0954", - "uuidPlanMaster": "6c957d5235364c4f8fb7a34bce55e8e8", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H12-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 7, - "HoleColum": 12, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "ae0f2adb37bf4fbca83de86ef3ca0b16", - "uuidPlanMaster": "6c957d5235364c4f8fb7a34bce55e8e8", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H12-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 12, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "d681b999933f4df0beca4ea6c396f8ca", - "uuidPlanMaster": "6c957d5235364c4f8fb7a34bce55e8e8", - "Axis": "Right", - "ActOn": "Blending", - "Place": "H12-8,T10", - "Dosage": 5, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 10, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 12, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 3, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "feb128eefbe04e2b9d1cd051cc275f4e", - "uuidPlanMaster": "6c957d5235364c4f8fb7a34bce55e8e8", - "Axis": "Right", - "ActOn": "UnLoad", - "Place": "H1-8,T16", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 16, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "25e81dcb22b4403e9609480730175706", - "uuidPlanMaster": "ac206e29a4cf48858855dc700bb0a22f", - "Axis": "Right", - "ActOn": "Load", - "Place": "H5-8,T5", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 5, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 5, - "HoleCollective": "35", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "3d41717fcdf94a94a48aa6445be72874", - "uuidPlanMaster": "ac206e29a4cf48858855dc700bb0a22f", - "Axis": "Right", - "ActOn": "Imbibing", - "Place": "H12-8,T9", - "Dosage": 5, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 9, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 12, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "9ba63018210947a6aae54899b88c0055", - "uuidPlanMaster": "ac206e29a4cf48858855dc700bb0a22f", - "Axis": "Right", - "ActOn": "Blending", - "Place": "H12-8,T10", - "Dosage": 5, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 10, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 12, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 3, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "2b8432eae1f74abf88860667875bc4c4", - "uuidPlanMaster": "ac206e29a4cf48858855dc700bb0a22f", - "Axis": "Right", - "ActOn": "UnLoad", - "Place": "H1-8,T16", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 16, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "427827c2dbad4ac8b8a76a20dd164ed9", - "uuidPlanMaster": "51d6e4a9176d4e35addc69da6bd4ef51", - "Axis": "Right", - "ActOn": "Load", - "Place": "H5-8,T5", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 5, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 5, - "HoleCollective": "35", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "aa51e2bc569f4da0809adff67645fa83", - "uuidPlanMaster": "51d6e4a9176d4e35addc69da6bd4ef51", - "Axis": "Right", - "ActOn": "Imbibing", - "Place": "H12-8,T9", - "Dosage": 5, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 9, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 12, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "ac75346328d241e78466834fdf7dfe82", - "uuidPlanMaster": "51d6e4a9176d4e35addc69da6bd4ef51", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H1-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "555cd8bea17e4deab2be07109876f37f", - "uuidPlanMaster": "51d6e4a9176d4e35addc69da6bd4ef51", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H1-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "66ee6b1ce3ed4d438619aacaa413e840", - "uuidPlanMaster": "51d6e4a9176d4e35addc69da6bd4ef51", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H1-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "9c1a0a195e9a47e3b211d6cffa6e3739", - "uuidPlanMaster": "51d6e4a9176d4e35addc69da6bd4ef51", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H1-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "0e7753a54aae40e3a9121719d833d50e", - "uuidPlanMaster": "51d6e4a9176d4e35addc69da6bd4ef51", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H1-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "34811d009b6a4f8a832407983504f065", - "uuidPlanMaster": "51d6e4a9176d4e35addc69da6bd4ef51", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H1-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 6, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "717e6f873ab8450dbb4079644720faa8", - "uuidPlanMaster": "51d6e4a9176d4e35addc69da6bd4ef51", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H1-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 7, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "e8222d1dfdde4059a7855c97d7068a69", - "uuidPlanMaster": "51d6e4a9176d4e35addc69da6bd4ef51", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H1-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "72935468c8ae4276bfce2d5be7a18491", - "uuidPlanMaster": "51d6e4a9176d4e35addc69da6bd4ef51", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H2-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 2, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "5954e2433f1d4a579df5a0249a15f995", - "uuidPlanMaster": "51d6e4a9176d4e35addc69da6bd4ef51", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H2-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 2, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "7e02249bfc2b47e08bd6e43105ed45a5", - "uuidPlanMaster": "51d6e4a9176d4e35addc69da6bd4ef51", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H2-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 2, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "2bb4b29070be419b98bf83ad582c7d78", - "uuidPlanMaster": "51d6e4a9176d4e35addc69da6bd4ef51", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H2-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 2, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "d0e0f151bac14eff9daed6f6b10157e0", - "uuidPlanMaster": "51d6e4a9176d4e35addc69da6bd4ef51", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H2-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 2, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "7b9d0fcf19984c43896e65c213fb7388", - "uuidPlanMaster": "51d6e4a9176d4e35addc69da6bd4ef51", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H2-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 6, - "HoleColum": 2, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "1b79185b92c84304b44cc0bc8439fec4", - "uuidPlanMaster": "51d6e4a9176d4e35addc69da6bd4ef51", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H2-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 7, - "HoleColum": 2, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "841b63b149c048c08ee6eaa5d8a024fc", - "uuidPlanMaster": "51d6e4a9176d4e35addc69da6bd4ef51", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H2-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 2, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "6a4a9b3ab8284fb69938f4c6a430e37d", - "uuidPlanMaster": "51d6e4a9176d4e35addc69da6bd4ef51", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H3-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "3dcf1dacc9294ffa842654ccc1a67d52", - "uuidPlanMaster": "51d6e4a9176d4e35addc69da6bd4ef51", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H3-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "465dc24516bc466cadba3f250b646a1c", - "uuidPlanMaster": "51d6e4a9176d4e35addc69da6bd4ef51", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H3-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "63e3f3e6baca43e9a66807540392b544", - "uuidPlanMaster": "51d6e4a9176d4e35addc69da6bd4ef51", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H3-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "2cdd5365c296435597526925157076c8", - "uuidPlanMaster": "51d6e4a9176d4e35addc69da6bd4ef51", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H3-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "eee4a596043b401daa30acf1b99527aa", - "uuidPlanMaster": "51d6e4a9176d4e35addc69da6bd4ef51", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H3-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 6, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "8ef24c06bbb34ea198ffe91883775e30", - "uuidPlanMaster": "51d6e4a9176d4e35addc69da6bd4ef51", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H3-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 7, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "27fe3f7c8fd24d9a849da6a52cc3bb03", - "uuidPlanMaster": "51d6e4a9176d4e35addc69da6bd4ef51", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H3-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "f2c2cc05490443ad8a70c5cf73d490f7", - "uuidPlanMaster": "51d6e4a9176d4e35addc69da6bd4ef51", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H4-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 4, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "1cca21a383db4576bab357f23f0765f4", - "uuidPlanMaster": "51d6e4a9176d4e35addc69da6bd4ef51", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H4-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 4, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "4a15218fa2bb4c8c8f94cbceb9825222", - "uuidPlanMaster": "51d6e4a9176d4e35addc69da6bd4ef51", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H4-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 4, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "834ee76af6d04edfa8b6488a6461f9da", - "uuidPlanMaster": "51d6e4a9176d4e35addc69da6bd4ef51", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H4-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 4, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "783e0c3111d248c3a378672da13f267d", - "uuidPlanMaster": "51d6e4a9176d4e35addc69da6bd4ef51", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H4-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 4, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "b518ec36c8714730bd785aed8d27e36b", - "uuidPlanMaster": "51d6e4a9176d4e35addc69da6bd4ef51", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H4-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 6, - "HoleColum": 4, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "945de77ae6e94e6b89e7ab7c12ccaa47", - "uuidPlanMaster": "51d6e4a9176d4e35addc69da6bd4ef51", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H4-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 7, - "HoleColum": 4, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "6a4add3bb28a4bc9a3afccc8f65ed420", - "uuidPlanMaster": "51d6e4a9176d4e35addc69da6bd4ef51", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H4-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 4, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "058ef600328647ffb97f906a6e249e44", - "uuidPlanMaster": "51d6e4a9176d4e35addc69da6bd4ef51", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H5-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "eb4e11e923e448bcb7cbb3a05fe21e1b", - "uuidPlanMaster": "51d6e4a9176d4e35addc69da6bd4ef51", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H5-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "b34fcd2d6adc40c9b5dc362aacc55616", - "uuidPlanMaster": "51d6e4a9176d4e35addc69da6bd4ef51", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H5-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "f17374afb2c24431a7e9a7e4a3d65068", - "uuidPlanMaster": "51d6e4a9176d4e35addc69da6bd4ef51", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H5-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "529ae82b8a184e1aa16eea527e3b9b02", - "uuidPlanMaster": "51d6e4a9176d4e35addc69da6bd4ef51", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H5-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "db143f89329a44fcb4dca1c6d04e65f3", - "uuidPlanMaster": "51d6e4a9176d4e35addc69da6bd4ef51", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H5-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 6, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "5c1f7a6bbac24e52a5091085984376f4", - "uuidPlanMaster": "51d6e4a9176d4e35addc69da6bd4ef51", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H5-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 7, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "3481da024b5b4054a09c7d5814b63ff7", - "uuidPlanMaster": "51d6e4a9176d4e35addc69da6bd4ef51", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H5-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "cf4be61656954f6086759a132a05e262", - "uuidPlanMaster": "51d6e4a9176d4e35addc69da6bd4ef51", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H6-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 6, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "a353c9c089e8406586fb742ffb24f0a0", - "uuidPlanMaster": "51d6e4a9176d4e35addc69da6bd4ef51", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H6-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 6, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "65b3562118894d85808a0565e42db13a", - "uuidPlanMaster": "51d6e4a9176d4e35addc69da6bd4ef51", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H6-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 6, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "79ef62ea52bb4664b743753e190eaa07", - "uuidPlanMaster": "51d6e4a9176d4e35addc69da6bd4ef51", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H6-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 6, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "eaf2727f1cb04ea4843e0252c0c9d1d2", - "uuidPlanMaster": "51d6e4a9176d4e35addc69da6bd4ef51", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H6-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 6, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "5812108095d542d3bca52fe881fa11de", - "uuidPlanMaster": "51d6e4a9176d4e35addc69da6bd4ef51", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H6-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 6, - "HoleColum": 6, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "d3782be11b9c49cc8dc0f0660f75c1ce", - "uuidPlanMaster": "51d6e4a9176d4e35addc69da6bd4ef51", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H6-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 7, - "HoleColum": 6, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "811e62ef58b649438afb59c914668d18", - "uuidPlanMaster": "51d6e4a9176d4e35addc69da6bd4ef51", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H6-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 6, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "98c939854ade461a8a3196515605344c", - "uuidPlanMaster": "51d6e4a9176d4e35addc69da6bd4ef51", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H7-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 7, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "56eede4454c241798d4a47413a4c9da2", - "uuidPlanMaster": "51d6e4a9176d4e35addc69da6bd4ef51", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H7-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 7, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "8cba8851fa454581b11762f70d731060", - "uuidPlanMaster": "51d6e4a9176d4e35addc69da6bd4ef51", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H7-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 7, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "2f8cf219bfb94bc9978ebd074cecd785", - "uuidPlanMaster": "51d6e4a9176d4e35addc69da6bd4ef51", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H7-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 7, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "5fc7c63dca6b4cc8b30cdd09455500ec", - "uuidPlanMaster": "51d6e4a9176d4e35addc69da6bd4ef51", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H7-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 7, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "43d9acc8c70142fc95fa17860dc58b34", - "uuidPlanMaster": "51d6e4a9176d4e35addc69da6bd4ef51", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H7-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 6, - "HoleColum": 7, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "3b86117e638c4a87ba8b0084caf11904", - "uuidPlanMaster": "51d6e4a9176d4e35addc69da6bd4ef51", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H7-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 7, - "HoleColum": 7, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "dfd07fe0d6f246d9a3288de41bb36aa4", - "uuidPlanMaster": "51d6e4a9176d4e35addc69da6bd4ef51", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H7-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 7, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "be177724f95f490697050febaccd72e1", - "uuidPlanMaster": "51d6e4a9176d4e35addc69da6bd4ef51", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H8-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 8, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "e92da67e6a4b4785999f898be8c38c2b", - "uuidPlanMaster": "51d6e4a9176d4e35addc69da6bd4ef51", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H8-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 8, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "b373148387f04ea5bfbd0de3cd01bf13", - "uuidPlanMaster": "51d6e4a9176d4e35addc69da6bd4ef51", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H8-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 8, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "a26bf709b9774872a75f0e75807f21d0", - "uuidPlanMaster": "51d6e4a9176d4e35addc69da6bd4ef51", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H8-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 8, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "262e3634fbc4496d94553c24725ab9a5", - "uuidPlanMaster": "51d6e4a9176d4e35addc69da6bd4ef51", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H8-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 8, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "6c2aac9980674dddaf99b5d1e11d6930", - "uuidPlanMaster": "51d6e4a9176d4e35addc69da6bd4ef51", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H8-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 6, - "HoleColum": 8, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "db45f9e8aae547d9a05927433ac640dc", - "uuidPlanMaster": "51d6e4a9176d4e35addc69da6bd4ef51", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H8-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 7, - "HoleColum": 8, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "31af93e54b454b059f47d26f775197f1", - "uuidPlanMaster": "51d6e4a9176d4e35addc69da6bd4ef51", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H8-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 8, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "71e8d3e3e0e444f6a2965efc39515781", - "uuidPlanMaster": "51d6e4a9176d4e35addc69da6bd4ef51", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H9-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 9, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "4fda5c91eb8943229add6bbdcc18e5cb", - "uuidPlanMaster": "51d6e4a9176d4e35addc69da6bd4ef51", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H9-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 9, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "5066bfd381564e7b8f76cbeec4d99923", - "uuidPlanMaster": "51d6e4a9176d4e35addc69da6bd4ef51", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H9-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 9, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "2166a9ebd6a84360bc8b16a2593e5650", - "uuidPlanMaster": "51d6e4a9176d4e35addc69da6bd4ef51", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H9-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 9, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "36bd22eb9a9d463eb5cc7ab5085e9245", - "uuidPlanMaster": "51d6e4a9176d4e35addc69da6bd4ef51", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H9-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 9, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "61cf59d0b1ad47d2bb7f96bd67065f46", - "uuidPlanMaster": "51d6e4a9176d4e35addc69da6bd4ef51", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H9-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 6, - "HoleColum": 9, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "4b31bbe89e1e4a2eada2b8cfb54db8c8", - "uuidPlanMaster": "51d6e4a9176d4e35addc69da6bd4ef51", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H9-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 7, - "HoleColum": 9, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "7214bb1707574157aa33436f09a67931", - "uuidPlanMaster": "51d6e4a9176d4e35addc69da6bd4ef51", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H9-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 9, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "46d9481e28724823a0a046df0f1e7c66", - "uuidPlanMaster": "51d6e4a9176d4e35addc69da6bd4ef51", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H10-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 10, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "06e21647ca8c4225930d5e7f50a5a1ca", - "uuidPlanMaster": "51d6e4a9176d4e35addc69da6bd4ef51", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H10-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 10, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "aab03ce2fa01438e8fb33aa11485535e", - "uuidPlanMaster": "51d6e4a9176d4e35addc69da6bd4ef51", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H10-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 10, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "35a45b07922e4a5387bd96d1a3652476", - "uuidPlanMaster": "51d6e4a9176d4e35addc69da6bd4ef51", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H10-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 10, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "c93e332d5339471299d01a92643ca582", - "uuidPlanMaster": "51d6e4a9176d4e35addc69da6bd4ef51", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H10-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 10, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "328b6cd240344c41807b62f8d6a284df", - "uuidPlanMaster": "51d6e4a9176d4e35addc69da6bd4ef51", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H10-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 6, - "HoleColum": 10, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "6d95e6a48bed4fcfaaba08e53c6e3242", - "uuidPlanMaster": "51d6e4a9176d4e35addc69da6bd4ef51", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H10-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 7, - "HoleColum": 10, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "9ce81ff33b024e88975e172f904e97b5", - "uuidPlanMaster": "51d6e4a9176d4e35addc69da6bd4ef51", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H10-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 10, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "d7d5d9a2fe0d467cb085d22984bbbc95", - "uuidPlanMaster": "51d6e4a9176d4e35addc69da6bd4ef51", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H11-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 11, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "f7dc6da659af4edda23a08bfe1af8020", - "uuidPlanMaster": "51d6e4a9176d4e35addc69da6bd4ef51", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H11-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 11, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "897706f140644edb8769d308f056bd03", - "uuidPlanMaster": "51d6e4a9176d4e35addc69da6bd4ef51", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H11-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 11, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "33472f18d6014d1d9ea4360a79fefe5f", - "uuidPlanMaster": "51d6e4a9176d4e35addc69da6bd4ef51", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H11-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 11, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "a455c64ef36c4d6897c2a020f852efc8", - "uuidPlanMaster": "51d6e4a9176d4e35addc69da6bd4ef51", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H11-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 11, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "f60521e8919f4310bfe2600f0de2ccc3", - "uuidPlanMaster": "51d6e4a9176d4e35addc69da6bd4ef51", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H11-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 6, - "HoleColum": 11, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "d22aeeb8fe5549279e1b596506068845", - "uuidPlanMaster": "51d6e4a9176d4e35addc69da6bd4ef51", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H11-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 7, - "HoleColum": 11, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "b15e4d79ee0e459286e6ae96073c259c", - "uuidPlanMaster": "51d6e4a9176d4e35addc69da6bd4ef51", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H11-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 11, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "d33b3b801f3d4e178a15cb464fd8b6a3", - "uuidPlanMaster": "51d6e4a9176d4e35addc69da6bd4ef51", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H12-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 12, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "20248d3b55ad455dafc95d4768fb65cb", - "uuidPlanMaster": "51d6e4a9176d4e35addc69da6bd4ef51", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H12-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 12, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "6189db5b5fa24738afbb9251931cd1a8", - "uuidPlanMaster": "51d6e4a9176d4e35addc69da6bd4ef51", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H12-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 12, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "0cabc4c2a9ec45c8aa8014e08bcec7e1", - "uuidPlanMaster": "51d6e4a9176d4e35addc69da6bd4ef51", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H12-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 12, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "b289a097475b4c0ab292f6ab4bb64b54", - "uuidPlanMaster": "51d6e4a9176d4e35addc69da6bd4ef51", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H12-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 12, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "1832547fafb940e1841a325de030edbf", - "uuidPlanMaster": "51d6e4a9176d4e35addc69da6bd4ef51", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H12-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 6, - "HoleColum": 12, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "45d8bfa6b6ba4cbc8c1809b816fb9d7a", - "uuidPlanMaster": "51d6e4a9176d4e35addc69da6bd4ef51", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H12-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 7, - "HoleColum": 12, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "29fb54bbf9644e27a6f05aa7e2f15e97", - "uuidPlanMaster": "51d6e4a9176d4e35addc69da6bd4ef51", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H12-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 12, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "7f4284042d0b434f9fe496bdf0accfe4", - "uuidPlanMaster": "51d6e4a9176d4e35addc69da6bd4ef51", - "Axis": "Right", - "ActOn": "Blending", - "Place": "H12-8,T10", - "Dosage": 5, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 10, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 12, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 3, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "dfc5e05826094b79b07f62d9a0176fb2", - "uuidPlanMaster": "51d6e4a9176d4e35addc69da6bd4ef51", - "Axis": "Right", - "ActOn": "UnLoad", - "Place": "H1-8,T16", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 16, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "30c33a62d0f34dfb97a744b538c78446", - "uuidPlanMaster": "20b27fb98e624585aaa4129856f102b2", - "Axis": "Right", - "ActOn": "Load", - "Place": "H5-8,T5", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 5, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 5, - "HoleCollective": "35", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "c1ceb7ed2dee4d7e8d89cbbdd1edb5ce", - "uuidPlanMaster": "20b27fb98e624585aaa4129856f102b2", - "Axis": "Right", - "ActOn": "Imbibing", - "Place": "H12-8,T9", - "Dosage": 5, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 9, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 12, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "b2d7f04731794523a3d4f4bf1f3bba5c", - "uuidPlanMaster": "20b27fb98e624585aaa4129856f102b2", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H1-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "44d8307006e24588bc869c4ceb255270", - "uuidPlanMaster": "20b27fb98e624585aaa4129856f102b2", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H1-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "0963a86404874a3f8d3f085fa4763ba5", - "uuidPlanMaster": "20b27fb98e624585aaa4129856f102b2", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H1-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "a6de0af62742471e89fccdc34155f383", - "uuidPlanMaster": "20b27fb98e624585aaa4129856f102b2", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H1-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "f776d3d722f1420e8f965071c9b854e2", - "uuidPlanMaster": "20b27fb98e624585aaa4129856f102b2", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H1-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "7cdb09110d48425f8da9771cb0f01837", - "uuidPlanMaster": "20b27fb98e624585aaa4129856f102b2", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H1-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 6, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "6a344aa88c404c86bd13bac515dd7fbe", - "uuidPlanMaster": "20b27fb98e624585aaa4129856f102b2", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H1-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 7, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "45bf7c0a5c8243a7a30847fe0c52dcb0", - "uuidPlanMaster": "20b27fb98e624585aaa4129856f102b2", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H1-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "a24969d92cf448738dd87b9b66b02f10", - "uuidPlanMaster": "20b27fb98e624585aaa4129856f102b2", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H2-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 2, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "416fa6e48f0c4f35af394631bccb6a32", - "uuidPlanMaster": "20b27fb98e624585aaa4129856f102b2", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H2-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 2, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "617dfbf206424400a10c16cdacdd47b8", - "uuidPlanMaster": "20b27fb98e624585aaa4129856f102b2", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H2-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 2, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "137a60ac65f94b5d8dfc13a81c64790e", - "uuidPlanMaster": "20b27fb98e624585aaa4129856f102b2", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H2-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 2, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "1cb7e15b585f4e4c8119c4d33eeb549a", - "uuidPlanMaster": "20b27fb98e624585aaa4129856f102b2", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H2-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 2, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "e03df5dc7f524148a849d64f5efe5e2d", - "uuidPlanMaster": "20b27fb98e624585aaa4129856f102b2", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H2-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 6, - "HoleColum": 2, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "423397ce2084492a9ae0312468592c8a", - "uuidPlanMaster": "20b27fb98e624585aaa4129856f102b2", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H2-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 7, - "HoleColum": 2, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "ebd88e51981e49dd9f83f32557755838", - "uuidPlanMaster": "20b27fb98e624585aaa4129856f102b2", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H2-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 2, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "beeb1301ebe348d0bd9cd130fdf5dbff", - "uuidPlanMaster": "20b27fb98e624585aaa4129856f102b2", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H3-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "b121c77d2f494a8bb915e3d8b0be2d1d", - "uuidPlanMaster": "20b27fb98e624585aaa4129856f102b2", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H3-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "02537bd60ecb4b6696283e00aef488af", - "uuidPlanMaster": "20b27fb98e624585aaa4129856f102b2", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H3-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "bb595a952a724ec6b1996a15acb405a4", - "uuidPlanMaster": "20b27fb98e624585aaa4129856f102b2", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H3-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "cf5c7e1a9f7b4002ae87de7e6f6d631a", - "uuidPlanMaster": "20b27fb98e624585aaa4129856f102b2", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H3-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "80bb226af7574f1797ca48444f4de368", - "uuidPlanMaster": "20b27fb98e624585aaa4129856f102b2", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H3-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 6, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "37f1f95282294dd2abf02e39dbcdd80f", - "uuidPlanMaster": "20b27fb98e624585aaa4129856f102b2", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H3-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 7, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "a815ed7ce2224dbab33b8728ecde8cd8", - "uuidPlanMaster": "20b27fb98e624585aaa4129856f102b2", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H3-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "a42377a4193b49a9949262e8390c69c6", - "uuidPlanMaster": "20b27fb98e624585aaa4129856f102b2", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H4-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 4, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "cc6733f03d324471af1c8ef4008d1264", - "uuidPlanMaster": "20b27fb98e624585aaa4129856f102b2", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H4-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 4, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "d91084c2f6d14997931eb4e8f8f483cf", - "uuidPlanMaster": "20b27fb98e624585aaa4129856f102b2", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H4-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 4, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "e5c46f81fcd34fa1be1cd6799fd07eaf", - "uuidPlanMaster": "20b27fb98e624585aaa4129856f102b2", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H4-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 4, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "5156071fc9e34ff2a9828dcdc32ee7cc", - "uuidPlanMaster": "20b27fb98e624585aaa4129856f102b2", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H4-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 4, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "073ced4f037048f38eef7120f9c41469", - "uuidPlanMaster": "20b27fb98e624585aaa4129856f102b2", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H4-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 6, - "HoleColum": 4, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "e6e7c2e12e4049a0b7dc5ee1b2ae5556", - "uuidPlanMaster": "20b27fb98e624585aaa4129856f102b2", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H4-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 7, - "HoleColum": 4, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "a606cfe087c049c58e61154abbeffe56", - "uuidPlanMaster": "20b27fb98e624585aaa4129856f102b2", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H4-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 4, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "13729f8a5ac5462986ac4873ee366838", - "uuidPlanMaster": "20b27fb98e624585aaa4129856f102b2", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H5-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "1b50563259044098b34013b3ee6d6fc6", - "uuidPlanMaster": "20b27fb98e624585aaa4129856f102b2", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H5-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "266ed8f154dc4c1a915133cc44c323dd", - "uuidPlanMaster": "20b27fb98e624585aaa4129856f102b2", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H5-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "5e60731ed01946c8b83f8ecfbb971324", - "uuidPlanMaster": "20b27fb98e624585aaa4129856f102b2", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H5-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "8b3c78508d1a4dbb97d663c2b1b6c01f", - "uuidPlanMaster": "20b27fb98e624585aaa4129856f102b2", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H5-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "e732b4959c1e42b690380a34651f73c3", - "uuidPlanMaster": "20b27fb98e624585aaa4129856f102b2", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H5-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 6, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "a7a1da65a8e845389eb441d2f42d77d4", - "uuidPlanMaster": "20b27fb98e624585aaa4129856f102b2", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H5-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 7, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "86ca739460144d43aedb67eb8c806112", - "uuidPlanMaster": "20b27fb98e624585aaa4129856f102b2", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H5-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "cf3fa8d0c3ab43cb82fa930746550248", - "uuidPlanMaster": "20b27fb98e624585aaa4129856f102b2", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H6-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 6, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "5381b9fc623c4e2aaecf3bf0d700c125", - "uuidPlanMaster": "20b27fb98e624585aaa4129856f102b2", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H6-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 6, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "d552d9b389294dc7a0670f2ac38de154", - "uuidPlanMaster": "20b27fb98e624585aaa4129856f102b2", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H6-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 6, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "8fcae495a76944cbbdd3331faf39c805", - "uuidPlanMaster": "20b27fb98e624585aaa4129856f102b2", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H6-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 6, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "e987b130a064417bb8e44612896c7c35", - "uuidPlanMaster": "20b27fb98e624585aaa4129856f102b2", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H6-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 6, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "27f0e6d6a2d349468eee1225ad3ca864", - "uuidPlanMaster": "20b27fb98e624585aaa4129856f102b2", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H6-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 6, - "HoleColum": 6, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "051768240d014c949c83313f93ef371f", - "uuidPlanMaster": "20b27fb98e624585aaa4129856f102b2", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H6-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 7, - "HoleColum": 6, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "784b2d2564204027a473731f9c81dcf8", - "uuidPlanMaster": "20b27fb98e624585aaa4129856f102b2", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H6-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 6, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "b8e5d21868354299b5c1b54822004393", - "uuidPlanMaster": "20b27fb98e624585aaa4129856f102b2", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H7-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 7, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "c852ded252fa476cbcca33d07d4f1407", - "uuidPlanMaster": "20b27fb98e624585aaa4129856f102b2", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H7-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 7, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "da16d84c95374306aaccd678aa062f4a", - "uuidPlanMaster": "20b27fb98e624585aaa4129856f102b2", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H7-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 7, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "8014b56d06bb49de86159dae330944f0", - "uuidPlanMaster": "20b27fb98e624585aaa4129856f102b2", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H7-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 7, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "a1d7e8a242ca4ca4ba92d8cda8f5d71f", - "uuidPlanMaster": "20b27fb98e624585aaa4129856f102b2", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H7-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 7, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "dd06e724bbf84e0db98f0e5a12a8589c", - "uuidPlanMaster": "20b27fb98e624585aaa4129856f102b2", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H7-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 6, - "HoleColum": 7, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "7a30670b23534dfe91267d7e4a14a545", - "uuidPlanMaster": "20b27fb98e624585aaa4129856f102b2", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H7-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 7, - "HoleColum": 7, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "e38a36e3937c4df7b9fc7a249fca7d67", - "uuidPlanMaster": "20b27fb98e624585aaa4129856f102b2", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H7-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 7, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "e8251ce5e4094e629b69c3419a86b45d", - "uuidPlanMaster": "20b27fb98e624585aaa4129856f102b2", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H8-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 8, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "5b8899e8d0414854bca32a531860a9d7", - "uuidPlanMaster": "20b27fb98e624585aaa4129856f102b2", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H8-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 8, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "849b300173ae445f8f5b979c16604c4d", - "uuidPlanMaster": "20b27fb98e624585aaa4129856f102b2", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H8-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 8, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "6ff36caf2eaa43ff8ea69101b3a93e01", - "uuidPlanMaster": "20b27fb98e624585aaa4129856f102b2", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H8-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 8, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "a4b521c6ab04437fa47f1d88d081b9f7", - "uuidPlanMaster": "20b27fb98e624585aaa4129856f102b2", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H8-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 8, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "63dbbd82fab74f15abfa1ea1318d7cdd", - "uuidPlanMaster": "20b27fb98e624585aaa4129856f102b2", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H8-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 6, - "HoleColum": 8, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "6f0280016cff4c8c9fe6445809e4edd5", - "uuidPlanMaster": "20b27fb98e624585aaa4129856f102b2", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H8-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 7, - "HoleColum": 8, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "f857a5c492b947be87351585fe9a72e8", - "uuidPlanMaster": "20b27fb98e624585aaa4129856f102b2", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H8-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 8, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "7856102fb2b4441a926e5599dfd507ea", - "uuidPlanMaster": "20b27fb98e624585aaa4129856f102b2", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H9-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 9, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "bd40ee2611214dd3a91c72c55d0bf7b4", - "uuidPlanMaster": "20b27fb98e624585aaa4129856f102b2", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H9-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 9, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "681840ff5e8f4fbbb1102e0f0de160f2", - "uuidPlanMaster": "20b27fb98e624585aaa4129856f102b2", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H9-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 9, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "6907764bdbbe418c894897085c752160", - "uuidPlanMaster": "20b27fb98e624585aaa4129856f102b2", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H9-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 9, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "5e1640fc3ede455d9b88b22643241b35", - "uuidPlanMaster": "20b27fb98e624585aaa4129856f102b2", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H9-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 9, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "24be1207bc9d465182f92be10d120de2", - "uuidPlanMaster": "20b27fb98e624585aaa4129856f102b2", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H9-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 6, - "HoleColum": 9, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "02559a8fec4d44df847519747b976397", - "uuidPlanMaster": "20b27fb98e624585aaa4129856f102b2", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H9-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 7, - "HoleColum": 9, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "7b5ee274c6be41f787624994569a3094", - "uuidPlanMaster": "20b27fb98e624585aaa4129856f102b2", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H9-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 9, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "aa2e87e21bd748a28bf6d9ea3bb256a2", - "uuidPlanMaster": "20b27fb98e624585aaa4129856f102b2", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H10-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 10, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "f777c10c91b74a33baf7344a7d58e5cc", - "uuidPlanMaster": "20b27fb98e624585aaa4129856f102b2", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H10-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 10, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "6e307d8e2e9846fbadbe1046de409eb0", - "uuidPlanMaster": "20b27fb98e624585aaa4129856f102b2", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H10-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 10, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "0372a8a08d0a4091a6df08fedaff10da", - "uuidPlanMaster": "20b27fb98e624585aaa4129856f102b2", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H10-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 10, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "1af21b7689f14165b510bed66bc072ad", - "uuidPlanMaster": "20b27fb98e624585aaa4129856f102b2", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H10-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 10, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "75f3c078a9514f2e94895d7e833f0c2d", - "uuidPlanMaster": "20b27fb98e624585aaa4129856f102b2", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H10-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 6, - "HoleColum": 10, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "88dde6009dc94de1bf8c4b86e6093d42", - "uuidPlanMaster": "20b27fb98e624585aaa4129856f102b2", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H10-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 7, - "HoleColum": 10, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "26c2b40dc91249a8bf922cf4ca19db31", - "uuidPlanMaster": "20b27fb98e624585aaa4129856f102b2", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H10-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 10, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "61d3499703754c53bfda0e146ac3ad2f", - "uuidPlanMaster": "20b27fb98e624585aaa4129856f102b2", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H11-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 11, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "9c5d23c9189b494488931c5a37044150", - "uuidPlanMaster": "20b27fb98e624585aaa4129856f102b2", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H11-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 11, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "4333d1f7212e494ebf6de58d7876fc17", - "uuidPlanMaster": "20b27fb98e624585aaa4129856f102b2", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H11-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 11, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "8fef2bac1bd948a9bcb673f3e41f64df", - "uuidPlanMaster": "20b27fb98e624585aaa4129856f102b2", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H11-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 11, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "46280224236944299305140488336f82", - "uuidPlanMaster": "20b27fb98e624585aaa4129856f102b2", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H11-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 11, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "bd852d1a882b41709ea3d0c5522b4ae3", - "uuidPlanMaster": "20b27fb98e624585aaa4129856f102b2", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H11-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 6, - "HoleColum": 11, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "1c7fac8c5f6d47ed95de8a98a4032974", - "uuidPlanMaster": "20b27fb98e624585aaa4129856f102b2", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H11-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 7, - "HoleColum": 11, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "2c4dfee079144e51b5de447d56ffb7ed", - "uuidPlanMaster": "20b27fb98e624585aaa4129856f102b2", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H11-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 11, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "b716f3f59831409b85945f82dae94aed", - "uuidPlanMaster": "20b27fb98e624585aaa4129856f102b2", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H12-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 12, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "d273775862c94543bbe16dcf57d21e9b", - "uuidPlanMaster": "20b27fb98e624585aaa4129856f102b2", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H12-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 12, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "ba8cc2fdc7e5458e9ec7b4a4cc0ac66a", - "uuidPlanMaster": "20b27fb98e624585aaa4129856f102b2", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H12-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 12, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "0b84b72e5beb4b4d951bcc8576cb8e01", - "uuidPlanMaster": "20b27fb98e624585aaa4129856f102b2", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H12-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 12, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "0a582d575da44980bdcba82d552fe857", - "uuidPlanMaster": "20b27fb98e624585aaa4129856f102b2", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H12-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 12, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "adccda53c6b34057989ac39cb18cb4f4", - "uuidPlanMaster": "20b27fb98e624585aaa4129856f102b2", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H12-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 6, - "HoleColum": 12, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "56729a2eb76348b0a02f4c63a9e0949f", - "uuidPlanMaster": "20b27fb98e624585aaa4129856f102b2", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H12-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 7, - "HoleColum": 12, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "e29c078d0ec54341957426d57d917e91", - "uuidPlanMaster": "20b27fb98e624585aaa4129856f102b2", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H12-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 12, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "9fed8e6579de4cbcaaddd3f88f393abd", - "uuidPlanMaster": "20b27fb98e624585aaa4129856f102b2", - "Axis": "Right", - "ActOn": "Blending", - "Place": "H12-8,T10", - "Dosage": 5, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 10, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 12, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 3, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "3d4ba82783b34a68a2fbf17a3843d887", - "uuidPlanMaster": "20b27fb98e624585aaa4129856f102b2", - "Axis": "Right", - "ActOn": "UnLoad", - "Place": "H1-8,T16", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 16, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "5d2171bfeacd472a9ecaf29333e93dde", - "uuidPlanMaster": "c3ccfcbfe975424bb2e7de9c663fae25", - "Axis": "Right", - "ActOn": "Load", - "Place": "H5-8,T5", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 5, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 5, - "HoleCollective": "35", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "96e73020a28a404eb6572d481299c977", - "uuidPlanMaster": "c3ccfcbfe975424bb2e7de9c663fae25", - "Axis": "Right", - "ActOn": "Imbibing", - "Place": "H12-8,T9", - "Dosage": 5, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 9, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 12, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "f70fef65537640678a3b6a6c6b907121", - "uuidPlanMaster": "c3ccfcbfe975424bb2e7de9c663fae25", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H1-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "24a54eb2fb87490e8cef3f5681423953", - "uuidPlanMaster": "c3ccfcbfe975424bb2e7de9c663fae25", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H1-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "121fa1071492407494c23c98f679b8ec", - "uuidPlanMaster": "c3ccfcbfe975424bb2e7de9c663fae25", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H1-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "78fa55e9ab01474e9a4e7a8b850bd4fd", - "uuidPlanMaster": "c3ccfcbfe975424bb2e7de9c663fae25", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H1-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "914de4994dba49cebf4f74444036ff3b", - "uuidPlanMaster": "c3ccfcbfe975424bb2e7de9c663fae25", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H1-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "4682c96a5bb340f7b18138ba7d6a9759", - "uuidPlanMaster": "c3ccfcbfe975424bb2e7de9c663fae25", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H1-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 6, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "82225b6783ba44b886dba4ddc06bb0ae", - "uuidPlanMaster": "c3ccfcbfe975424bb2e7de9c663fae25", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H1-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 7, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "bff986c5e4ac40619c906c7073e6aa20", - "uuidPlanMaster": "c3ccfcbfe975424bb2e7de9c663fae25", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H1-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "6454e17aed0f42c6973cf07d074777ee", - "uuidPlanMaster": "c3ccfcbfe975424bb2e7de9c663fae25", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H2-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 2, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "5cfafd6b43424a08abe16ce6478c1572", - "uuidPlanMaster": "c3ccfcbfe975424bb2e7de9c663fae25", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H2-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 2, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "278a177a80d745338a8f443e6e48f270", - "uuidPlanMaster": "c3ccfcbfe975424bb2e7de9c663fae25", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H2-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 2, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "9395929387af419abcc9a9693c449540", - "uuidPlanMaster": "c3ccfcbfe975424bb2e7de9c663fae25", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H2-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 2, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "5224561545d94272871a1179e4875e7e", - "uuidPlanMaster": "c3ccfcbfe975424bb2e7de9c663fae25", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H2-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 2, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "95a78064f7704a8e8d002a48e54a87d3", - "uuidPlanMaster": "c3ccfcbfe975424bb2e7de9c663fae25", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H2-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 6, - "HoleColum": 2, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "22ff2f6800fd46fe852542b64ea3dd8b", - "uuidPlanMaster": "c3ccfcbfe975424bb2e7de9c663fae25", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H2-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 7, - "HoleColum": 2, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "da9373ab0e594692b921ed0d690395fe", - "uuidPlanMaster": "c3ccfcbfe975424bb2e7de9c663fae25", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H2-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 2, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "00533f19d29743948cc8bef99bce6d4d", - "uuidPlanMaster": "c3ccfcbfe975424bb2e7de9c663fae25", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H3-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "4a59052ae514468fadff240910a91b49", - "uuidPlanMaster": "c3ccfcbfe975424bb2e7de9c663fae25", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H3-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "806bd8ca9b8a4133bfd66a13ddbcfbae", - "uuidPlanMaster": "c3ccfcbfe975424bb2e7de9c663fae25", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H3-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "3d2e30c00c2044ad943d6e8e52affa0a", - "uuidPlanMaster": "c3ccfcbfe975424bb2e7de9c663fae25", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H3-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "fd11422933a34c579d61d147a045a50c", - "uuidPlanMaster": "c3ccfcbfe975424bb2e7de9c663fae25", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H3-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "718acf331b284cfd9d75277f1c00a491", - "uuidPlanMaster": "c3ccfcbfe975424bb2e7de9c663fae25", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H3-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 6, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "978d73258ceb4a2780fe329794f1ac05", - "uuidPlanMaster": "c3ccfcbfe975424bb2e7de9c663fae25", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H3-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 7, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "cf03660ec10e4807aed91ea72ede093d", - "uuidPlanMaster": "c3ccfcbfe975424bb2e7de9c663fae25", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H3-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "acdb3121767a425d877908ec5d0b222a", - "uuidPlanMaster": "c3ccfcbfe975424bb2e7de9c663fae25", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H4-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 4, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "6337505de87f47fb8f167f9794572fab", - "uuidPlanMaster": "c3ccfcbfe975424bb2e7de9c663fae25", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H4-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 4, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "1027ed0a12364c42917d614c9c74dd9a", - "uuidPlanMaster": "c3ccfcbfe975424bb2e7de9c663fae25", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H4-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 4, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "2406d4b2c4c04adb8c599b2525301ad9", - "uuidPlanMaster": "c3ccfcbfe975424bb2e7de9c663fae25", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H4-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 4, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "252f0c8f70e0484c9f29352de65859a3", - "uuidPlanMaster": "c3ccfcbfe975424bb2e7de9c663fae25", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H4-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 4, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "b5bc5248b16d4fdca66f72faea6344ec", - "uuidPlanMaster": "c3ccfcbfe975424bb2e7de9c663fae25", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H4-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 6, - "HoleColum": 4, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "cceffe4b32b84e8da569c2620844669f", - "uuidPlanMaster": "c3ccfcbfe975424bb2e7de9c663fae25", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H4-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 7, - "HoleColum": 4, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "93c82f5be13146a6be77ce9b07b5aa2c", - "uuidPlanMaster": "c3ccfcbfe975424bb2e7de9c663fae25", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H4-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 4, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "4e2b660a5608403791d9042d84c33f07", - "uuidPlanMaster": "c3ccfcbfe975424bb2e7de9c663fae25", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H5-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "35c0d09cd168490ebd597998dcf633a1", - "uuidPlanMaster": "c3ccfcbfe975424bb2e7de9c663fae25", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H5-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "43b8b9a937ea4a3187eac84c16b8798c", - "uuidPlanMaster": "c3ccfcbfe975424bb2e7de9c663fae25", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H5-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "fd600a74768b47d4b288f345af9d3056", - "uuidPlanMaster": "c3ccfcbfe975424bb2e7de9c663fae25", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H5-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "a4f848b3859d40f6a90784e596eb60c7", - "uuidPlanMaster": "c3ccfcbfe975424bb2e7de9c663fae25", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H5-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "45ce971a221849cf97e578b7c3df14f7", - "uuidPlanMaster": "c3ccfcbfe975424bb2e7de9c663fae25", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H5-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 6, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "a16b02a2d3494e82a5692213dd2afbf8", - "uuidPlanMaster": "c3ccfcbfe975424bb2e7de9c663fae25", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H5-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 7, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "e9d4f0a0a64e4f098b93cb34df8aa83a", - "uuidPlanMaster": "c3ccfcbfe975424bb2e7de9c663fae25", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H5-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "916ed3e2b4af4ab29ad1b612ea3d6764", - "uuidPlanMaster": "c3ccfcbfe975424bb2e7de9c663fae25", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H6-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 6, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "14cff4af9e6c4262ba282127fd27f7bc", - "uuidPlanMaster": "c3ccfcbfe975424bb2e7de9c663fae25", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H6-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 6, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "31b2e973ae84469fbdcf6ff0e7f3ff00", - "uuidPlanMaster": "c3ccfcbfe975424bb2e7de9c663fae25", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H6-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 6, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "22fe2b0f5f1a41908d1caa45a816d310", - "uuidPlanMaster": "c3ccfcbfe975424bb2e7de9c663fae25", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H6-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 6, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "2857cac403354fceb597ff402f1cc73a", - "uuidPlanMaster": "c3ccfcbfe975424bb2e7de9c663fae25", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H6-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 6, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "25862f3a384c4dc3b853bb4e9cff055f", - "uuidPlanMaster": "c3ccfcbfe975424bb2e7de9c663fae25", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H6-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 6, - "HoleColum": 6, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "edca711d992c428990fb3a54a294b2c5", - "uuidPlanMaster": "c3ccfcbfe975424bb2e7de9c663fae25", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H6-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 7, - "HoleColum": 6, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "bd1d99bde46249b0867d7d76189892f4", - "uuidPlanMaster": "c3ccfcbfe975424bb2e7de9c663fae25", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H6-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 6, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "3e3db60b8ded4052b61659a94a6c9a28", - "uuidPlanMaster": "c3ccfcbfe975424bb2e7de9c663fae25", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H7-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 7, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "659fb0922f1f48a0bbd9a419d4b0f58b", - "uuidPlanMaster": "c3ccfcbfe975424bb2e7de9c663fae25", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H7-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 7, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "a4f7541e6a2f4dcfaffb7f7cb6c1fae4", - "uuidPlanMaster": "c3ccfcbfe975424bb2e7de9c663fae25", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H7-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 7, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "997a4586166e49f39d24e6e5eadef226", - "uuidPlanMaster": "c3ccfcbfe975424bb2e7de9c663fae25", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H7-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 7, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "b85cffb3d7f04deca5fe8f10c67cd0c0", - "uuidPlanMaster": "c3ccfcbfe975424bb2e7de9c663fae25", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H7-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 7, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "65456d48d1cb41db9d607afc9fc2d5a7", - "uuidPlanMaster": "c3ccfcbfe975424bb2e7de9c663fae25", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H7-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 6, - "HoleColum": 7, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "cb9d45d95c614b9d8a602e2af9c65dd7", - "uuidPlanMaster": "c3ccfcbfe975424bb2e7de9c663fae25", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H7-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 7, - "HoleColum": 7, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "2dcbd3694dea44a0ae7509949ef9ebb0", - "uuidPlanMaster": "c3ccfcbfe975424bb2e7de9c663fae25", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H7-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 7, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "1277b58fb3b941a991164b3c73089c9c", - "uuidPlanMaster": "c3ccfcbfe975424bb2e7de9c663fae25", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H8-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 8, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "b8dc9b35134046c68e85382a90e06da4", - "uuidPlanMaster": "c3ccfcbfe975424bb2e7de9c663fae25", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H8-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 8, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "7ff4dea49e544015b90745ec2a36254a", - "uuidPlanMaster": "c3ccfcbfe975424bb2e7de9c663fae25", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H8-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 8, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "67c559bfa8a049299925fa21d0e62372", - "uuidPlanMaster": "c3ccfcbfe975424bb2e7de9c663fae25", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H8-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 8, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "d68e6762a1b249e1bb93b6a827c4420e", - "uuidPlanMaster": "c3ccfcbfe975424bb2e7de9c663fae25", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H8-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 8, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "9df03a32f9e445b5874b19e3ce541234", - "uuidPlanMaster": "c3ccfcbfe975424bb2e7de9c663fae25", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H8-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 6, - "HoleColum": 8, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "367e7e3fc6c94d56addf995deb57cc8b", - "uuidPlanMaster": "c3ccfcbfe975424bb2e7de9c663fae25", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H8-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 7, - "HoleColum": 8, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "486a1db6fb194df68455d16140f90ed7", - "uuidPlanMaster": "c3ccfcbfe975424bb2e7de9c663fae25", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H8-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 8, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "454934e43b754cd4b6c78c37a7e2dcb0", - "uuidPlanMaster": "c3ccfcbfe975424bb2e7de9c663fae25", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H9-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 9, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "ee7453c2871a45b0b51fbbc65b1df859", - "uuidPlanMaster": "c3ccfcbfe975424bb2e7de9c663fae25", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H9-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 9, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "e8cf633f7b1746019006d37b42b30dd5", - "uuidPlanMaster": "c3ccfcbfe975424bb2e7de9c663fae25", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H9-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 9, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "6fa26be11e6b48eeb320ee282706f67e", - "uuidPlanMaster": "c3ccfcbfe975424bb2e7de9c663fae25", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H9-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 9, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "b68facd92e504b16aaf3de8eb4601503", - "uuidPlanMaster": "c3ccfcbfe975424bb2e7de9c663fae25", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H9-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 9, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "8e8f7b9e22d0478994b00e7e61a0bcc0", - "uuidPlanMaster": "c3ccfcbfe975424bb2e7de9c663fae25", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H9-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 6, - "HoleColum": 9, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "4f66c7f2e85b4421bdfae37f2c7ef28a", - "uuidPlanMaster": "c3ccfcbfe975424bb2e7de9c663fae25", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H9-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 7, - "HoleColum": 9, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "b2d159ff81f74381b5e77f1131b79a58", - "uuidPlanMaster": "c3ccfcbfe975424bb2e7de9c663fae25", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H9-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 9, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "0a981ababf85476fadc090e6420d2421", - "uuidPlanMaster": "c3ccfcbfe975424bb2e7de9c663fae25", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H10-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 10, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "176da0d9d9ba4552862f9ef658d004a5", - "uuidPlanMaster": "c3ccfcbfe975424bb2e7de9c663fae25", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H10-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 10, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "0ef456bde7034a65b0840533a6287d6e", - "uuidPlanMaster": "c3ccfcbfe975424bb2e7de9c663fae25", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H10-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 10, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "829867a471254e08ac7f1f84697f64df", - "uuidPlanMaster": "c3ccfcbfe975424bb2e7de9c663fae25", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H10-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 10, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "f721048c57a34126bbf0a9bffb4f80fe", - "uuidPlanMaster": "c3ccfcbfe975424bb2e7de9c663fae25", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H10-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 10, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "83c813ab30434f20969031db5b014c34", - "uuidPlanMaster": "c3ccfcbfe975424bb2e7de9c663fae25", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H10-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 6, - "HoleColum": 10, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "e438bb83201d454ab06357e943b82699", - "uuidPlanMaster": "c3ccfcbfe975424bb2e7de9c663fae25", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H10-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 7, - "HoleColum": 10, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "481502203e974e54b898c36dff1256ed", - "uuidPlanMaster": "c3ccfcbfe975424bb2e7de9c663fae25", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H10-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 10, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "5a04f22a5f6241dc827c5407260486d9", - "uuidPlanMaster": "c3ccfcbfe975424bb2e7de9c663fae25", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H11-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 11, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "229b05cad513475c9d86921d28299200", - "uuidPlanMaster": "c3ccfcbfe975424bb2e7de9c663fae25", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H11-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 11, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "85094685b8d74fb3a0022cd3c72fcbcf", - "uuidPlanMaster": "c3ccfcbfe975424bb2e7de9c663fae25", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H11-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 11, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "d2fd98a5adf341b89404c05d0c250288", - "uuidPlanMaster": "c3ccfcbfe975424bb2e7de9c663fae25", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H11-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 11, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "d37c6eadc436482a8e06a3d975b22f69", - "uuidPlanMaster": "c3ccfcbfe975424bb2e7de9c663fae25", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H11-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 11, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "79241d75d965404a87ac5c4d3fb82e37", - "uuidPlanMaster": "c3ccfcbfe975424bb2e7de9c663fae25", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H11-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 6, - "HoleColum": 11, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "eec3422fd9644d8298c5056fdfbc9595", - "uuidPlanMaster": "c3ccfcbfe975424bb2e7de9c663fae25", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H11-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 7, - "HoleColum": 11, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "ff7807b4152a479b8c204243084cda4a", - "uuidPlanMaster": "c3ccfcbfe975424bb2e7de9c663fae25", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H11-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 11, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "8d002c674c6f46e38030320cbca28f37", - "uuidPlanMaster": "c3ccfcbfe975424bb2e7de9c663fae25", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H12-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 12, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "4328d1c5a53d448db1a35ddbfeca48da", - "uuidPlanMaster": "c3ccfcbfe975424bb2e7de9c663fae25", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H12-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 12, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "e4636f22234944f19d1d5fa8bf60ec3c", - "uuidPlanMaster": "c3ccfcbfe975424bb2e7de9c663fae25", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H12-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 12, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "d599bb35110b44b29ce17cdfdc26f35b", - "uuidPlanMaster": "c3ccfcbfe975424bb2e7de9c663fae25", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H12-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 12, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "bf748730cbd4456fbefbd176ecb645f5", - "uuidPlanMaster": "c3ccfcbfe975424bb2e7de9c663fae25", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H12-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 12, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "fd51770e3e3448d794cd2cb5d45b7671", - "uuidPlanMaster": "c3ccfcbfe975424bb2e7de9c663fae25", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H12-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 6, - "HoleColum": 12, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "632bc32e11354240afaafdf116591522", - "uuidPlanMaster": "c3ccfcbfe975424bb2e7de9c663fae25", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H12-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 7, - "HoleColum": 12, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "bd827a0c700043a58692be19dac6baac", - "uuidPlanMaster": "c3ccfcbfe975424bb2e7de9c663fae25", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H12-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 12, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "2625bbfe7c36474ab9861d0c4063a9d1", - "uuidPlanMaster": "c3ccfcbfe975424bb2e7de9c663fae25", - "Axis": "Right", - "ActOn": "Blending", - "Place": "H12-8,T10", - "Dosage": 5, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 10, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 12, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 3, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "4130fb06e12a45ef9c225d438338aa57", - "uuidPlanMaster": "c3ccfcbfe975424bb2e7de9c663fae25", - "Axis": "Right", - "ActOn": "UnLoad", - "Place": "H1-8,T16", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 16, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "eb15e83b209c401ebdb38427b386a218", - "uuidPlanMaster": "36e8123539f243c0828a4c9e25397c5f", - "Axis": "Right", - "ActOn": "Load", - "Place": "H5-8,T5", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 5, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 5, - "HoleCollective": "35", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "d366f94372444308afae6b62fb8138cb", - "uuidPlanMaster": "36e8123539f243c0828a4c9e25397c5f", - "Axis": "Right", - "ActOn": "Imbibing", - "Place": "H12-8,T9", - "Dosage": 5, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 9, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 12, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "225752535dda453d85282f9e47f17e41", - "uuidPlanMaster": "36e8123539f243c0828a4c9e25397c5f", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H1-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "7b6dcee2e12a4457b2c8954611d0c2fb", - "uuidPlanMaster": "36e8123539f243c0828a4c9e25397c5f", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H1-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "fa1e19b419724f7ebc8a409142381c90", - "uuidPlanMaster": "36e8123539f243c0828a4c9e25397c5f", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H1-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "d859d33f2af8446eae15de009fb97c9a", - "uuidPlanMaster": "36e8123539f243c0828a4c9e25397c5f", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H1-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "9664f36bab4f43e8b39d3aa31b5471fa", - "uuidPlanMaster": "36e8123539f243c0828a4c9e25397c5f", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H1-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "eab36bd9f2104dc5a082851130457a5c", - "uuidPlanMaster": "36e8123539f243c0828a4c9e25397c5f", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H1-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 6, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "117be41f50854d878c95a606af1c7ea6", - "uuidPlanMaster": "36e8123539f243c0828a4c9e25397c5f", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H1-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 7, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "3aee9db8d4fa4414a160f913964a420b", - "uuidPlanMaster": "36e8123539f243c0828a4c9e25397c5f", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H1-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "0b6001a500624a9889f7386a03066fcc", - "uuidPlanMaster": "36e8123539f243c0828a4c9e25397c5f", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H2-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 2, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "5ff6729174584bdb84ca1b38a89978d1", - "uuidPlanMaster": "36e8123539f243c0828a4c9e25397c5f", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H2-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 2, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "31f1688ece9e425db366bef1accc9507", - "uuidPlanMaster": "36e8123539f243c0828a4c9e25397c5f", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H2-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 2, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "80fd3f7c89b2435680a14347151deb12", - "uuidPlanMaster": "36e8123539f243c0828a4c9e25397c5f", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H2-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 2, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "c39cfbdedd45407c8feda679011fd1a0", - "uuidPlanMaster": "36e8123539f243c0828a4c9e25397c5f", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H2-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 2, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "5d3effe3bbd14c81960ac0b36b5177da", - "uuidPlanMaster": "36e8123539f243c0828a4c9e25397c5f", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H2-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 6, - "HoleColum": 2, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "7ed262784da04d2c85be5bd83ea1abdd", - "uuidPlanMaster": "36e8123539f243c0828a4c9e25397c5f", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H2-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 7, - "HoleColum": 2, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "f3c29daf5bfd490dbffaebb478108395", - "uuidPlanMaster": "36e8123539f243c0828a4c9e25397c5f", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H2-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 2, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "ec74f41ac56d43249df23596c552cd57", - "uuidPlanMaster": "36e8123539f243c0828a4c9e25397c5f", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H3-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "e896cc9d1f864878b0c096faa83abca6", - "uuidPlanMaster": "36e8123539f243c0828a4c9e25397c5f", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H3-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "9ba1146a6547487db35a172219794eab", - "uuidPlanMaster": "36e8123539f243c0828a4c9e25397c5f", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H3-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "b98c8a767c8b4b97ad9cc3c3800825d9", - "uuidPlanMaster": "36e8123539f243c0828a4c9e25397c5f", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H3-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "a0835354cf7648faa9e4d3d5a07c83cd", - "uuidPlanMaster": "36e8123539f243c0828a4c9e25397c5f", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H3-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "953ee8de0a4048a6bb581c9be7475e7a", - "uuidPlanMaster": "36e8123539f243c0828a4c9e25397c5f", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H3-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 6, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "c313df4300f24960ba767938ab0c12b2", - "uuidPlanMaster": "36e8123539f243c0828a4c9e25397c5f", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H3-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 7, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "e7519578584d4ceeab06ea1522c5d840", - "uuidPlanMaster": "36e8123539f243c0828a4c9e25397c5f", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H3-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "ed5593538a1943f1bc45989d131a6992", - "uuidPlanMaster": "36e8123539f243c0828a4c9e25397c5f", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H4-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 4, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "6f6a88df6ff64de49031b4e91ba33c7e", - "uuidPlanMaster": "36e8123539f243c0828a4c9e25397c5f", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H4-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 4, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "332f53d9c6624051b0f982d55748b345", - "uuidPlanMaster": "36e8123539f243c0828a4c9e25397c5f", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H4-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 4, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "399d48a39a6a407baec4462d0cda05ab", - "uuidPlanMaster": "36e8123539f243c0828a4c9e25397c5f", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H4-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 4, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "f175f08d8f28415e82ca9894def4c94b", - "uuidPlanMaster": "36e8123539f243c0828a4c9e25397c5f", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H4-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 4, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "c69784d3bd484d6fb11ec81efb444cdb", - "uuidPlanMaster": "36e8123539f243c0828a4c9e25397c5f", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H4-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 6, - "HoleColum": 4, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "2b4cc7b80d254732a167a53a853f5913", - "uuidPlanMaster": "36e8123539f243c0828a4c9e25397c5f", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H4-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 7, - "HoleColum": 4, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "9035521b04c54f48b0b165333744e9ed", - "uuidPlanMaster": "36e8123539f243c0828a4c9e25397c5f", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H4-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 4, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "0bd0f6808b134fce8b16c4ed2fa1a032", - "uuidPlanMaster": "36e8123539f243c0828a4c9e25397c5f", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H5-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "b303b826c1544329b189b0f0b279fce2", - "uuidPlanMaster": "36e8123539f243c0828a4c9e25397c5f", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H5-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "e2b30343d54a4c969ac1474e2e99b9a8", - "uuidPlanMaster": "36e8123539f243c0828a4c9e25397c5f", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H5-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "3676bcab8e334e9b9f4d380d8051ffde", - "uuidPlanMaster": "36e8123539f243c0828a4c9e25397c5f", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H5-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "4e7bf56feaa84ca7a4ddd0bd5b6dc82b", - "uuidPlanMaster": "36e8123539f243c0828a4c9e25397c5f", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H5-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "a4655adf0ae7464ebcd87e3d38a920b0", - "uuidPlanMaster": "36e8123539f243c0828a4c9e25397c5f", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H5-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 6, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "c55b391377c54841999edaa9b7a7a021", - "uuidPlanMaster": "36e8123539f243c0828a4c9e25397c5f", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H5-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 7, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "363d18d56db34c80be0d88fb762f24e2", - "uuidPlanMaster": "36e8123539f243c0828a4c9e25397c5f", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H5-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "2021057308884a768f18bec290174ddb", - "uuidPlanMaster": "36e8123539f243c0828a4c9e25397c5f", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H6-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 6, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "ffca31872c0040d0bcb7d4ef1d478d5c", - "uuidPlanMaster": "36e8123539f243c0828a4c9e25397c5f", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H6-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 6, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "ac76af85000e4d6dada266e26de79276", - "uuidPlanMaster": "36e8123539f243c0828a4c9e25397c5f", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H6-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 6, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "fa0077c4b3fa4d6f9a94b4007c1a304c", - "uuidPlanMaster": "36e8123539f243c0828a4c9e25397c5f", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H6-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 6, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "d8cc940e48d2499c86ff729c23609307", - "uuidPlanMaster": "36e8123539f243c0828a4c9e25397c5f", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H6-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 6, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "a324804cd69844a59bce0d440f073c3e", - "uuidPlanMaster": "36e8123539f243c0828a4c9e25397c5f", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H6-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 6, - "HoleColum": 6, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "42045c84fb1942b49a9392c8be195edb", - "uuidPlanMaster": "36e8123539f243c0828a4c9e25397c5f", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H6-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 7, - "HoleColum": 6, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "9c09dc4c95d04c38b8e7df7ca5f21f39", - "uuidPlanMaster": "36e8123539f243c0828a4c9e25397c5f", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H6-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 6, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "ac4014a4cf9849bcb15dd27871174231", - "uuidPlanMaster": "36e8123539f243c0828a4c9e25397c5f", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H7-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 7, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "eacfe01b2b7d4c2d8eb2d10b752e7c95", - "uuidPlanMaster": "36e8123539f243c0828a4c9e25397c5f", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H7-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 7, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "df1fe8416c38403ca7b8c2583ab7f5e4", - "uuidPlanMaster": "36e8123539f243c0828a4c9e25397c5f", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H7-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 7, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "4bd3085dd3804598ac23cc4a55d0cafe", - "uuidPlanMaster": "36e8123539f243c0828a4c9e25397c5f", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H7-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 7, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "c0c84af7bbba43e9ad9e53d4e200c273", - "uuidPlanMaster": "36e8123539f243c0828a4c9e25397c5f", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H7-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 7, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "bb47a2d9c4df45fe93065e788ba9f64f", - "uuidPlanMaster": "36e8123539f243c0828a4c9e25397c5f", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H7-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 6, - "HoleColum": 7, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "4cbdc23ae1a548eb990dd092b87d8e9e", - "uuidPlanMaster": "36e8123539f243c0828a4c9e25397c5f", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H7-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 7, - "HoleColum": 7, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "a0706a22aa404a73bad09b20966245b7", - "uuidPlanMaster": "36e8123539f243c0828a4c9e25397c5f", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H7-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 7, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "1f219ef96ac843a6b868420a92a4c5b7", - "uuidPlanMaster": "36e8123539f243c0828a4c9e25397c5f", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H8-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 8, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "ea6b5d339e484df5a67a973f77022be8", - "uuidPlanMaster": "36e8123539f243c0828a4c9e25397c5f", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H8-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 8, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "b81eedecbbb34a87a13824fa8de95240", - "uuidPlanMaster": "36e8123539f243c0828a4c9e25397c5f", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H8-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 8, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "aa182ef1b05f4beb8c047ee799368f76", - "uuidPlanMaster": "36e8123539f243c0828a4c9e25397c5f", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H8-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 8, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "11eb063caa714ceab5c745e33dc09b47", - "uuidPlanMaster": "36e8123539f243c0828a4c9e25397c5f", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H8-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 8, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "44592fd392af4c2b8bbafae19dc2b05e", - "uuidPlanMaster": "36e8123539f243c0828a4c9e25397c5f", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H8-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 6, - "HoleColum": 8, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "040be545514f4698bda55216e9ef72a9", - "uuidPlanMaster": "36e8123539f243c0828a4c9e25397c5f", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H8-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 7, - "HoleColum": 8, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "9a9c02bb1b8f4c7f89cd97e131a76cc5", - "uuidPlanMaster": "36e8123539f243c0828a4c9e25397c5f", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H8-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 8, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "6b73406654b642cdb501ae7d582d1379", - "uuidPlanMaster": "36e8123539f243c0828a4c9e25397c5f", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H9-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 9, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "fcaf78ed1dae482e9b9557d843636bcf", - "uuidPlanMaster": "36e8123539f243c0828a4c9e25397c5f", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H9-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 9, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "c40d50a3fda340809ad9d4f2f7344df2", - "uuidPlanMaster": "36e8123539f243c0828a4c9e25397c5f", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H9-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 9, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "43c95090087e41e0a258da27abec7c84", - "uuidPlanMaster": "36e8123539f243c0828a4c9e25397c5f", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H9-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 9, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "0b0b1708ee8a45e181b9efb2aeb94d2a", - "uuidPlanMaster": "36e8123539f243c0828a4c9e25397c5f", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H9-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 9, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "550e46425f524010a2727767677666a9", - "uuidPlanMaster": "36e8123539f243c0828a4c9e25397c5f", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H9-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 6, - "HoleColum": 9, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "9043f320c7614a06a01aefe62127fab0", - "uuidPlanMaster": "36e8123539f243c0828a4c9e25397c5f", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H9-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 7, - "HoleColum": 9, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "567c64f79ee142149e99c627799db6a1", - "uuidPlanMaster": "36e8123539f243c0828a4c9e25397c5f", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H9-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 9, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "8a055a0f47f24a399c519e374f50cf6f", - "uuidPlanMaster": "36e8123539f243c0828a4c9e25397c5f", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H10-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 10, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "c769f0a6251b49d09663caa7328a73b6", - "uuidPlanMaster": "36e8123539f243c0828a4c9e25397c5f", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H10-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 10, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "33451c2a8c884f8f93cc9aaf4da61227", - "uuidPlanMaster": "36e8123539f243c0828a4c9e25397c5f", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H10-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 10, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "35475b069d6b40748c941db709008282", - "uuidPlanMaster": "36e8123539f243c0828a4c9e25397c5f", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H10-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 10, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "62f97b5035774d148a7026d986f7dacd", - "uuidPlanMaster": "36e8123539f243c0828a4c9e25397c5f", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H10-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 10, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "f1a234814e0d43409c2a2d29c0d407fa", - "uuidPlanMaster": "36e8123539f243c0828a4c9e25397c5f", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H10-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 6, - "HoleColum": 10, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "ed91177ecee4476ebb1fa081be4779a3", - "uuidPlanMaster": "36e8123539f243c0828a4c9e25397c5f", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H10-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 7, - "HoleColum": 10, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "22d8722cde474893a1d89e03fe0453f0", - "uuidPlanMaster": "36e8123539f243c0828a4c9e25397c5f", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H10-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 10, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "d1a01d40907e4054b7761cd9f20ebbae", - "uuidPlanMaster": "36e8123539f243c0828a4c9e25397c5f", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H11-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 11, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "aeee734c0445447a90d5d09e35b739d7", - "uuidPlanMaster": "36e8123539f243c0828a4c9e25397c5f", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H11-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 11, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "cf2a743757a1498aa41248b9cee94c9e", - "uuidPlanMaster": "36e8123539f243c0828a4c9e25397c5f", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H11-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 11, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "9394c4df657248fb840c065002494198", - "uuidPlanMaster": "36e8123539f243c0828a4c9e25397c5f", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H11-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 11, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "eb4fddae9b1745ab82832c1b71eab46c", - "uuidPlanMaster": "36e8123539f243c0828a4c9e25397c5f", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H11-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 11, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "f453e35187524b8dbbd38b6c99b8e7d7", - "uuidPlanMaster": "36e8123539f243c0828a4c9e25397c5f", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H11-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 6, - "HoleColum": 11, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "a047a521b56c42eb8563a408b348b9e2", - "uuidPlanMaster": "36e8123539f243c0828a4c9e25397c5f", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H11-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 7, - "HoleColum": 11, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "ff5d83c46f1b4aa0a384f6c79b785962", - "uuidPlanMaster": "36e8123539f243c0828a4c9e25397c5f", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H11-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 11, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "7d70bbff185f481b84f5dc7114da5e6b", - "uuidPlanMaster": "36e8123539f243c0828a4c9e25397c5f", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H12-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 12, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "a94a8f36ae974d02b17066432fdd3e69", - "uuidPlanMaster": "36e8123539f243c0828a4c9e25397c5f", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H12-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 12, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "d58e69eaea204bcbac5289656e3e09c4", - "uuidPlanMaster": "36e8123539f243c0828a4c9e25397c5f", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H12-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 12, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "5a0ad9d89cda47358dad4f6c48e350bb", - "uuidPlanMaster": "36e8123539f243c0828a4c9e25397c5f", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H12-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 12, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "b77049c9f06543af8b3b7a68f524e55d", - "uuidPlanMaster": "36e8123539f243c0828a4c9e25397c5f", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H12-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 12, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "3005d2822c264e6abc706c4cead57c92", - "uuidPlanMaster": "36e8123539f243c0828a4c9e25397c5f", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H12-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 6, - "HoleColum": 12, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "d826977eb4944b70a56fba51be2179ae", - "uuidPlanMaster": "36e8123539f243c0828a4c9e25397c5f", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H12-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 7, - "HoleColum": 12, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "33716795d2284e5d9abdd1e40fe7067c", - "uuidPlanMaster": "36e8123539f243c0828a4c9e25397c5f", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H12-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 12, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "79207e39580a4d3aae6449847d0927ee", - "uuidPlanMaster": "36e8123539f243c0828a4c9e25397c5f", - "Axis": "Right", - "ActOn": "Blending", - "Place": "H12-8,T10", - "Dosage": 5, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 10, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 12, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 3, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "279653caeaff4c698edee687b957746a", - "uuidPlanMaster": "36e8123539f243c0828a4c9e25397c5f", - "Axis": "Right", - "ActOn": "UnLoad", - "Place": "H1-8,T16", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 16, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "381744ccfb2e4d1ab18c5e58d1447eba", - "uuidPlanMaster": "084c7be96cb64369a2fe46b9a21d8d2b", - "Axis": "Right", - "ActOn": "Load", - "Place": "H5-8,T5", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 5, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 5, - "HoleCollective": "35", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "a6bb063ddec74b99a6c31dc2a3f90f15", - "uuidPlanMaster": "084c7be96cb64369a2fe46b9a21d8d2b", - "Axis": "Right", - "ActOn": "Imbibing", - "Place": "H12-8,T9", - "Dosage": 5, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 9, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 12, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "587e5d854dcd446ea08fc124cf7fdf23", - "uuidPlanMaster": "084c7be96cb64369a2fe46b9a21d8d2b", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H1-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "869f0e1e5f6143129283de183fd67313", - "uuidPlanMaster": "084c7be96cb64369a2fe46b9a21d8d2b", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H1-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "813fe9726224482f8f25aa3547ddab5b", - "uuidPlanMaster": "084c7be96cb64369a2fe46b9a21d8d2b", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H1-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "a308ea0effdc40e19a115f1fcf1693ec", - "uuidPlanMaster": "084c7be96cb64369a2fe46b9a21d8d2b", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H1-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "c0a4a24d254a4c8985a2a7e911bf7ef9", - "uuidPlanMaster": "084c7be96cb64369a2fe46b9a21d8d2b", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H1-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "1c496751be194c86898107f66679a075", - "uuidPlanMaster": "084c7be96cb64369a2fe46b9a21d8d2b", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H1-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 6, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "79a0733531104f6488485cca567870ce", - "uuidPlanMaster": "084c7be96cb64369a2fe46b9a21d8d2b", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H1-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 7, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "0582e6c50bcf48ad9a3023f8b9066bec", - "uuidPlanMaster": "084c7be96cb64369a2fe46b9a21d8d2b", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H1-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "05a50dd9a5954297a88281d72728ace2", - "uuidPlanMaster": "084c7be96cb64369a2fe46b9a21d8d2b", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H2-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 2, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "481a0ebee7a1454d80baca2e5c07854e", - "uuidPlanMaster": "084c7be96cb64369a2fe46b9a21d8d2b", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H2-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 2, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "d7729aa58cdf47969318f6ccffc5d799", - "uuidPlanMaster": "084c7be96cb64369a2fe46b9a21d8d2b", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H2-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 2, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "01e57d6cfa9648ed8f5439691d236cdd", - "uuidPlanMaster": "084c7be96cb64369a2fe46b9a21d8d2b", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H2-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 2, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "5c74e0923013404e9675a0bfcfc0c8d4", - "uuidPlanMaster": "084c7be96cb64369a2fe46b9a21d8d2b", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H2-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 2, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "414d4cf53c15471f8922cf0562e06dc3", - "uuidPlanMaster": "084c7be96cb64369a2fe46b9a21d8d2b", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H2-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 6, - "HoleColum": 2, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "626de952dcc14e53a1c43caef89bbe56", - "uuidPlanMaster": "084c7be96cb64369a2fe46b9a21d8d2b", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H2-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 7, - "HoleColum": 2, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "27c6b31f996c4893903f4377558a6d3f", - "uuidPlanMaster": "084c7be96cb64369a2fe46b9a21d8d2b", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H2-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 2, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "cf1e9f0a58124fba8be2a26353ef4e08", - "uuidPlanMaster": "084c7be96cb64369a2fe46b9a21d8d2b", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H3-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "90eb0f53b7bd4ca693557bc32351c782", - "uuidPlanMaster": "084c7be96cb64369a2fe46b9a21d8d2b", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H3-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "d098ec5c418e41f2ac4933658b2bfc66", - "uuidPlanMaster": "084c7be96cb64369a2fe46b9a21d8d2b", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H3-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "15b65780ebbf4ed592ce420b59e7ddd0", - "uuidPlanMaster": "084c7be96cb64369a2fe46b9a21d8d2b", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H3-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "d387609909bc448a8196e97fe8425c69", - "uuidPlanMaster": "084c7be96cb64369a2fe46b9a21d8d2b", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H3-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "847e892defaf4962a32d472c4fffc67c", - "uuidPlanMaster": "084c7be96cb64369a2fe46b9a21d8d2b", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H3-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 6, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "d039e869874e43e6a522d9c3157eb80f", - "uuidPlanMaster": "084c7be96cb64369a2fe46b9a21d8d2b", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H3-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 7, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "62149acbb2ca4dbb9d59071431d9a075", - "uuidPlanMaster": "084c7be96cb64369a2fe46b9a21d8d2b", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H3-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "ca482bce04a54da99e5d2579d0ae5d88", - "uuidPlanMaster": "084c7be96cb64369a2fe46b9a21d8d2b", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H4-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 4, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "f29aba6585b849f0a760487b1851249b", - "uuidPlanMaster": "084c7be96cb64369a2fe46b9a21d8d2b", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H4-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 4, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "a81783f2a694450387e4919e7099288c", - "uuidPlanMaster": "084c7be96cb64369a2fe46b9a21d8d2b", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H4-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 4, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "d9fe91924e9e4982a92b3376cfa0ae6c", - "uuidPlanMaster": "084c7be96cb64369a2fe46b9a21d8d2b", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H4-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 4, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "ab8364fcfffe4fdfab8368776bf7b0fa", - "uuidPlanMaster": "084c7be96cb64369a2fe46b9a21d8d2b", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H4-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 4, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "71974792430f48e49e64cd082a455f3a", - "uuidPlanMaster": "084c7be96cb64369a2fe46b9a21d8d2b", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H4-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 6, - "HoleColum": 4, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "4dd422544ced45e5ab8cc9df944ae58d", - "uuidPlanMaster": "084c7be96cb64369a2fe46b9a21d8d2b", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H4-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 7, - "HoleColum": 4, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "59a1929ae7cc4525a693d91ade2b6311", - "uuidPlanMaster": "084c7be96cb64369a2fe46b9a21d8d2b", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H4-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 4, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "56ec0bc8b6bb439da24f2ae2e6e1b569", - "uuidPlanMaster": "084c7be96cb64369a2fe46b9a21d8d2b", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H5-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "2ba088eb93214abc85bed832e32723df", - "uuidPlanMaster": "084c7be96cb64369a2fe46b9a21d8d2b", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H5-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "6941e7ff1d5d41eca562b75d7a6fda6f", - "uuidPlanMaster": "084c7be96cb64369a2fe46b9a21d8d2b", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H5-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "6ca73a01ebab4fb2b172e2aae3ae0512", - "uuidPlanMaster": "084c7be96cb64369a2fe46b9a21d8d2b", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H5-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "bace9c1e29c444aab4bddea6521867e6", - "uuidPlanMaster": "084c7be96cb64369a2fe46b9a21d8d2b", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H5-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "fe54a7affa3840e5aa307309d2b7f007", - "uuidPlanMaster": "084c7be96cb64369a2fe46b9a21d8d2b", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H5-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 6, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "a82197279d81478d9241ada2a7ebd6fe", - "uuidPlanMaster": "084c7be96cb64369a2fe46b9a21d8d2b", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H5-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 7, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "a2d1b8bbc10447258493a5b92b6be430", - "uuidPlanMaster": "084c7be96cb64369a2fe46b9a21d8d2b", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H5-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "af5d546befc14fde8c296d8d96a349c2", - "uuidPlanMaster": "084c7be96cb64369a2fe46b9a21d8d2b", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H6-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 6, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "88ab3bc4977b4eeabaa03c2b67ebfd9e", - "uuidPlanMaster": "084c7be96cb64369a2fe46b9a21d8d2b", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H6-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 6, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "a4c86d7cdea24bceb4714069c19b68cc", - "uuidPlanMaster": "084c7be96cb64369a2fe46b9a21d8d2b", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H6-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 6, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "d4eea4c85b114536a88b968f0f882afc", - "uuidPlanMaster": "084c7be96cb64369a2fe46b9a21d8d2b", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H6-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 6, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "4ffec7cb47ff4419980afaed8e058d10", - "uuidPlanMaster": "084c7be96cb64369a2fe46b9a21d8d2b", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H6-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 6, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "4124304e67ef47d8b047f90af4bd0f54", - "uuidPlanMaster": "084c7be96cb64369a2fe46b9a21d8d2b", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H6-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 6, - "HoleColum": 6, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "996d7887c78941c09315416dc47a8d1b", - "uuidPlanMaster": "084c7be96cb64369a2fe46b9a21d8d2b", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H6-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 7, - "HoleColum": 6, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "002e80e7881c412b908e83d028c32fec", - "uuidPlanMaster": "084c7be96cb64369a2fe46b9a21d8d2b", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H6-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 6, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "46842d418ac449dcb860e002124025b3", - "uuidPlanMaster": "084c7be96cb64369a2fe46b9a21d8d2b", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H7-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 7, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "5e0f64ad68914bdabf5ce256547f8f6c", - "uuidPlanMaster": "084c7be96cb64369a2fe46b9a21d8d2b", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H7-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 7, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "176e2595f59f4b6a8ac46a15c72e489f", - "uuidPlanMaster": "084c7be96cb64369a2fe46b9a21d8d2b", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H7-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 7, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "2a77088479934b9fbf9176ddf5fe8236", - "uuidPlanMaster": "084c7be96cb64369a2fe46b9a21d8d2b", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H7-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 7, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "28bdeda57ba84df28f28b37f5c6eb9c5", - "uuidPlanMaster": "084c7be96cb64369a2fe46b9a21d8d2b", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H7-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 7, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "ac80459f8e154a96b1b6adfffb7eb3d6", - "uuidPlanMaster": "084c7be96cb64369a2fe46b9a21d8d2b", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H7-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 6, - "HoleColum": 7, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "5658a048d6f7458e832c9fa4a9be071a", - "uuidPlanMaster": "084c7be96cb64369a2fe46b9a21d8d2b", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H7-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 7, - "HoleColum": 7, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "8c70d06294044d64993a30e4e145d750", - "uuidPlanMaster": "084c7be96cb64369a2fe46b9a21d8d2b", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H7-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 7, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "19c3c8affb6244409298e792c63c7a32", - "uuidPlanMaster": "084c7be96cb64369a2fe46b9a21d8d2b", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H8-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 8, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "2e75ed96e0144c18aa59f8eb2d6ff7ad", - "uuidPlanMaster": "084c7be96cb64369a2fe46b9a21d8d2b", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H8-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 8, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "609c4fb946ac442da369cbd621f30e05", - "uuidPlanMaster": "084c7be96cb64369a2fe46b9a21d8d2b", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H8-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 8, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "35d148bba3a0495da174c451bed4df32", - "uuidPlanMaster": "084c7be96cb64369a2fe46b9a21d8d2b", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H8-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 8, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "72675849f32a495a9b53d15a7677e6e2", - "uuidPlanMaster": "084c7be96cb64369a2fe46b9a21d8d2b", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H8-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 8, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "633be1dfad4f4ddf8f083bc5dcd3964b", - "uuidPlanMaster": "084c7be96cb64369a2fe46b9a21d8d2b", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H8-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 6, - "HoleColum": 8, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "e9e5047c97b64a2c8d6fd2f188dfff37", - "uuidPlanMaster": "084c7be96cb64369a2fe46b9a21d8d2b", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H8-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 7, - "HoleColum": 8, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "5cafaba468c14692b989fcae1760fef5", - "uuidPlanMaster": "084c7be96cb64369a2fe46b9a21d8d2b", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H8-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 8, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "c926ece337b04459bcf098e9a3466598", - "uuidPlanMaster": "084c7be96cb64369a2fe46b9a21d8d2b", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H9-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 9, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "5024aa8b0c204b3d84d8499ae75a91a3", - "uuidPlanMaster": "084c7be96cb64369a2fe46b9a21d8d2b", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H9-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 9, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "509d386ae3d440259c37271dad5bbdf9", - "uuidPlanMaster": "084c7be96cb64369a2fe46b9a21d8d2b", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H9-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 9, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "3e0d4e005dbc43e19e5720148abeefa1", - "uuidPlanMaster": "084c7be96cb64369a2fe46b9a21d8d2b", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H9-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 9, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "08d38801d4fc43a99acd004c77aa765c", - "uuidPlanMaster": "084c7be96cb64369a2fe46b9a21d8d2b", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H9-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 9, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "e7911335c0804f0a8b822d79d3051065", - "uuidPlanMaster": "084c7be96cb64369a2fe46b9a21d8d2b", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H9-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 6, - "HoleColum": 9, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "b5c04f5e925c41f8967a33b3a15ef04b", - "uuidPlanMaster": "084c7be96cb64369a2fe46b9a21d8d2b", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H9-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 7, - "HoleColum": 9, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "fcf80a6cbd564bfcbc268ee7eda54dd9", - "uuidPlanMaster": "084c7be96cb64369a2fe46b9a21d8d2b", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H9-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 9, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "cc5b12a703be49b28ebb33a2c7baa8d1", - "uuidPlanMaster": "084c7be96cb64369a2fe46b9a21d8d2b", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H10-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 10, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "dbb52fe8cb89402785419d2c852ee77b", - "uuidPlanMaster": "084c7be96cb64369a2fe46b9a21d8d2b", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H10-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 10, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "47ec491df4094a5e909dfd2112df5199", - "uuidPlanMaster": "084c7be96cb64369a2fe46b9a21d8d2b", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H10-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 10, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "2403841a072a44b285a476b052c0e3d6", - "uuidPlanMaster": "084c7be96cb64369a2fe46b9a21d8d2b", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H10-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 10, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "6a94ca07d7664fd381472cbfdba2ac01", - "uuidPlanMaster": "084c7be96cb64369a2fe46b9a21d8d2b", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H10-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 10, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "cc2a26966b6d43a79f58486d9f9b2b1a", - "uuidPlanMaster": "084c7be96cb64369a2fe46b9a21d8d2b", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H10-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 6, - "HoleColum": 10, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "f60bb83e8606451a999bd1b4908fc49c", - "uuidPlanMaster": "084c7be96cb64369a2fe46b9a21d8d2b", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H10-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 7, - "HoleColum": 10, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "72491114dc1540d8bc21aae7f9ca80f2", - "uuidPlanMaster": "084c7be96cb64369a2fe46b9a21d8d2b", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H10-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 10, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "8834877cf4de4856ae5c92b3eda08f16", - "uuidPlanMaster": "084c7be96cb64369a2fe46b9a21d8d2b", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H11-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 11, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "8dfef6946b024b77900314fc77491185", - "uuidPlanMaster": "084c7be96cb64369a2fe46b9a21d8d2b", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H11-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 11, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "2308ec99f2ce4a43a723889960da5262", - "uuidPlanMaster": "084c7be96cb64369a2fe46b9a21d8d2b", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H11-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 11, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "8ca7a3b25d754af784777161f415c7bb", - "uuidPlanMaster": "084c7be96cb64369a2fe46b9a21d8d2b", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H11-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 11, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "c2c842e37f2b4b8d81943e17da0dc4d3", - "uuidPlanMaster": "084c7be96cb64369a2fe46b9a21d8d2b", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H11-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 11, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "1320dc578c3244b499760a935b050eed", - "uuidPlanMaster": "084c7be96cb64369a2fe46b9a21d8d2b", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H11-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 6, - "HoleColum": 11, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "f49fcccd05a44526a431010931cf22d5", - "uuidPlanMaster": "084c7be96cb64369a2fe46b9a21d8d2b", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H11-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 7, - "HoleColum": 11, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "a7b35be563f5446384e5e4ae73011bd1", - "uuidPlanMaster": "084c7be96cb64369a2fe46b9a21d8d2b", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H11-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 11, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "260015145e404bfb9482bff7329d499e", - "uuidPlanMaster": "084c7be96cb64369a2fe46b9a21d8d2b", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H12-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 12, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "76dc3929f5714a869fcaa23b4802ca80", - "uuidPlanMaster": "084c7be96cb64369a2fe46b9a21d8d2b", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H12-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 12, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "81c9d3f27b464d298f2c293946d6dec2", - "uuidPlanMaster": "084c7be96cb64369a2fe46b9a21d8d2b", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H12-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 12, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "215710d3c8434eb5bed305b64a7f90ac", - "uuidPlanMaster": "084c7be96cb64369a2fe46b9a21d8d2b", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H12-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 12, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "d088ca952a594a28981170ec6da0c525", - "uuidPlanMaster": "084c7be96cb64369a2fe46b9a21d8d2b", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H12-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 12, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "cf01722c206f4ed0b04fc3b086a4761d", - "uuidPlanMaster": "084c7be96cb64369a2fe46b9a21d8d2b", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H12-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 6, - "HoleColum": 12, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "3d69128582c644feb33cfe71c4e287ce", - "uuidPlanMaster": "084c7be96cb64369a2fe46b9a21d8d2b", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H12-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 7, - "HoleColum": 12, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "ca271e0c68654b418dc266165ebd3888", - "uuidPlanMaster": "084c7be96cb64369a2fe46b9a21d8d2b", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H12-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 12, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "c503f20dea9e44dc82a7d0ac7926b76a", - "uuidPlanMaster": "084c7be96cb64369a2fe46b9a21d8d2b", - "Axis": "Right", - "ActOn": "Blending", - "Place": "H12-8,T10", - "Dosage": 5, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 10, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 12, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 3, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "25e7f047f2364d3abb04b81b7e517843", - "uuidPlanMaster": "084c7be96cb64369a2fe46b9a21d8d2b", - "Axis": "Right", - "ActOn": "UnLoad", - "Place": "H1-8,T16", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 16, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "8c860715b653440fb2fe29d00317942a", - "uuidPlanMaster": "b9668970dc6542a9814f154ac4c5fed7", - "Axis": "Right", - "ActOn": "Load", - "Place": "H12-8,T1", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 12, - "HoleCollective": "89", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "0b6ee85b472844ccbc1499f72faae052", - "uuidPlanMaster": "b9668970dc6542a9814f154ac4c5fed7", - "Axis": "Right", - "ActOn": "Imbibing", - "Place": "H12-8,T9", - "Dosage": 5, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 9, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 12, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "415af18bc288407b8233f8cd4c34cd4c", - "uuidPlanMaster": "b9668970dc6542a9814f154ac4c5fed7", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H5-8,T9", - "Dosage": 5, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 9, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "c2ed36e69af54a8fa0a27717d61c7736", - "uuidPlanMaster": "b9668970dc6542a9814f154ac4c5fed7", - "Axis": "Right", - "ActOn": "UnLoad", - "Place": "H1-8,T16", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 16, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "f51f1dfef4fa4d4f9aafcb541205a2ae", - "uuidPlanMaster": "df055278dfb24fc697f3ece11c65985d", - "Axis": "Right", - "ActOn": "Load", - "Place": "H12-8,T1", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 12, - "HoleCollective": "89", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "c3893c629eb84abda48660bd65e14c06", - "uuidPlanMaster": "df055278dfb24fc697f3ece11c65985d", - "Axis": "Right", - "ActOn": "Imbibing", - "Place": "H12-8,T9", - "Dosage": 5, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 9, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 12, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "0cadbc88685f4bb097e8a67d62f287b1", - "uuidPlanMaster": "df055278dfb24fc697f3ece11c65985d", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H5-8,T9", - "Dosage": 5, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 9, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "e508cf1e1c3c446d8771837583fc63ef", - "uuidPlanMaster": "df055278dfb24fc697f3ece11c65985d", - "Axis": "Right", - "ActOn": "UnLoad", - "Place": "H1-8,T16", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 16, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "6a02dee27bdb4e54abc0acfd7c962818", - "uuidPlanMaster": "667b0cb3cc244fb88e50b52deba247a9", - "Axis": "Right", - "ActOn": "Load", - "Place": "H5-8,T5", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 5, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 5, - "HoleCollective": "35", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "843331021e7f4dd0a202b816e8037aa2", - "uuidPlanMaster": "667b0cb3cc244fb88e50b52deba247a9", - "Axis": "Right", - "ActOn": "Imbibing", - "Place": "H12-8,T9", - "Dosage": 5, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 9, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 12, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "128fe9dcdda04574a2a669b5265b122b", - "uuidPlanMaster": "667b0cb3cc244fb88e50b52deba247a9", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H1-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "7d3d1e92cecd4ca9902a6c34a7870e39", - "uuidPlanMaster": "667b0cb3cc244fb88e50b52deba247a9", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H1-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "bd3b3b5d96fd48c984b4ee290ad3011b", - "uuidPlanMaster": "667b0cb3cc244fb88e50b52deba247a9", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H1-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "854a5d5db2c7443784921ca814ed75af", - "uuidPlanMaster": "667b0cb3cc244fb88e50b52deba247a9", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H1-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "070b9f00d2954fc6ac956717c1d511b5", - "uuidPlanMaster": "667b0cb3cc244fb88e50b52deba247a9", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H1-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "cd95ddadf3474d6cbd41437bc72d7490", - "uuidPlanMaster": "667b0cb3cc244fb88e50b52deba247a9", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H1-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 6, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "4f297a745c474e10bb504ba8987d88e4", - "uuidPlanMaster": "667b0cb3cc244fb88e50b52deba247a9", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H1-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 7, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "e4adb7e6d75846f4837d0859d460bcca", - "uuidPlanMaster": "667b0cb3cc244fb88e50b52deba247a9", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H1-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "fe45ad407a174f0487708183843257d3", - "uuidPlanMaster": "667b0cb3cc244fb88e50b52deba247a9", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H2-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 2, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "49d3743d03c44f28a825fa838e4e93eb", - "uuidPlanMaster": "667b0cb3cc244fb88e50b52deba247a9", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H2-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 2, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "438127b4029e430ab91bf71823aa3df5", - "uuidPlanMaster": "667b0cb3cc244fb88e50b52deba247a9", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H2-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 2, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "c8399f90a4814997bd394a36995abcd1", - "uuidPlanMaster": "667b0cb3cc244fb88e50b52deba247a9", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H2-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 2, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "1d55f7929ac44eeebb6e77f939d9f107", - "uuidPlanMaster": "667b0cb3cc244fb88e50b52deba247a9", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H2-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 2, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "37274943369442b491ada9c73b33d763", - "uuidPlanMaster": "667b0cb3cc244fb88e50b52deba247a9", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H2-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 6, - "HoleColum": 2, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "ef7c5a639e7447f3b9265629b4b36808", - "uuidPlanMaster": "667b0cb3cc244fb88e50b52deba247a9", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H2-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 7, - "HoleColum": 2, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "e58c7478ceac47b8a7e14ae733abcbcb", - "uuidPlanMaster": "667b0cb3cc244fb88e50b52deba247a9", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H2-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 2, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "26e3999626204e64aa3bc860e56b2f8d", - "uuidPlanMaster": "667b0cb3cc244fb88e50b52deba247a9", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H3-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "83a10886f246404c996f92cfeb0e987f", - "uuidPlanMaster": "667b0cb3cc244fb88e50b52deba247a9", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H3-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "8440b57edeb64403ba0f4cd2c1394df3", - "uuidPlanMaster": "667b0cb3cc244fb88e50b52deba247a9", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H3-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "91ae323c29ef4aa38eb55cfde1cb1b01", - "uuidPlanMaster": "667b0cb3cc244fb88e50b52deba247a9", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H3-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "140d64cc50a1412582a4c527b9c12540", - "uuidPlanMaster": "667b0cb3cc244fb88e50b52deba247a9", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H3-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "66023157ebad4c9b800ae3113a79a37e", - "uuidPlanMaster": "667b0cb3cc244fb88e50b52deba247a9", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H3-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 6, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "15b47b93f865430bb6e3f4482e35eafd", - "uuidPlanMaster": "667b0cb3cc244fb88e50b52deba247a9", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H3-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 7, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "e2af70d7f45e4ac59a2b59feaf3aa1b8", - "uuidPlanMaster": "667b0cb3cc244fb88e50b52deba247a9", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H3-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "e83072214e9f4b31a9ba3be3b0b7d96f", - "uuidPlanMaster": "667b0cb3cc244fb88e50b52deba247a9", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H4-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 4, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "6477e979ca31499abd853fac312e511b", - "uuidPlanMaster": "667b0cb3cc244fb88e50b52deba247a9", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H4-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 4, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "6abcaefa60504ba9bd940669cbfe4dc8", - "uuidPlanMaster": "667b0cb3cc244fb88e50b52deba247a9", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H4-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 4, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "32d54adc52a54e5db170f21079f24416", - "uuidPlanMaster": "667b0cb3cc244fb88e50b52deba247a9", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H4-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 4, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "2343e1104f444068ad567422544aa0f4", - "uuidPlanMaster": "667b0cb3cc244fb88e50b52deba247a9", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H4-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 4, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "00761385f79b48c8978bc5a136caad1e", - "uuidPlanMaster": "667b0cb3cc244fb88e50b52deba247a9", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H4-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 6, - "HoleColum": 4, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "753d69d9a16b48b28d8985b1f72fb571", - "uuidPlanMaster": "667b0cb3cc244fb88e50b52deba247a9", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H4-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 7, - "HoleColum": 4, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "9c75683d8eb64cd88a8580b9c307b495", - "uuidPlanMaster": "667b0cb3cc244fb88e50b52deba247a9", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H4-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 4, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "1187f105ecc44071964593b4ec974afb", - "uuidPlanMaster": "667b0cb3cc244fb88e50b52deba247a9", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H5-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "6166d04d1fe7437c828f5ffc767ef217", - "uuidPlanMaster": "667b0cb3cc244fb88e50b52deba247a9", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H5-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "9d532a9804fd443a84f50d77543aa738", - "uuidPlanMaster": "667b0cb3cc244fb88e50b52deba247a9", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H5-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "3bb3053100784729b7903c03df700c65", - "uuidPlanMaster": "667b0cb3cc244fb88e50b52deba247a9", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H5-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "692ae6408cfc46ad969ea7e6a3ded8da", - "uuidPlanMaster": "667b0cb3cc244fb88e50b52deba247a9", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H5-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "a2fca4ee494548bd9192233e4196d7d4", - "uuidPlanMaster": "667b0cb3cc244fb88e50b52deba247a9", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H5-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 6, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "700e0b8a703842b388f1eb92962df7d8", - "uuidPlanMaster": "667b0cb3cc244fb88e50b52deba247a9", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H5-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 7, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "2e678be4fd034fe0b612f01c6d16a3d1", - "uuidPlanMaster": "667b0cb3cc244fb88e50b52deba247a9", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H5-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "b2c2e459744d415db188a1812b8c0fb0", - "uuidPlanMaster": "667b0cb3cc244fb88e50b52deba247a9", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H6-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 6, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "1c1a88a9becc4658b6827a44fa5b3a54", - "uuidPlanMaster": "667b0cb3cc244fb88e50b52deba247a9", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H6-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 6, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "f0a7c28c8da54262987c0837e3fcd2b7", - "uuidPlanMaster": "667b0cb3cc244fb88e50b52deba247a9", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H6-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 6, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "c2a4842167824b88b6bb71a6a26ce1a0", - "uuidPlanMaster": "667b0cb3cc244fb88e50b52deba247a9", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H6-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 6, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "75295d3ffed048128f35ad9fbe665f68", - "uuidPlanMaster": "667b0cb3cc244fb88e50b52deba247a9", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H6-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 6, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "9b137e7b14b145c49f8e9b0a7782ec9b", - "uuidPlanMaster": "667b0cb3cc244fb88e50b52deba247a9", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H6-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 6, - "HoleColum": 6, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "818a5fcdfa6d4821ac0358dca530ed7e", - "uuidPlanMaster": "667b0cb3cc244fb88e50b52deba247a9", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H6-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 7, - "HoleColum": 6, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "3cca583ff61a4b44a42a2021b8dab3e9", - "uuidPlanMaster": "667b0cb3cc244fb88e50b52deba247a9", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H6-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 6, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "7283d4064a4346508e9786a34a2ed6fe", - "uuidPlanMaster": "667b0cb3cc244fb88e50b52deba247a9", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H7-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 7, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "19fd0dd8ab784ca6bd5dbf5cca4a2dad", - "uuidPlanMaster": "667b0cb3cc244fb88e50b52deba247a9", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H7-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 7, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "67f2fe62d2dc40b9af7ef97f8cf39692", - "uuidPlanMaster": "667b0cb3cc244fb88e50b52deba247a9", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H7-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 7, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "cd07dbf2fd654cada9a10d7bd2ac50ff", - "uuidPlanMaster": "667b0cb3cc244fb88e50b52deba247a9", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H7-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 7, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "8f7bf8855c7e4d5fa779214e28bd1bea", - "uuidPlanMaster": "667b0cb3cc244fb88e50b52deba247a9", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H7-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 7, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "2b79bbcdccee4bedbac9fa321f0dcf72", - "uuidPlanMaster": "667b0cb3cc244fb88e50b52deba247a9", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H7-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 6, - "HoleColum": 7, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "9129ce87d2e845e8bf18ef3346adc607", - "uuidPlanMaster": "667b0cb3cc244fb88e50b52deba247a9", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H7-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 7, - "HoleColum": 7, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "2f2d80b96d9c4dc0a4565ca4b3cad6a8", - "uuidPlanMaster": "667b0cb3cc244fb88e50b52deba247a9", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H7-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 7, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "babfca00969142a9a4f09078f8f1bb4c", - "uuidPlanMaster": "667b0cb3cc244fb88e50b52deba247a9", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H8-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 8, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "92c2e3d4a4d14a46b2b2cb5ba40fe70e", - "uuidPlanMaster": "667b0cb3cc244fb88e50b52deba247a9", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H8-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 8, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "74a854e943e24ee19278d596d97c9d87", - "uuidPlanMaster": "667b0cb3cc244fb88e50b52deba247a9", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H8-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 8, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "81243577d24e48c2a88247f5d7c722f6", - "uuidPlanMaster": "667b0cb3cc244fb88e50b52deba247a9", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H8-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 8, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "f6cb19d4a66943bc8dffd142e6b81d69", - "uuidPlanMaster": "667b0cb3cc244fb88e50b52deba247a9", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H8-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 8, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "b7bd41ac53974480b43d8e53df35c0c2", - "uuidPlanMaster": "667b0cb3cc244fb88e50b52deba247a9", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H8-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 6, - "HoleColum": 8, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "478b3ce195534d37965d4abb035885e9", - "uuidPlanMaster": "667b0cb3cc244fb88e50b52deba247a9", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H8-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 7, - "HoleColum": 8, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "0600c848faf34fb8985baf48d9c70712", - "uuidPlanMaster": "667b0cb3cc244fb88e50b52deba247a9", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H8-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 8, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "423789c2afc9433590fa84cf7c9df0b5", - "uuidPlanMaster": "667b0cb3cc244fb88e50b52deba247a9", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H9-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 9, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "e1073e58dd3a4974aa36ea25b60e9b49", - "uuidPlanMaster": "667b0cb3cc244fb88e50b52deba247a9", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H9-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 9, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "a7fa4bae88004662a91dd486594c3f04", - "uuidPlanMaster": "667b0cb3cc244fb88e50b52deba247a9", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H9-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 9, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "2579794b37fb4dc29bd86b7b2f1790aa", - "uuidPlanMaster": "667b0cb3cc244fb88e50b52deba247a9", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H9-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 9, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "32fa48f937104976b54e46d5c0736507", - "uuidPlanMaster": "667b0cb3cc244fb88e50b52deba247a9", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H9-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 9, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "85b2613808d847ae961758161846e672", - "uuidPlanMaster": "667b0cb3cc244fb88e50b52deba247a9", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H9-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 6, - "HoleColum": 9, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "c673c3e9969c491d9588a82472430ef9", - "uuidPlanMaster": "667b0cb3cc244fb88e50b52deba247a9", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H9-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 7, - "HoleColum": 9, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "877e4ce05b5f4e3382c3e16d07c3911a", - "uuidPlanMaster": "667b0cb3cc244fb88e50b52deba247a9", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H9-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 9, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "a5dcd4027b124ad28b0570173c9d6663", - "uuidPlanMaster": "667b0cb3cc244fb88e50b52deba247a9", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H10-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 10, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "197629e3ddb6418b9e16c6010216daf8", - "uuidPlanMaster": "667b0cb3cc244fb88e50b52deba247a9", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H10-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 10, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "58697c362a79486597df3fd1976be737", - "uuidPlanMaster": "667b0cb3cc244fb88e50b52deba247a9", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H10-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 10, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "eada1e34b4a34cbabeec86b905353084", - "uuidPlanMaster": "667b0cb3cc244fb88e50b52deba247a9", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H10-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 10, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "7bb0199f849c42ef82191d6b07cb5e4e", - "uuidPlanMaster": "667b0cb3cc244fb88e50b52deba247a9", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H10-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 10, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "35b5b925c4074f669dc79af80afb60d8", - "uuidPlanMaster": "667b0cb3cc244fb88e50b52deba247a9", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H10-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 6, - "HoleColum": 10, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "db42c7ef481444f4b33abd704c9c0698", - "uuidPlanMaster": "667b0cb3cc244fb88e50b52deba247a9", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H10-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 7, - "HoleColum": 10, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "39a9e566a9aa4b088c1bd524cec5f3d9", - "uuidPlanMaster": "667b0cb3cc244fb88e50b52deba247a9", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H10-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 10, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "bb330d9bd34b42eb8f726cdb21a5b37e", - "uuidPlanMaster": "667b0cb3cc244fb88e50b52deba247a9", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H11-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 11, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "996c38bc6bc1475a966161732e140ba4", - "uuidPlanMaster": "667b0cb3cc244fb88e50b52deba247a9", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H11-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 11, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "a18625322e9b412888c180040baa759f", - "uuidPlanMaster": "667b0cb3cc244fb88e50b52deba247a9", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H11-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 11, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "f81003e91ba14794a436ff979721caba", - "uuidPlanMaster": "667b0cb3cc244fb88e50b52deba247a9", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H11-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 11, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "96c4ba1538cb4dc9a05ed89d62203fc2", - "uuidPlanMaster": "667b0cb3cc244fb88e50b52deba247a9", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H11-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 11, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "df0c342de61047e9b496048b40f07662", - "uuidPlanMaster": "667b0cb3cc244fb88e50b52deba247a9", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H11-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 6, - "HoleColum": 11, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "96ef8638ec264b90b8e1a239bdadffb5", - "uuidPlanMaster": "667b0cb3cc244fb88e50b52deba247a9", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H11-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 7, - "HoleColum": 11, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "0b9d0bee13554fa69ff5ff8f74c350fc", - "uuidPlanMaster": "667b0cb3cc244fb88e50b52deba247a9", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H11-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 11, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "37f12769438c4029a5b69e6e5de7d43b", - "uuidPlanMaster": "667b0cb3cc244fb88e50b52deba247a9", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H12-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 12, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "94988b60de3a48988fcd7a77969c7b94", - "uuidPlanMaster": "667b0cb3cc244fb88e50b52deba247a9", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H12-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 12, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "fed5f88e587a4825ae415b544d8f99ac", - "uuidPlanMaster": "667b0cb3cc244fb88e50b52deba247a9", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H12-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 12, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "e85ff3cdbd4844aa8ca382983b541ba5", - "uuidPlanMaster": "667b0cb3cc244fb88e50b52deba247a9", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H12-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 12, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "03d39fe4e94346db9ff96fe4c9d7c05f", - "uuidPlanMaster": "667b0cb3cc244fb88e50b52deba247a9", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H12-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 12, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "2fa92ad2a3754d848754c5af29f38973", - "uuidPlanMaster": "667b0cb3cc244fb88e50b52deba247a9", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H12-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 6, - "HoleColum": 12, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "338144c4a1de49f6975e5fb05c7bb1d5", - "uuidPlanMaster": "667b0cb3cc244fb88e50b52deba247a9", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H12-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 7, - "HoleColum": 12, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "d42a0d9514334cee8cacad695107e452", - "uuidPlanMaster": "667b0cb3cc244fb88e50b52deba247a9", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H12-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 12, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "bc6891f889774e4396d884f3e8c4e58b", - "uuidPlanMaster": "667b0cb3cc244fb88e50b52deba247a9", - "Axis": "Right", - "ActOn": "Blending", - "Place": "H12-8,T10", - "Dosage": 5, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 10, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 12, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 3, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "68449c84719345b7b147e918e0b0010e", - "uuidPlanMaster": "667b0cb3cc244fb88e50b52deba247a9", - "Axis": "Right", - "ActOn": "UnLoad", - "Place": "H1-8,T16", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 16, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "9114dd4b4bd14bb09ca76b3ada671edb", - "uuidPlanMaster": "883641376b574e828cf5adb4c4575c20", - "Axis": "Right", - "ActOn": "Load", - "Place": "H5-8,T5", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 5, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 5, - "HoleCollective": "35", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "bb80c1e5cdfe468cb9789edcd91a64a5", - "uuidPlanMaster": "883641376b574e828cf5adb4c4575c20", - "Axis": "Right", - "ActOn": "Imbibing", - "Place": "H12-8,T9", - "Dosage": 5, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 9, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 12, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "a968d51de43e4a0bacea82c5f43fcf93", - "uuidPlanMaster": "883641376b574e828cf5adb4c4575c20", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H1-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "163f844c2ca246e6939cee81886703e9", - "uuidPlanMaster": "883641376b574e828cf5adb4c4575c20", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H1-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "f51b282e2d3e41eb803566d697554f4a", - "uuidPlanMaster": "883641376b574e828cf5adb4c4575c20", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H1-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "1c9f0282ec28406c8066a50e9790b3a0", - "uuidPlanMaster": "883641376b574e828cf5adb4c4575c20", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H1-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "bcd8c72525ce4af291a64c04cb671076", - "uuidPlanMaster": "883641376b574e828cf5adb4c4575c20", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H1-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "2d253d44c1544e0fa00c3ec1fb40d526", - "uuidPlanMaster": "883641376b574e828cf5adb4c4575c20", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H1-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 6, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "519a7d6748514f6c94c53e138abd57de", - "uuidPlanMaster": "883641376b574e828cf5adb4c4575c20", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H1-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 7, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "b943aa188428455da378145607dddc23", - "uuidPlanMaster": "883641376b574e828cf5adb4c4575c20", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H1-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "670ff8caa71f474bb76663e58820f30d", - "uuidPlanMaster": "883641376b574e828cf5adb4c4575c20", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H2-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 2, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "ae86ed18a1ed4e0899454ce8d7c4966a", - "uuidPlanMaster": "883641376b574e828cf5adb4c4575c20", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H2-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 2, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "13f5a45633dd4ad7a2db18ccad8d5fbe", - "uuidPlanMaster": "883641376b574e828cf5adb4c4575c20", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H2-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 2, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "c0cfd9cc24e3471397e26dabeaaeb985", - "uuidPlanMaster": "883641376b574e828cf5adb4c4575c20", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H2-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 2, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "16867660d87147b5822ad88a884b5616", - "uuidPlanMaster": "883641376b574e828cf5adb4c4575c20", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H2-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 2, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "dc17816d91654d2faa56213160c03ee7", - "uuidPlanMaster": "883641376b574e828cf5adb4c4575c20", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H2-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 6, - "HoleColum": 2, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "477e7103b27a4074a48b3639f208ca30", - "uuidPlanMaster": "883641376b574e828cf5adb4c4575c20", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H2-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 7, - "HoleColum": 2, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "3bcca985b00f4a66aaa173109bf9deb0", - "uuidPlanMaster": "883641376b574e828cf5adb4c4575c20", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H2-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 2, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "390beb79b7254afeaaea8cb404ec36d6", - "uuidPlanMaster": "883641376b574e828cf5adb4c4575c20", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H3-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "e5a9bd530fe7403b94df86aa84fefe0f", - "uuidPlanMaster": "883641376b574e828cf5adb4c4575c20", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H3-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "4b4395ab754f45f98d28694a9a1473cf", - "uuidPlanMaster": "883641376b574e828cf5adb4c4575c20", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H3-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "1b3573f356244bc99d27c7295a03d0f1", - "uuidPlanMaster": "883641376b574e828cf5adb4c4575c20", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H3-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "c93abceb19024fe6a4dde1f6c6a44e7d", - "uuidPlanMaster": "883641376b574e828cf5adb4c4575c20", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H3-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "0aabc1a9d98b4928927668f805dfadc8", - "uuidPlanMaster": "883641376b574e828cf5adb4c4575c20", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H3-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 6, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "9a05e6e7faf44877ae622cdfe6468bbf", - "uuidPlanMaster": "883641376b574e828cf5adb4c4575c20", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H3-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 7, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "4f0ec0297f854d1a92cb05d6899e1672", - "uuidPlanMaster": "883641376b574e828cf5adb4c4575c20", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H3-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "e4a46740aad946fcbfb358b23a683aa0", - "uuidPlanMaster": "883641376b574e828cf5adb4c4575c20", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H4-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 4, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "b8e64ae62f864d679a8a0b45a83a7004", - "uuidPlanMaster": "883641376b574e828cf5adb4c4575c20", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H4-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 4, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "a9cef45bc3884e1c8bb994b2a2199a46", - "uuidPlanMaster": "883641376b574e828cf5adb4c4575c20", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H4-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 4, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "012014e63d5d4ae68ec5bc8832d6b2a0", - "uuidPlanMaster": "883641376b574e828cf5adb4c4575c20", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H4-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 4, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "8f656fc0d18f49a0b2cbd7bd94020803", - "uuidPlanMaster": "883641376b574e828cf5adb4c4575c20", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H4-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 4, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "85401773b6f045a7acf2dca040044299", - "uuidPlanMaster": "883641376b574e828cf5adb4c4575c20", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H4-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 6, - "HoleColum": 4, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "d67874103c8d4c618f5cfc1b9234afa0", - "uuidPlanMaster": "883641376b574e828cf5adb4c4575c20", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H4-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 7, - "HoleColum": 4, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "adc4ed52a49f4f9e8c1239cf4cf3dc29", - "uuidPlanMaster": "883641376b574e828cf5adb4c4575c20", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H4-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 4, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "ac9bfa49a56c458cb91de761585e23d5", - "uuidPlanMaster": "883641376b574e828cf5adb4c4575c20", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H5-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "a592c65c275a43e782097da50d5a193e", - "uuidPlanMaster": "883641376b574e828cf5adb4c4575c20", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H5-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "4ce8c41692f94c65973892594025873b", - "uuidPlanMaster": "883641376b574e828cf5adb4c4575c20", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H5-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "91ec2253e8924f8c9e68b45244209f40", - "uuidPlanMaster": "883641376b574e828cf5adb4c4575c20", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H5-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "77aa9925e441457a961b12be76e6ec72", - "uuidPlanMaster": "883641376b574e828cf5adb4c4575c20", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H5-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "8724b5b0a60f46a5ae365e5ffb9e7699", - "uuidPlanMaster": "883641376b574e828cf5adb4c4575c20", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H5-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 6, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "3990a891da9944e6bb87b1487154902a", - "uuidPlanMaster": "883641376b574e828cf5adb4c4575c20", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H5-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 7, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "d9a28c0418574ab0a07cbfdebbcc2948", - "uuidPlanMaster": "883641376b574e828cf5adb4c4575c20", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H5-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "db1f7eedf73e4137aa7c393c613285a7", - "uuidPlanMaster": "883641376b574e828cf5adb4c4575c20", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H6-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 6, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "c74d8734bea24126af0ebb9c24afccd1", - "uuidPlanMaster": "883641376b574e828cf5adb4c4575c20", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H6-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 6, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "5861a9c8de0647fd831a7f8d121d3d94", - "uuidPlanMaster": "883641376b574e828cf5adb4c4575c20", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H6-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 6, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "b2de130224354dc294041e24e839c06e", - "uuidPlanMaster": "883641376b574e828cf5adb4c4575c20", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H6-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 6, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "bd7afd90b37240f68158319740eb8f2c", - "uuidPlanMaster": "883641376b574e828cf5adb4c4575c20", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H6-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 6, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "ee968758e4e343719c1966b0332255ac", - "uuidPlanMaster": "883641376b574e828cf5adb4c4575c20", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H6-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 6, - "HoleColum": 6, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "82bec4b8aea24afc8e950a2d55ec4a7f", - "uuidPlanMaster": "883641376b574e828cf5adb4c4575c20", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H6-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 7, - "HoleColum": 6, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "3b872365272346c2b56519d8cf5c07fe", - "uuidPlanMaster": "883641376b574e828cf5adb4c4575c20", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H6-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 6, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "49eb3537e2b34d06972799906d5ca072", - "uuidPlanMaster": "883641376b574e828cf5adb4c4575c20", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H7-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 7, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "45a10a12480d43d9a1ab002f2cf7b6db", - "uuidPlanMaster": "883641376b574e828cf5adb4c4575c20", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H7-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 7, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "dfd9fe51f85e4f43a6c69751908bb2b7", - "uuidPlanMaster": "883641376b574e828cf5adb4c4575c20", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H7-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 7, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "58cbe8fc340d45998ceeee4f95243b45", - "uuidPlanMaster": "883641376b574e828cf5adb4c4575c20", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H7-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 7, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "eac997e9948c48c2b3b24f333e4e7f6f", - "uuidPlanMaster": "883641376b574e828cf5adb4c4575c20", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H7-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 7, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "b853da80df95442d9af74bbf72184e17", - "uuidPlanMaster": "883641376b574e828cf5adb4c4575c20", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H7-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 6, - "HoleColum": 7, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "98fcb6e5eb23457caec58f1816669215", - "uuidPlanMaster": "883641376b574e828cf5adb4c4575c20", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H7-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 7, - "HoleColum": 7, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "c66596069b3441be90ede2fd5c10a4ac", - "uuidPlanMaster": "883641376b574e828cf5adb4c4575c20", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H7-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 7, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "411949f427984426b8db34c10c669141", - "uuidPlanMaster": "883641376b574e828cf5adb4c4575c20", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H8-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 8, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "798c4007f56b4e00a38d65220a0a494a", - "uuidPlanMaster": "883641376b574e828cf5adb4c4575c20", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H8-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 8, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "b997dc28520744dead4b0ba3b14dfd8f", - "uuidPlanMaster": "883641376b574e828cf5adb4c4575c20", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H8-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 8, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "356dcd68dff94ce7ba847f1a30f18da3", - "uuidPlanMaster": "883641376b574e828cf5adb4c4575c20", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H8-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 8, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "2bb1d6f1bd2c4404ba91147851e2617b", - "uuidPlanMaster": "883641376b574e828cf5adb4c4575c20", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H8-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 8, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "c948860585db4ab7b25d11aacc5863b7", - "uuidPlanMaster": "883641376b574e828cf5adb4c4575c20", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H8-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 6, - "HoleColum": 8, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "b0f3f0accc6348a49976665d071d3bac", - "uuidPlanMaster": "883641376b574e828cf5adb4c4575c20", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H8-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 7, - "HoleColum": 8, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "1e6716f50bff4dffae01f8cc11ba94b8", - "uuidPlanMaster": "883641376b574e828cf5adb4c4575c20", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H8-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 8, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "d18772b5109548d0a22f1ae2481151c8", - "uuidPlanMaster": "883641376b574e828cf5adb4c4575c20", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H9-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 9, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "6a73b32be6424a1aaeae6a5740bf5034", - "uuidPlanMaster": "883641376b574e828cf5adb4c4575c20", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H9-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 9, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "6f7131aa71254788b5367341097211dd", - "uuidPlanMaster": "883641376b574e828cf5adb4c4575c20", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H9-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 9, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "614b41f42e1641bc93ef1e0e35e8b699", - "uuidPlanMaster": "883641376b574e828cf5adb4c4575c20", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H9-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 9, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "f385879945d141dcb821c0f9e227637d", - "uuidPlanMaster": "883641376b574e828cf5adb4c4575c20", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H9-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 9, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "29af67b1e4624eaeb9024fb570c7e0f0", - "uuidPlanMaster": "883641376b574e828cf5adb4c4575c20", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H9-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 6, - "HoleColum": 9, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "9830a6d05b994f6cbebeae031e36c769", - "uuidPlanMaster": "883641376b574e828cf5adb4c4575c20", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H9-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 7, - "HoleColum": 9, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "60cc67637fe845b3ae0a7d942488bf04", - "uuidPlanMaster": "883641376b574e828cf5adb4c4575c20", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H9-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 9, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "628422572ad14a49a6f8ee8cc4742eab", - "uuidPlanMaster": "883641376b574e828cf5adb4c4575c20", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H10-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 10, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "1977232834a34ff6b83e57641306692e", - "uuidPlanMaster": "883641376b574e828cf5adb4c4575c20", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H10-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 10, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "dbeea2f273c6463593220e31c1980448", - "uuidPlanMaster": "883641376b574e828cf5adb4c4575c20", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H10-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 10, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "b6ab82c7562944fd9f0940a184f21b76", - "uuidPlanMaster": "883641376b574e828cf5adb4c4575c20", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H10-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 10, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "f987debb968f45e28318d4da5d509bd6", - "uuidPlanMaster": "883641376b574e828cf5adb4c4575c20", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H10-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 10, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "6d8de9d93c124ec8b32431b692882501", - "uuidPlanMaster": "883641376b574e828cf5adb4c4575c20", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H10-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 6, - "HoleColum": 10, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "d3c903dfd2f94836981a5fb5a221f82b", - "uuidPlanMaster": "883641376b574e828cf5adb4c4575c20", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H10-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 7, - "HoleColum": 10, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "293cfd0bcf5f42288573ca1d586d1af6", - "uuidPlanMaster": "883641376b574e828cf5adb4c4575c20", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H10-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 10, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "9eb9952f0ca5492d850511cfb1bf07ac", - "uuidPlanMaster": "883641376b574e828cf5adb4c4575c20", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H11-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 11, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "a79b121810144e5cb80e41651d09332f", - "uuidPlanMaster": "883641376b574e828cf5adb4c4575c20", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H11-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 11, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "7d0b8853d137488da6cecf8c603ecdaa", - "uuidPlanMaster": "883641376b574e828cf5adb4c4575c20", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H11-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 11, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "29336798b5224917bdb0f1afbbc04d80", - "uuidPlanMaster": "883641376b574e828cf5adb4c4575c20", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H11-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 11, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "ace139d3d2fd481aa57e6bdfd71003fe", - "uuidPlanMaster": "883641376b574e828cf5adb4c4575c20", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H11-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 11, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "ef766f93c6b641239e977c73d9124488", - "uuidPlanMaster": "883641376b574e828cf5adb4c4575c20", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H11-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 6, - "HoleColum": 11, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "e0794bcbec544d89997616266a59de0d", - "uuidPlanMaster": "883641376b574e828cf5adb4c4575c20", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H11-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 7, - "HoleColum": 11, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "29f63de8749d4175b6ba4e4fea602a60", - "uuidPlanMaster": "883641376b574e828cf5adb4c4575c20", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H11-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 11, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "0916d7f24d8748048de1b615c439a0f2", - "uuidPlanMaster": "883641376b574e828cf5adb4c4575c20", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H12-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 12, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "616d5456c4414bccaf773570b2e4a027", - "uuidPlanMaster": "883641376b574e828cf5adb4c4575c20", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H12-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 12, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "54a18ecd8e6743d78931ea6bcc773e66", - "uuidPlanMaster": "883641376b574e828cf5adb4c4575c20", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H12-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 12, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "3397e24e5cec4f3b9c5de1206ba473a8", - "uuidPlanMaster": "883641376b574e828cf5adb4c4575c20", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H12-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 12, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "7342df0d0d8c4e769c0cb66bd1671127", - "uuidPlanMaster": "883641376b574e828cf5adb4c4575c20", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H12-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 12, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "98a64300f92a476bbeda46755052c8b9", - "uuidPlanMaster": "883641376b574e828cf5adb4c4575c20", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H12-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 6, - "HoleColum": 12, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "b255f9de8bf04d4dbf2247a12f2a6a80", - "uuidPlanMaster": "883641376b574e828cf5adb4c4575c20", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H12-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 7, - "HoleColum": 12, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "eed51ea507194aa4aa587a3ec538dd3c", - "uuidPlanMaster": "883641376b574e828cf5adb4c4575c20", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H12-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 12, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "4719a0f5aedb42b8a10fec85c64b2432", - "uuidPlanMaster": "883641376b574e828cf5adb4c4575c20", - "Axis": "Right", - "ActOn": "Blending", - "Place": "H12-8,T10", - "Dosage": 5, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 10, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 12, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 3, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "c2e5e6a9bc5e453591998035a86be720", - "uuidPlanMaster": "883641376b574e828cf5adb4c4575c20", - "Axis": "Right", - "ActOn": "UnLoad", - "Place": "H1-8,T16", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 16, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "29139e5fa1134536821046c218c92f01", - "uuidPlanMaster": "115c126920ff4243a1b55c4f49e77795", - "Axis": "Right", - "ActOn": "Load", - "Place": "H5-8,T5", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 5, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 5, - "HoleCollective": "35", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "36dd10a290a14303b2fe838202fa1bff", - "uuidPlanMaster": "115c126920ff4243a1b55c4f49e77795", - "Axis": "Right", - "ActOn": "Imbibing", - "Place": "H12-8,T9", - "Dosage": 5, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 9, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 12, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "aed2bad579a242de87fe6e6a47d516bb", - "uuidPlanMaster": "115c126920ff4243a1b55c4f49e77795", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H1-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "f150a95f241b47fc9e9c1c30f7698bc3", - "uuidPlanMaster": "115c126920ff4243a1b55c4f49e77795", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H1-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "c05110cd4a8b40eab154f60994531d88", - "uuidPlanMaster": "115c126920ff4243a1b55c4f49e77795", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H1-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "9374e4cc030f4ff9855725e2e0f67ad8", - "uuidPlanMaster": "115c126920ff4243a1b55c4f49e77795", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H1-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "e61fc7db37c04ffba7c40029696c0e38", - "uuidPlanMaster": "115c126920ff4243a1b55c4f49e77795", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H1-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "89b8c60c638d401a84b41108b31a5d5f", - "uuidPlanMaster": "115c126920ff4243a1b55c4f49e77795", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H1-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 6, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "cefe680602a3485bb0cb85bf37720583", - "uuidPlanMaster": "115c126920ff4243a1b55c4f49e77795", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H1-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 7, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "cea743c30ebc45f892c40dce6a21db1f", - "uuidPlanMaster": "115c126920ff4243a1b55c4f49e77795", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H1-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "8b637c4b9db44ac5900804f1dc9e4ca0", - "uuidPlanMaster": "115c126920ff4243a1b55c4f49e77795", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H2-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 2, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "8529d9e3efba41a6ae096af3de92d95f", - "uuidPlanMaster": "115c126920ff4243a1b55c4f49e77795", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H2-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 2, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "ad507f545e2e496bba7b0ae1ca504eb9", - "uuidPlanMaster": "115c126920ff4243a1b55c4f49e77795", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H2-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 2, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "08f5cff1e735432aac22fd956bd5dc08", - "uuidPlanMaster": "115c126920ff4243a1b55c4f49e77795", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H2-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 2, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "3914a2c8c82e4ad9b7b95caa16eab7c6", - "uuidPlanMaster": "115c126920ff4243a1b55c4f49e77795", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H2-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 2, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "e9f5cbbc7e554c6f82e3c228e30e0a2b", - "uuidPlanMaster": "115c126920ff4243a1b55c4f49e77795", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H2-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 6, - "HoleColum": 2, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "fb44b0a5f7ec4798a91708674818dede", - "uuidPlanMaster": "115c126920ff4243a1b55c4f49e77795", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H2-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 7, - "HoleColum": 2, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "0da3e893648042629f682e4d8ca9909f", - "uuidPlanMaster": "115c126920ff4243a1b55c4f49e77795", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H2-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 2, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "b19b8c8ffda54fbc94a10a2ef8409381", - "uuidPlanMaster": "115c126920ff4243a1b55c4f49e77795", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H3-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "f258e2305c12454fa8e8dd8e836b2920", - "uuidPlanMaster": "115c126920ff4243a1b55c4f49e77795", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H3-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "9a80eb2dafac4d24a4a626b50aca9d5e", - "uuidPlanMaster": "115c126920ff4243a1b55c4f49e77795", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H3-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "19d44ab91fd14ca1ab491f27d332b3d4", - "uuidPlanMaster": "115c126920ff4243a1b55c4f49e77795", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H3-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "fbac335ab76145f68747f04f76acafcb", - "uuidPlanMaster": "115c126920ff4243a1b55c4f49e77795", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H3-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "1625e1baefcd4a7f9f1b8a03acec3fb7", - "uuidPlanMaster": "115c126920ff4243a1b55c4f49e77795", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H3-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 6, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "70e5ea66abab47d19cc6b839f5aac32b", - "uuidPlanMaster": "115c126920ff4243a1b55c4f49e77795", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H3-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 7, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "59e4b09636354c4aacd866d721bbd303", - "uuidPlanMaster": "115c126920ff4243a1b55c4f49e77795", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H3-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "9ceb0c0e19d64bffb43ff1c50271e185", - "uuidPlanMaster": "115c126920ff4243a1b55c4f49e77795", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H4-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 4, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "379f842ac7ca48b6bde29c6cfdd805d1", - "uuidPlanMaster": "115c126920ff4243a1b55c4f49e77795", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H4-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 4, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "22da1a9d7cd940f299f9de477ba90706", - "uuidPlanMaster": "115c126920ff4243a1b55c4f49e77795", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H4-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 4, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "4ff7d94b54794a49b114c11cf22cf427", - "uuidPlanMaster": "115c126920ff4243a1b55c4f49e77795", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H4-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 4, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "9c7884cab6404e94927595fff55c4aad", - "uuidPlanMaster": "115c126920ff4243a1b55c4f49e77795", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H4-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 4, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "11536f40d33d4b26a9329fdfbe3be57f", - "uuidPlanMaster": "115c126920ff4243a1b55c4f49e77795", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H4-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 6, - "HoleColum": 4, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "49e9131814d9401085524b6a14a5d190", - "uuidPlanMaster": "115c126920ff4243a1b55c4f49e77795", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H4-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 7, - "HoleColum": 4, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "d0a11d6dd397432089f00dc434def52d", - "uuidPlanMaster": "115c126920ff4243a1b55c4f49e77795", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H4-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 4, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "cfd8d603635045d197f4dd21108f3348", - "uuidPlanMaster": "115c126920ff4243a1b55c4f49e77795", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H5-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "bac10e55e8394324a0fa116cef39f28d", - "uuidPlanMaster": "115c126920ff4243a1b55c4f49e77795", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H5-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "3ae02cad81b341d99fdae4827630b00a", - "uuidPlanMaster": "115c126920ff4243a1b55c4f49e77795", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H5-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "167bc9207cc7424490757996626c7399", - "uuidPlanMaster": "115c126920ff4243a1b55c4f49e77795", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H5-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "111bc679d8734c0dbf0185128a74a6bf", - "uuidPlanMaster": "115c126920ff4243a1b55c4f49e77795", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H5-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "3964dd8a2ec740f0b2ca0a6d50c3d459", - "uuidPlanMaster": "115c126920ff4243a1b55c4f49e77795", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H5-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 6, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "022a38b08f554c35a5285965362848e4", - "uuidPlanMaster": "115c126920ff4243a1b55c4f49e77795", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H5-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 7, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "4b902292e85e4410a22e1811fa011b6a", - "uuidPlanMaster": "115c126920ff4243a1b55c4f49e77795", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H5-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "5ff2aa14c1024fe79e8b3c3406f3d28b", - "uuidPlanMaster": "115c126920ff4243a1b55c4f49e77795", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H6-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 6, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "5d960147a754483b992c49ea225720ea", - "uuidPlanMaster": "115c126920ff4243a1b55c4f49e77795", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H6-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 6, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "61d3eabe42ad477d8b5d6f30f56529d6", - "uuidPlanMaster": "115c126920ff4243a1b55c4f49e77795", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H6-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 6, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "d74779abb47d489d9a03bfbe1581c7a7", - "uuidPlanMaster": "115c126920ff4243a1b55c4f49e77795", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H6-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 6, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "f7fc8760d8584f87b1f323c1d93d2dfc", - "uuidPlanMaster": "115c126920ff4243a1b55c4f49e77795", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H6-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 6, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "cd2aaf0fb638432e988458b324249233", - "uuidPlanMaster": "115c126920ff4243a1b55c4f49e77795", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H6-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 6, - "HoleColum": 6, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "abfadb7ba3164ff6a666cdc331786b3c", - "uuidPlanMaster": "115c126920ff4243a1b55c4f49e77795", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H6-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 7, - "HoleColum": 6, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "3373a125b3eb4e9f85816a746ef9d1c5", - "uuidPlanMaster": "115c126920ff4243a1b55c4f49e77795", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H6-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 6, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "5ee1213e28d840eabad1aa487929943b", - "uuidPlanMaster": "115c126920ff4243a1b55c4f49e77795", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H7-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 7, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "ea99218954e9444ab83525cb4958b4e2", - "uuidPlanMaster": "115c126920ff4243a1b55c4f49e77795", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H7-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 7, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "13158db000f9430ebcb71c75f57e3bc3", - "uuidPlanMaster": "115c126920ff4243a1b55c4f49e77795", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H7-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 7, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "55361c3e7dfd4cd8b5db5bc03955ca7e", - "uuidPlanMaster": "115c126920ff4243a1b55c4f49e77795", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H7-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 7, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "beb58a8c23b94f77ae13a59e17ff4214", - "uuidPlanMaster": "115c126920ff4243a1b55c4f49e77795", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H7-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 7, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "f9ac2c123dc04acdad3f5dea028fed36", - "uuidPlanMaster": "115c126920ff4243a1b55c4f49e77795", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H7-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 6, - "HoleColum": 7, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "c98ad3c5e739440cb538917447b7fbc0", - "uuidPlanMaster": "115c126920ff4243a1b55c4f49e77795", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H7-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 7, - "HoleColum": 7, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "a1266b0e07e44df0b8e936f48749490b", - "uuidPlanMaster": "115c126920ff4243a1b55c4f49e77795", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H7-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 7, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "9818c03e1e8e4c849497ea75b1d7948a", - "uuidPlanMaster": "115c126920ff4243a1b55c4f49e77795", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H8-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 8, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "d4a9b8bc4af1454199ad84d808fb6c45", - "uuidPlanMaster": "115c126920ff4243a1b55c4f49e77795", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H8-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 8, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "db40e62eb2f240bb82a0ea07ae51b6b9", - "uuidPlanMaster": "115c126920ff4243a1b55c4f49e77795", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H8-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 8, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "5cd15cc46db14fbbba53fa873d1b3b17", - "uuidPlanMaster": "115c126920ff4243a1b55c4f49e77795", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H8-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 8, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "f5245343162a4547b197502a97c5acda", - "uuidPlanMaster": "115c126920ff4243a1b55c4f49e77795", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H8-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 8, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "a382b39850cb44c18534f42fbb39ec32", - "uuidPlanMaster": "115c126920ff4243a1b55c4f49e77795", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H8-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 6, - "HoleColum": 8, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "1d258ceb6ac24479a4a71f83ad7c790f", - "uuidPlanMaster": "115c126920ff4243a1b55c4f49e77795", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H8-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 7, - "HoleColum": 8, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "12648e077cc64acfb3c0c39d7c7075ba", - "uuidPlanMaster": "115c126920ff4243a1b55c4f49e77795", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H8-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 8, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "7228f64874724b05b4eff46acaa47588", - "uuidPlanMaster": "115c126920ff4243a1b55c4f49e77795", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H9-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 9, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "692476cb0cd548c39165a46e986cdfa9", - "uuidPlanMaster": "115c126920ff4243a1b55c4f49e77795", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H9-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 9, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "91acbcfe09ba453fa866137928e19a84", - "uuidPlanMaster": "115c126920ff4243a1b55c4f49e77795", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H9-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 9, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "40b44ba89fa64e38ac2c3daf75f4d3af", - "uuidPlanMaster": "115c126920ff4243a1b55c4f49e77795", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H9-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 9, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "d2a4103fe8864012974bd8cd3e5b15f9", - "uuidPlanMaster": "115c126920ff4243a1b55c4f49e77795", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H9-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 9, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "32ebf2ccb5a14ec1a0c8daf2722d22fe", - "uuidPlanMaster": "115c126920ff4243a1b55c4f49e77795", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H9-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 6, - "HoleColum": 9, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "eec33bbfd9a24f8c9750ea3c1ba984d3", - "uuidPlanMaster": "115c126920ff4243a1b55c4f49e77795", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H9-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 7, - "HoleColum": 9, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "d3e77ef39bb749fab2e0f85d09c7f1cb", - "uuidPlanMaster": "115c126920ff4243a1b55c4f49e77795", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H9-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 9, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "733efa996c084e368a02f4b91e3c583e", - "uuidPlanMaster": "115c126920ff4243a1b55c4f49e77795", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H10-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 10, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "48ecc116a5bb4d7ea3080af40197b1f9", - "uuidPlanMaster": "115c126920ff4243a1b55c4f49e77795", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H10-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 10, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "b445a8ae36484603a3a4fda78e2ea39d", - "uuidPlanMaster": "115c126920ff4243a1b55c4f49e77795", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H10-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 10, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "1ba636fce3bc4d8dbdf0b8d2298aa2b4", - "uuidPlanMaster": "115c126920ff4243a1b55c4f49e77795", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H10-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 10, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "4cc8651272da469d9abfd04244bb5879", - "uuidPlanMaster": "115c126920ff4243a1b55c4f49e77795", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H10-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 10, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "a0aa5afc58594ac78fc16c412c634b0a", - "uuidPlanMaster": "115c126920ff4243a1b55c4f49e77795", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H10-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 6, - "HoleColum": 10, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "5552752a6bf445b69f1d2eaded39f42b", - "uuidPlanMaster": "115c126920ff4243a1b55c4f49e77795", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H10-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 7, - "HoleColum": 10, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "d08cb0f72ce2415c86712087b2f0ad3f", - "uuidPlanMaster": "115c126920ff4243a1b55c4f49e77795", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H10-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 10, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "0316b61807b54cb8a3c4866233eec2c7", - "uuidPlanMaster": "115c126920ff4243a1b55c4f49e77795", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H11-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 11, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "43d0c9510772422a926e3f838d88a3ce", - "uuidPlanMaster": "115c126920ff4243a1b55c4f49e77795", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H11-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 11, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "6ee09494810947b2a238b2e8952088d4", - "uuidPlanMaster": "115c126920ff4243a1b55c4f49e77795", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H11-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 11, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "c802270a04c241888b7455df893e5c20", - "uuidPlanMaster": "115c126920ff4243a1b55c4f49e77795", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H11-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 11, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "2ea06188f7e14bcb8fd9d01ebdabfa4e", - "uuidPlanMaster": "115c126920ff4243a1b55c4f49e77795", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H11-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 11, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "9a6462d3ef3c40b89b3a9e8e0335755d", - "uuidPlanMaster": "115c126920ff4243a1b55c4f49e77795", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H11-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 6, - "HoleColum": 11, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "59755cffea3242bf90d5c787d340fa9e", - "uuidPlanMaster": "115c126920ff4243a1b55c4f49e77795", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H11-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 7, - "HoleColum": 11, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "fd23007c4acb40359aa197a70dbeba9e", - "uuidPlanMaster": "115c126920ff4243a1b55c4f49e77795", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H11-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 11, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "6df6dcdcff174c77a17a260031c0c946", - "uuidPlanMaster": "115c126920ff4243a1b55c4f49e77795", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H12-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 12, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "11dad1c6ee9a419385424c07b24341cb", - "uuidPlanMaster": "115c126920ff4243a1b55c4f49e77795", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H12-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 12, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "56c99e3853294ec8bd9cf40bbc6bffa3", - "uuidPlanMaster": "115c126920ff4243a1b55c4f49e77795", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H12-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 12, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "04c26ccdb6144382804ad14c1d1a9e5a", - "uuidPlanMaster": "115c126920ff4243a1b55c4f49e77795", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H12-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 12, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "fbcf7c91827545228d789183dd80f12c", - "uuidPlanMaster": "115c126920ff4243a1b55c4f49e77795", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H12-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 12, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "ffe827a590484afb89b32ad1cc18b748", - "uuidPlanMaster": "115c126920ff4243a1b55c4f49e77795", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H12-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 6, - "HoleColum": 12, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "10d602a5763c44cd9d2d9d4ba4db2614", - "uuidPlanMaster": "115c126920ff4243a1b55c4f49e77795", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H12-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 7, - "HoleColum": 12, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "ada1791bb1684195b52921b29c7c82b5", - "uuidPlanMaster": "115c126920ff4243a1b55c4f49e77795", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H12-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 12, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "6d49a2ce8b164b52a239b623d5028e82", - "uuidPlanMaster": "115c126920ff4243a1b55c4f49e77795", - "Axis": "Right", - "ActOn": "Blending", - "Place": "H12-8,T10", - "Dosage": 5, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 10, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 12, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 3, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "af20a95c019c4148b8632625645afb27", - "uuidPlanMaster": "115c126920ff4243a1b55c4f49e77795", - "Axis": "Right", - "ActOn": "UnLoad", - "Place": "H1-8,T16", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 16, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "9f7d04907758450c9b6aee783e1e7ff0", - "uuidPlanMaster": "436d86b21857407f89cb4f9a78a71afb", - "Axis": "Right", - "ActOn": "Load", - "Place": "H5-8,T5", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 5, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 5, - "HoleCollective": "35", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "07c9aa35afd141c5a0183ac8b264c540", - "uuidPlanMaster": "436d86b21857407f89cb4f9a78a71afb", - "Axis": "Right", - "ActOn": "Imbibing", - "Place": "H12-8,T9", - "Dosage": 5, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 9, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 12, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "7e9266a0e7eb4fc984899472b3b57348", - "uuidPlanMaster": "436d86b21857407f89cb4f9a78a71afb", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H1-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "c577b9f924644c438e3be989b4ce8ca8", - "uuidPlanMaster": "436d86b21857407f89cb4f9a78a71afb", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H1-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "b3c5e6053e42450aa892a0ad8c8b586d", - "uuidPlanMaster": "436d86b21857407f89cb4f9a78a71afb", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H1-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "8893a433a8fc4dc4889418b35d1baea7", - "uuidPlanMaster": "436d86b21857407f89cb4f9a78a71afb", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H1-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "4ce49d94e7ab4b70b896d9e95dae6853", - "uuidPlanMaster": "436d86b21857407f89cb4f9a78a71afb", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H1-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "e2d1c808f90349dc83ade38926b798a5", - "uuidPlanMaster": "436d86b21857407f89cb4f9a78a71afb", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H1-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 6, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "aaac240494d248ec9a6de935b5afccd8", - "uuidPlanMaster": "436d86b21857407f89cb4f9a78a71afb", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H1-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 7, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "c8e3762eae1f4ab9a099461e93355c2d", - "uuidPlanMaster": "436d86b21857407f89cb4f9a78a71afb", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H1-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "493c229bbc3f4dffaff588b2023f29a0", - "uuidPlanMaster": "436d86b21857407f89cb4f9a78a71afb", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H2-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 2, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "6f6db96f95be438aba797dde4b240e98", - "uuidPlanMaster": "436d86b21857407f89cb4f9a78a71afb", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H2-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 2, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "4e3cb4631dc14686b135f5712f29640e", - "uuidPlanMaster": "436d86b21857407f89cb4f9a78a71afb", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H2-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 2, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "2a0ac53a11024e2c9d66a039fff321ee", - "uuidPlanMaster": "436d86b21857407f89cb4f9a78a71afb", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H2-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 2, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "2cde7508b6804ab9b48f440867530be7", - "uuidPlanMaster": "436d86b21857407f89cb4f9a78a71afb", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H2-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 2, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "f9a7821520a64a15ad4bbd1490ecb1f8", - "uuidPlanMaster": "436d86b21857407f89cb4f9a78a71afb", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H2-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 6, - "HoleColum": 2, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "94c74e94a1364993a65df4c07eaa567e", - "uuidPlanMaster": "436d86b21857407f89cb4f9a78a71afb", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H2-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 7, - "HoleColum": 2, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "a02f348243184f3a8ed543b13a820955", - "uuidPlanMaster": "436d86b21857407f89cb4f9a78a71afb", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H2-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 2, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "ff829625b44242f49d5d49dff14da5d6", - "uuidPlanMaster": "436d86b21857407f89cb4f9a78a71afb", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H3-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "4422126b7eb7480980d1d78659ff1ba3", - "uuidPlanMaster": "436d86b21857407f89cb4f9a78a71afb", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H3-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "8df9da10de0644f489afe18f43e9ec32", - "uuidPlanMaster": "436d86b21857407f89cb4f9a78a71afb", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H3-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "dfa0b9ddd58e4bbfb1ecb0a9015624d8", - "uuidPlanMaster": "436d86b21857407f89cb4f9a78a71afb", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H3-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "8632708337554293ab43bee81a034228", - "uuidPlanMaster": "436d86b21857407f89cb4f9a78a71afb", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H3-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "f2fc71d2cbb44df4aebacb5a6f8464b6", - "uuidPlanMaster": "436d86b21857407f89cb4f9a78a71afb", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H3-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 6, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "89666b87c9124b25899dcd7b57a7f2ad", - "uuidPlanMaster": "436d86b21857407f89cb4f9a78a71afb", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H3-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 7, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "d0c628b86c87437198636370e40c9bfd", - "uuidPlanMaster": "436d86b21857407f89cb4f9a78a71afb", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H3-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "8a6097b2ed3a4015b38460a594578c09", - "uuidPlanMaster": "436d86b21857407f89cb4f9a78a71afb", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H4-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 4, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "8213a6de987b4cc98e1ac0dd28837972", - "uuidPlanMaster": "436d86b21857407f89cb4f9a78a71afb", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H4-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 4, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "8fae9c53da8043fc90232b36026dc3c0", - "uuidPlanMaster": "436d86b21857407f89cb4f9a78a71afb", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H4-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 4, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "7df92421d9b94efa9342561922d610e2", - "uuidPlanMaster": "436d86b21857407f89cb4f9a78a71afb", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H4-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 4, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "61c8d6afb7454a8bb030480351f43ad0", - "uuidPlanMaster": "436d86b21857407f89cb4f9a78a71afb", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H4-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 4, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "f74084cd89e74935bde0a5542507aed1", - "uuidPlanMaster": "436d86b21857407f89cb4f9a78a71afb", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H4-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 6, - "HoleColum": 4, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "158f506f02e546cda371a91a639ee77f", - "uuidPlanMaster": "436d86b21857407f89cb4f9a78a71afb", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H4-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 7, - "HoleColum": 4, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "8d08e245d27644998a747b40b6ffd244", - "uuidPlanMaster": "436d86b21857407f89cb4f9a78a71afb", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H4-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 4, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "4e8f61444664407283780b4c647943ed", - "uuidPlanMaster": "436d86b21857407f89cb4f9a78a71afb", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H5-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "f9d984cd24844c6fa0f770f3c01cc582", - "uuidPlanMaster": "436d86b21857407f89cb4f9a78a71afb", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H5-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "4c3ad4110c1e4fff9f625c3b476946da", - "uuidPlanMaster": "436d86b21857407f89cb4f9a78a71afb", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H5-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "2db92a54a6374ed58406b4fa13e2a964", - "uuidPlanMaster": "436d86b21857407f89cb4f9a78a71afb", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H5-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "80524978b48e4dda8d32b9947be58350", - "uuidPlanMaster": "436d86b21857407f89cb4f9a78a71afb", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H5-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "17696753ce3148cdafb89134e1834c16", - "uuidPlanMaster": "436d86b21857407f89cb4f9a78a71afb", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H5-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 6, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "c3701890da0f471eb4aa90ef8aebde05", - "uuidPlanMaster": "436d86b21857407f89cb4f9a78a71afb", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H5-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 7, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "df59c93a63de4a629cbaf3db0c4c491b", - "uuidPlanMaster": "436d86b21857407f89cb4f9a78a71afb", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H5-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "66abf70ea25d41adb3198ff8a81e6b62", - "uuidPlanMaster": "436d86b21857407f89cb4f9a78a71afb", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H6-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 6, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "f23f851fe7ea4403986b7fa444aadbfc", - "uuidPlanMaster": "436d86b21857407f89cb4f9a78a71afb", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H6-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 6, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "43102febc8e44ce3a7630515cea4d0dc", - "uuidPlanMaster": "436d86b21857407f89cb4f9a78a71afb", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H6-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 6, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "d0a9f0ba819843db947cc18671c6650b", - "uuidPlanMaster": "436d86b21857407f89cb4f9a78a71afb", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H6-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 6, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "d54a5fe6319f4438ad81e48205040158", - "uuidPlanMaster": "436d86b21857407f89cb4f9a78a71afb", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H6-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 6, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "dc4c658588134d1a91fb628a5401880d", - "uuidPlanMaster": "436d86b21857407f89cb4f9a78a71afb", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H6-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 6, - "HoleColum": 6, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "73b0817be30c4c12ae92482dfcf32614", - "uuidPlanMaster": "436d86b21857407f89cb4f9a78a71afb", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H6-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 7, - "HoleColum": 6, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "7ec72568f9ea49af98c49892d626c5ec", - "uuidPlanMaster": "436d86b21857407f89cb4f9a78a71afb", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H6-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 6, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "e5da4936fda04907a25f7e790ff22dc2", - "uuidPlanMaster": "436d86b21857407f89cb4f9a78a71afb", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H7-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 7, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "8339126b012f40a892804817a2c95586", - "uuidPlanMaster": "436d86b21857407f89cb4f9a78a71afb", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H7-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 7, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "ae58d2a0a70d4218993892922678e8ec", - "uuidPlanMaster": "436d86b21857407f89cb4f9a78a71afb", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H7-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 7, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "44327016be6840c3941fa1d736b16ae0", - "uuidPlanMaster": "436d86b21857407f89cb4f9a78a71afb", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H7-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 7, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "a2f12313b6e048289e2208e6d416737c", - "uuidPlanMaster": "436d86b21857407f89cb4f9a78a71afb", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H7-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 7, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "c1b46080a6c74ac28fb9d6f1aca9ab5e", - "uuidPlanMaster": "436d86b21857407f89cb4f9a78a71afb", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H7-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 6, - "HoleColum": 7, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "77bf6e06a76840198a3345b82601ec9b", - "uuidPlanMaster": "436d86b21857407f89cb4f9a78a71afb", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H7-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 7, - "HoleColum": 7, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "fedc676e865e4585b6e0536e17c9f58c", - "uuidPlanMaster": "436d86b21857407f89cb4f9a78a71afb", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H7-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 7, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "3fcccf2da2f74ed68972e1179c0f6e80", - "uuidPlanMaster": "436d86b21857407f89cb4f9a78a71afb", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H8-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 8, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "bcc0b50f4334409eb857947524716155", - "uuidPlanMaster": "436d86b21857407f89cb4f9a78a71afb", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H8-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 8, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "8a8c917076d040e1acdc4e3eab9878e8", - "uuidPlanMaster": "436d86b21857407f89cb4f9a78a71afb", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H8-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 8, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "5cddd02b92704f448bf297de7a86198f", - "uuidPlanMaster": "436d86b21857407f89cb4f9a78a71afb", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H8-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 8, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "6af0ae3f968b4a50bfc939981475af45", - "uuidPlanMaster": "436d86b21857407f89cb4f9a78a71afb", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H8-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 8, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "0b92066d40b44ad1ba54a91106416309", - "uuidPlanMaster": "436d86b21857407f89cb4f9a78a71afb", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H8-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 6, - "HoleColum": 8, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "739368946a0049919b128ab925df07bf", - "uuidPlanMaster": "436d86b21857407f89cb4f9a78a71afb", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H8-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 7, - "HoleColum": 8, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "3a28bee6b5ea4ca698ac9f690a150172", - "uuidPlanMaster": "436d86b21857407f89cb4f9a78a71afb", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H8-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 8, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "d3f1181c86c84b34a6c4202e8bd67600", - "uuidPlanMaster": "436d86b21857407f89cb4f9a78a71afb", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H9-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 9, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "0767510698254ca4915a27cdf4fd3cb5", - "uuidPlanMaster": "436d86b21857407f89cb4f9a78a71afb", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H9-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 9, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "0ede20b1adf748a6811326ecf6f64639", - "uuidPlanMaster": "436d86b21857407f89cb4f9a78a71afb", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H9-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 9, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "5b5ce083190c446abab4682d410ed591", - "uuidPlanMaster": "436d86b21857407f89cb4f9a78a71afb", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H9-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 9, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "003024e6a5114f82815add47642ecbdc", - "uuidPlanMaster": "436d86b21857407f89cb4f9a78a71afb", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H9-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 9, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "339f710411a2412691087602c57bc9a3", - "uuidPlanMaster": "436d86b21857407f89cb4f9a78a71afb", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H9-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 6, - "HoleColum": 9, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "1f809ca6622b4e44b1fade8b5ca72088", - "uuidPlanMaster": "436d86b21857407f89cb4f9a78a71afb", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H9-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 7, - "HoleColum": 9, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "e9beb0609f0149ff801962309ea2d8fc", - "uuidPlanMaster": "436d86b21857407f89cb4f9a78a71afb", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H9-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 9, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "93b24ba5071b4721bb2d1befb0f11ce9", - "uuidPlanMaster": "436d86b21857407f89cb4f9a78a71afb", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H10-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 10, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "a6068743e6c845d6971a53ee24b5055e", - "uuidPlanMaster": "436d86b21857407f89cb4f9a78a71afb", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H10-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 10, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "12eac66a3cab479e828f1f3c57b9e84a", - "uuidPlanMaster": "436d86b21857407f89cb4f9a78a71afb", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H10-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 10, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "1189beb400694244b3b830d65f798fba", - "uuidPlanMaster": "436d86b21857407f89cb4f9a78a71afb", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H10-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 10, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "6a89c48f8db54fb4a9d59764ebf2d255", - "uuidPlanMaster": "436d86b21857407f89cb4f9a78a71afb", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H10-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 10, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "ca0a405b533d4aebaf1c54b647d3a805", - "uuidPlanMaster": "436d86b21857407f89cb4f9a78a71afb", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H10-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 6, - "HoleColum": 10, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "0b7afbfb72614c1697246abcbff4c89b", - "uuidPlanMaster": "436d86b21857407f89cb4f9a78a71afb", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H10-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 7, - "HoleColum": 10, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "90cd4396288b4f70a49d59ff70127495", - "uuidPlanMaster": "436d86b21857407f89cb4f9a78a71afb", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H10-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 10, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "79ff532c38364887babdb05863389885", - "uuidPlanMaster": "436d86b21857407f89cb4f9a78a71afb", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H11-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 11, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "4e05b39d9ff141bdb2cbc3c1dd2fae6d", - "uuidPlanMaster": "436d86b21857407f89cb4f9a78a71afb", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H11-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 11, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "365703e14b384a2c9b4e91ee7c8dccdc", - "uuidPlanMaster": "436d86b21857407f89cb4f9a78a71afb", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H11-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 11, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "060ceb72b2c04d13969ad0ef5fbc7042", - "uuidPlanMaster": "436d86b21857407f89cb4f9a78a71afb", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H11-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 11, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "9e3c77a58bf54b0fad73076e27fa9e8d", - "uuidPlanMaster": "436d86b21857407f89cb4f9a78a71afb", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H11-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 11, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "67cc408551024c47a01faff43a997d26", - "uuidPlanMaster": "436d86b21857407f89cb4f9a78a71afb", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H11-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 6, - "HoleColum": 11, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "43d67b09720c4e5eb15da8103e4ddd61", - "uuidPlanMaster": "436d86b21857407f89cb4f9a78a71afb", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H11-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 7, - "HoleColum": 11, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "dc0fcf03662147e3827ef1e666720966", - "uuidPlanMaster": "436d86b21857407f89cb4f9a78a71afb", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H11-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 11, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "fa9242a56f9543d289c87f16e20a248f", - "uuidPlanMaster": "436d86b21857407f89cb4f9a78a71afb", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H12-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 12, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "7992a9f635cb4a6b9b17acf44e6b342b", - "uuidPlanMaster": "436d86b21857407f89cb4f9a78a71afb", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H12-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 12, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "438fe3193aa14f4ab3ab2e383f3caf28", - "uuidPlanMaster": "436d86b21857407f89cb4f9a78a71afb", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H12-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 12, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "9483e2e147f24b2f8864fc3a4e6ff683", - "uuidPlanMaster": "436d86b21857407f89cb4f9a78a71afb", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H12-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 12, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "d09ea1a454f449a983924331c608d9a4", - "uuidPlanMaster": "436d86b21857407f89cb4f9a78a71afb", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H12-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 12, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "fcccda7502b849d8a7147d8f1a59db42", - "uuidPlanMaster": "436d86b21857407f89cb4f9a78a71afb", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H12-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 6, - "HoleColum": 12, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "bce0b3e8ce3c4791b047285f7a1287ac", - "uuidPlanMaster": "436d86b21857407f89cb4f9a78a71afb", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H12-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 7, - "HoleColum": 12, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "9ad442e6b4fd4339a6066ed0e343f383", - "uuidPlanMaster": "436d86b21857407f89cb4f9a78a71afb", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H12-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 12, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "412b945066fc459cbd53fa600d5b336b", - "uuidPlanMaster": "436d86b21857407f89cb4f9a78a71afb", - "Axis": "Right", - "ActOn": "Blending", - "Place": "H12-8,T10", - "Dosage": 5, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 10, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 12, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 3, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "0dfde51d3f5b43178f83617aed93c105", - "uuidPlanMaster": "436d86b21857407f89cb4f9a78a71afb", - "Axis": "Right", - "ActOn": "UnLoad", - "Place": "H1-8,T16", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 16, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "18d2752ef1914371bf1152a1f869e56e", - "uuidPlanMaster": "86d5979114474412a95c466fb4b52b95", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1-8,T11", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 11, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 4, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "36d97e9d82134e77af3cd18bc1a4cc60", - "uuidPlanMaster": "86d5979114474412a95c466fb4b52b95", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H1-8,T5", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 5, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 4, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "800122656bb9435d8d729cf5c59bd9eb", - "uuidPlanMaster": "86d5979114474412a95c466fb4b52b95", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1-8,T1", - "Dosage": 5, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 2, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "e0362680e677421db2ad3ddfd8443fa8", - "uuidPlanMaster": "86d5979114474412a95c466fb4b52b95", - "Axis": "Left", - "ActOn": "Blending", - "Place": "H1-8,T1", - "Dosage": 5, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 1, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 2, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 2, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "fbfc4b210af24ce48e44922017b33f2b", - "uuidPlanMaster": "86d5979114474412a95c466fb4b52b95", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H1-8,T4", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 12, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 4, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "08e67c371b3a43d9add09b15ea0855a1", - "uuidPlanMaster": "86d5979114474412a95c466fb4b52b95", - "Axis": "Right", - "ActOn": "UnLoad", - "Place": "H1-8,T4", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 4, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "1f460e9cf7864c05b6af83fe9564a4e6", - "uuidPlanMaster": "86d5979114474412a95c466fb4b52b95", - "Axis": "Right", - "ActOn": "Load", - "Place": "H1-8,T8", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 8, - "IsFullPage": 0, - "HoleRow": 6, - "HoleColum": 2, - "HoleCollective": "3", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "c25024d07fe4441982f4ffe630502a8b", - "uuidPlanMaster": "86d5979114474412a95c466fb4b52b95", - "Axis": "Right", - "ActOn": "Imbibing", - "Place": "H1-8,T5", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 11, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 2, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "47e2faa9147444b4bf188689cdc731dd", - "uuidPlanMaster": "86d5979114474412a95c466fb4b52b95", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H1-8,T1", - "Dosage": 5, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 2, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "5e9e5da23af346c6bf9be51ca0cec4c4", - "uuidPlanMaster": "86d5979114474412a95c466fb4b52b95", - "Axis": "Right", - "ActOn": "UnLoad", - "Place": "H1-8,T4", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 4, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "ebf723a15645402aba3e026ed923087c", - "uuidPlanMaster": "86d5979114474412a95c466fb4b52b95", - "Axis": "Right", - "ActOn": "Load", - "Place": "H1-8,T8", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 8, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 1, - "HoleCollective": "3", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "a7ce46b42b2943a2a7cb457a76617580", - "uuidPlanMaster": "86d5979114474412a95c466fb4b52b95", - "Axis": "Right", - "ActOn": "Imbibing", - "Place": "H1-8,T5", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 11, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "e80b490821f44896964e3388113bb4a1", - "uuidPlanMaster": "86d5979114474412a95c466fb4b52b95", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H1-8,T1", - "Dosage": 5, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 2, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "1c296ce4940f496eaa11d8dcfc6c3701", - "uuidPlanMaster": "86d5979114474412a95c466fb4b52b95", - "Axis": "Right", - "ActOn": "UnLoad", - "Place": "H1-8,T4", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 4, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "d937c67b725a4c14a4b7967f06e83fed", - "uuidPlanMaster": "86d5979114474412a95c466fb4b52b95", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H1-8,T5", - "Dosage": 300, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 5, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "da5c745af08e45db89c571f3dc112f39", - "uuidPlanMaster": "86d5979114474412a95c466fb4b52b95", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H5-8,T2", - "Dosage": 300, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 7, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "587931478527480292d29410e9682e71", - "uuidPlanMaster": "86d5979114474412a95c466fb4b52b95", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H1-8,T5", - "Dosage": 300, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 5, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "0602689472ba466bbe6faee49b589a3e", - "uuidPlanMaster": "86d5979114474412a95c466fb4b52b95", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H3-8,T2", - "Dosage": 300, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 8, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "802f0da591a0405bb10b0aeb594cc0ad", - "uuidPlanMaster": "86d5979114474412a95c466fb4b52b95", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H1-8,T5", - "Dosage": 300, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 5, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "20afa2309da74fa0aaba8e9daa838900", - "uuidPlanMaster": "86d5979114474412a95c466fb4b52b95", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H4-8,T2", - "Dosage": 300, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 9, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "939daa195b7c43b19e525387110fef36", - "uuidPlanMaster": "86d5979114474412a95c466fb4b52b95", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H1-8,T5", - "Dosage": 300, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 5, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "c03bada0f4034f41989edbdf9fa02811", - "uuidPlanMaster": "86d5979114474412a95c466fb4b52b95", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H10-8,T2", - "Dosage": 300, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 10, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "86adeba33d224d3dace7356dac191cd5", - "uuidPlanMaster": "86d5979114474412a95c466fb4b52b95", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H1-8,T6", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "5abfec879e1342e4a51bca3998c2bbd2", - "uuidPlanMaster": "86d5979114474412a95c466fb4b52b95", - "Axis": "Left", - "ActOn": "Load", - "Place": "H2-8,T5", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 2, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "37419baf62b944118536d69b3daeb961", - "uuidPlanMaster": "86d5979114474412a95c466fb4b52b95", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H5-8,T5", - "Dosage": 500, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 5, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "ad631820634f4b91b882dc8b1ad9f0d6", - "uuidPlanMaster": "86d5979114474412a95c466fb4b52b95", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H6-8,T2", - "Dosage": 500, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 6, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "cc0cfc13c95447dca4d405c913cf19f3", - "uuidPlanMaster": "86d5979114474412a95c466fb4b52b95", - "Axis": "Left", - "ActOn": "Blending", - "Place": "H6-8,T2", - "Dosage": 500, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 6, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 2, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "6a5a7dca4fc14a0897e86edfc4203900", - "uuidPlanMaster": "86d5979114474412a95c466fb4b52b95", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H2-8,T4", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 2, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "9d46a2a870be483d98361f16e518fe23", - "uuidPlanMaster": "86d5979114474412a95c466fb4b52b95", - "Axis": "Left", - "ActOn": "Load", - "Place": "H3-8,T1", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "3e6c9cb25f8242faa761be01a53f156b", - "uuidPlanMaster": "86d5979114474412a95c466fb4b52b95", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H6-8,T5", - "Dosage": 500, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 6, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "267180923df34c25b97d6055fc5a48d8", - "uuidPlanMaster": "86d5979114474412a95c466fb4b52b95", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H7-8,T2", - "Dosage": 500, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 7, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "c38679ec1d444f4399f13719c2c1ed53", - "uuidPlanMaster": "86d5979114474412a95c466fb4b52b95", - "Axis": "Left", - "ActOn": "Blending", - "Place": "H7-8,T2", - "Dosage": 500, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 7, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 2, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "2ea0f83d2db44b5a8c27ad980d36e94d", - "uuidPlanMaster": "86d5979114474412a95c466fb4b52b95", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H3-8,T4", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "bd6db5bf289d4a2cbe1bc51262dacbe9", - "uuidPlanMaster": "86d5979114474412a95c466fb4b52b95", - "Axis": "Left", - "ActOn": "Load", - "Place": "H4-8,T1", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 4, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "f81515f3049541e2adcf3aaed00bab4d", - "uuidPlanMaster": "86d5979114474412a95c466fb4b52b95", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H6-8,T5", - "Dosage": 500, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 7, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "946ac5030d394c5a9d3b454f40cb2b00", - "uuidPlanMaster": "86d5979114474412a95c466fb4b52b95", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H7-8,T2", - "Dosage": 500, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 8, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "7c52a58c216942048c01f561188e3903", - "uuidPlanMaster": "86d5979114474412a95c466fb4b52b95", - "Axis": "Left", - "ActOn": "Blending", - "Place": "H7-8,T2", - "Dosage": 500, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 8, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 2, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "70af0b19ad474213938b335533619bde", - "uuidPlanMaster": "86d5979114474412a95c466fb4b52b95", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H4-8,T4", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 4, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "c91f6272c214444e85895ba65e71fa99", - "uuidPlanMaster": "86d5979114474412a95c466fb4b52b95", - "Axis": "Left", - "ActOn": "Load", - "Place": "H5-8,T1", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "d869787da7484ea7982c88717b70096d", - "uuidPlanMaster": "86d5979114474412a95c466fb4b52b95", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H6-8,T5", - "Dosage": 500, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 8, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "0dfea7c7949f4eb3b88b8519d2dd4171", - "uuidPlanMaster": "86d5979114474412a95c466fb4b52b95", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H7-8,T2", - "Dosage": 500, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 9, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "3f6fe8a641554e67ad18589b4d4ec3bb", - "uuidPlanMaster": "86d5979114474412a95c466fb4b52b95", - "Axis": "Left", - "ActOn": "Blending", - "Place": "H7-8,T2", - "Dosage": 500, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 9, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 2, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "9c73492cba4e4c3a91c392c4c507f4c9", - "uuidPlanMaster": "86d5979114474412a95c466fb4b52b95", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H5-8,T4", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "eb1193571b3148fe83f067c08e3226f3", - "uuidPlanMaster": "86d5979114474412a95c466fb4b52b95", - "Axis": "Left", - "ActOn": "Load", - "Place": "H6-8,T1", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 6, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "6e3be9ae06c5401c9842cc7a6974bde7", - "uuidPlanMaster": "86d5979114474412a95c466fb4b52b95", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H6-8,T5", - "Dosage": 500, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 9, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "174b4557dca0463490a2e1485a57b65d", - "uuidPlanMaster": "86d5979114474412a95c466fb4b52b95", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H7-8,T2", - "Dosage": 500, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 10, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "7a94ed14a1504acdb3dd1d33cceb0214", - "uuidPlanMaster": "86d5979114474412a95c466fb4b52b95", - "Axis": "Left", - "ActOn": "Blending", - "Place": "H7-8,T2", - "Dosage": 500, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 1, - "HoleRow": 1, - "HoleColum": 10, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 2, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "1ee7e1b180334e4f9728327f830a3c38", - "uuidPlanMaster": "86d5979114474412a95c466fb4b52b95", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H6-8,T4", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 6, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "5e8ed78bac6e488c805e60e1a02e2bb6", - "uuidPlanMaster": "67c4f25319b448909ad9fb3ec4ba519a", - "Axis": "Right", - "ActOn": "Load", - "Place": "H9-8,T1", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 1, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 9, - "HoleCollective": "67", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "d77d7928a2d1409692b4296c465ca8e7", - "uuidPlanMaster": "67c4f25319b448909ad9fb3ec4ba519a", - "Axis": "Right", - "ActOn": "Imbibing", - "Place": "H12-8,T9", - "Dosage": 2, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 9, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 12, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "06575e5e34754326910c705d06a9ee36", - "uuidPlanMaster": "67c4f25319b448909ad9fb3ec4ba519a", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H4-8,T2", - "Dosage": 2, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 4, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "d0c9f61f0cd145519e3fa455172ed4b8", - "uuidPlanMaster": "67c4f25319b448909ad9fb3ec4ba519a", - "Axis": "Right", - "ActOn": "UnLoad", - "Place": "H1-8,T16", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 16, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "c794c296d9cf4da28160fe1ad8db3f6c", - "uuidPlanMaster": "24eab79a2c2d464b85ab01a747839a94", - "Axis": "Right", - "ActOn": "Load", - "Place": "H9-8,T1", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 1, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 9, - "HoleCollective": "67", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "77ddedbf33d141a5bdef0aea02f0d687", - "uuidPlanMaster": "24eab79a2c2d464b85ab01a747839a94", - "Axis": "Right", - "ActOn": "Imbibing", - "Place": "H12-8,T9", - "Dosage": 2, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 9, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 12, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "2bbee47320df43c6b1ca3b31378ddbf6", - "uuidPlanMaster": "24eab79a2c2d464b85ab01a747839a94", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H4-8,T2", - "Dosage": 2, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 4, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "9e3f1766e0a04887b4c999e5896971f4", - "uuidPlanMaster": "24eab79a2c2d464b85ab01a747839a94", - "Axis": "Right", - "ActOn": "UnLoad", - "Place": "H1-8,T16", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 16, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "6eb5a576e55d4b9c81c68eda6ae55627", - "uuidPlanMaster": "d0b52ee4260d4d7c995893534f356894", - "Axis": "Right", - "ActOn": "Load", - "Place": "H9-8,T1", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 1, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 9, - "HoleCollective": "67", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "0372c672cae5406b809125c4e878061a", - "uuidPlanMaster": "d0b52ee4260d4d7c995893534f356894", - "Axis": "Right", - "ActOn": "Imbibing", - "Place": "H12-8,T9", - "Dosage": 2, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 9, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 12, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "94ce6df255264c82a89f71326cfd5205", - "uuidPlanMaster": "d0b52ee4260d4d7c995893534f356894", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H4-8,T2", - "Dosage": 2, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 4, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "b0d0d83670324732b8f1d8bc8050fb20", - "uuidPlanMaster": "d0b52ee4260d4d7c995893534f356894", - "Axis": "Right", - "ActOn": "UnLoad", - "Place": "H1-8,T16", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 16, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "fd55811232ee4124a4d6959b4a8c1a04", - "uuidPlanMaster": "a6846668d4b84b0f9fcdb1580c8d5901", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1-8,T1", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "e636a6da5a39455eb51ab267f4b5e786", - "uuidPlanMaster": "58a2b5de2da64894b0b0b965ab14b328", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1-8,T1", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "7f57c042b9414531b53002b5182efbca", - "uuidPlanMaster": "58a2b5de2da64894b0b0b965ab14b328", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H12-8,T9", - "Dosage": 2, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 9, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 12, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "71ec316682b742858b61e8d01707c07d", - "uuidPlanMaster": "58a2b5de2da64894b0b0b965ab14b328", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H4-8,T2", - "Dosage": 2, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 4, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "bd73a77d5f1243cc8910f6154e5de88e", - "uuidPlanMaster": "58a2b5de2da64894b0b0b965ab14b328", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H1-8,T16", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 16, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "5d9e6bc5544d4c888aaa6bd91e568623", - "uuidPlanMaster": "e17806ac0e794ed3870790eda61d80fd", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1-8,T1", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "1ffe4de941b742debda60b68cdffad7f", - "uuidPlanMaster": "e17806ac0e794ed3870790eda61d80fd", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H12-8,T9", - "Dosage": 2, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 9, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 12, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "69852ea7f04e43d28477ad6f60d6ea16", - "uuidPlanMaster": "e17806ac0e794ed3870790eda61d80fd", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H4-8,T2", - "Dosage": 2, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 4, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "17a66fb75e6d44948b459be8d9258400", - "uuidPlanMaster": "e17806ac0e794ed3870790eda61d80fd", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H1-8,T16", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 16, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "a93c2dedc8a344ccb30c2a2666dd7ea1", - "uuidPlanMaster": "9228f17d4d404897804cb12d928dc32d", - "Axis": "Right", - "ActOn": "Load", - "Place": "H1-8,T1", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "9ecbc2bf559044e696339a44422a5341", - "uuidPlanMaster": "9228f17d4d404897804cb12d928dc32d", - "Axis": "Right", - "ActOn": "Imbibing", - "Place": "H12-8,T9", - "Dosage": 2, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 9, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 12, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "990e7c84b7fd4f678d15d3e912dc1304", - "uuidPlanMaster": "9228f17d4d404897804cb12d928dc32d", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H4-8,T2", - "Dosage": 2, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 4, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "4d1fc7406a744987a4140d334d2d3650", - "uuidPlanMaster": "9228f17d4d404897804cb12d928dc32d", - "Axis": "Right", - "ActOn": "UnLoad", - "Place": "H1-8,T16", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 16, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "6bb5e46b45924228a4de45db48fa9082", - "uuidPlanMaster": "433c2eab16b347ffb7a7452b7809bd65", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1-8,T1", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "ed5af6e6593e456885c0b997d0f56b14", - "uuidPlanMaster": "433c2eab16b347ffb7a7452b7809bd65", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H1-8,T2", - "Dosage": 6, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "38bc0d215cc445d794c5b055aa356a6f", - "uuidPlanMaster": "433c2eab16b347ffb7a7452b7809bd65", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H4-8,T2", - "Dosage": 2, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 4, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "b7a9f9cc2a804471aabfc3514d848ecf", - "uuidPlanMaster": "433c2eab16b347ffb7a7452b7809bd65", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H1-8,T16", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 16, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "ce4c42d7983640048bc99b37248309e8", - "uuidPlanMaster": "bd45f0e087ff4ee18252b167d588ab75", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1-8,T1", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "bb758cc562cf4526850a9ef5ec449a69", - "uuidPlanMaster": "bd45f0e087ff4ee18252b167d588ab75", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H1-8,T2", - "Dosage": 6, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "5a2cc05ee6d74d96b62b0ddf964881bb", - "uuidPlanMaster": "bd45f0e087ff4ee18252b167d588ab75", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H5-8,T9", - "Dosage": 2, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 9, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "1ab29b81cd5f4634b1d61590cbb12a8f", - "uuidPlanMaster": "bd45f0e087ff4ee18252b167d588ab75", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H1-8,T16", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 16, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "386d6dd2b9c0409193241af349993233", - "uuidPlanMaster": "0ca682e5dc9642e088b2c84a920df3e1", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1-8,T1", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "212da679a3d3462394e04ddf4dd3f123", - "uuidPlanMaster": "0ca682e5dc9642e088b2c84a920df3e1", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H5-8,T9", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 9, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "b9ddbd5fefc9435784ad704a28b3350d", - "uuidPlanMaster": "0ca682e5dc9642e088b2c84a920df3e1", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1-8,T2", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "3bb8ff8166ba4764bf603e81da6780e6", - "uuidPlanMaster": "0ca682e5dc9642e088b2c84a920df3e1", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H1-8,T16", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 16, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "e1dd97f9dcc74a4993602bf059399746", - "uuidPlanMaster": "9f7a28c96c3542f8b95222c6899acdad", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1-8,T1", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "378f89692d6045608ed2600fc1b7c1bb", - "uuidPlanMaster": "9f7a28c96c3542f8b95222c6899acdad", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H5-8,T9", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 9, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "fa0c4273152a43bbb8d483d8929a2160", - "uuidPlanMaster": "9f7a28c96c3542f8b95222c6899acdad", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1-8,T2", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "8cd051d4ef4d46d4bd2d066d5c8ed72f", - "uuidPlanMaster": "9f7a28c96c3542f8b95222c6899acdad", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H1-8,T16", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 16, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "176cb9e1bc7d435fac15b12b484929cd", - "uuidPlanMaster": "e053f0826a0e4806a29ac00214e8b204", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1-8,T1", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "f129ccbe107647b18f8af43e7b69ba5b", - "uuidPlanMaster": "e053f0826a0e4806a29ac00214e8b204", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H5-8,T9", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 9, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "ef2c28035c8d4cdbbe34093e1c9bf80e", - "uuidPlanMaster": "e053f0826a0e4806a29ac00214e8b204", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1-8,T2", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "71054cce5f8e4d21a0f5ceecf7e5c0c8", - "uuidPlanMaster": "e053f0826a0e4806a29ac00214e8b204", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H1-8,T16", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 16, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "ad3e9a520f7041888613adbb4867a472", - "uuidPlanMaster": "33a2fbeff63044e48e2b4af18b1b236f", - "Axis": "Right", - "ActOn": "Load", - "Place": "H5-8,T5", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 5, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 5, - "HoleCollective": "35", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "f314cafe11cd4bdfbb8ebb32ea20a8f2", - "uuidPlanMaster": "33a2fbeff63044e48e2b4af18b1b236f", - "Axis": "Right", - "ActOn": "Imbibing", - "Place": "H12-8,T9", - "Dosage": 5, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 9, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 12, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "774170bd23c240e9a6ff5c1ec8736be5", - "uuidPlanMaster": "33a2fbeff63044e48e2b4af18b1b236f", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H1-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "748a3827950f46f0ac8770b1d49c90d1", - "uuidPlanMaster": "33a2fbeff63044e48e2b4af18b1b236f", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H1-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "dc014f310eae4bd480c8117098858b17", - "uuidPlanMaster": "33a2fbeff63044e48e2b4af18b1b236f", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H1-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "ab3dbe9b03014f74951967c7b3d1fc17", - "uuidPlanMaster": "33a2fbeff63044e48e2b4af18b1b236f", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H1-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "6b264ecdbc464b25adb952a952f73b5a", - "uuidPlanMaster": "33a2fbeff63044e48e2b4af18b1b236f", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H1-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "d3c516283368406d8bb4cc910df72ac4", - "uuidPlanMaster": "33a2fbeff63044e48e2b4af18b1b236f", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H1-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 6, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "cdb092d8083a41cc852655d46398b069", - "uuidPlanMaster": "33a2fbeff63044e48e2b4af18b1b236f", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H1-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 7, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "28278c0cf5754a08847be6ef824dcfda", - "uuidPlanMaster": "33a2fbeff63044e48e2b4af18b1b236f", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H1-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "51aa130bb2cc42eda7e7245a4164318d", - "uuidPlanMaster": "33a2fbeff63044e48e2b4af18b1b236f", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H2-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 2, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "61a6d29211384919ac4d56e578ec020c", - "uuidPlanMaster": "33a2fbeff63044e48e2b4af18b1b236f", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H2-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 2, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "7073cbb5b2ae4d74b26d0df3ea8f99e2", - "uuidPlanMaster": "33a2fbeff63044e48e2b4af18b1b236f", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H2-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 2, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "7602f2b7a6c842bca95472698f7c3a96", - "uuidPlanMaster": "33a2fbeff63044e48e2b4af18b1b236f", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H2-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 2, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "50eac7aa777e453c971b71c08c32bc9c", - "uuidPlanMaster": "33a2fbeff63044e48e2b4af18b1b236f", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H2-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 2, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "e9176620737e4423965b99e102b913c4", - "uuidPlanMaster": "33a2fbeff63044e48e2b4af18b1b236f", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H2-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 6, - "HoleColum": 2, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "cbe6a78b69a84e26a07cfa1af1b194c0", - "uuidPlanMaster": "33a2fbeff63044e48e2b4af18b1b236f", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H2-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 7, - "HoleColum": 2, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "bd74904d25b54e4886955b6d32e1be09", - "uuidPlanMaster": "33a2fbeff63044e48e2b4af18b1b236f", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H2-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 2, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "1c1ad5ef2c8c48cdb2f6adc3c2a993fb", - "uuidPlanMaster": "33a2fbeff63044e48e2b4af18b1b236f", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H3-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "f9d8c030d72e41be8a6778f58b68022f", - "uuidPlanMaster": "33a2fbeff63044e48e2b4af18b1b236f", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H3-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "d8b674078960492fb3e1a714e1473048", - "uuidPlanMaster": "33a2fbeff63044e48e2b4af18b1b236f", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H3-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "1d780414877c4bc4af8f69c1451d0443", - "uuidPlanMaster": "33a2fbeff63044e48e2b4af18b1b236f", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H3-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "31a549e2a7024ab1a285d5191517f777", - "uuidPlanMaster": "33a2fbeff63044e48e2b4af18b1b236f", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H3-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "c1fb1204ad4040678854a624f1908094", - "uuidPlanMaster": "33a2fbeff63044e48e2b4af18b1b236f", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H3-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 6, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "e57df7dc0f4944438ff369aaa278fd8e", - "uuidPlanMaster": "33a2fbeff63044e48e2b4af18b1b236f", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H3-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 7, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "a13d579b838043ca8c83814983a7d2ce", - "uuidPlanMaster": "33a2fbeff63044e48e2b4af18b1b236f", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H3-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "0b5676b3f3944ae1a564db3596dea0b1", - "uuidPlanMaster": "33a2fbeff63044e48e2b4af18b1b236f", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H4-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 4, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "e19a0ef4bbdd48c98947e955c51379ae", - "uuidPlanMaster": "33a2fbeff63044e48e2b4af18b1b236f", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H4-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 4, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "272afd06afd34ed1a8f3784bbc432f26", - "uuidPlanMaster": "33a2fbeff63044e48e2b4af18b1b236f", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H4-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 4, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "f78fcb68239a4d80b9c05833c5206e46", - "uuidPlanMaster": "33a2fbeff63044e48e2b4af18b1b236f", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H4-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 4, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "13438ab940cd421591423934964fe6b7", - "uuidPlanMaster": "33a2fbeff63044e48e2b4af18b1b236f", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H4-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 4, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "2def7a0e553648a0b391893d36d241ef", - "uuidPlanMaster": "33a2fbeff63044e48e2b4af18b1b236f", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H4-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 6, - "HoleColum": 4, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "9c72f0974ca54cb1a8f2e36ddc752f4e", - "uuidPlanMaster": "33a2fbeff63044e48e2b4af18b1b236f", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H4-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 7, - "HoleColum": 4, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "0cd0a8e9952a4d78acbf9b3ae9175703", - "uuidPlanMaster": "33a2fbeff63044e48e2b4af18b1b236f", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H4-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 4, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "66195573e504469d95d06680182d3bd6", - "uuidPlanMaster": "33a2fbeff63044e48e2b4af18b1b236f", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H5-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "8a522c54a0da4ee3a4e63e447f8649e2", - "uuidPlanMaster": "33a2fbeff63044e48e2b4af18b1b236f", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H5-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "48d3129fc7414b079d6eae178481e7d9", - "uuidPlanMaster": "33a2fbeff63044e48e2b4af18b1b236f", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H5-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "e1247c5cb99a44f0b1212c0f5773d711", - "uuidPlanMaster": "33a2fbeff63044e48e2b4af18b1b236f", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H5-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "629686d445a64df48c8fb88a53143c43", - "uuidPlanMaster": "33a2fbeff63044e48e2b4af18b1b236f", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H5-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "7ddd572ae63742a2b1fca239268bd24a", - "uuidPlanMaster": "33a2fbeff63044e48e2b4af18b1b236f", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H5-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 6, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "5501371ff08d47dcbc37bbc042bab23c", - "uuidPlanMaster": "33a2fbeff63044e48e2b4af18b1b236f", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H5-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 7, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "8d24765733a44ec481560bcba50faf78", - "uuidPlanMaster": "33a2fbeff63044e48e2b4af18b1b236f", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H5-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "6ba6df27d73e4618acae278e0145efaa", - "uuidPlanMaster": "33a2fbeff63044e48e2b4af18b1b236f", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H6-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 6, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "1d68595b2a7d411f9f208c55fac56623", - "uuidPlanMaster": "33a2fbeff63044e48e2b4af18b1b236f", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H6-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 6, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "fb418785adcc47a19800684cc9a57838", - "uuidPlanMaster": "33a2fbeff63044e48e2b4af18b1b236f", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H6-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 6, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "e5441419ea7741b3ae31c9bdacaaf619", - "uuidPlanMaster": "33a2fbeff63044e48e2b4af18b1b236f", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H6-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 6, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "d67eac8dfcad4b64b6631b0ac684da3f", - "uuidPlanMaster": "33a2fbeff63044e48e2b4af18b1b236f", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H6-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 6, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "1eb76c5f11364514b6800e021a574e0e", - "uuidPlanMaster": "33a2fbeff63044e48e2b4af18b1b236f", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H6-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 6, - "HoleColum": 6, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "2febe7f72eb847cd9c70c78c42af70d8", - "uuidPlanMaster": "33a2fbeff63044e48e2b4af18b1b236f", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H6-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 7, - "HoleColum": 6, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "221f974a4a484c7cb708ad9cebdca13e", - "uuidPlanMaster": "33a2fbeff63044e48e2b4af18b1b236f", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H6-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 6, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "6eb743a1bfb442f98197a1fa3c457102", - "uuidPlanMaster": "33a2fbeff63044e48e2b4af18b1b236f", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H7-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 7, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "502aff196a314a0ab46c435b8ee47285", - "uuidPlanMaster": "33a2fbeff63044e48e2b4af18b1b236f", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H7-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 7, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "0f6d43f32b344825a0cbe883d872b7e5", - "uuidPlanMaster": "33a2fbeff63044e48e2b4af18b1b236f", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H7-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 7, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "4f5f703d3ce5422ea61199c538d25ac2", - "uuidPlanMaster": "33a2fbeff63044e48e2b4af18b1b236f", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H7-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 7, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "dc27b85701474473bbe9aa111a5868b3", - "uuidPlanMaster": "33a2fbeff63044e48e2b4af18b1b236f", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H7-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 7, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "ab4857baa1a848ea92385cc1fc6f9c3c", - "uuidPlanMaster": "33a2fbeff63044e48e2b4af18b1b236f", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H7-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 6, - "HoleColum": 7, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "b161bb292df042e0837dd20e8a82e1ee", - "uuidPlanMaster": "33a2fbeff63044e48e2b4af18b1b236f", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H7-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 7, - "HoleColum": 7, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "18445c47d9d54b0181dbcf56f68d2199", - "uuidPlanMaster": "33a2fbeff63044e48e2b4af18b1b236f", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H7-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 7, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "a67ca72d188649f88a3cb468fc400aa9", - "uuidPlanMaster": "33a2fbeff63044e48e2b4af18b1b236f", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H8-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 8, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "69bd2676211e4e409a3396fbc55221d8", - "uuidPlanMaster": "33a2fbeff63044e48e2b4af18b1b236f", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H8-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 8, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "647d33aa840748f38706642749fb09c6", - "uuidPlanMaster": "33a2fbeff63044e48e2b4af18b1b236f", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H8-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 8, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "76cc7844d75c4a9cbb90eacaf182b0fa", - "uuidPlanMaster": "33a2fbeff63044e48e2b4af18b1b236f", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H8-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 8, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "7b5e3d2e435b418e83b84b5ec150e372", - "uuidPlanMaster": "33a2fbeff63044e48e2b4af18b1b236f", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H8-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 8, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "3adc4195ca21432db00b24d1e59c6466", - "uuidPlanMaster": "33a2fbeff63044e48e2b4af18b1b236f", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H8-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 6, - "HoleColum": 8, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "e7864272a0584649b97fccf8950de864", - "uuidPlanMaster": "33a2fbeff63044e48e2b4af18b1b236f", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H8-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 7, - "HoleColum": 8, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "067f81b63b744f85a1d277c62b19ad34", - "uuidPlanMaster": "33a2fbeff63044e48e2b4af18b1b236f", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H8-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 8, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "532c0304f7c54f4687d71835d18080ad", - "uuidPlanMaster": "33a2fbeff63044e48e2b4af18b1b236f", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H9-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 9, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "2632b309dcf74e9590bb215fdaec78ac", - "uuidPlanMaster": "33a2fbeff63044e48e2b4af18b1b236f", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H9-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 9, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "0a3766a0bc7d48dfbb4258f00f550cf2", - "uuidPlanMaster": "33a2fbeff63044e48e2b4af18b1b236f", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H9-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 9, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "ead4954cd8c7428ca38c9ad3c994801d", - "uuidPlanMaster": "33a2fbeff63044e48e2b4af18b1b236f", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H9-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 9, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "3aaa80b28a464312895d4e331d6d40bc", - "uuidPlanMaster": "33a2fbeff63044e48e2b4af18b1b236f", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H9-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 9, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "f33803f336d64f3698327858744a05aa", - "uuidPlanMaster": "33a2fbeff63044e48e2b4af18b1b236f", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H9-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 6, - "HoleColum": 9, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "9396029ee8544643b8757d0f2ae7ceee", - "uuidPlanMaster": "33a2fbeff63044e48e2b4af18b1b236f", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H9-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 7, - "HoleColum": 9, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "f422efc76c4a4f9fba6d1e7939392ffe", - "uuidPlanMaster": "33a2fbeff63044e48e2b4af18b1b236f", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H9-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 9, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "b1a04e25c64a481681d6868cb294c324", - "uuidPlanMaster": "33a2fbeff63044e48e2b4af18b1b236f", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H10-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 10, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "c6bcb319bafa427badd6c59d12e4c04c", - "uuidPlanMaster": "33a2fbeff63044e48e2b4af18b1b236f", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H10-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 10, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "00f856d7a0864e58b89c197ba31cfa3f", - "uuidPlanMaster": "33a2fbeff63044e48e2b4af18b1b236f", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H10-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 10, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "4b4a019073994e02ba2fd5e27a01cbfd", - "uuidPlanMaster": "33a2fbeff63044e48e2b4af18b1b236f", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H10-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 10, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "c9177e9dfed8417c8981a03d59a2c560", - "uuidPlanMaster": "33a2fbeff63044e48e2b4af18b1b236f", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H10-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 10, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "e2daef0ed4ae48ac819bfd51e76f2c8b", - "uuidPlanMaster": "33a2fbeff63044e48e2b4af18b1b236f", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H10-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 6, - "HoleColum": 10, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "17bdbfcc92194867bdbef661d4f46006", - "uuidPlanMaster": "33a2fbeff63044e48e2b4af18b1b236f", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H10-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 7, - "HoleColum": 10, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "7c01f27a8f63461c9a4f235c77ba0f21", - "uuidPlanMaster": "33a2fbeff63044e48e2b4af18b1b236f", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H10-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 10, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "3b05d5d182eb46e0a404af01e5307e9a", - "uuidPlanMaster": "33a2fbeff63044e48e2b4af18b1b236f", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H11-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 11, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "0b2d26a761cf4f9c8e12b6b052a06511", - "uuidPlanMaster": "33a2fbeff63044e48e2b4af18b1b236f", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H11-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 11, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "270532864c8147daaf068f8c0aed31a6", - "uuidPlanMaster": "33a2fbeff63044e48e2b4af18b1b236f", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H11-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 11, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "944491b929cd4009a1d75735f7018a41", - "uuidPlanMaster": "33a2fbeff63044e48e2b4af18b1b236f", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H11-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 11, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "69d398be07474e71849b97d3870c777a", - "uuidPlanMaster": "33a2fbeff63044e48e2b4af18b1b236f", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H11-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 11, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "df2634cdcac94a80926e4777010f2b3b", - "uuidPlanMaster": "33a2fbeff63044e48e2b4af18b1b236f", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H11-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 6, - "HoleColum": 11, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "70ae92f6aeb34d8aaf5ae7773334ed9f", - "uuidPlanMaster": "33a2fbeff63044e48e2b4af18b1b236f", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H11-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 7, - "HoleColum": 11, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "7bfc88810a694003860cdda781b3b65a", - "uuidPlanMaster": "33a2fbeff63044e48e2b4af18b1b236f", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H11-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 11, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "f272ca576105441eb3eb11de80703f0e", - "uuidPlanMaster": "33a2fbeff63044e48e2b4af18b1b236f", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H12-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 12, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "539d06ad02484e4da2b5b90b7d05bf1b", - "uuidPlanMaster": "33a2fbeff63044e48e2b4af18b1b236f", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H12-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 12, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "8a7f0922f51c4af2b8d2bb0658b905b7", - "uuidPlanMaster": "33a2fbeff63044e48e2b4af18b1b236f", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H12-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 12, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "24d9812b215b47a881c39f3812dc7553", - "uuidPlanMaster": "33a2fbeff63044e48e2b4af18b1b236f", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H12-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 12, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "4d64183bc86b4327aa325472e5f9f961", - "uuidPlanMaster": "33a2fbeff63044e48e2b4af18b1b236f", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H12-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 12, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "beb444a4f15c4f189c5ffef34be2c369", - "uuidPlanMaster": "33a2fbeff63044e48e2b4af18b1b236f", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H12-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 6, - "HoleColum": 12, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "5e4d331b305546acb6bb9db737ee15be", - "uuidPlanMaster": "33a2fbeff63044e48e2b4af18b1b236f", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H12-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 7, - "HoleColum": 12, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "41722c7301a04c1a8394f3c8d56f20df", - "uuidPlanMaster": "33a2fbeff63044e48e2b4af18b1b236f", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H12-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 12, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "a150d988e6c742d09f5ade4b26b0abc3", - "uuidPlanMaster": "33a2fbeff63044e48e2b4af18b1b236f", - "Axis": "Right", - "ActOn": "Blending", - "Place": "H12-8,T10", - "Dosage": 5, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 10, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 12, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 3, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "2da7f012b7164a2c8791f894b07edeb1", - "uuidPlanMaster": "33a2fbeff63044e48e2b4af18b1b236f", - "Axis": "Right", - "ActOn": "UnLoad", - "Place": "H1-8,T16", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 16, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "ac5a70a3026d439bb777d8661dc66d87", - "uuidPlanMaster": "938e04894ed64431b2c3fbc5b8f71c32", - "Axis": "Right", - "ActOn": "Load", - "Place": "H5-8,T5", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 5, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 5, - "HoleCollective": "35", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "fca41a76df044330bdfd2510ba56843c", - "uuidPlanMaster": "938e04894ed64431b2c3fbc5b8f71c32", - "Axis": "Right", - "ActOn": "Imbibing", - "Place": "H12-8,T9", - "Dosage": 5, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 9, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 12, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "4edadaec94a04fb1b0056213c36eb618", - "uuidPlanMaster": "938e04894ed64431b2c3fbc5b8f71c32", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H1-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "6db0f27a829344b0844544139b847df1", - "uuidPlanMaster": "938e04894ed64431b2c3fbc5b8f71c32", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H1-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "e080a1de52b947dd8ed5ea57208d5a00", - "uuidPlanMaster": "938e04894ed64431b2c3fbc5b8f71c32", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H1-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "1fc24139305443c6b575a508b1fab82c", - "uuidPlanMaster": "938e04894ed64431b2c3fbc5b8f71c32", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H1-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "29454e0b6dd0404e8facb0ebe7fb33fe", - "uuidPlanMaster": "938e04894ed64431b2c3fbc5b8f71c32", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H1-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "65976dd7c41943c5a33d5d2388df5eae", - "uuidPlanMaster": "938e04894ed64431b2c3fbc5b8f71c32", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H1-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 6, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "4e0bbaa078bd4271bb086b1eff1854b7", - "uuidPlanMaster": "938e04894ed64431b2c3fbc5b8f71c32", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H1-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 7, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "13d710c1b5184caab2f9d1256355d1de", - "uuidPlanMaster": "938e04894ed64431b2c3fbc5b8f71c32", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H1-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "db62cde5fa564ab0ae8032a2b4aa521d", - "uuidPlanMaster": "938e04894ed64431b2c3fbc5b8f71c32", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H2-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 2, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "427fc547a2594744acbe1af8988a050c", - "uuidPlanMaster": "938e04894ed64431b2c3fbc5b8f71c32", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H2-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 2, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "c57849ccd4d44f70a242e95a36c57cd9", - "uuidPlanMaster": "938e04894ed64431b2c3fbc5b8f71c32", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H2-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 2, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "8c921cada98c4400b8726f71c81a04f3", - "uuidPlanMaster": "938e04894ed64431b2c3fbc5b8f71c32", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H2-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 2, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "8f545c54f66c4fd4a8e471a1396ffc8d", - "uuidPlanMaster": "938e04894ed64431b2c3fbc5b8f71c32", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H2-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 2, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "cefe8fc063144c2881c7bf3436d61fb2", - "uuidPlanMaster": "938e04894ed64431b2c3fbc5b8f71c32", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H2-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 6, - "HoleColum": 2, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "8d77cfed540641f488f422ddabbecb1e", - "uuidPlanMaster": "938e04894ed64431b2c3fbc5b8f71c32", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H2-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 7, - "HoleColum": 2, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "f41f15f9552f4cc6ab7dfc6e5d272dab", - "uuidPlanMaster": "938e04894ed64431b2c3fbc5b8f71c32", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H2-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 2, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "ab363d5a2d7941d0ac04eaa4c67d211f", - "uuidPlanMaster": "938e04894ed64431b2c3fbc5b8f71c32", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H3-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "86a5183b04584144b7cab71f3bba0e89", - "uuidPlanMaster": "938e04894ed64431b2c3fbc5b8f71c32", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H3-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "449ec593562b49cbbfb4bccaa992cd49", - "uuidPlanMaster": "938e04894ed64431b2c3fbc5b8f71c32", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H3-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "39ccd2f0860846b2ae5bcc5b116609b2", - "uuidPlanMaster": "938e04894ed64431b2c3fbc5b8f71c32", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H3-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "649c74366ad149ebb3f2ee5629e52fd0", - "uuidPlanMaster": "938e04894ed64431b2c3fbc5b8f71c32", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H3-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "dcf350e0a947406188ce144598e19963", - "uuidPlanMaster": "938e04894ed64431b2c3fbc5b8f71c32", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H3-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 6, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "5135cd0816704470807cc67ec0c593c4", - "uuidPlanMaster": "938e04894ed64431b2c3fbc5b8f71c32", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H3-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 7, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "193b713985f842b382de9f728fb7d85a", - "uuidPlanMaster": "938e04894ed64431b2c3fbc5b8f71c32", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H3-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "21e89a08fb754aeaa333bf68548d17d2", - "uuidPlanMaster": "938e04894ed64431b2c3fbc5b8f71c32", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H4-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 4, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "dfda947f59b74412b9d09de54e43e8e4", - "uuidPlanMaster": "938e04894ed64431b2c3fbc5b8f71c32", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H4-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 4, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "eb695ebb91974b619d026ed42120607e", - "uuidPlanMaster": "938e04894ed64431b2c3fbc5b8f71c32", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H4-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 4, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "15a1d5688ab44573aba313e94e2ccfa6", - "uuidPlanMaster": "938e04894ed64431b2c3fbc5b8f71c32", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H4-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 4, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "1718a5ff3eab4a11aae3c1a1bbab7b93", - "uuidPlanMaster": "938e04894ed64431b2c3fbc5b8f71c32", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H4-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 4, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "d7412c7e41254c558cc8d8edfa9ceded", - "uuidPlanMaster": "938e04894ed64431b2c3fbc5b8f71c32", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H4-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 6, - "HoleColum": 4, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "f5244154338d429d996bbdca69ff6e02", - "uuidPlanMaster": "938e04894ed64431b2c3fbc5b8f71c32", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H4-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 7, - "HoleColum": 4, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "1cc7597b5ad743cc8f6624c8ac6fae6e", - "uuidPlanMaster": "938e04894ed64431b2c3fbc5b8f71c32", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H4-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 4, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "b6b226e273c540cfa1c5cbef0af9ff24", - "uuidPlanMaster": "938e04894ed64431b2c3fbc5b8f71c32", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H5-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "dc398a87601042d88236d1b49863b8e5", - "uuidPlanMaster": "938e04894ed64431b2c3fbc5b8f71c32", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H5-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "79fcce81383d46ea96bf58cbe32d765b", - "uuidPlanMaster": "938e04894ed64431b2c3fbc5b8f71c32", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H5-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "34b6012587204433b1ae5f2ca9c3de76", - "uuidPlanMaster": "938e04894ed64431b2c3fbc5b8f71c32", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H5-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "d51f3b8b9f3e45a8bcd844346c3cee08", - "uuidPlanMaster": "938e04894ed64431b2c3fbc5b8f71c32", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H5-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "ba7e948db6184872aafcace318537b0c", - "uuidPlanMaster": "938e04894ed64431b2c3fbc5b8f71c32", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H5-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 6, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "ca119e514cb84799a9201631162760a6", - "uuidPlanMaster": "938e04894ed64431b2c3fbc5b8f71c32", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H5-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 7, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "dadd2c883db84dae81bc3efa332b1c33", - "uuidPlanMaster": "938e04894ed64431b2c3fbc5b8f71c32", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H5-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "44161f1cd9234ca08f061892e8635626", - "uuidPlanMaster": "938e04894ed64431b2c3fbc5b8f71c32", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H6-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 6, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "89da4af6691c4ca0aef7456a1ef7cb68", - "uuidPlanMaster": "938e04894ed64431b2c3fbc5b8f71c32", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H6-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 6, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "fe7c36d31dbe4ad0b6874e1f9ffbf972", - "uuidPlanMaster": "938e04894ed64431b2c3fbc5b8f71c32", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H6-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 6, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "be5a5b08e30446ddabec127aa2880f35", - "uuidPlanMaster": "938e04894ed64431b2c3fbc5b8f71c32", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H6-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 6, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "a252469f57ed4464a6d5c838fd7a57b4", - "uuidPlanMaster": "938e04894ed64431b2c3fbc5b8f71c32", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H6-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 6, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "fea2dae08ea74ee895f4c9e92e64b9b5", - "uuidPlanMaster": "938e04894ed64431b2c3fbc5b8f71c32", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H6-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 6, - "HoleColum": 6, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "3200a9fcb22c4940a300513373545c8f", - "uuidPlanMaster": "938e04894ed64431b2c3fbc5b8f71c32", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H6-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 7, - "HoleColum": 6, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "1e3b44cf078d4641b2b56af8dca6a0d5", - "uuidPlanMaster": "938e04894ed64431b2c3fbc5b8f71c32", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H6-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 6, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "51bc2deaba6c4bd9a477ac43f5e749e2", - "uuidPlanMaster": "938e04894ed64431b2c3fbc5b8f71c32", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H7-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 7, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "2429c6ecbf4e4173a080716140e24a6d", - "uuidPlanMaster": "938e04894ed64431b2c3fbc5b8f71c32", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H7-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 7, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "489fc3b9cbbf40f499c1c8e8ce3a98a9", - "uuidPlanMaster": "938e04894ed64431b2c3fbc5b8f71c32", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H7-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 7, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "656c9e1ec0b34462a22fa8c690654718", - "uuidPlanMaster": "938e04894ed64431b2c3fbc5b8f71c32", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H7-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 7, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "3b8f5039818546619ab44cc5a8fd3bb4", - "uuidPlanMaster": "938e04894ed64431b2c3fbc5b8f71c32", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H7-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 7, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "e632e43f6ed44601b5fef6ef5d0454b5", - "uuidPlanMaster": "938e04894ed64431b2c3fbc5b8f71c32", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H7-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 6, - "HoleColum": 7, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "ad2e3fd9c6ac44eabb727c3dff3596c5", - "uuidPlanMaster": "938e04894ed64431b2c3fbc5b8f71c32", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H7-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 7, - "HoleColum": 7, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "4109001db7874a70846845dbdbe67d43", - "uuidPlanMaster": "938e04894ed64431b2c3fbc5b8f71c32", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H7-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 7, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "cfee2c155d104556a8e011745aa8397f", - "uuidPlanMaster": "938e04894ed64431b2c3fbc5b8f71c32", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H8-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 8, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "50089af47f68402493ea03fa06d00283", - "uuidPlanMaster": "938e04894ed64431b2c3fbc5b8f71c32", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H8-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 8, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "fc449b9b72e94fc78a456f89f0674dc3", - "uuidPlanMaster": "938e04894ed64431b2c3fbc5b8f71c32", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H8-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 8, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "cce3ae69958245089b77a12f4875d5ce", - "uuidPlanMaster": "938e04894ed64431b2c3fbc5b8f71c32", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H8-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 8, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "b070abd2efe3407a8d0d7bb98f68d59c", - "uuidPlanMaster": "938e04894ed64431b2c3fbc5b8f71c32", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H8-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 8, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "6586208049cb4a50a123e5b56047f006", - "uuidPlanMaster": "938e04894ed64431b2c3fbc5b8f71c32", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H8-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 6, - "HoleColum": 8, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "fc75fc75fc37427e9132a2f879403a85", - "uuidPlanMaster": "938e04894ed64431b2c3fbc5b8f71c32", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H8-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 7, - "HoleColum": 8, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "4bdad3313f654c389b7c64e8a4bf37ed", - "uuidPlanMaster": "938e04894ed64431b2c3fbc5b8f71c32", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H8-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 8, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "7aaa74a1dabb4e9b93b0f87cd12d8efb", - "uuidPlanMaster": "938e04894ed64431b2c3fbc5b8f71c32", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H9-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 9, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "c043b2bd5d26453cbd2e25bcfbd74dfa", - "uuidPlanMaster": "938e04894ed64431b2c3fbc5b8f71c32", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H9-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 9, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "133e59698a0f499f9261ca9ffe837ee5", - "uuidPlanMaster": "938e04894ed64431b2c3fbc5b8f71c32", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H9-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 9, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "c3d0db2353164dba8340e44fca550bab", - "uuidPlanMaster": "938e04894ed64431b2c3fbc5b8f71c32", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H9-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 9, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "a97efca475134c8a9a7b2d4fbdb6243b", - "uuidPlanMaster": "938e04894ed64431b2c3fbc5b8f71c32", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H9-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 9, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "54a5d4230449450a89e667ddd8d75ac2", - "uuidPlanMaster": "938e04894ed64431b2c3fbc5b8f71c32", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H9-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 6, - "HoleColum": 9, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "ecd28fb2d9094616acd19b9382425c41", - "uuidPlanMaster": "938e04894ed64431b2c3fbc5b8f71c32", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H9-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 7, - "HoleColum": 9, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "01fc5fef11674346bf6d3512c6de5761", - "uuidPlanMaster": "938e04894ed64431b2c3fbc5b8f71c32", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H9-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 9, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "e660d09f116f48098f1c6ff0e6a594f5", - "uuidPlanMaster": "938e04894ed64431b2c3fbc5b8f71c32", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H10-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 10, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "a83de7d543624cc091b5c15d1e56b92d", - "uuidPlanMaster": "938e04894ed64431b2c3fbc5b8f71c32", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H10-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 10, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "85f8269536f8453ca3f9b2a826e8794e", - "uuidPlanMaster": "938e04894ed64431b2c3fbc5b8f71c32", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H10-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 10, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "c3d5e9874ffd4653829f2b0fbf2b0269", - "uuidPlanMaster": "938e04894ed64431b2c3fbc5b8f71c32", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H10-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 10, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "f647adef2db545e296350f2120e21b77", - "uuidPlanMaster": "938e04894ed64431b2c3fbc5b8f71c32", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H10-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 10, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "1ad6436067dd4e73a962e1f2c15724ee", - "uuidPlanMaster": "938e04894ed64431b2c3fbc5b8f71c32", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H10-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 6, - "HoleColum": 10, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "5304e9be791f4b43962305085896ef04", - "uuidPlanMaster": "938e04894ed64431b2c3fbc5b8f71c32", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H10-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 7, - "HoleColum": 10, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "a5feda48b47240b2a7662143cb5e2947", - "uuidPlanMaster": "938e04894ed64431b2c3fbc5b8f71c32", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H10-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 10, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "89ae1526225c452d92091b80b6017c04", - "uuidPlanMaster": "938e04894ed64431b2c3fbc5b8f71c32", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H11-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 11, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "261067f511b84f968ac3e028cb4552f2", - "uuidPlanMaster": "938e04894ed64431b2c3fbc5b8f71c32", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H11-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 11, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "c485a3bad7634e47a0f8cd51702a4230", - "uuidPlanMaster": "938e04894ed64431b2c3fbc5b8f71c32", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H11-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 11, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "ad3e855ba91a430e9d1ec4f3723892a2", - "uuidPlanMaster": "938e04894ed64431b2c3fbc5b8f71c32", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H11-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 11, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "0e1560a7ee3740e89bb089bfddaa3771", - "uuidPlanMaster": "938e04894ed64431b2c3fbc5b8f71c32", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H11-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 11, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "e9a08922bd76460b8f4a904bff974e8d", - "uuidPlanMaster": "938e04894ed64431b2c3fbc5b8f71c32", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H11-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 6, - "HoleColum": 11, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "0f07e7094955468fb98ccc90d024c64d", - "uuidPlanMaster": "938e04894ed64431b2c3fbc5b8f71c32", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H11-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 7, - "HoleColum": 11, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "b7a3d71371f34804859256d79b56dcef", - "uuidPlanMaster": "938e04894ed64431b2c3fbc5b8f71c32", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H11-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 11, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "f4fe40e22c4e4b00920cdc96c6ea217d", - "uuidPlanMaster": "938e04894ed64431b2c3fbc5b8f71c32", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H12-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 12, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "d29b1c386d4d4f8bb2fafc33a9666b12", - "uuidPlanMaster": "938e04894ed64431b2c3fbc5b8f71c32", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H12-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 12, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "5203419ef82548e4b6913c5c4c0637bb", - "uuidPlanMaster": "938e04894ed64431b2c3fbc5b8f71c32", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H12-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 12, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "c9e320c9f87741e1967d4feda619ad40", - "uuidPlanMaster": "938e04894ed64431b2c3fbc5b8f71c32", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H12-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 12, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "a12617f7b1244a80885d3168ff434f6e", - "uuidPlanMaster": "938e04894ed64431b2c3fbc5b8f71c32", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H12-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 12, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "ec9400b2da2b47fbaf4390c7fa6f1b5d", - "uuidPlanMaster": "938e04894ed64431b2c3fbc5b8f71c32", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H12-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 6, - "HoleColum": 12, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "b249d37c3da9415fb105e68a4cc8eaee", - "uuidPlanMaster": "938e04894ed64431b2c3fbc5b8f71c32", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H12-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 7, - "HoleColum": 12, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "f01e1ac081204103816fb30db1cc75d6", - "uuidPlanMaster": "938e04894ed64431b2c3fbc5b8f71c32", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H12-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 12, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "66a4add1cd0c4ad8bddb1f7794dc18be", - "uuidPlanMaster": "938e04894ed64431b2c3fbc5b8f71c32", - "Axis": "Right", - "ActOn": "Blending", - "Place": "H12-8,T10", - "Dosage": 5, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 10, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 12, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 3, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "3ee6dc55009e4f6aa473334ce658932b", - "uuidPlanMaster": "938e04894ed64431b2c3fbc5b8f71c32", - "Axis": "Right", - "ActOn": "UnLoad", - "Place": "H1-8,T16", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 16, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "3f5560a1927c4fc6a136f92002c43468", - "uuidPlanMaster": "28f05c949d404f7f9842e401d5181c39", - "Axis": "Right", - "ActOn": "Load", - "Place": "H5-8,T5", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 5, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 5, - "HoleCollective": "35", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "b35dc5d187534cdcb2777ddf94ad22a7", - "uuidPlanMaster": "28f05c949d404f7f9842e401d5181c39", - "Axis": "Right", - "ActOn": "Imbibing", - "Place": "H12-8,T9", - "Dosage": 5, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 9, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 12, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "66fca22431da487283316e55a715a711", - "uuidPlanMaster": "28f05c949d404f7f9842e401d5181c39", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H1-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "b4b7f9d117e740fa89af98ef2385bc9e", - "uuidPlanMaster": "28f05c949d404f7f9842e401d5181c39", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H1-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "eb33c1d15c924f75800e4fdde33a9ca1", - "uuidPlanMaster": "28f05c949d404f7f9842e401d5181c39", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H1-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "3280e3a67727444ea46c5dca7771838c", - "uuidPlanMaster": "28f05c949d404f7f9842e401d5181c39", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H1-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "dff4c2b19811436996d31545f9d257e9", - "uuidPlanMaster": "28f05c949d404f7f9842e401d5181c39", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H1-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "b35069cef02f4cb1927620f83679441b", - "uuidPlanMaster": "28f05c949d404f7f9842e401d5181c39", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H1-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 6, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "98bdba2c33b9479780881f81d809730f", - "uuidPlanMaster": "28f05c949d404f7f9842e401d5181c39", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H1-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 7, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "23873268b79c42c39a1199411b61188f", - "uuidPlanMaster": "28f05c949d404f7f9842e401d5181c39", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H1-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "f35c78d7aa384d698f98155019fc1a7e", - "uuidPlanMaster": "28f05c949d404f7f9842e401d5181c39", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H2-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 2, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "c2e4b937897e427dbf9d2fd1460e33a5", - "uuidPlanMaster": "28f05c949d404f7f9842e401d5181c39", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H2-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 2, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "3d5b16657545483ea9da69ca6b9629ff", - "uuidPlanMaster": "28f05c949d404f7f9842e401d5181c39", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H2-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 2, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "324d38b5688d4ca485e698ce61313a90", - "uuidPlanMaster": "28f05c949d404f7f9842e401d5181c39", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H2-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 2, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "9b4e56a2acd14afbac1c4b4f9c3acc37", - "uuidPlanMaster": "28f05c949d404f7f9842e401d5181c39", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H2-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 2, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "41e860e0897b41f2bf79fd518f895795", - "uuidPlanMaster": "28f05c949d404f7f9842e401d5181c39", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H2-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 6, - "HoleColum": 2, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "b7d53dd599b748278810841a97054832", - "uuidPlanMaster": "28f05c949d404f7f9842e401d5181c39", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H2-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 7, - "HoleColum": 2, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "29d8171878a6498e9ec484ef95ac9b4d", - "uuidPlanMaster": "28f05c949d404f7f9842e401d5181c39", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H2-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 2, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "bc6cdedd1de64bb8bd3ac07a8cedb005", - "uuidPlanMaster": "28f05c949d404f7f9842e401d5181c39", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H3-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "292da02e09e047cd961928090b0ed1cd", - "uuidPlanMaster": "28f05c949d404f7f9842e401d5181c39", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H3-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "b8bcbc5fe7924b6f91b5b6e0dda58b07", - "uuidPlanMaster": "28f05c949d404f7f9842e401d5181c39", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H3-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "791f7310e5754c84ada434116378af6f", - "uuidPlanMaster": "28f05c949d404f7f9842e401d5181c39", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H3-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "de4bcf81d481490d8b4da16ea48b25ee", - "uuidPlanMaster": "28f05c949d404f7f9842e401d5181c39", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H3-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "e461a62a5aa74554820db3cfd1ac8f5c", - "uuidPlanMaster": "28f05c949d404f7f9842e401d5181c39", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H3-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 6, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "7bb2a8f19f654b0b8177d22bb7ae7aae", - "uuidPlanMaster": "28f05c949d404f7f9842e401d5181c39", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H3-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 7, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "e4e9b6a2d72d43f0a1868bbe8c23ec9e", - "uuidPlanMaster": "28f05c949d404f7f9842e401d5181c39", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H3-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "f20ed1440fb04ec2afc9c4f5be1b5d2d", - "uuidPlanMaster": "28f05c949d404f7f9842e401d5181c39", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H4-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 4, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "8eaed35d8f754b38ba82c03008480730", - "uuidPlanMaster": "28f05c949d404f7f9842e401d5181c39", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H4-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 4, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "b76479bc63e1445882f648eda584e943", - "uuidPlanMaster": "28f05c949d404f7f9842e401d5181c39", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H4-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 4, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "fe55a819d3ce4253987d902635a6e212", - "uuidPlanMaster": "28f05c949d404f7f9842e401d5181c39", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H4-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 4, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "11fa92b936e4445d9186e811e35aa9a0", - "uuidPlanMaster": "28f05c949d404f7f9842e401d5181c39", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H4-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 4, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "0b0f96ce0ae04807b7c02a0d216d2a71", - "uuidPlanMaster": "28f05c949d404f7f9842e401d5181c39", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H4-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 6, - "HoleColum": 4, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "430a4d9844d240fa92bbc58ad2350f8f", - "uuidPlanMaster": "28f05c949d404f7f9842e401d5181c39", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H4-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 7, - "HoleColum": 4, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "9358b2fd91f242d98c7b42ce530e0861", - "uuidPlanMaster": "28f05c949d404f7f9842e401d5181c39", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H4-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 4, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "315e5a53d7e446c8a9e3bfef48062dd3", - "uuidPlanMaster": "28f05c949d404f7f9842e401d5181c39", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H5-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "c593d0af44f4488a8f2ccac9a282c244", - "uuidPlanMaster": "28f05c949d404f7f9842e401d5181c39", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H5-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "59b66be5804845cdbb4430d442eb43b3", - "uuidPlanMaster": "28f05c949d404f7f9842e401d5181c39", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H5-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "cce0b8845e104781bdbdd7440684adc9", - "uuidPlanMaster": "28f05c949d404f7f9842e401d5181c39", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H5-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "12952544f37f4db9a0bedf3d088c59cb", - "uuidPlanMaster": "28f05c949d404f7f9842e401d5181c39", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H5-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "fd458320b8224de7b2e286075dc90e8c", - "uuidPlanMaster": "28f05c949d404f7f9842e401d5181c39", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H5-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 6, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "cb9e5e760fb44bc5b949686953cfb32c", - "uuidPlanMaster": "28f05c949d404f7f9842e401d5181c39", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H5-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 7, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "f498a933ac8a475d809c0c94e3e09fa0", - "uuidPlanMaster": "28f05c949d404f7f9842e401d5181c39", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H5-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "aef0d3e7cf9f471a97be87439ce1e79f", - "uuidPlanMaster": "28f05c949d404f7f9842e401d5181c39", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H6-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 6, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "712b04db90ca47d5878c8d24218d055c", - "uuidPlanMaster": "28f05c949d404f7f9842e401d5181c39", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H6-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 6, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "9222579531cf40c88dbd5ba204fc07f3", - "uuidPlanMaster": "28f05c949d404f7f9842e401d5181c39", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H6-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 6, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "2150e329b9a247cd9fdbb18383878523", - "uuidPlanMaster": "28f05c949d404f7f9842e401d5181c39", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H6-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 6, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "a53ab24b99ef4196afbbcdfcc2f97c4a", - "uuidPlanMaster": "28f05c949d404f7f9842e401d5181c39", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H6-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 6, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "671fef5a5d044193ad47195b1a257e39", - "uuidPlanMaster": "28f05c949d404f7f9842e401d5181c39", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H6-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 6, - "HoleColum": 6, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "0e2bd874510e4d71ba7ea093a05c85c6", - "uuidPlanMaster": "28f05c949d404f7f9842e401d5181c39", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H6-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 7, - "HoleColum": 6, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "902b771804854721b8d5521c879faaea", - "uuidPlanMaster": "28f05c949d404f7f9842e401d5181c39", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H6-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 6, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "27df26e0772f4d6d9a3b889de600d6c2", - "uuidPlanMaster": "28f05c949d404f7f9842e401d5181c39", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H7-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 7, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "241b9c66dc97479899b7589123311096", - "uuidPlanMaster": "28f05c949d404f7f9842e401d5181c39", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H7-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 7, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "3d01171389024b559e8423f2408d62bf", - "uuidPlanMaster": "28f05c949d404f7f9842e401d5181c39", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H7-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 7, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "34ca974ba5c24c1b9eea4fcd9953c967", - "uuidPlanMaster": "28f05c949d404f7f9842e401d5181c39", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H7-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 7, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "329bc55bc67a4cadad94411fb6269046", - "uuidPlanMaster": "28f05c949d404f7f9842e401d5181c39", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H7-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 7, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "7a42a38a75b041628ed5582ec89cd8ab", - "uuidPlanMaster": "28f05c949d404f7f9842e401d5181c39", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H7-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 6, - "HoleColum": 7, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "e0ad0cd394a445e6ab1d95d4065dde1e", - "uuidPlanMaster": "28f05c949d404f7f9842e401d5181c39", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H7-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 7, - "HoleColum": 7, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "99c64bdceda5427e8c777d46748e42e0", - "uuidPlanMaster": "28f05c949d404f7f9842e401d5181c39", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H7-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 7, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "f6c61c8d10af47ef843d024f8d14ee79", - "uuidPlanMaster": "28f05c949d404f7f9842e401d5181c39", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H8-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 8, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "5edea9be2768445482468fb4a455df39", - "uuidPlanMaster": "28f05c949d404f7f9842e401d5181c39", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H8-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 8, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "6f7d69c92f054e929af313be8ce6c0a9", - "uuidPlanMaster": "28f05c949d404f7f9842e401d5181c39", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H8-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 8, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "25a81b01984e4c1199995fb3f4153136", - "uuidPlanMaster": "28f05c949d404f7f9842e401d5181c39", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H8-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 8, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "ed6f2f6ccb75454baec33953b72b9831", - "uuidPlanMaster": "28f05c949d404f7f9842e401d5181c39", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H8-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 8, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "314202e67d794b25961e55ae00d07a65", - "uuidPlanMaster": "28f05c949d404f7f9842e401d5181c39", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H8-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 6, - "HoleColum": 8, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "07076e298adc47d4a54c51273f80659f", - "uuidPlanMaster": "28f05c949d404f7f9842e401d5181c39", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H8-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 7, - "HoleColum": 8, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "2578ba9603954a52a3307a3778d87fcf", - "uuidPlanMaster": "28f05c949d404f7f9842e401d5181c39", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H8-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 8, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "55a2edf329934e6687eaa5a1e05c419d", - "uuidPlanMaster": "28f05c949d404f7f9842e401d5181c39", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H9-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 9, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "db467bdedc4043c68588e82e34680e7d", - "uuidPlanMaster": "28f05c949d404f7f9842e401d5181c39", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H9-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 9, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "b98061f8584c4a6397398f44ec031000", - "uuidPlanMaster": "28f05c949d404f7f9842e401d5181c39", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H9-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 9, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "81ad68cc367a4c5c8df0e2be648a2af7", - "uuidPlanMaster": "28f05c949d404f7f9842e401d5181c39", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H9-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 9, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "4d6f67e846e84465bad60a3342e17aa7", - "uuidPlanMaster": "28f05c949d404f7f9842e401d5181c39", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H9-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 9, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "72702382713247d39e0defd9d73de80b", - "uuidPlanMaster": "28f05c949d404f7f9842e401d5181c39", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H9-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 6, - "HoleColum": 9, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "2824d55e864848b58d7520d3875f88a3", - "uuidPlanMaster": "28f05c949d404f7f9842e401d5181c39", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H9-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 7, - "HoleColum": 9, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "2e56e19e3a4344738916ebb7a1cd200d", - "uuidPlanMaster": "28f05c949d404f7f9842e401d5181c39", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H9-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 9, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "cb45f98762914a5595523ddb4a4a9858", - "uuidPlanMaster": "28f05c949d404f7f9842e401d5181c39", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H10-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 10, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "db5696aafa2b4e3d96a0a6fc6e499bca", - "uuidPlanMaster": "28f05c949d404f7f9842e401d5181c39", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H10-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 10, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "f3bf21188eb94cf7a25ee8cee9a96c2c", - "uuidPlanMaster": "28f05c949d404f7f9842e401d5181c39", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H10-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 10, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "914296bd67fc42759c63be02f120b4eb", - "uuidPlanMaster": "28f05c949d404f7f9842e401d5181c39", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H10-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 10, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "4f6c5baefa0e4951ba5409076902cb21", - "uuidPlanMaster": "28f05c949d404f7f9842e401d5181c39", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H10-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 10, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "51f101ab91df4ec69289cf114c606775", - "uuidPlanMaster": "28f05c949d404f7f9842e401d5181c39", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H10-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 6, - "HoleColum": 10, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "8d81a8002d0b4720a9b4c04c9e246623", - "uuidPlanMaster": "28f05c949d404f7f9842e401d5181c39", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H10-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 7, - "HoleColum": 10, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "687a8b7122ac40cead89aba4a814df81", - "uuidPlanMaster": "28f05c949d404f7f9842e401d5181c39", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H10-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 10, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "21992b5ccf6f45f4ab45a847df6745a8", - "uuidPlanMaster": "28f05c949d404f7f9842e401d5181c39", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H11-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 11, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "377eb3dc9a814196bc6cb4a37c1ba7cc", - "uuidPlanMaster": "28f05c949d404f7f9842e401d5181c39", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H11-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 11, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "24c5f208405448ce95c1c680d01a02b6", - "uuidPlanMaster": "28f05c949d404f7f9842e401d5181c39", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H11-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 11, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "140138009be04fa5b41cf44597be958e", - "uuidPlanMaster": "28f05c949d404f7f9842e401d5181c39", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H11-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 11, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "17de36d040214cd99007c14064fed9b7", - "uuidPlanMaster": "28f05c949d404f7f9842e401d5181c39", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H11-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 11, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "b9fc81376a7f49b3bff7ccf65109b1fd", - "uuidPlanMaster": "28f05c949d404f7f9842e401d5181c39", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H11-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 6, - "HoleColum": 11, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "eb69651aedd340229d4b0b7c7124e6ca", - "uuidPlanMaster": "28f05c949d404f7f9842e401d5181c39", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H11-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 7, - "HoleColum": 11, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "4ceef2a90676495ebfaa9f0ec58e6448", - "uuidPlanMaster": "28f05c949d404f7f9842e401d5181c39", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H11-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 11, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "7cbef5b9822d4bfa81d8215cd0a2d78d", - "uuidPlanMaster": "28f05c949d404f7f9842e401d5181c39", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H12-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 12, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "b523d2049abc4e3e8ff3c436f50a84ad", - "uuidPlanMaster": "28f05c949d404f7f9842e401d5181c39", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H12-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 12, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "7bd97bed343b44018eb88cb360aba592", - "uuidPlanMaster": "28f05c949d404f7f9842e401d5181c39", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H12-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 12, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "6573ca88cb344045afd9c777a595acbf", - "uuidPlanMaster": "28f05c949d404f7f9842e401d5181c39", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H12-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 12, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "ccbc1f727ed74962acb9212ab4623a2d", - "uuidPlanMaster": "28f05c949d404f7f9842e401d5181c39", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H12-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 12, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "3e52feb2dfe2482088194934f3bd8106", - "uuidPlanMaster": "28f05c949d404f7f9842e401d5181c39", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H12-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 6, - "HoleColum": 12, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "5ea6fcf09a6749a2b6d0e88a95ea15be", - "uuidPlanMaster": "28f05c949d404f7f9842e401d5181c39", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H12-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 7, - "HoleColum": 12, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "bf1f6b13e0134e32b1b99df65a0177d5", - "uuidPlanMaster": "28f05c949d404f7f9842e401d5181c39", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H12-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 12, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "d66a07094c6e48e4a663b7f54b2b8460", - "uuidPlanMaster": "28f05c949d404f7f9842e401d5181c39", - "Axis": "Right", - "ActOn": "Blending", - "Place": "H12-8,T10", - "Dosage": 5, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 10, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 12, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 3, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "65e8ab9714f9439fbebc319e39faa50b", - "uuidPlanMaster": "28f05c949d404f7f9842e401d5181c39", - "Axis": "Right", - "ActOn": "UnLoad", - "Place": "H1-8,T16", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 16, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "33c1a06866ae4fa2a6507322d255384e", - "uuidPlanMaster": "efe8a74486ce49f7bbb2f5d0bbd5768c", - "Axis": "Right", - "ActOn": "Load", - "Place": "H5-8,T5", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 5, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 5, - "HoleCollective": "35", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "1c500996f56f41a3ab4d63fed397bce2", - "uuidPlanMaster": "efe8a74486ce49f7bbb2f5d0bbd5768c", - "Axis": "Right", - "ActOn": "Imbibing", - "Place": "H12-8,T9", - "Dosage": 5, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 9, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 12, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "24f1d2ca5162462092c725c772ca3445", - "uuidPlanMaster": "efe8a74486ce49f7bbb2f5d0bbd5768c", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H1-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "fa0dfb2fbbf341ca833766d6bb3c1d94", - "uuidPlanMaster": "efe8a74486ce49f7bbb2f5d0bbd5768c", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H1-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "1ab45fc974d84fa0a75f8f303b243006", - "uuidPlanMaster": "efe8a74486ce49f7bbb2f5d0bbd5768c", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H1-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "71b37397f51141c8a9051f482228e03f", - "uuidPlanMaster": "efe8a74486ce49f7bbb2f5d0bbd5768c", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H1-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "7f6b1f9b507744068c59640e3920fb31", - "uuidPlanMaster": "efe8a74486ce49f7bbb2f5d0bbd5768c", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H1-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "bf8d1bbb6acb4ecba657b57037df6e37", - "uuidPlanMaster": "efe8a74486ce49f7bbb2f5d0bbd5768c", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H1-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 6, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "4c40cbebcbe6487f85de3f6436d2f2aa", - "uuidPlanMaster": "efe8a74486ce49f7bbb2f5d0bbd5768c", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H1-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 7, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "12e5924b55d4447ba05a9b89652e8ad8", - "uuidPlanMaster": "efe8a74486ce49f7bbb2f5d0bbd5768c", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H1-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "f89e127e7ef041c79dd277548d8e4d6a", - "uuidPlanMaster": "efe8a74486ce49f7bbb2f5d0bbd5768c", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H2-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 2, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "34ece1c171424487b8fd5b1987d46809", - "uuidPlanMaster": "efe8a74486ce49f7bbb2f5d0bbd5768c", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H2-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 2, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "4fb279598ce04be2a6f90cf56206a18d", - "uuidPlanMaster": "efe8a74486ce49f7bbb2f5d0bbd5768c", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H2-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 2, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "05603c2c996d41148e5bdb110ced6f7f", - "uuidPlanMaster": "efe8a74486ce49f7bbb2f5d0bbd5768c", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H2-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 2, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "aa00d2ca72134f6bb0a104239ea2fa80", - "uuidPlanMaster": "efe8a74486ce49f7bbb2f5d0bbd5768c", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H2-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 2, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "602f9a3b91b04c53a21c4281e51a091a", - "uuidPlanMaster": "efe8a74486ce49f7bbb2f5d0bbd5768c", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H2-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 6, - "HoleColum": 2, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "7b6d9195e462432dbfc42f1e7aa28454", - "uuidPlanMaster": "efe8a74486ce49f7bbb2f5d0bbd5768c", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H2-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 7, - "HoleColum": 2, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "673b1a5cdfc24841b5d7293afe76c509", - "uuidPlanMaster": "efe8a74486ce49f7bbb2f5d0bbd5768c", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H2-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 2, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "5bcba8a201c34e4cabedfbc93de73de7", - "uuidPlanMaster": "efe8a74486ce49f7bbb2f5d0bbd5768c", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H3-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "bbe91c2d5f1943d4b338b5b52ff72bde", - "uuidPlanMaster": "efe8a74486ce49f7bbb2f5d0bbd5768c", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H3-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "6eef6089d3b9413481c55732a066111b", - "uuidPlanMaster": "efe8a74486ce49f7bbb2f5d0bbd5768c", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H3-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "fc8a16bc78034a6ea51cd5e3c776f985", - "uuidPlanMaster": "efe8a74486ce49f7bbb2f5d0bbd5768c", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H3-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "c1ff9b44c35f486d82c6fde604f26741", - "uuidPlanMaster": "efe8a74486ce49f7bbb2f5d0bbd5768c", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H3-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "fff450bb824d413db87928016e70b2f7", - "uuidPlanMaster": "efe8a74486ce49f7bbb2f5d0bbd5768c", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H3-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 6, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "96926ee1f7b34e4ab2be4720bf59dad8", - "uuidPlanMaster": "efe8a74486ce49f7bbb2f5d0bbd5768c", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H3-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 7, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "661d4cf5a3b04b4f91f7d62fba153e1e", - "uuidPlanMaster": "efe8a74486ce49f7bbb2f5d0bbd5768c", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H3-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "601af0dbf0bd490c8725e9780befd1b9", - "uuidPlanMaster": "efe8a74486ce49f7bbb2f5d0bbd5768c", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H4-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 4, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "5cccded25692438bbe13a4d232da8589", - "uuidPlanMaster": "efe8a74486ce49f7bbb2f5d0bbd5768c", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H4-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 4, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "aac0321347184199a164a3da9ab44c6f", - "uuidPlanMaster": "efe8a74486ce49f7bbb2f5d0bbd5768c", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H4-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 4, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "eac46355343b40c09ce1545ed4b2ed85", - "uuidPlanMaster": "efe8a74486ce49f7bbb2f5d0bbd5768c", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H4-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 4, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "32816a30a80841dfba86f5ccffbe46e1", - "uuidPlanMaster": "efe8a74486ce49f7bbb2f5d0bbd5768c", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H4-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 4, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "6de00d12806a4a8fb23570c42a4dfc57", - "uuidPlanMaster": "efe8a74486ce49f7bbb2f5d0bbd5768c", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H4-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 6, - "HoleColum": 4, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "f9a9fcc67aa54b8390d708b5729636d7", - "uuidPlanMaster": "efe8a74486ce49f7bbb2f5d0bbd5768c", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H4-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 7, - "HoleColum": 4, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "05212ef656ec49bab0295af8d1a3468a", - "uuidPlanMaster": "efe8a74486ce49f7bbb2f5d0bbd5768c", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H4-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 4, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "46d3bc626a5f4f83b5ca4ef9741d8d57", - "uuidPlanMaster": "efe8a74486ce49f7bbb2f5d0bbd5768c", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H5-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "9eb8a11b1fb24b7b9aaf399bffd71ff2", - "uuidPlanMaster": "efe8a74486ce49f7bbb2f5d0bbd5768c", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H5-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "9932624d3c64466ea188e428c3a8b0b2", - "uuidPlanMaster": "efe8a74486ce49f7bbb2f5d0bbd5768c", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H5-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "0b9f704a3e744b5cb368d2c55efef168", - "uuidPlanMaster": "efe8a74486ce49f7bbb2f5d0bbd5768c", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H5-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "e7040e8b638a4576ad1d1584ab78b961", - "uuidPlanMaster": "efe8a74486ce49f7bbb2f5d0bbd5768c", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H5-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "82d33eb5891c48ea9fc9525f5db63614", - "uuidPlanMaster": "efe8a74486ce49f7bbb2f5d0bbd5768c", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H5-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 6, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "ffc78630618f42e6ad01a1a8a00d7ab1", - "uuidPlanMaster": "efe8a74486ce49f7bbb2f5d0bbd5768c", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H5-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 7, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "9d09ec4b71f9403c92ec1761e57c555a", - "uuidPlanMaster": "efe8a74486ce49f7bbb2f5d0bbd5768c", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H5-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "458a8235153a462eb31ecba457657009", - "uuidPlanMaster": "efe8a74486ce49f7bbb2f5d0bbd5768c", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H6-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 6, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "6ff01c565fac45518d1910338be50e4e", - "uuidPlanMaster": "efe8a74486ce49f7bbb2f5d0bbd5768c", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H6-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 6, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "51a6f76cb711473e96c69c388e0581a9", - "uuidPlanMaster": "efe8a74486ce49f7bbb2f5d0bbd5768c", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H6-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 6, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "97db1b4febd4440587dae83fb4790acd", - "uuidPlanMaster": "efe8a74486ce49f7bbb2f5d0bbd5768c", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H6-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 6, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "203da01611f0452c918870f5c1f04a8f", - "uuidPlanMaster": "efe8a74486ce49f7bbb2f5d0bbd5768c", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H6-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 6, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "604b52f406594684a35253c54fae6f94", - "uuidPlanMaster": "efe8a74486ce49f7bbb2f5d0bbd5768c", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H6-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 6, - "HoleColum": 6, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "d4f66748abf94e51893ce33dc415da02", - "uuidPlanMaster": "efe8a74486ce49f7bbb2f5d0bbd5768c", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H6-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 7, - "HoleColum": 6, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "0f37101199654d5d84f33940b85b506a", - "uuidPlanMaster": "efe8a74486ce49f7bbb2f5d0bbd5768c", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H6-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 6, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "56bbcf5cefb648cf84470d572b07614b", - "uuidPlanMaster": "efe8a74486ce49f7bbb2f5d0bbd5768c", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H7-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 7, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "80d6561237414a7899ad36aea2666a3e", - "uuidPlanMaster": "efe8a74486ce49f7bbb2f5d0bbd5768c", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H7-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 7, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "1c80dd7d35c44df5b9028d675f6d50fb", - "uuidPlanMaster": "efe8a74486ce49f7bbb2f5d0bbd5768c", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H7-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 7, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "10ac486ac3b4417a89a58192373f486c", - "uuidPlanMaster": "efe8a74486ce49f7bbb2f5d0bbd5768c", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H7-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 7, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "c776b26771594714b769f445af6a9db1", - "uuidPlanMaster": "efe8a74486ce49f7bbb2f5d0bbd5768c", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H7-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 7, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "801ae8863e004f818bbcad641fb24d8c", - "uuidPlanMaster": "efe8a74486ce49f7bbb2f5d0bbd5768c", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H7-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 6, - "HoleColum": 7, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "f860076784854eccbb09ee6cad4d1809", - "uuidPlanMaster": "efe8a74486ce49f7bbb2f5d0bbd5768c", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H7-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 7, - "HoleColum": 7, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "4bb87146c93342348ff910a2392a6fbe", - "uuidPlanMaster": "efe8a74486ce49f7bbb2f5d0bbd5768c", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H7-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 7, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "7fa623ade92c4f30931d563c1c088ce2", - "uuidPlanMaster": "efe8a74486ce49f7bbb2f5d0bbd5768c", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H8-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 8, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "1207946426d648e79c1613f43b821678", - "uuidPlanMaster": "efe8a74486ce49f7bbb2f5d0bbd5768c", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H8-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 8, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "8b67e476fecb4605a5462f762d87dfc3", - "uuidPlanMaster": "efe8a74486ce49f7bbb2f5d0bbd5768c", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H8-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 8, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "dc8552cdcde949b9aed4f19b3c75dc76", - "uuidPlanMaster": "efe8a74486ce49f7bbb2f5d0bbd5768c", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H8-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 8, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "17ad86d28939434b975e1c02ffb21694", - "uuidPlanMaster": "efe8a74486ce49f7bbb2f5d0bbd5768c", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H8-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 8, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "cb7c80c6af0542bab368df663731204c", - "uuidPlanMaster": "efe8a74486ce49f7bbb2f5d0bbd5768c", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H8-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 6, - "HoleColum": 8, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "d4f6948551a94f06bc27fd925ee16f9e", - "uuidPlanMaster": "efe8a74486ce49f7bbb2f5d0bbd5768c", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H8-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 7, - "HoleColum": 8, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "9e36fba4eda34a28a8a8591416836aed", - "uuidPlanMaster": "efe8a74486ce49f7bbb2f5d0bbd5768c", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H8-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 8, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "6ddb6a026eb84c3d9728171be3855f91", - "uuidPlanMaster": "efe8a74486ce49f7bbb2f5d0bbd5768c", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H9-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 9, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "e5c6ca6efb804c5c9b2220dade6fe6a5", - "uuidPlanMaster": "efe8a74486ce49f7bbb2f5d0bbd5768c", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H9-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 9, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "2ca9908900a24d6da24e3de40c388fb0", - "uuidPlanMaster": "efe8a74486ce49f7bbb2f5d0bbd5768c", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H9-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 9, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "a948ef0ab8bd4ac396833d43893ebc9d", - "uuidPlanMaster": "efe8a74486ce49f7bbb2f5d0bbd5768c", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H9-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 9, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "3b9db80f22154adb8d56a8805e1fc2e8", - "uuidPlanMaster": "efe8a74486ce49f7bbb2f5d0bbd5768c", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H9-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 9, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "39b415b5cf674547becf83a11aeb60ee", - "uuidPlanMaster": "efe8a74486ce49f7bbb2f5d0bbd5768c", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H9-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 6, - "HoleColum": 9, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "dfc1744663aa41f8aefcc9025483d4eb", - "uuidPlanMaster": "efe8a74486ce49f7bbb2f5d0bbd5768c", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H9-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 7, - "HoleColum": 9, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "176d6713ac004257931d8583868110e8", - "uuidPlanMaster": "efe8a74486ce49f7bbb2f5d0bbd5768c", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H9-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 9, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "95a584005cca4e3fb849123113dd567e", - "uuidPlanMaster": "efe8a74486ce49f7bbb2f5d0bbd5768c", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H10-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 10, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "652e516c7d1d437ea5606eae989e940b", - "uuidPlanMaster": "efe8a74486ce49f7bbb2f5d0bbd5768c", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H10-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 10, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "347b9c94908a4a478314e56b8efac135", - "uuidPlanMaster": "efe8a74486ce49f7bbb2f5d0bbd5768c", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H10-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 10, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "ece0909305f64cd8a487ff9fd4035133", - "uuidPlanMaster": "efe8a74486ce49f7bbb2f5d0bbd5768c", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H10-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 10, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "a7619ea5f834413c8f21b6a02c4d0147", - "uuidPlanMaster": "efe8a74486ce49f7bbb2f5d0bbd5768c", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H10-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 10, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "bb49f0f21d2d4a25a3482215de81ca61", - "uuidPlanMaster": "efe8a74486ce49f7bbb2f5d0bbd5768c", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H10-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 6, - "HoleColum": 10, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "2e6306f7c75b4b09b9d795b6898fd745", - "uuidPlanMaster": "efe8a74486ce49f7bbb2f5d0bbd5768c", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H10-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 7, - "HoleColum": 10, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "ed3ace95d694402ea22b5ce634299ab2", - "uuidPlanMaster": "efe8a74486ce49f7bbb2f5d0bbd5768c", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H10-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 10, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "fe13d4b0341347709ecd95c6133de8cb", - "uuidPlanMaster": "efe8a74486ce49f7bbb2f5d0bbd5768c", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H11-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 11, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "aded48b3075647bfa671c0d25f8e3a0d", - "uuidPlanMaster": "efe8a74486ce49f7bbb2f5d0bbd5768c", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H11-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 11, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "0be90e98d1494897aeb5047874206afa", - "uuidPlanMaster": "efe8a74486ce49f7bbb2f5d0bbd5768c", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H11-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 11, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "9e4b7f435b6d46b0a1e8aed035e6306d", - "uuidPlanMaster": "efe8a74486ce49f7bbb2f5d0bbd5768c", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H11-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 11, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "cbf8760cd47e40c69f24339019a2191e", - "uuidPlanMaster": "efe8a74486ce49f7bbb2f5d0bbd5768c", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H11-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 11, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "0dda6524451c482dbb7c509235af4330", - "uuidPlanMaster": "efe8a74486ce49f7bbb2f5d0bbd5768c", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H11-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 6, - "HoleColum": 11, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "3b7672cb67ac4d5db652b8a54c258a2a", - "uuidPlanMaster": "efe8a74486ce49f7bbb2f5d0bbd5768c", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H11-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 7, - "HoleColum": 11, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "aa47acdc69eb4af3a11f889bd4e299bf", - "uuidPlanMaster": "efe8a74486ce49f7bbb2f5d0bbd5768c", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H11-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 11, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "8dde920702a54b90a53795cd129e5aa1", - "uuidPlanMaster": "efe8a74486ce49f7bbb2f5d0bbd5768c", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H12-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 12, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "b1c52ea136e149a4a240523ea2f51f47", - "uuidPlanMaster": "efe8a74486ce49f7bbb2f5d0bbd5768c", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H12-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 12, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "e0b3f862d11047f18b1be046b8dd33dd", - "uuidPlanMaster": "efe8a74486ce49f7bbb2f5d0bbd5768c", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H12-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 12, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "9e5170fc30bc491ca21bd5bd6bf9abb3", - "uuidPlanMaster": "efe8a74486ce49f7bbb2f5d0bbd5768c", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H12-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 12, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "ad1bdff0a32748ee9b3af2b48cd34e60", - "uuidPlanMaster": "efe8a74486ce49f7bbb2f5d0bbd5768c", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H12-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 12, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "c41adad11c904dd190a81dc2c330036b", - "uuidPlanMaster": "efe8a74486ce49f7bbb2f5d0bbd5768c", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H12-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 6, - "HoleColum": 12, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "fa7f046f6ed94e859bb78231a92726fb", - "uuidPlanMaster": "efe8a74486ce49f7bbb2f5d0bbd5768c", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H12-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 7, - "HoleColum": 12, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "006a9dabdfc0476fb810ecbc45427c03", - "uuidPlanMaster": "efe8a74486ce49f7bbb2f5d0bbd5768c", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H12-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 12, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "2b4c4f11b332466d9a15a320c4b4e414", - "uuidPlanMaster": "efe8a74486ce49f7bbb2f5d0bbd5768c", - "Axis": "Right", - "ActOn": "Blending", - "Place": "H12-8,T10", - "Dosage": 5, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 10, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 12, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 3, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "a3e1df2a6b8d4e51803fd25ef9a787b3", - "uuidPlanMaster": "efe8a74486ce49f7bbb2f5d0bbd5768c", - "Axis": "Right", - "ActOn": "UnLoad", - "Place": "H1-8,T16", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 16, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "3255876ba1854dd4a1b36c483907b819", - "uuidPlanMaster": "ba70bd9fc056424e9df61f1f984ffbbd", - "Axis": "Left", - "ActOn": "Load", - "Place": "H5-8,T5", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 5, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 5, - "HoleCollective": "35", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "791b0e3cb9cf4721bc85bfb86a336a0a", - "uuidPlanMaster": "ba70bd9fc056424e9df61f1f984ffbbd", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H12-8,T9", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 9, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 12, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "3597d0a1bd0d4d5c8cf0cd5597a855e5", - "uuidPlanMaster": "ba70bd9fc056424e9df61f1f984ffbbd", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "2160622038d64e6ca48dabbc9c5dbb02", - "uuidPlanMaster": "ba70bd9fc056424e9df61f1f984ffbbd", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "ffaa638bae5c4ef8b9f3f18968c06050", - "uuidPlanMaster": "ba70bd9fc056424e9df61f1f984ffbbd", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "5fad40e5d870418ab2f0189ba1092e66", - "uuidPlanMaster": "ba70bd9fc056424e9df61f1f984ffbbd", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "a5a04c65bf804c70a2be7614c15dcea4", - "uuidPlanMaster": "ba70bd9fc056424e9df61f1f984ffbbd", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "003967bce7d1458d88d8989c587f31e4", - "uuidPlanMaster": "ba70bd9fc056424e9df61f1f984ffbbd", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 6, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "035f81c3bb8e419ba124ea274e2a0206", - "uuidPlanMaster": "ba70bd9fc056424e9df61f1f984ffbbd", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 7, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "5ab503d7259f498bb6c48aff21f67a06", - "uuidPlanMaster": "ba70bd9fc056424e9df61f1f984ffbbd", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "82105447c4c14da5afb9ce27bb3bb215", - "uuidPlanMaster": "ba70bd9fc056424e9df61f1f984ffbbd", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H2-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 2, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "3fed8268fd6346a0923ee36a7f71fd69", - "uuidPlanMaster": "ba70bd9fc056424e9df61f1f984ffbbd", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H2-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 2, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "6323f762f8b44139925853e34130d340", - "uuidPlanMaster": "ba70bd9fc056424e9df61f1f984ffbbd", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H2-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 2, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "15ed3b58c7c642ee9a99718b7c32fdda", - "uuidPlanMaster": "ba70bd9fc056424e9df61f1f984ffbbd", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H2-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 2, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "c0f2ac1eb9c74ddfac5db26f58ec1585", - "uuidPlanMaster": "ba70bd9fc056424e9df61f1f984ffbbd", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H2-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 2, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "f2309e716c884cccbe2fdebf82893002", - "uuidPlanMaster": "ba70bd9fc056424e9df61f1f984ffbbd", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H2-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 6, - "HoleColum": 2, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "34c2ca40214346dcb35a016bfacad8f6", - "uuidPlanMaster": "ba70bd9fc056424e9df61f1f984ffbbd", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H2-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 7, - "HoleColum": 2, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "c96ab24c3074446e980270b0467b451f", - "uuidPlanMaster": "ba70bd9fc056424e9df61f1f984ffbbd", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H2-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 2, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "bc7a0851156246019f3611e1049be368", - "uuidPlanMaster": "ba70bd9fc056424e9df61f1f984ffbbd", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H3-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "c21ffb8cf14947388994c229477ad2a8", - "uuidPlanMaster": "ba70bd9fc056424e9df61f1f984ffbbd", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H3-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "4183ed61914f43a9b9c3154994e00b97", - "uuidPlanMaster": "ba70bd9fc056424e9df61f1f984ffbbd", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H3-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "d5f3f0c8e4fd4bc4a44bfa5a7cab9a25", - "uuidPlanMaster": "ba70bd9fc056424e9df61f1f984ffbbd", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H3-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "98fc8583b89c4fd2b6e8cee15aa9de78", - "uuidPlanMaster": "ba70bd9fc056424e9df61f1f984ffbbd", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H3-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "fa8a624b4b4b416c90e8e7712dc44ff2", - "uuidPlanMaster": "ba70bd9fc056424e9df61f1f984ffbbd", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H3-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 6, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "f502a63798cb483dad444879f4ac4bb1", - "uuidPlanMaster": "ba70bd9fc056424e9df61f1f984ffbbd", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H3-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 7, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "c82a401b6ea44005a24dbb5de9a89c14", - "uuidPlanMaster": "ba70bd9fc056424e9df61f1f984ffbbd", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H3-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "6d4a2a7d8b0d4e3da5880c7a59b8e6d9", - "uuidPlanMaster": "ba70bd9fc056424e9df61f1f984ffbbd", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H4-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 4, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "b56afbf9f34b4b5e9d9cc14599bc9d30", - "uuidPlanMaster": "ba70bd9fc056424e9df61f1f984ffbbd", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H4-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 4, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "3cde19c0f598479caba13de12f24a4e3", - "uuidPlanMaster": "ba70bd9fc056424e9df61f1f984ffbbd", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H4-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 4, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "48be153007a84db9881731549928f06d", - "uuidPlanMaster": "ba70bd9fc056424e9df61f1f984ffbbd", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H4-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 4, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "6b485257fea94333b58fbfc81a2753e1", - "uuidPlanMaster": "ba70bd9fc056424e9df61f1f984ffbbd", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H4-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 4, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "5f20501415a34e558ec6ea21aa9a6326", - "uuidPlanMaster": "ba70bd9fc056424e9df61f1f984ffbbd", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H4-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 6, - "HoleColum": 4, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "4e02b557cf674b48a2fe6bcbb757e7b6", - "uuidPlanMaster": "ba70bd9fc056424e9df61f1f984ffbbd", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H4-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 7, - "HoleColum": 4, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "f934db7c5ffe46cbbe5866089db348cc", - "uuidPlanMaster": "ba70bd9fc056424e9df61f1f984ffbbd", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H4-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 4, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "7106a0e4e9ae42c689c9fff5ad9e1a92", - "uuidPlanMaster": "ba70bd9fc056424e9df61f1f984ffbbd", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H5-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "75f888f1d38146949073c59baf331b82", - "uuidPlanMaster": "ba70bd9fc056424e9df61f1f984ffbbd", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H5-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "f842cd295582400f910d202626b466d4", - "uuidPlanMaster": "ba70bd9fc056424e9df61f1f984ffbbd", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H5-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "1903b2e7dd7742edb5a3a22479619802", - "uuidPlanMaster": "ba70bd9fc056424e9df61f1f984ffbbd", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H5-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "cca181e6e0aa4f12bb2a8cdf07550a5d", - "uuidPlanMaster": "ba70bd9fc056424e9df61f1f984ffbbd", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H5-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "947cd1cbfb8c4a87abe3d2105339b7db", - "uuidPlanMaster": "ba70bd9fc056424e9df61f1f984ffbbd", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H5-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 6, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "8c479c6e1c5d4204a3908167e169c69f", - "uuidPlanMaster": "ba70bd9fc056424e9df61f1f984ffbbd", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H5-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 7, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "3330cf1d4d91421290800dc2c245f0c5", - "uuidPlanMaster": "ba70bd9fc056424e9df61f1f984ffbbd", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H5-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "440dcb12ee1849ae883248d803045829", - "uuidPlanMaster": "ba70bd9fc056424e9df61f1f984ffbbd", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H6-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 6, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "b1570004609843348fec7a6ddd00270d", - "uuidPlanMaster": "ba70bd9fc056424e9df61f1f984ffbbd", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H6-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 6, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "9ddfede9b0724488a3d0faa5f0753267", - "uuidPlanMaster": "ba70bd9fc056424e9df61f1f984ffbbd", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H6-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 6, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "6272f23580d0408faca9c20329d35ec8", - "uuidPlanMaster": "ba70bd9fc056424e9df61f1f984ffbbd", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H6-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 6, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "3dbb628c113b44349574f918d1fb258a", - "uuidPlanMaster": "ba70bd9fc056424e9df61f1f984ffbbd", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H6-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 6, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "e306be492608469fae7903e5b4c5aa73", - "uuidPlanMaster": "ba70bd9fc056424e9df61f1f984ffbbd", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H6-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 6, - "HoleColum": 6, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "83fd5d118b924ec09552806a703a4670", - "uuidPlanMaster": "ba70bd9fc056424e9df61f1f984ffbbd", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H6-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 7, - "HoleColum": 6, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "2f424e2f5f364dc2bad645e46c999387", - "uuidPlanMaster": "ba70bd9fc056424e9df61f1f984ffbbd", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H6-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 6, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "3f975fe3ae1c4cb1a8c9419c0863c9e5", - "uuidPlanMaster": "ba70bd9fc056424e9df61f1f984ffbbd", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H7-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 7, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "b0ecba11cfe04eeb9946eb35ee2b00bc", - "uuidPlanMaster": "ba70bd9fc056424e9df61f1f984ffbbd", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H7-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 7, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "5540dd48004c4066bd3977abda50d7eb", - "uuidPlanMaster": "ba70bd9fc056424e9df61f1f984ffbbd", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H7-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 7, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "8ba5cf4a48a342aba6868483ded16982", - "uuidPlanMaster": "ba70bd9fc056424e9df61f1f984ffbbd", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H7-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 7, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "672e5df3d85d42bbbd156d8da563c759", - "uuidPlanMaster": "ba70bd9fc056424e9df61f1f984ffbbd", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H7-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 7, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "6f085c2b5f824f5da705260e162bc351", - "uuidPlanMaster": "ba70bd9fc056424e9df61f1f984ffbbd", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H7-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 6, - "HoleColum": 7, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "20361979001648d4a16c1c48a275216d", - "uuidPlanMaster": "ba70bd9fc056424e9df61f1f984ffbbd", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H7-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 7, - "HoleColum": 7, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "1e0780785b3e4582990f36c280c1c1dd", - "uuidPlanMaster": "ba70bd9fc056424e9df61f1f984ffbbd", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H7-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 7, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "f9d4c2c2fa5b445c8326fe5d8501bcbc", - "uuidPlanMaster": "ba70bd9fc056424e9df61f1f984ffbbd", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H8-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 8, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "bf8b0eb325ed4d42b5947cbae6004571", - "uuidPlanMaster": "ba70bd9fc056424e9df61f1f984ffbbd", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H8-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 8, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "3d091cd6fab7441c91cc6264db4043c0", - "uuidPlanMaster": "ba70bd9fc056424e9df61f1f984ffbbd", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H8-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 8, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "18b57c55453b420ca54e06010db96b9f", - "uuidPlanMaster": "ba70bd9fc056424e9df61f1f984ffbbd", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H8-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 8, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "9171a52d875945608283e39637f2f5f0", - "uuidPlanMaster": "ba70bd9fc056424e9df61f1f984ffbbd", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H8-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 8, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "5a504bb7708f44d7894da2703a39c655", - "uuidPlanMaster": "ba70bd9fc056424e9df61f1f984ffbbd", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H8-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 6, - "HoleColum": 8, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "1df4b58436284fefbdccfd89fe4b647d", - "uuidPlanMaster": "ba70bd9fc056424e9df61f1f984ffbbd", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H8-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 7, - "HoleColum": 8, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "e438e06e5bdb467eab5f6410b6720888", - "uuidPlanMaster": "ba70bd9fc056424e9df61f1f984ffbbd", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H8-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 8, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "d9300982cf74419a9fd032b23d15bd3d", - "uuidPlanMaster": "ba70bd9fc056424e9df61f1f984ffbbd", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H9-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 9, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "6cf463b92e4d4432b5265ca1a2f00d05", - "uuidPlanMaster": "ba70bd9fc056424e9df61f1f984ffbbd", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H9-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 9, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "2c0f08c61cc44343a4269d9183a7e9f7", - "uuidPlanMaster": "ba70bd9fc056424e9df61f1f984ffbbd", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H9-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 9, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "5734a46039ae4d5fabca369f45729531", - "uuidPlanMaster": "ba70bd9fc056424e9df61f1f984ffbbd", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H9-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 9, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "57f8c721cce24dd0a8e0d61ef7a956d2", - "uuidPlanMaster": "ba70bd9fc056424e9df61f1f984ffbbd", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H9-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 9, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "e7008d370b664cfcabbb40fa43c032d5", - "uuidPlanMaster": "ba70bd9fc056424e9df61f1f984ffbbd", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H9-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 6, - "HoleColum": 9, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "37fc80256e194868bb18250a2e355843", - "uuidPlanMaster": "ba70bd9fc056424e9df61f1f984ffbbd", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H9-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 7, - "HoleColum": 9, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "77ec5e90acfd4ab1bf6f89128a00fb97", - "uuidPlanMaster": "ba70bd9fc056424e9df61f1f984ffbbd", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H9-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 9, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "5131c6dab3bd4b6fa50c8c94c9551503", - "uuidPlanMaster": "ba70bd9fc056424e9df61f1f984ffbbd", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H10-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 10, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "674ccbea517e4b1a82590dd1e8d4d075", - "uuidPlanMaster": "ba70bd9fc056424e9df61f1f984ffbbd", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H10-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 10, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "3f5145db9776427489aa7fcfd9f5b396", - "uuidPlanMaster": "ba70bd9fc056424e9df61f1f984ffbbd", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H10-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 10, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "c681acfdcc2b4f84b33741b09cf2d892", - "uuidPlanMaster": "ba70bd9fc056424e9df61f1f984ffbbd", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H10-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 10, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "34c658fd0bde4422805debf58568de32", - "uuidPlanMaster": "ba70bd9fc056424e9df61f1f984ffbbd", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H10-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 10, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "993040dc9517457698651e0570cf60f4", - "uuidPlanMaster": "ba70bd9fc056424e9df61f1f984ffbbd", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H10-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 6, - "HoleColum": 10, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "4e59565d310b4cf99fa7a3143d8af07b", - "uuidPlanMaster": "ba70bd9fc056424e9df61f1f984ffbbd", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H10-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 7, - "HoleColum": 10, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "70257602b8d442db97dfd88d0a8c4d1c", - "uuidPlanMaster": "ba70bd9fc056424e9df61f1f984ffbbd", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H10-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 10, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "a190e33f7c1c46f9a4abb16cdceb8adc", - "uuidPlanMaster": "ba70bd9fc056424e9df61f1f984ffbbd", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H11-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 11, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "f083369c12784fbc8f713e293af2d6dd", - "uuidPlanMaster": "ba70bd9fc056424e9df61f1f984ffbbd", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H11-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 11, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "0c43473653084dc5bcf5b0eaa08ba846", - "uuidPlanMaster": "ba70bd9fc056424e9df61f1f984ffbbd", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H11-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 11, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "f6d58c4fc8a842098e915f0e6b68bade", - "uuidPlanMaster": "ba70bd9fc056424e9df61f1f984ffbbd", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H11-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 11, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "dd887f4821b34969bfc2be8351d8f808", - "uuidPlanMaster": "ba70bd9fc056424e9df61f1f984ffbbd", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H11-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 11, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "149169b1658f4620932e3cf2ea098063", - "uuidPlanMaster": "ba70bd9fc056424e9df61f1f984ffbbd", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H11-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 6, - "HoleColum": 11, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "9ab3cb6b8f7f4043a9ea5af92da74011", - "uuidPlanMaster": "ba70bd9fc056424e9df61f1f984ffbbd", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H11-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 7, - "HoleColum": 11, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "449981cecdc045dba4548021d4d72a30", - "uuidPlanMaster": "ba70bd9fc056424e9df61f1f984ffbbd", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H11-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 11, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "dd2324835ed443d1aa0ede95f1902d20", - "uuidPlanMaster": "ba70bd9fc056424e9df61f1f984ffbbd", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H12-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 12, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "39e4db0be22941f28209a91549d5396f", - "uuidPlanMaster": "ba70bd9fc056424e9df61f1f984ffbbd", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H12-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 12, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "fd7348ae3605452881d0400f165ca201", - "uuidPlanMaster": "ba70bd9fc056424e9df61f1f984ffbbd", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H12-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 12, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "6d0edf650a3b4017bcd20147dc1cd5c9", - "uuidPlanMaster": "ba70bd9fc056424e9df61f1f984ffbbd", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H12-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 12, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "d7d5311e8dee4fe4a96bfbbda4b25d9f", - "uuidPlanMaster": "ba70bd9fc056424e9df61f1f984ffbbd", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H12-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 12, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "8e3d5ff8ef63462b8d7ffa922bb00cbc", - "uuidPlanMaster": "ba70bd9fc056424e9df61f1f984ffbbd", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H12-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 6, - "HoleColum": 12, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "dbab3113878243d8bfb27910216e475f", - "uuidPlanMaster": "ba70bd9fc056424e9df61f1f984ffbbd", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H12-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 7, - "HoleColum": 12, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "d5aa0e4c1cca497e83cc00d83432bc28", - "uuidPlanMaster": "ba70bd9fc056424e9df61f1f984ffbbd", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H12-8,T13", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 12, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "be4455816d014fb4a703ab5aa78c20f6", - "uuidPlanMaster": "ba70bd9fc056424e9df61f1f984ffbbd", - "Axis": "Left", - "ActOn": "Blending", - "Place": "H12-8,T10", - "Dosage": 5, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 10, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 12, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 3, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "9100e4909cf74cdda587e46b3a1e96a3", - "uuidPlanMaster": "ba70bd9fc056424e9df61f1f984ffbbd", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H1-8,T16", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 16, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "6d71d780d8fe4cdabb18fa5e5e3aaf40", - "uuidPlanMaster": "39cd38d096cf48e7bbb4f6dcd0fa4ad2", - "Axis": "Left", - "ActOn": "Shaking", - "Place": null, - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 0, - "IsFullPage": 1, - "HoleRow": 0, - "HoleColum": 0, - "HoleCollective": "", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "15", - "Module": 1, - "Temperature": null, - "Amplitude": "600", - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "ff61e04f92314ba3b203229da7a4a772", - "uuidPlanMaster": "b7b2f96fff724d248bf55e89edfd3512", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1-8,T1", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "0b17c088095143edb49e09a4576b6983", - "uuidPlanMaster": "b7b2f96fff724d248bf55e89edfd3512", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H5-8,T9", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 9, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "3f9aff00c814436ebe2a9fa24acc5d3f", - "uuidPlanMaster": "b7b2f96fff724d248bf55e89edfd3512", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1-8,T2", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "925e1ba275324c2a9c3ece5268a8e24b", - "uuidPlanMaster": "b7b2f96fff724d248bf55e89edfd3512", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H1-8,T16", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 16, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "ce0a0e1e6e84435e8fdf179b3fe76cd3", - "uuidPlanMaster": "183410657267493298eaca55fd9f16f4", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1-8,T1", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "d78acf29a059434db5bcf109c412f517", - "uuidPlanMaster": "183410657267493298eaca55fd9f16f4", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H5-8,T9", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 9, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "8300254c43b84b4ab5298500a5057144", - "uuidPlanMaster": "183410657267493298eaca55fd9f16f4", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1-8,T2", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "d42221705a2c4d758d31b0c7f7844e94", - "uuidPlanMaster": "183410657267493298eaca55fd9f16f4", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H1-8,T16", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 16, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "21c50fe8a2c64a71ab4aa2266db0fb7b", - "uuidPlanMaster": "315b25484798448e923ba3b43bb272a5", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1-8,T1", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "7696b102c74a410882be8ae249f36385", - "uuidPlanMaster": "315b25484798448e923ba3b43bb272a5", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H1-8,T2", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "f35e5c26773c4986ab123ce953624e07", - "uuidPlanMaster": "315b25484798448e923ba3b43bb272a5", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1-8,T4", - "Dosage": 2, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "48ee22f4f8384beeaf500ea412d362ba", - "uuidPlanMaster": "315b25484798448e923ba3b43bb272a5", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1-8,T4", - "Dosage": 2, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 4, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "6109ea65d1264b9092600055db026753", - "uuidPlanMaster": "315b25484798448e923ba3b43bb272a5", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1-8,T4", - "Dosage": 2, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 4, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "bf76093594c4451f8db3b3b42ebfb92e", - "uuidPlanMaster": "315b25484798448e923ba3b43bb272a5", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1-8,T4", - "Dosage": 2, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 4, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "6da0bd22ea1140d497b4ad7ca77a7fc7", - "uuidPlanMaster": "315b25484798448e923ba3b43bb272a5", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1-8,T4", - "Dosage": 2, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 4, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "6ee9288826724032a76ebf5f51c8a414", - "uuidPlanMaster": "315b25484798448e923ba3b43bb272a5", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H1-8,T16", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 16, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "1ec40277e78448eaa3af09ebed78ea99", - "uuidPlanMaster": "1441bfc59c2e4c839b73927ad56a2d63", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1-8,T1", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "20706818bd0843e2a998be3e2a4c693c", - "uuidPlanMaster": "1441bfc59c2e4c839b73927ad56a2d63", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H1-8,T2", - "Dosage": 2, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "45077b8484a643d2bae55a6fa1a012c5", - "uuidPlanMaster": "1441bfc59c2e4c839b73927ad56a2d63", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1-8,T4", - "Dosage": 2, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "f1047b6545e44d339eabe427f2b5c884", - "uuidPlanMaster": "1441bfc59c2e4c839b73927ad56a2d63", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H1-8,T16", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 16, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "e29e541c0fb54822a618274c9b5e1492", - "uuidPlanMaster": "1441bfc59c2e4c839b73927ad56a2d63", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1-8,T1", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 1, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 1, - "HoleCollective": "2", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "13f492c629534826a4c3687803a74234", - "uuidPlanMaster": "1441bfc59c2e4c839b73927ad56a2d63", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H2-8,T2", - "Dosage": 2, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 2, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "ffdd6843f3764035b620945f3a07f400", - "uuidPlanMaster": "1441bfc59c2e4c839b73927ad56a2d63", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1-8,T4", - "Dosage": 2, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 4, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "d7c4066f16124a1498ca66b8dfa0fab3", - "uuidPlanMaster": "1441bfc59c2e4c839b73927ad56a2d63", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H1-8,T16", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 16, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "94549a5796f743de97308cab0e16e018", - "uuidPlanMaster": "1441bfc59c2e4c839b73927ad56a2d63", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1-8,T1", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 1, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 1, - "HoleCollective": "3", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "447515048cd240b5a84672d393141be2", - "uuidPlanMaster": "1441bfc59c2e4c839b73927ad56a2d63", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H3-8,T2", - "Dosage": 2, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "7052c790312c4217a53339cb353dffe4", - "uuidPlanMaster": "1441bfc59c2e4c839b73927ad56a2d63", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1-8,T4", - "Dosage": 2, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 4, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "81d1ab68044d4749bf9432a9184a12ff", - "uuidPlanMaster": "1441bfc59c2e4c839b73927ad56a2d63", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H1-8,T16", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 16, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "eda749cfcdc843d18780888a747d724f", - "uuidPlanMaster": "1441bfc59c2e4c839b73927ad56a2d63", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1-8,T1", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 1, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 1, - "HoleCollective": "4", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "686d1311c6c04e32a75179874d61ffb1", - "uuidPlanMaster": "1441bfc59c2e4c839b73927ad56a2d63", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H4-8,T2", - "Dosage": 2, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 4, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "e38b218bdc084c269e514283e95d8a0e", - "uuidPlanMaster": "1441bfc59c2e4c839b73927ad56a2d63", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1-8,T4", - "Dosage": 2, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 4, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "2a21fbdc33ed472bb4b246c5a4cbffaf", - "uuidPlanMaster": "1441bfc59c2e4c839b73927ad56a2d63", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H1-8,T16", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 16, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "ff1f8a0245e34ab1b9430cccafb9283d", - "uuidPlanMaster": "1441bfc59c2e4c839b73927ad56a2d63", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1-8,T1", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 1, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 1, - "HoleCollective": "5", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "6f5b873ae96d4b57b0636298ebe8ba54", - "uuidPlanMaster": "1441bfc59c2e4c839b73927ad56a2d63", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H5-8,T2", - "Dosage": 2, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "62c3eb77bb374319bd96b98deb3d515f", - "uuidPlanMaster": "1441bfc59c2e4c839b73927ad56a2d63", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1-8,T4", - "Dosage": 2, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 4, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "c0827a42c2ab4b779a9edb55b3180228", - "uuidPlanMaster": "1441bfc59c2e4c839b73927ad56a2d63", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H1-8,T16", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 16, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "7579e80c37b24b9889f0da7b58383ac4", - "uuidPlanMaster": "23c12a193b3d414a8a2cdfedc135348d", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1-8,T1", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "10f1db4e67b74e53ad61171652648c9b", - "uuidPlanMaster": "23c12a193b3d414a8a2cdfedc135348d", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H1-8,T2", - "Dosage": 2, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "912940ded8b64b24b4b96d33bdffc3f8", - "uuidPlanMaster": "23c12a193b3d414a8a2cdfedc135348d", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1-8,T4", - "Dosage": 2, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "fd420aec116e44de958001b6be072a3f", - "uuidPlanMaster": "23c12a193b3d414a8a2cdfedc135348d", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H1-8,T16", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 16, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "f4836a2909fd4f54a8a592eecba34edd", - "uuidPlanMaster": "23c12a193b3d414a8a2cdfedc135348d", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1-8,T1", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 1, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 1, - "HoleCollective": "2", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "10986792f5fa4a629d0d746be42ca12d", - "uuidPlanMaster": "23c12a193b3d414a8a2cdfedc135348d", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H2-8,T2", - "Dosage": 2, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 2, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "a89855160e3e4db5a08917d6f271cf34", - "uuidPlanMaster": "23c12a193b3d414a8a2cdfedc135348d", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1-8,T4", - "Dosage": 2, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "3fbb1440ccd54bd18e45fb559510dfe4", - "uuidPlanMaster": "23c12a193b3d414a8a2cdfedc135348d", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H1-8,T16", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 16, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "3b56a0cdc5ce4f00ad236491f76090f5", - "uuidPlanMaster": "23c12a193b3d414a8a2cdfedc135348d", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1-8,T1", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 1, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 1, - "HoleCollective": "3", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "e6646653794e4ba38c4de134ac6293e0", - "uuidPlanMaster": "23c12a193b3d414a8a2cdfedc135348d", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H3-8,T2", - "Dosage": 2, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "2d66331acdba40e0bccf876dbad81d5b", - "uuidPlanMaster": "23c12a193b3d414a8a2cdfedc135348d", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1-8,T4", - "Dosage": 2, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "8e058d8246444a8e92aadb60fd72579d", - "uuidPlanMaster": "23c12a193b3d414a8a2cdfedc135348d", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H1-8,T16", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 16, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "198cff167f804d8e8975ccb34bdf5109", - "uuidPlanMaster": "23c12a193b3d414a8a2cdfedc135348d", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1-8,T1", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 1, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 1, - "HoleCollective": "4", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "2e3c4f50aa0c4cf68cdc877976c9227e", - "uuidPlanMaster": "23c12a193b3d414a8a2cdfedc135348d", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H4-8,T2", - "Dosage": 2, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 4, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "82b5187cc0bb41e7bbb88a9c0b76dcf9", - "uuidPlanMaster": "23c12a193b3d414a8a2cdfedc135348d", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1-8,T4", - "Dosage": 2, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "0c229222faeb49b18731259338c6632e", - "uuidPlanMaster": "23c12a193b3d414a8a2cdfedc135348d", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H1-8,T16", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 16, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "6d28842e1ef04b4c863b450c89af443c", - "uuidPlanMaster": "23c12a193b3d414a8a2cdfedc135348d", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1-8,T1", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 1, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 1, - "HoleCollective": "5", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "31403cab86fc4bc0be5e1dbc2d43ebbf", - "uuidPlanMaster": "23c12a193b3d414a8a2cdfedc135348d", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H5-8,T2", - "Dosage": 2, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "e00d2339ae5240caabf7beea114c3df3", - "uuidPlanMaster": "23c12a193b3d414a8a2cdfedc135348d", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1-8,T4", - "Dosage": 2, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "d3848cef418d40468b53d0289275485d", - "uuidPlanMaster": "23c12a193b3d414a8a2cdfedc135348d", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H1-8,T16", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 16, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "3e7d714220f744998878ab53e962ca67", - "uuidPlanMaster": "a9c868a7fb334128a196724131ae0a8d", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1-8,T1", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "2fd7107c483e43b691ab5d94b078951d", - "uuidPlanMaster": "a9c868a7fb334128a196724131ae0a8d", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H1-8,T2", - "Dosage": 2, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "09fd609d1ac844b19fcf50eaa547e6de", - "uuidPlanMaster": "a9c868a7fb334128a196724131ae0a8d", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1-8,T4", - "Dosage": 2, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "2ac0ce5933624cc1b362e9deea693dcb", - "uuidPlanMaster": "a9c868a7fb334128a196724131ae0a8d", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H1-8,T16", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 16, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "0c3c75e060ac44cb953426c80534b6fb", - "uuidPlanMaster": "a9c868a7fb334128a196724131ae0a8d", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1-8,T1", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 1, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 1, - "HoleCollective": "2", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "6cda1cba9e9f46ebaa0104e000d8b025", - "uuidPlanMaster": "a9c868a7fb334128a196724131ae0a8d", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H2-8,T2", - "Dosage": 2, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 2, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "e99a331a031f400bafe9bf5ce06b7301", - "uuidPlanMaster": "a9c868a7fb334128a196724131ae0a8d", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1-8,T4", - "Dosage": 2, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "009693b8c11b430f97877e7c23088dc2", - "uuidPlanMaster": "a9c868a7fb334128a196724131ae0a8d", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H1-8,T16", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 16, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "9af108ff6b564bf7a07fa0a131c354b0", - "uuidPlanMaster": "a9c868a7fb334128a196724131ae0a8d", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1-8,T1", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 1, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 1, - "HoleCollective": "3", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "470668b39d6e4f41967e8fffad54b9ee", - "uuidPlanMaster": "a9c868a7fb334128a196724131ae0a8d", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H3-8,T2", - "Dosage": 2, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "b025bd79c1af406e8deb7cf2bec5d020", - "uuidPlanMaster": "a9c868a7fb334128a196724131ae0a8d", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1-8,T4", - "Dosage": 2, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "19505f957969467ca1b3c9bed03ea670", - "uuidPlanMaster": "a9c868a7fb334128a196724131ae0a8d", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H1-8,T16", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 16, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "67e89425aa024e13816bba0e74504c84", - "uuidPlanMaster": "a9c868a7fb334128a196724131ae0a8d", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1-8,T1", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 1, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 1, - "HoleCollective": "4", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "e65d5a8a7c194acd9291c8a359ccf8f8", - "uuidPlanMaster": "a9c868a7fb334128a196724131ae0a8d", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H4-8,T2", - "Dosage": 2, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 4, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "78875a80e08748f29fa3056ee5d25503", - "uuidPlanMaster": "a9c868a7fb334128a196724131ae0a8d", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1-8,T4", - "Dosage": 2, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "a3f9e149b6d348349d02776f2107054f", - "uuidPlanMaster": "a9c868a7fb334128a196724131ae0a8d", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H1-8,T16", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 16, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "803791e8e447412286bdb9be8ffc5805", - "uuidPlanMaster": "a9c868a7fb334128a196724131ae0a8d", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1-8,T1", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 1, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 1, - "HoleCollective": "5", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "d8326cefce2d4db4a094c894768fd122", - "uuidPlanMaster": "a9c868a7fb334128a196724131ae0a8d", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H5-8,T2", - "Dosage": 2, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "9065b330a7bd477b91fe1776d7f10ee2", - "uuidPlanMaster": "a9c868a7fb334128a196724131ae0a8d", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1-8,T4", - "Dosage": 2, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "390bb422f3db4d748b0b972e123e697e", - "uuidPlanMaster": "a9c868a7fb334128a196724131ae0a8d", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H1-8,T16", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 16, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "b9c451cf40cb4ef587aa9928390034bb", - "uuidPlanMaster": "acdf6b864dda4f7998c0e83942b44f41", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1-8,T1", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "81385a5925a84400b446886570d995ad", - "uuidPlanMaster": "acdf6b864dda4f7998c0e83942b44f41", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H5-8,T9", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 9, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "3384af7ab34a401282571b32d71b2262", - "uuidPlanMaster": "acdf6b864dda4f7998c0e83942b44f41", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1-8,T2", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "d4c87c12e2f3468591e5301eca89e8ae", - "uuidPlanMaster": "acdf6b864dda4f7998c0e83942b44f41", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H1-8,T16", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 16, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "624e8522151140a0afd1f93cb0958cb7", - "uuidPlanMaster": "53e23c61234741a19f8a7577124da1cf", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1-8,T1", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "2d315e211a46446683ccf8ae58318fb0", - "uuidPlanMaster": "53e23c61234741a19f8a7577124da1cf", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H1-8,T2", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "a11d146c840e41aa90d0884d17eeb815", - "uuidPlanMaster": "53e23c61234741a19f8a7577124da1cf", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1-8,T4", - "Dosage": 2, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "b04b7c6b73b04da5b0cef822b2018b30", - "uuidPlanMaster": "53e23c61234741a19f8a7577124da1cf", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1-8,T4", - "Dosage": 2, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 4, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "cc94066d9bb84af6ad9fd976f8585580", - "uuidPlanMaster": "53e23c61234741a19f8a7577124da1cf", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1-8,T4", - "Dosage": 2, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 4, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "68dd4808c6ad4f5c85b964f25453170e", - "uuidPlanMaster": "53e23c61234741a19f8a7577124da1cf", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1-8,T4", - "Dosage": 2, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 4, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "a5103027c25744709d9657888281f57a", - "uuidPlanMaster": "53e23c61234741a19f8a7577124da1cf", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1-8,T4", - "Dosage": 2, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 4, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "12f3aa5b0be24bae962b5ba20295fcc2", - "uuidPlanMaster": "53e23c61234741a19f8a7577124da1cf", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H1-8,T16", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 16, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "f2ea782501fb478484d12f1f467ed0fa", - "uuidPlanMaster": "f5cc8c74fc6b45fe8e8d1fdd761f359b", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1-8,T1", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "26e1c4f88710409bbe4277d671300d3d", - "uuidPlanMaster": "f5cc8c74fc6b45fe8e8d1fdd761f359b", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H1-8,T2", - "Dosage": 2, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "8e9d224be8794a8aaf0ab4dea32be076", - "uuidPlanMaster": "f5cc8c74fc6b45fe8e8d1fdd761f359b", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1-8,T4", - "Dosage": 2, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "5219ec3afbb54e4bae517a309758dc50", - "uuidPlanMaster": "f5cc8c74fc6b45fe8e8d1fdd761f359b", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H1-8,T16", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 16, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "ccc833e1b0cd4e9b9a7ead0d55bde017", - "uuidPlanMaster": "f5cc8c74fc6b45fe8e8d1fdd761f359b", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1-8,T1", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 1, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 1, - "HoleCollective": "2", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "80eb348c4383489587ff7217b6eeaaa3", - "uuidPlanMaster": "f5cc8c74fc6b45fe8e8d1fdd761f359b", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H2-8,T2", - "Dosage": 2, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 2, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "53eaf3e7cff5405fbda9f4723e5b7ad5", - "uuidPlanMaster": "f5cc8c74fc6b45fe8e8d1fdd761f359b", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1-8,T4", - "Dosage": 2, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 4, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "5002bb58ec44455aad1023abf89826ac", - "uuidPlanMaster": "f5cc8c74fc6b45fe8e8d1fdd761f359b", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H1-8,T16", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 16, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "70efb69e45df4c63a09d051b0ee137af", - "uuidPlanMaster": "f5cc8c74fc6b45fe8e8d1fdd761f359b", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1-8,T1", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 1, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 1, - "HoleCollective": "3", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "cf2ef14077334b56a82c0130fe43f8c8", - "uuidPlanMaster": "f5cc8c74fc6b45fe8e8d1fdd761f359b", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H3-8,T2", - "Dosage": 2, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "aad2aeac5b1945068a815f40e73d1549", - "uuidPlanMaster": "f5cc8c74fc6b45fe8e8d1fdd761f359b", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1-8,T4", - "Dosage": 2, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 4, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "9029237249e74f0fa7672a92400fc6ed", - "uuidPlanMaster": "f5cc8c74fc6b45fe8e8d1fdd761f359b", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H1-8,T16", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 16, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "f7684912d2b14ed7914aade9f44dd89c", - "uuidPlanMaster": "f5cc8c74fc6b45fe8e8d1fdd761f359b", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1-8,T1", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 1, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 1, - "HoleCollective": "4", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "644f52aa9e3c407ebdcdc998bdf7b823", - "uuidPlanMaster": "f5cc8c74fc6b45fe8e8d1fdd761f359b", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H4-8,T2", - "Dosage": 2, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 4, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "b605e1a28e4745e4b5f508d750d2d4bb", - "uuidPlanMaster": "f5cc8c74fc6b45fe8e8d1fdd761f359b", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1-8,T4", - "Dosage": 2, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 4, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "6b8f1ef37e9f438984c02c6e5d6fb499", - "uuidPlanMaster": "f5cc8c74fc6b45fe8e8d1fdd761f359b", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H1-8,T16", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 16, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "648fa448692046bd88a35e9297c92678", - "uuidPlanMaster": "f5cc8c74fc6b45fe8e8d1fdd761f359b", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1-8,T1", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 1, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 1, - "HoleCollective": "5", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "c232ae2e957a47ba80d3556eb58a1d11", - "uuidPlanMaster": "f5cc8c74fc6b45fe8e8d1fdd761f359b", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H5-8,T2", - "Dosage": 2, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "84f631a5088b4861b43e6eff9d06d560", - "uuidPlanMaster": "f5cc8c74fc6b45fe8e8d1fdd761f359b", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1-8,T4", - "Dosage": 2, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 4, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "1b372a3465a1413eb7966f472a968298", - "uuidPlanMaster": "f5cc8c74fc6b45fe8e8d1fdd761f359b", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H1-8,T16", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 16, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "a0d93e572ad94e89b142997d7516d276", - "uuidPlanMaster": "5c36d8b35a494a58b6fa9a959776f9eb", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1-8,T1", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "f12776dadc504970bf955a98d1801164", - "uuidPlanMaster": "5c36d8b35a494a58b6fa9a959776f9eb", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H1-8,T2", - "Dosage": 2, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "a3088957b23345ec9d44e3603ea00081", - "uuidPlanMaster": "5c36d8b35a494a58b6fa9a959776f9eb", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1-8,T4", - "Dosage": 2, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "ab3df8639edb4ae78791bfc12a0293e9", - "uuidPlanMaster": "5c36d8b35a494a58b6fa9a959776f9eb", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H1-8,T16", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 16, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "9e30fe71c71846ab805d078a01401eed", - "uuidPlanMaster": "5c36d8b35a494a58b6fa9a959776f9eb", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1-8,T1", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 1, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 1, - "HoleCollective": "2", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "c4bc53f61e0545c193876b5741f75987", - "uuidPlanMaster": "5c36d8b35a494a58b6fa9a959776f9eb", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H2-8,T2", - "Dosage": 2, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 2, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "7b607d6d395240c2a3b40e8ce249a5d7", - "uuidPlanMaster": "5c36d8b35a494a58b6fa9a959776f9eb", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1-8,T4", - "Dosage": 2, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "0b2d3065225b4ae4a6cedadbe6febad3", - "uuidPlanMaster": "5c36d8b35a494a58b6fa9a959776f9eb", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H1-8,T16", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 16, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "181ad47eb0e840da8ef50b23e270d026", - "uuidPlanMaster": "5c36d8b35a494a58b6fa9a959776f9eb", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1-8,T1", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 1, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 1, - "HoleCollective": "3", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "d598f4030cf9459a9de94cc109f3bfc4", - "uuidPlanMaster": "5c36d8b35a494a58b6fa9a959776f9eb", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H3-8,T2", - "Dosage": 2, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "35f7b676a3d84a049e102645a1e0b9ba", - "uuidPlanMaster": "5c36d8b35a494a58b6fa9a959776f9eb", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1-8,T4", - "Dosage": 2, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "0f62759171454f25b640bc35453d3fc3", - "uuidPlanMaster": "5c36d8b35a494a58b6fa9a959776f9eb", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H1-8,T16", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 16, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "ccc0b7eaa97845e0a02ed75ff3471785", - "uuidPlanMaster": "5c36d8b35a494a58b6fa9a959776f9eb", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1-8,T1", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 1, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 1, - "HoleCollective": "4", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "abaa69af9be640848f1ea106a48e3853", - "uuidPlanMaster": "5c36d8b35a494a58b6fa9a959776f9eb", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H4-8,T2", - "Dosage": 2, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 4, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "adc9bd4848ba4d779871249012c904ea", - "uuidPlanMaster": "5c36d8b35a494a58b6fa9a959776f9eb", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1-8,T4", - "Dosage": 2, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "365a3484a64e492eb208f86763b36e5c", - "uuidPlanMaster": "5c36d8b35a494a58b6fa9a959776f9eb", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H1-8,T16", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 16, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "ce9db63b060f42e3afdb2e81a6d38d15", - "uuidPlanMaster": "5c36d8b35a494a58b6fa9a959776f9eb", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1-8,T1", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 1, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 1, - "HoleCollective": "5", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "6e84eb201bff40a2802fb739eb6d93a7", - "uuidPlanMaster": "5c36d8b35a494a58b6fa9a959776f9eb", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H5-8,T2", - "Dosage": 2, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "693dba7f7ca14961952c367f5f43bb5f", - "uuidPlanMaster": "5c36d8b35a494a58b6fa9a959776f9eb", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1-8,T4", - "Dosage": 2, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "de485eefef7247ec832ebf87ee4a9ebb", - "uuidPlanMaster": "5c36d8b35a494a58b6fa9a959776f9eb", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H1-8,T16", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 16, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "522c2c5fa52744afa2d7278767ec7996", - "uuidPlanMaster": "a9c2e826b860456db5f432ede3519c96", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1-8,T1", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "ab36f82a74f8415485836f3c026cc465", - "uuidPlanMaster": "a9c2e826b860456db5f432ede3519c96", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H5-8,T9", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 9, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "1a28d511944449b793133f067532a248", - "uuidPlanMaster": "a9c2e826b860456db5f432ede3519c96", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1-8,T2", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "9621a9729642445e9d1770032ab706f0", - "uuidPlanMaster": "a9c2e826b860456db5f432ede3519c96", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H1-8,T16", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 16, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "d5d1b2538e0e4bf59b91d3331428c9f0", - "uuidPlanMaster": "2215b01679f84fa5ac4904a1752d9ec3", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1-8,T1", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "a1e01198ed794ce5a902be12e7daec02", - "uuidPlanMaster": "2215b01679f84fa5ac4904a1752d9ec3", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H1-8,T2", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "b438d6f9c81540f2b5cf795ce01b1486", - "uuidPlanMaster": "2215b01679f84fa5ac4904a1752d9ec3", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1-8,T4", - "Dosage": 2, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "bef376c5a49b4871ac803b88df89ce37", - "uuidPlanMaster": "2215b01679f84fa5ac4904a1752d9ec3", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1-8,T4", - "Dosage": 2, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 4, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "255ea636498747a2abb935275b5dbc32", - "uuidPlanMaster": "2215b01679f84fa5ac4904a1752d9ec3", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1-8,T4", - "Dosage": 2, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 4, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "32e1996d562c412094d71921363afaa7", - "uuidPlanMaster": "2215b01679f84fa5ac4904a1752d9ec3", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1-8,T4", - "Dosage": 2, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 4, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "831d9b8940b9464c96effb300b92b4e6", - "uuidPlanMaster": "2215b01679f84fa5ac4904a1752d9ec3", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1-8,T4", - "Dosage": 2, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 4, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "b1b79c2176274b7289028fdeba4543f6", - "uuidPlanMaster": "2215b01679f84fa5ac4904a1752d9ec3", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H1-8,T16", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 16, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "c54d0331383d45d2a3a41ef0a045c2e0", - "uuidPlanMaster": "d4cd4610e96b44d3a0ff8f983debbe44", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1-8,T1", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "1e855ed5728f481d8022d27512614579", - "uuidPlanMaster": "d4cd4610e96b44d3a0ff8f983debbe44", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H1-8,T2", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "c41cc060d7f84caea31d9cecd4a8d257", - "uuidPlanMaster": "d4cd4610e96b44d3a0ff8f983debbe44", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1-8,T4", - "Dosage": 2, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "c738e20f133e42109f999564262d5f0d", - "uuidPlanMaster": "d4cd4610e96b44d3a0ff8f983debbe44", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1-8,T4", - "Dosage": 2, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 4, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "c8874ad81ab94b10a4687a8ce77ae4f7", - "uuidPlanMaster": "d4cd4610e96b44d3a0ff8f983debbe44", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1-8,T4", - "Dosage": 2, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 4, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "c546c67cdf7143be8db4514d7699456f", - "uuidPlanMaster": "d4cd4610e96b44d3a0ff8f983debbe44", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1-8,T4", - "Dosage": 2, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 4, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "add4c90f06504413b3ffe77b72976e8d", - "uuidPlanMaster": "d4cd4610e96b44d3a0ff8f983debbe44", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1-8,T4", - "Dosage": 2, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 4, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "2575feddb4a14e5d8f3e8c6cff5ccc87", - "uuidPlanMaster": "d4cd4610e96b44d3a0ff8f983debbe44", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H1-8,T16", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 16, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "f8a933c993d64770b118806de754ab80", - "uuidPlanMaster": "018af2f0338c4c8e8ba4d2ee433e17e2", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1-8,T1", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "e5a5a5419582425593e8f60c51346c0f", - "uuidPlanMaster": "018af2f0338c4c8e8ba4d2ee433e17e2", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H1-8,T2", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "9c759579aaec4128834c131319399e0a", - "uuidPlanMaster": "018af2f0338c4c8e8ba4d2ee433e17e2", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1-8,T4", - "Dosage": 2, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "6d1e87338e4d481a851f5a81df01f21a", - "uuidPlanMaster": "018af2f0338c4c8e8ba4d2ee433e17e2", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1-8,T4", - "Dosage": 2, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 4, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "572df429a4604444a003229f818d3a92", - "uuidPlanMaster": "018af2f0338c4c8e8ba4d2ee433e17e2", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1-8,T4", - "Dosage": 2, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 4, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "bb494adc2e9844b8868f9779f3ac318b", - "uuidPlanMaster": "018af2f0338c4c8e8ba4d2ee433e17e2", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1-8,T4", - "Dosage": 2, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 4, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "92fea98fa87041638e0ae2bf1ac23455", - "uuidPlanMaster": "018af2f0338c4c8e8ba4d2ee433e17e2", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1-8,T4", - "Dosage": 2, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 4, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "476f2323f1ff47aa91803ffa873acf28", - "uuidPlanMaster": "018af2f0338c4c8e8ba4d2ee433e17e2", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H1-8,T16", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 16, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "2bb6768dc0bc40ebbeb2faf61d3a91d4", - "uuidPlanMaster": "dc3c3028805747059fef63e9cba1906c", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1-8,T1", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "19834ab205f64e888d5ea7f5cebf064c", - "uuidPlanMaster": "dc3c3028805747059fef63e9cba1906c", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H1-8,T2", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "db7f0937da184d2cba07722dfed3c213", - "uuidPlanMaster": "dc3c3028805747059fef63e9cba1906c", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1-8,T4", - "Dosage": 2, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "ab9dc655742c4d708c7fb5172189ef97", - "uuidPlanMaster": "dc3c3028805747059fef63e9cba1906c", - "Axis": "Left", - "ActOn": "Blending", - "Place": "H1-8,T4", - "Dosage": 5, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 5, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "e2ee4fd5be6f4c21b4816d4ec6062455", - "uuidPlanMaster": "dc3c3028805747059fef63e9cba1906c", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1-8,T4", - "Dosage": 2, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 4, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "3b80b75f610340ea92f9dceb1f4bc2ad", - "uuidPlanMaster": "dc3c3028805747059fef63e9cba1906c", - "Axis": "Left", - "ActOn": "Blending", - "Place": "H1-8,T4", - "Dosage": 5, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 4, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 5, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "9ee1d103093841a5b3d70b2dde23a459", - "uuidPlanMaster": "dc3c3028805747059fef63e9cba1906c", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1-8,T4", - "Dosage": 2, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 4, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "6749fdc4d5ea42a98b8bd9f019d28d05", - "uuidPlanMaster": "dc3c3028805747059fef63e9cba1906c", - "Axis": "Left", - "ActOn": "Blending", - "Place": "H1-8,T4", - "Dosage": 5, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 4, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 5, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "bb2621026532412daf7020abbe6b2127", - "uuidPlanMaster": "dc3c3028805747059fef63e9cba1906c", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1-8,T4", - "Dosage": 2, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 4, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "159a001af3694d11b94f0a5c74ab9508", - "uuidPlanMaster": "dc3c3028805747059fef63e9cba1906c", - "Axis": "Left", - "ActOn": "Blending", - "Place": "H1-8,T4", - "Dosage": 5, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 4, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 5, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "18149c5a2fbe4e3c811f4604e57f9f8c", - "uuidPlanMaster": "dc3c3028805747059fef63e9cba1906c", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1-8,T4", - "Dosage": 2, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 4, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "2c6db0a13a2d465bb623b0e1912d6eee", - "uuidPlanMaster": "dc3c3028805747059fef63e9cba1906c", - "Axis": "Left", - "ActOn": "Blending", - "Place": "H1-8,T4", - "Dosage": 5, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 4, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 5, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "5032a2231d554081bf97eb95837fe8dc", - "uuidPlanMaster": "dc3c3028805747059fef63e9cba1906c", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H1-8,T16", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 16, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "5f827070ed2a46fcb7fe396d035ee51f", - "uuidPlanMaster": "1ad675123d7a4ce3aee283f1a802384b", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1-8,T1", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "a758ceca39dd4a419ad82408ab6bafcf", - "uuidPlanMaster": "1ad675123d7a4ce3aee283f1a802384b", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H1-8,T2", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "a2ecd38288214c0abd718f51ba22f9ed", - "uuidPlanMaster": "1ad675123d7a4ce3aee283f1a802384b", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1-8,T4", - "Dosage": 2, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "ef905dfb939d469a87f181c5c3137004", - "uuidPlanMaster": "1ad675123d7a4ce3aee283f1a802384b", - "Axis": "Left", - "ActOn": "Blending", - "Place": "H1-8,T4", - "Dosage": 5, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 5, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "59b3414561134fd795c00f4b51ca6d1d", - "uuidPlanMaster": "1ad675123d7a4ce3aee283f1a802384b", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1-8,T4", - "Dosage": 2, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 4, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "50afd67f075b44cc915f30d96dfd6e3e", - "uuidPlanMaster": "1ad675123d7a4ce3aee283f1a802384b", - "Axis": "Left", - "ActOn": "Blending", - "Place": "H1-8,T4", - "Dosage": 5, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 4, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 5, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "81c63245ae91461f9f3f8bf533c22e86", - "uuidPlanMaster": "1ad675123d7a4ce3aee283f1a802384b", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1-8,T4", - "Dosage": 2, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 4, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "d0582d06a06d4bf2bb91caae4694a10f", - "uuidPlanMaster": "1ad675123d7a4ce3aee283f1a802384b", - "Axis": "Left", - "ActOn": "Blending", - "Place": "H1-8,T4", - "Dosage": 5, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 4, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 5, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "52f8560b06cd48d48fb7776605d58937", - "uuidPlanMaster": "1ad675123d7a4ce3aee283f1a802384b", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1-8,T4", - "Dosage": 2, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 4, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "e1958001d0d749c6ba0f5912e6f6cce5", - "uuidPlanMaster": "1ad675123d7a4ce3aee283f1a802384b", - "Axis": "Left", - "ActOn": "Blending", - "Place": "H1-8,T4", - "Dosage": 5, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 4, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 5, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "e155f05e3f5b4f83a500c704f84d12ea", - "uuidPlanMaster": "1ad675123d7a4ce3aee283f1a802384b", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1-8,T4", - "Dosage": 2, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 4, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "4fa13b4fdfac4d7f99fa338832040ebb", - "uuidPlanMaster": "1ad675123d7a4ce3aee283f1a802384b", - "Axis": "Left", - "ActOn": "Blending", - "Place": "H1-8,T4", - "Dosage": 5, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 4, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 5, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "317f55f392e4485997a4a9bae554857f", - "uuidPlanMaster": "1ad675123d7a4ce3aee283f1a802384b", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H1-8,T16", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 16, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "4b9e2674f57a43a1a5744a1940bea364", - "uuidPlanMaster": "3c84193495994a82bad96713e35f7fea", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1-8,T1", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "df902ff72cc34556b19db0101e07f693", - "uuidPlanMaster": "3c84193495994a82bad96713e35f7fea", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H5-8,T9", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 9, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "fafc2bdd94ba49dcb6015d4e7473f293", - "uuidPlanMaster": "3c84193495994a82bad96713e35f7fea", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1-8,T2", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "e1378371bb9440b1914a1f224e1b920f", - "uuidPlanMaster": "3c84193495994a82bad96713e35f7fea", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H1-8,T16", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 16, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "e7b4d89481bb4bd6af22cdc6bc64b224", - "uuidPlanMaster": "48dfa57c9a654c89b6944a4c94508f8f", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1-8,T1", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "a51f36927c6244f68542a856524ed32e", - "uuidPlanMaster": "48dfa57c9a654c89b6944a4c94508f8f", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H5-8,T9", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 9, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "2fc2621ab581484580617f362bd12197", - "uuidPlanMaster": "48dfa57c9a654c89b6944a4c94508f8f", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1-8,T2", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "44e5f402f22e4ded9211b957c4b01f21", - "uuidPlanMaster": "48dfa57c9a654c89b6944a4c94508f8f", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H1-8,T16", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 16, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "b144d4a772ac496f9d5e0259490be47a", - "uuidPlanMaster": "48a5dc6cb7df4d0d997bf51b7986f84a", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1-8,T1", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "58c76a04c99d47c79aaadb57f43d2437", - "uuidPlanMaster": "48a5dc6cb7df4d0d997bf51b7986f84a", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H5-8,T9", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 9, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "54548b45556f474a9414fbf537d8cec6", - "uuidPlanMaster": "48a5dc6cb7df4d0d997bf51b7986f84a", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1-8,T2", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "28803950a87e4ea8b3c1bc0d27958b62", - "uuidPlanMaster": "48a5dc6cb7df4d0d997bf51b7986f84a", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H1-8,T16", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 16, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "ca77774830f245ad924582e9179ec871", - "uuidPlanMaster": "8168e96c62a44283ac68287c83ce2444", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1-8,T1", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "7dc2d59b3d6e46a59211ce8cea91ee7c", - "uuidPlanMaster": "8168e96c62a44283ac68287c83ce2444", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H5-8,T9", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 9, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "329f1e2191bc4824a66bc2918b120116", - "uuidPlanMaster": "8168e96c62a44283ac68287c83ce2444", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1-8,T2", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "ea605c8ed9a1439bb4c81ba0b613b044", - "uuidPlanMaster": "8168e96c62a44283ac68287c83ce2444", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H1-8,T16", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 16, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "ba5bda88bd7e43f4b13919473714c5af", - "uuidPlanMaster": "0c8551c3850d4d049558b77ea43934c5", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1-8,T1", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "956ff5015dca4c3ba7722c74bf54e37c", - "uuidPlanMaster": "0c8551c3850d4d049558b77ea43934c5", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H1-8,T2", - "Dosage": 2, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "3783b2afc1a74cf2b345e1eb717679ec", - "uuidPlanMaster": "0c8551c3850d4d049558b77ea43934c5", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1-8,T3", - "Dosage": 2, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 3, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "ef3ec280908d4dca9056c0c91b5da237", - "uuidPlanMaster": "0c8551c3850d4d049558b77ea43934c5", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H1-8,T11", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 11, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "a9a3c9c84387492bb8aea9d98f603939", - "uuidPlanMaster": "0c8551c3850d4d049558b77ea43934c5", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1-8,T1", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 1, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 1, - "HoleCollective": "2", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "8b507dfb480a4ea5ade0aaeaca75cb54", - "uuidPlanMaster": "0c8551c3850d4d049558b77ea43934c5", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H2-8,T2", - "Dosage": 2, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 2, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "c01bf91861a14078acdf43b88a16ca64", - "uuidPlanMaster": "0c8551c3850d4d049558b77ea43934c5", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1-8,T3", - "Dosage": 2, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 3, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "ed2c2fe75ad643e6ba4bfdf5337cde76", - "uuidPlanMaster": "0c8551c3850d4d049558b77ea43934c5", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H1-8,T11", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 11, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "e65fb391d77a46a9add16556508dc66b", - "uuidPlanMaster": "0c8551c3850d4d049558b77ea43934c5", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1-8,T1", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 1, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 1, - "HoleCollective": "3", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "22a18215b7b74da8bdfbe0738b300412", - "uuidPlanMaster": "0c8551c3850d4d049558b77ea43934c5", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H3-8,T2", - "Dosage": 2, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "90bde83ed7d34f5286f52fb531a33b05", - "uuidPlanMaster": "0c8551c3850d4d049558b77ea43934c5", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1-8,T3", - "Dosage": 2, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 3, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "86157563dcd642b8860d706dcd09aa27", - "uuidPlanMaster": "0c8551c3850d4d049558b77ea43934c5", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H1-8,T11", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 11, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "9dcd709fff9747ecaa5e7c0d3f1fe6c1", - "uuidPlanMaster": "0c8551c3850d4d049558b77ea43934c5", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1-8,T1", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 1, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 1, - "HoleCollective": "4", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "ed62166a65684e93bdc03e0215825374", - "uuidPlanMaster": "0c8551c3850d4d049558b77ea43934c5", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H4-8,T2", - "Dosage": 2, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 4, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "7e670f2dd5e54beda6149aecb14741f0", - "uuidPlanMaster": "0c8551c3850d4d049558b77ea43934c5", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1-8,T3", - "Dosage": 2, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 3, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "9115cf8eb3a14bb88c797e5feb8dfd92", - "uuidPlanMaster": "0c8551c3850d4d049558b77ea43934c5", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H1-8,T11", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 11, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "cced9bb69ef444ae8be4b7bb208ca710", - "uuidPlanMaster": "0c8551c3850d4d049558b77ea43934c5", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1-8,T1", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 1, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 1, - "HoleCollective": "5", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "263dfda82db74aa8ac076388212f980f", - "uuidPlanMaster": "0c8551c3850d4d049558b77ea43934c5", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H5-8,T2", - "Dosage": 2, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "31fc8bb5a14149eebc94b19a33479b82", - "uuidPlanMaster": "0c8551c3850d4d049558b77ea43934c5", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1-8,T3", - "Dosage": 2, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 3, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "9e0ab8ac616f41c4a900970a6692d710", - "uuidPlanMaster": "0c8551c3850d4d049558b77ea43934c5", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H1-8,T11", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 11, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "8959be071f014083a94eec3a08a976cb", - "uuidPlanMaster": "8e783f6d56c74fc8a6b2a42953aab40f", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1-8,T1", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "25824f8f42d44e0e90671c3760064a5d", - "uuidPlanMaster": "8e783f6d56c74fc8a6b2a42953aab40f", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H1-8,T2", - "Dosage": 2, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "33d7ccd5e8b24a6c853fa533335efaa8", - "uuidPlanMaster": "8e783f6d56c74fc8a6b2a42953aab40f", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1-8,T3", - "Dosage": 2, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 3, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "06e8fb988c6945e4acf4dd70cff7e1f8", - "uuidPlanMaster": "8e783f6d56c74fc8a6b2a42953aab40f", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H1-8,T11", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 11, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "3461127dc19c4a8aac9eec13b87930af", - "uuidPlanMaster": "8e783f6d56c74fc8a6b2a42953aab40f", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1-8,T1", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 1, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 1, - "HoleCollective": "2", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "29d9878bb26b4b94a2a608bbd451f939", - "uuidPlanMaster": "8e783f6d56c74fc8a6b2a42953aab40f", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H2-8,T2", - "Dosage": 2, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 2, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "fb4e3a0238c042448ca7d09bdd4a20c8", - "uuidPlanMaster": "8e783f6d56c74fc8a6b2a42953aab40f", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1-8,T3", - "Dosage": 2, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 3, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "904cb7c842444610934edda1ccf2254c", - "uuidPlanMaster": "8e783f6d56c74fc8a6b2a42953aab40f", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H1-8,T11", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 11, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "a93ffbfa79574555a8d2635fb1854d15", - "uuidPlanMaster": "8e783f6d56c74fc8a6b2a42953aab40f", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1-8,T1", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 1, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 1, - "HoleCollective": "3", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "9e2a293bacbd41acad4068ef0169c052", - "uuidPlanMaster": "8e783f6d56c74fc8a6b2a42953aab40f", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H3-8,T2", - "Dosage": 2, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "26167706e9fc4b7bbadac46a48bf3dc5", - "uuidPlanMaster": "8e783f6d56c74fc8a6b2a42953aab40f", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1-8,T3", - "Dosage": 2, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 3, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "914252028f3545aea68e71e55918e4ab", - "uuidPlanMaster": "8e783f6d56c74fc8a6b2a42953aab40f", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H1-8,T11", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 11, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "6f8ae437708c4ef6893f5c6035f0aa50", - "uuidPlanMaster": "8e783f6d56c74fc8a6b2a42953aab40f", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1-8,T1", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 1, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 1, - "HoleCollective": "4", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "760b2d16e2de4d7080acfae227f18224", - "uuidPlanMaster": "8e783f6d56c74fc8a6b2a42953aab40f", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H4-8,T2", - "Dosage": 2, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 4, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "19ec7dbf062141b8a65426dfdfb31aa1", - "uuidPlanMaster": "8e783f6d56c74fc8a6b2a42953aab40f", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1-8,T3", - "Dosage": 2, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 3, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "ae487363bec7405db3c542bb8f0720de", - "uuidPlanMaster": "8e783f6d56c74fc8a6b2a42953aab40f", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H1-8,T11", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 11, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "bb29f8e89e924f89be5f5fe04732fb9c", - "uuidPlanMaster": "8e783f6d56c74fc8a6b2a42953aab40f", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1-8,T1", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 1, - "IsFullPage": 0, - "HoleRow": 5, - "HoleColum": 1, - "HoleCollective": "5", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "a28d08cf99634e63ae0832dbeb4009c2", - "uuidPlanMaster": "8e783f6d56c74fc8a6b2a42953aab40f", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H5-8,T2", - "Dosage": 2, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "30d20e185bf247ceaf7a42cd6e3eef21", - "uuidPlanMaster": "8e783f6d56c74fc8a6b2a42953aab40f", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1-8,T3", - "Dosage": 2, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 3, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "b1e7978e67d34076aa983590c3dc2aa5", - "uuidPlanMaster": "8e783f6d56c74fc8a6b2a42953aab40f", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H1-8,T11", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 11, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "0127a23dcd5e46c2b5f199c1c4f7e7f8", - "uuidPlanMaster": "4e985b1f90c4484baac69a125f24c591", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1-8,T1", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "54b3c39d178b4018b96173a4fc4ea396", - "uuidPlanMaster": "4e985b1f90c4484baac69a125f24c591", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H5-8,T6", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 6, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "28633d946c2c41bb8d4ccc21aa6776cc", - "uuidPlanMaster": "4e985b1f90c4484baac69a125f24c591", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1-8,T2", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "c675b7c3a9c24f94ae0660acd38a078d", - "uuidPlanMaster": "4e985b1f90c4484baac69a125f24c591", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H1-8,T11", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 11, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "08bb46cbb3d94f028434ae0406e59ea5", - "uuidPlanMaster": "f195c5d0131f4cdc944321f79807736b", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1-8,T1", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "f843113f209b4d72bc9e52411594308e", - "uuidPlanMaster": "f195c5d0131f4cdc944321f79807736b", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H5-8,T6", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 6, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "643b3aeb0b3c404781feb2948f237e26", - "uuidPlanMaster": "f195c5d0131f4cdc944321f79807736b", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1-8,T2", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "023a3a7b033242779b415e4d0dc9e090", - "uuidPlanMaster": "f195c5d0131f4cdc944321f79807736b", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H1-8,T11", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 11, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "4f9d74824188455090608fba57621d1a", - "uuidPlanMaster": "33c95c707ddc48dca98734cf8d6db279", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1-8,T1", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "ab47fd8d268449fc8cabd800ca6bbb71", - "uuidPlanMaster": "33c95c707ddc48dca98734cf8d6db279", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H5-8,T6", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 6, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "425a16bd544a4344a6148fd7bb4f5a66", - "uuidPlanMaster": "33c95c707ddc48dca98734cf8d6db279", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1-8,T2", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "9a3ec7fccae544f5b86b34ad35bacb8e", - "uuidPlanMaster": "33c95c707ddc48dca98734cf8d6db279", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H1-8,T11", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 11, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "468ba29b8c3440379a8f758b2794601b", - "uuidPlanMaster": "a29c8bcaf2894259a3ef54be3a170717", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1-8,T1", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "73bd0f84bca34dcc9ed1f09f96b07211", - "uuidPlanMaster": "a29c8bcaf2894259a3ef54be3a170717", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H5-8,T6", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 6, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "cfce150204694468951af4b21d007fd4", - "uuidPlanMaster": "a29c8bcaf2894259a3ef54be3a170717", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1-8,T2", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "ba449e51262c45aabcf182325294c8f3", - "uuidPlanMaster": "a29c8bcaf2894259a3ef54be3a170717", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H1-8,T11", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 11, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "903a572a6f614774b99db318383629ef", - "uuidPlanMaster": "7119da87f1ba45c0a7becbd426a6ec18", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1-8,T1", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "61f43cad13fc402dab891933d09c487f", - "uuidPlanMaster": "7119da87f1ba45c0a7becbd426a6ec18", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H5-8,T6", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 6, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "a51a5220ddc14757aae7b6c0e1cebfc1", - "uuidPlanMaster": "7119da87f1ba45c0a7becbd426a6ec18", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1-8,T2", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "b70390e22c184f40855cc4716637dfd7", - "uuidPlanMaster": "7119da87f1ba45c0a7becbd426a6ec18", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H1-8,T11", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 11, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "5a45cb119eca4b83aff57f6ff6ced054", - "uuidPlanMaster": "40c2f938b4c94b678b88b3d41adca84d", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1-8,T1", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "2ee9b7ad746b4c11b7e2da4cd6ae5b2e", - "uuidPlanMaster": "40c2f938b4c94b678b88b3d41adca84d", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H5-8,T6", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 6, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "6b7266bf64fa4965a43b280ba6dd82e6", - "uuidPlanMaster": "40c2f938b4c94b678b88b3d41adca84d", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1-8,T2", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "b93f95dec1c14c93899301f922278e9e", - "uuidPlanMaster": "40c2f938b4c94b678b88b3d41adca84d", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H1-8,T11", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 11, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "7e811e1e32e0479ca113d3880797c66b", - "uuidPlanMaster": "702018720c674c8f82ffc574d1347a1d", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1-8,T1", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "e6f53d2addd44a1da2c20ce3d21ad70d", - "uuidPlanMaster": "702018720c674c8f82ffc574d1347a1d", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H5-8,T6", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 6, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "e4f1887c9c8f41c2bee95d0e9fd9d49f", - "uuidPlanMaster": "702018720c674c8f82ffc574d1347a1d", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1-8,T2", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "2871fc564f7148deb1879befa2df6e50", - "uuidPlanMaster": "702018720c674c8f82ffc574d1347a1d", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H1-8,T11", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 11, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "aceeccbe80ee443687bfa1947ce895df", - "uuidPlanMaster": "720d2c7e06904026970466eceb9b47e1", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1-8,T1", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "ec4f6833ab5f4ffe87450d4e21958f44", - "uuidPlanMaster": "720d2c7e06904026970466eceb9b47e1", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H5-8,T6", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 6, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "40fb2955e02c430eb1e30c34e3395141", - "uuidPlanMaster": "720d2c7e06904026970466eceb9b47e1", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1-8,T2", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "b51c32bb359244bc9316dad7315a7602", - "uuidPlanMaster": "720d2c7e06904026970466eceb9b47e1", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H1-8,T11", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 11, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "fd07cb60d92f4fd293ae547d4ac88996", - "uuidPlanMaster": "f54e18afb0b246ed81795fc48a275a03", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1-8,T1", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "43f839e26c2e46439d7283ee6f45f81c", - "uuidPlanMaster": "f54e18afb0b246ed81795fc48a275a03", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H5-8,T6", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 6, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "bee375c4840f4fc2b3c9446eab4947db", - "uuidPlanMaster": "f54e18afb0b246ed81795fc48a275a03", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1-8,T2", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "2b6e0dc415574ee1b0ea67f1cce77cbe", - "uuidPlanMaster": "f54e18afb0b246ed81795fc48a275a03", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H1-8,T11", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 11, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "7821dca9c850409bb3d3ecefd9fbb314", - "uuidPlanMaster": "f609e3fb67114ef0819acb2f44b1864e", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1-8,T1", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "192774af4afe4177989c21651a5e6074", - "uuidPlanMaster": "f609e3fb67114ef0819acb2f44b1864e", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H5-8,T6", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 6, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "dc575b131deb4dd39f452b50d77b5f5e", - "uuidPlanMaster": "f609e3fb67114ef0819acb2f44b1864e", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1-8,T2", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "2dc55596ee4b467b829d5bfd1ba361fe", - "uuidPlanMaster": "f609e3fb67114ef0819acb2f44b1864e", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H1-8,T11", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 11, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "ef1acb92108649d69572668cb161e31f", - "uuidPlanMaster": "abd8dffdd673499780d4fd557c59f6f1", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1-8,T1", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "22ef5cfdb996400ba904dd5d4892a1c5", - "uuidPlanMaster": "abd8dffdd673499780d4fd557c59f6f1", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H5-8,T6", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 6, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "62e778e446c4441697796ca2f92b3694", - "uuidPlanMaster": "abd8dffdd673499780d4fd557c59f6f1", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1-8,T2", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "18098f76ca4d4b6b9730532afee0a7e0", - "uuidPlanMaster": "abd8dffdd673499780d4fd557c59f6f1", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H1-8,T11", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 11, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "8051415ca89f4a9baa6dcc372f21259c", - "uuidPlanMaster": "482f2916526e443aae1912bb51b6970b", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1-8,T1", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "e1f838018b254bba88f83fed714ae7aa", - "uuidPlanMaster": "482f2916526e443aae1912bb51b6970b", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H5-8,T6", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 6, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "8ba8fe730d434557ab73baa2ca188545", - "uuidPlanMaster": "482f2916526e443aae1912bb51b6970b", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1-8,T2", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "9f503e6f5409418cb909caf095a1dcc0", - "uuidPlanMaster": "482f2916526e443aae1912bb51b6970b", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H1-8,T11", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 11, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "891cec7d29a0485591d8320080505b5c", - "uuidPlanMaster": "a511275d28f54ba7ae1eaa1f5c22f6e0", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1-8,T1", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "a08b157757554e7b86402caf8d21a176", - "uuidPlanMaster": "a511275d28f54ba7ae1eaa1f5c22f6e0", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H5-8,T6", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 6, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "715a50d444a440d5859008ec4afe8a50", - "uuidPlanMaster": "a511275d28f54ba7ae1eaa1f5c22f6e0", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1-8,T2", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "ff9e9257ce2d4d14b278788c0825952b", - "uuidPlanMaster": "a511275d28f54ba7ae1eaa1f5c22f6e0", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H1-8,T11", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 11, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "1db406e6eede447a8006502f3eafb4e5", - "uuidPlanMaster": "f176927cdad044c99355eff053e0e756", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1-8,T1", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "eb6aa8b8637f4a39a36cb6803454b34b", - "uuidPlanMaster": "f176927cdad044c99355eff053e0e756", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H5-8,T6", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 6, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "f247ec17ccff4fcc8de0461dbef9b307", - "uuidPlanMaster": "f176927cdad044c99355eff053e0e756", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1-8,T2", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "d0af6e9355834c1a9f87266867472e84", - "uuidPlanMaster": "f176927cdad044c99355eff053e0e756", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H1-8,T11", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 11, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "88e69290fe05499aa47ad3846aee96ac", - "uuidPlanMaster": "1f2901bdd7f2481a98b0a09f45fe4f56", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1-8,T1", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "f6f5ee816e1b4505ad72db9fb7bcbc7b", - "uuidPlanMaster": "1f2901bdd7f2481a98b0a09f45fe4f56", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H5-8,T6", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 6, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "5afc876c1d2b4289a5b710e014d89fdf", - "uuidPlanMaster": "1f2901bdd7f2481a98b0a09f45fe4f56", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1-8,T2", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "50c7414e1a0b4ae6a40e8924132ecc22", - "uuidPlanMaster": "1f2901bdd7f2481a98b0a09f45fe4f56", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H1-8,T11", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 11, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "b9cf65facdae4512a57b6c155fb47acd", - "uuidPlanMaster": "16ac837d3af8465788ec932cefd7a122", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1-8,T1", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "3c4c2d9120f4409da2e83c2bc3d647ea", - "uuidPlanMaster": "16ac837d3af8465788ec932cefd7a122", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H5-8,T6", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 6, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "c0c588c4a62e4b428b4938bb495e1c8e", - "uuidPlanMaster": "16ac837d3af8465788ec932cefd7a122", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1-8,T2", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "ed09f959fd0c4b3d8d1ae90a09f6525f", - "uuidPlanMaster": "16ac837d3af8465788ec932cefd7a122", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H1-8,T11", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 11, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "d617f2ae384648af95d764efb0cb34b2", - "uuidPlanMaster": "d26a75bb51844b7c99846efe741009a5", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1-8,T1", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "aee5e779dcc84980b64f3aeed3775f84", - "uuidPlanMaster": "d26a75bb51844b7c99846efe741009a5", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H5-8,T6", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 6, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "4d0fcb2412cc48f2b20afb8bdc9d28a8", - "uuidPlanMaster": "d26a75bb51844b7c99846efe741009a5", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1-8,T2", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "0ae8c31d2aea4cd18f99a7855c504901", - "uuidPlanMaster": "d26a75bb51844b7c99846efe741009a5", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H1-8,T11", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 11, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "db43fd40e76a4759a657cf1a72e79d45", - "uuidPlanMaster": "c526f9badb8848fab0f8632b7afc54ed", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1-8,T1", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "6bf6fbf8800245c4a2679367163cafa1", - "uuidPlanMaster": "c526f9badb8848fab0f8632b7afc54ed", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H5-8,T6", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 6, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "ca000b11dd2a4e20b8f5d182b9ad47da", - "uuidPlanMaster": "c526f9badb8848fab0f8632b7afc54ed", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1-8,T2", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "7f186666072e419bb97909795edfaecf", - "uuidPlanMaster": "c526f9badb8848fab0f8632b7afc54ed", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H1-8,T11", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 11, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "cc63dbb491f84ba78a0f19eb1412ee66", - "uuidPlanMaster": "3246a6ac98014466894bbf91c3a6618e", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1-8,T1", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "3ca49fb24db4481ea9ff6060ad01dc21", - "uuidPlanMaster": "3246a6ac98014466894bbf91c3a6618e", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H5-8,T6", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 6, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "4a50426534f043ef9198b748d878c2ee", - "uuidPlanMaster": "3246a6ac98014466894bbf91c3a6618e", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1-8,T2", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "b283698ffb29421caf3e09be011b4c0e", - "uuidPlanMaster": "3246a6ac98014466894bbf91c3a6618e", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H1-8,T11", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 11, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "2a75a2b03a354979a4f26d26639b0fd3", - "uuidPlanMaster": "fa5b344d61934160b526c5683c6322bf", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1-8,T1", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "9d582661d6de44d0919fcb2ba887fc75", - "uuidPlanMaster": "fa5b344d61934160b526c5683c6322bf", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H5-8,T6", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 6, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "8be6ec3a9406498290aa8cb42dc7540c", - "uuidPlanMaster": "fa5b344d61934160b526c5683c6322bf", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1-8,T2", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "6a7b95299cf9423f9f3b5215ac4aaf33", - "uuidPlanMaster": "fa5b344d61934160b526c5683c6322bf", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H1-8,T11", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 11, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "1f35159ac82041ec8b94ebeaf2bd8511", - "uuidPlanMaster": "1b4a38ff2f3d49eb9204d263f66c2092", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1-8,T1", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "9aba0b95412c439c861d05cc34082a88", - "uuidPlanMaster": "1b4a38ff2f3d49eb9204d263f66c2092", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H5-8,T6", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 6, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "e1a66a74116b4fe499a978291d9a36c4", - "uuidPlanMaster": "1b4a38ff2f3d49eb9204d263f66c2092", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1-8,T2", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "2002398fdb9d48eb8104c28c8526fcdd", - "uuidPlanMaster": "1b4a38ff2f3d49eb9204d263f66c2092", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H1-8,T11", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 11, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "7301290596b84721904958980c59c748", - "uuidPlanMaster": "b99efea0949745c3bd2ad87b2b40aaa2", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1-8,T1", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "d36467bd1bbe4148a8b9c3217b6f0440", - "uuidPlanMaster": "b99efea0949745c3bd2ad87b2b40aaa2", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H5-8,T6", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 6, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "ba0d624d95884df5bcb958ad234a8b5c", - "uuidPlanMaster": "b99efea0949745c3bd2ad87b2b40aaa2", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1-8,T2", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "5a434040ef6247e99614efabd384a2a8", - "uuidPlanMaster": "b99efea0949745c3bd2ad87b2b40aaa2", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H1-8,T11", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 11, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "0a722be37f234a7fa222b132581f0cf8", - "uuidPlanMaster": "a783c76697f2410aad96906677bbfad1", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1-8,T1", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "8db18d3210604c76b4cae08ce82566b9", - "uuidPlanMaster": "a783c76697f2410aad96906677bbfad1", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H5-8,T6", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 6, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "f5d27f2eadb4436ab551161578851109", - "uuidPlanMaster": "a783c76697f2410aad96906677bbfad1", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1-8,T2", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "267dc72ad6dc45489540fe895807e89c", - "uuidPlanMaster": "a783c76697f2410aad96906677bbfad1", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H1-8,T11", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 11, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "c7146ef8412840e2a8f7d77aadcc7165", - "uuidPlanMaster": "2ad404bf7ea34b1db4d3640d6e54fa47", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1-8,T1", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "95df40ddd53c4c02b7888c2b70206478", - "uuidPlanMaster": "2ad404bf7ea34b1db4d3640d6e54fa47", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H5-8,T6", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 6, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "edffdfb36668412da10d3d11e3039018", - "uuidPlanMaster": "2ad404bf7ea34b1db4d3640d6e54fa47", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1-8,T2", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "a5d96b5a504c419cae14470db90eb5e2", - "uuidPlanMaster": "2ad404bf7ea34b1db4d3640d6e54fa47", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H1-8,T11", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 11, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "8b622844cbb94224a76511519322fcdb", - "uuidPlanMaster": "0078c546d118431d84badb124b9557a1", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1-8,T1", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "8d79184d7a8f408a926420e9a745dba9", - "uuidPlanMaster": "0078c546d118431d84badb124b9557a1", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H5-8,T6", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 6, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "af3d305cbb814a0b9c7aed1cedc9aab1", - "uuidPlanMaster": "0078c546d118431d84badb124b9557a1", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1-8,T2", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "aa4e1387cd83415a808068fb85c6f494", - "uuidPlanMaster": "0078c546d118431d84badb124b9557a1", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H1-8,T11", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 11, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "fdca2e083ad0432883f65a6b1bda3e88", - "uuidPlanMaster": "004f685003dc4caa848c627ccf7d3d8f", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1-8,T1", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "71e8d017cfd54230991dbe0238087c25", - "uuidPlanMaster": "004f685003dc4caa848c627ccf7d3d8f", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H5-8,T6", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 6, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "2b5073ed92224db5ab9693a8e532363e", - "uuidPlanMaster": "004f685003dc4caa848c627ccf7d3d8f", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1-8,T2", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "77b876be8b7e4f7eb8dfbb95f9c62b95", - "uuidPlanMaster": "004f685003dc4caa848c627ccf7d3d8f", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H1-8,T11", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 11, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "de6a512438bc42c3916198e797067f47", - "uuidPlanMaster": "00eb325f821142b48370e78108283aac", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1-8,T1", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "15d18e4afebd47129fe5dad9e1ceed53", - "uuidPlanMaster": "00eb325f821142b48370e78108283aac", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H5-8,T6", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 6, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "20ae730ef8e04fd28d32aa878ff89667", - "uuidPlanMaster": "00eb325f821142b48370e78108283aac", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1-8,T2", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "6a2b3e77aa30479593b29bb187ef5daa", - "uuidPlanMaster": "00eb325f821142b48370e78108283aac", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H1-8,T11", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 11, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "16a58013dddf44dd84154e906e17efda", - "uuidPlanMaster": "82e58038439947d79a16884960834bdc", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1-8,T1", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "0771df890c6d4101962a9cff68986b2c", - "uuidPlanMaster": "82e58038439947d79a16884960834bdc", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H5-8,T6", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 6, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "e1b6d79648964d97b65b986c4fc37db2", - "uuidPlanMaster": "82e58038439947d79a16884960834bdc", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1-8,T2", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "dc74e74fb7c84c4ab7f8f341856dad01", - "uuidPlanMaster": "82e58038439947d79a16884960834bdc", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H1-8,T11", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 11, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "e01e7d50aec646d3857f076b2a50a76d", - "uuidPlanMaster": "7afbe625e639439da6be0ae465b71fc3", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1-8,T1", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "12ff0b44784c47e2bd9be4168dfed2e8", - "uuidPlanMaster": "7afbe625e639439da6be0ae465b71fc3", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H5-8,T9", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 9, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "018589773c1b4647a7af25ed89aa8a56", - "uuidPlanMaster": "7afbe625e639439da6be0ae465b71fc3", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1-8,T2", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "423486cb57934af48a5c7b75489bbb7d", - "uuidPlanMaster": "7afbe625e639439da6be0ae465b71fc3", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H1-8,T16", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 16, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "f8e43ccb56a7436ab2cf0de171485237", - "uuidPlanMaster": "6457b78d91354697b5603f09f861ab25", - "Axis": "ClampingJaw", - "ActOn": "DefectiveLift", - "Place": "T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 1, - "HoleRow": 0, - "HoleColum": 0, - "HoleCollective": "", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "0da85ffc1e0948c5a97069a30949b9f6", - "uuidPlanMaster": "6457b78d91354697b5603f09f861ab25", - "Axis": "ClampingJaw", - "ActOn": "PutDown", - "Place": "T3", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 1, - "HoleRow": 0, - "HoleColum": 0, - "HoleCollective": "", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "c3a8679849a4494890873bec013e3992", - "uuidPlanMaster": "e881d9341f254a8eb7838bb5049f3c81", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1-8,T1", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "7cacdf34cba14226b444e6c8eb5cc9ab", - "uuidPlanMaster": "e881d9341f254a8eb7838bb5049f3c81", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H5-8,T9", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 9, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "aa3e404c361e407e87debc15daabf710", - "uuidPlanMaster": "e881d9341f254a8eb7838bb5049f3c81", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1-8,T2", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "ef9a97d71a9b4534911ed2dbfc41625e", - "uuidPlanMaster": "e881d9341f254a8eb7838bb5049f3c81", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H1-8,T16", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 16, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "a0cb2322f8014f7aabc9c9ed46ffa2e6", - "uuidPlanMaster": "29171dc4a6cc4896bb92ee396ef0d161", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1-8,T1", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "6a84fd1049c14a57a7009a88d58d402b", - "uuidPlanMaster": "29171dc4a6cc4896bb92ee396ef0d161", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H5-8,T9", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 9, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "42f23ef45bc44afe93a08c73ec678e79", - "uuidPlanMaster": "29171dc4a6cc4896bb92ee396ef0d161", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1-8,T2", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "71cec981779a4f43a6ccf6fd083b3990", - "uuidPlanMaster": "29171dc4a6cc4896bb92ee396ef0d161", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H1-8,T16", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 16, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "1a5d03e325694e14be322db39ad1689c", - "uuidPlanMaster": "f89ed1c85b9f4731812c48a8f26150eb", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1-8,T1", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "656f28e62f584e9784420b5ec259753b", - "uuidPlanMaster": "f89ed1c85b9f4731812c48a8f26150eb", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H5-8,T9", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 9, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "3a562944649549b9811b306697f2ecc6", - "uuidPlanMaster": "f89ed1c85b9f4731812c48a8f26150eb", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1-8,T2", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "0cb7cf42a1cc423f91bed53c071d9f1c", - "uuidPlanMaster": "f89ed1c85b9f4731812c48a8f26150eb", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H1-8,T16", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 16, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "0cb8998b45564073b93096d2fc111aab", - "uuidPlanMaster": "315aaad239d54c9c8cdc0a6835b6ad3e", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1-8,T1", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "8ba337cae04c4ad0ba1fecc90643b98e", - "uuidPlanMaster": "315aaad239d54c9c8cdc0a6835b6ad3e", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H5-8,T9", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 9, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "79e1df8c03174d508ce1bb7a659beba5", - "uuidPlanMaster": "315aaad239d54c9c8cdc0a6835b6ad3e", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1-8,T2", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "9520f261c0ba408997ce98d73dfe8b97", - "uuidPlanMaster": "315aaad239d54c9c8cdc0a6835b6ad3e", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H1-8,T16", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 16, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "bacf0a8db757464abce55f0dbf693de8", - "uuidPlanMaster": "da7774b286884f69aee37f4e79ededbd", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1-8,T1", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "a05e7aac692c418d9ff44b46612c00bf", - "uuidPlanMaster": "da7774b286884f69aee37f4e79ededbd", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H5-8,T9", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 9, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "816f990c63094edba70a3e49fa780042", - "uuidPlanMaster": "da7774b286884f69aee37f4e79ededbd", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1-8,T2", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "df512459bdbf400383fa43ad914b608b", - "uuidPlanMaster": "da7774b286884f69aee37f4e79ededbd", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H1-8,T16", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 16, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "7b03afbca4cf41649ed9210a22cd985b", - "uuidPlanMaster": "74696644b3e7496eb8fa569e62f37e4f", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1-8,T1", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "803909f7eb694d858d009e54abee611f", - "uuidPlanMaster": "74696644b3e7496eb8fa569e62f37e4f", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H5-8,T9", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 9, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "8ce1dd6525a54060ae3e677b474eb5b7", - "uuidPlanMaster": "74696644b3e7496eb8fa569e62f37e4f", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1-8,T2", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "ad46ea406bdb4f1595d38e8bb6cc1f9c", - "uuidPlanMaster": "74696644b3e7496eb8fa569e62f37e4f", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H1-8,T16", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 16, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "6cf79c36db4c405883f591d6f9f4b65e", - "uuidPlanMaster": "a49b287087be4f5eaca9f8d8adec8536", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1-8,T1", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "0adc2522d0d043438dbeff9122535ab1", - "uuidPlanMaster": "a49b287087be4f5eaca9f8d8adec8536", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H5-8,T9", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 9, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "6d097c0e793e49a29a3f9f81e4f6cbb5", - "uuidPlanMaster": "a49b287087be4f5eaca9f8d8adec8536", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1-8,T2", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "9fc7c232cd1042a0bc8b99e9931fe39a", - "uuidPlanMaster": "a49b287087be4f5eaca9f8d8adec8536", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H1-8,T16", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 16, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "8e787204da4843419a0212f588514b87", - "uuidPlanMaster": "6cfe6fffe2c34d9fb33b27df2fdeb0a6", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1-8,T1", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "55d196511a87475384126c245060d277", - "uuidPlanMaster": "6cfe6fffe2c34d9fb33b27df2fdeb0a6", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H5-8,T9", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 9, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "c074e674fa1c4cbca7608fc86cf82004", - "uuidPlanMaster": "6cfe6fffe2c34d9fb33b27df2fdeb0a6", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1-8,T2", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "0b71d67d58674d20a4f1915cf6a07a65", - "uuidPlanMaster": "6cfe6fffe2c34d9fb33b27df2fdeb0a6", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H1-8,T16", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 16, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "f77742e31da348d5897967607f9927d1", - "uuidPlanMaster": "eaa0616d8d0d49538946a891cfb4d067", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1-8,T1", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "2729e1d1f5c74a0098ea5c70aa8e26c4", - "uuidPlanMaster": "eaa0616d8d0d49538946a891cfb4d067", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H5-8,T9", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 9, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "fc6c6cd3ed0a497ebc11f8c5597da263", - "uuidPlanMaster": "eaa0616d8d0d49538946a891cfb4d067", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1-8,T2", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "eee9166ed7bd4089bf477572a31f10ae", - "uuidPlanMaster": "eaa0616d8d0d49538946a891cfb4d067", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H1-8,T16", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 16, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "50ab4f71bb5f410a8606f35e0a1992c3", - "uuidPlanMaster": "78a1ea26dbc64cb687409ff2a4464df4", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1-8,T1", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "f52ce34fc2b244f4a124bc6b5b9aa394", - "uuidPlanMaster": "78a1ea26dbc64cb687409ff2a4464df4", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H5-8,T9", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 9, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "c99b9df8bc184b81855737e08b7d665e", - "uuidPlanMaster": "78a1ea26dbc64cb687409ff2a4464df4", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1-8,T2", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "5f51b4a8260747d9abed36c1c4aca6e8", - "uuidPlanMaster": "78a1ea26dbc64cb687409ff2a4464df4", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H1-8,T16", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 16, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "c1da0d49e7a240c4a740cf064219d269", - "uuidPlanMaster": "f38f403ae80747dca9687f8205bec892", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1-8,T1", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "e8fae27d8068476a90e87e3ad2fd4afb", - "uuidPlanMaster": "f38f403ae80747dca9687f8205bec892", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H5-8,T9", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 9, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "14730abb976e46fa8a74483d0416d1e1", - "uuidPlanMaster": "f38f403ae80747dca9687f8205bec892", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1-8,T2", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "a9c912e94df247179c724ae360a766dc", - "uuidPlanMaster": "f38f403ae80747dca9687f8205bec892", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H1-8,T16", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 16, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "2449511857364a2fbbbc0fd157d98883", - "uuidPlanMaster": "93d39f080f4d4d13a48951b913f975ec", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1-8,T1", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "4c68e15248fa43b2ba3f2508af3e8268", - "uuidPlanMaster": "93d39f080f4d4d13a48951b913f975ec", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H5-8,T9", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 9, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "92450ebb11714bba8a8d8ec39461eb53", - "uuidPlanMaster": "93d39f080f4d4d13a48951b913f975ec", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1-8,T2", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "4881fea3907041d28ae9b7178d64e780", - "uuidPlanMaster": "93d39f080f4d4d13a48951b913f975ec", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H1-8,T16", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 16, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "99c3ad6ee7e84800aaeb4267e675e4e1", - "uuidPlanMaster": "ed9385ccba8f4cd99efb34ec2290c0f7", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1-8,T1", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "df005b4fd52f4eb18aff8f5f457135a8", - "uuidPlanMaster": "ed9385ccba8f4cd99efb34ec2290c0f7", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H5-8,T9", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 9, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "0529cac37bf342bbba9d84f508a28500", - "uuidPlanMaster": "ed9385ccba8f4cd99efb34ec2290c0f7", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1-8,T2", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "3914eb4c8bdd42a7b3524164a8ebd96e", - "uuidPlanMaster": "ed9385ccba8f4cd99efb34ec2290c0f7", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H1-8,T16", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 16, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "6592123f52144d9eb842eb393f168904", - "uuidPlanMaster": "12fb549fdea14d6285a61414cf218835", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1-8,T1", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "14169a47122a40f68bcfc6f7c6c4dc11", - "uuidPlanMaster": "12fb549fdea14d6285a61414cf218835", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H5-8,T9", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 9, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "0c886068cf77491a8a0ae2b05f1ee767", - "uuidPlanMaster": "12fb549fdea14d6285a61414cf218835", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1-8,T2", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "a2ef73b8461e40b591ed393f04169a6e", - "uuidPlanMaster": "12fb549fdea14d6285a61414cf218835", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H1-8,T16", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 16, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "a36fc7711fc94ee8bc77268cd6cf12be", - "uuidPlanMaster": "b640284fc74c4953912c9bd70f989976", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "1", - "Dosage": 20, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 1, - "HoleRow": 8, - "HoleColum": 12, - "HoleCollective": null, - "MixCount": 0, - "HeightFromBottom": 5, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 1 - }, - { - "uuid": "9cb4f62fc06b4b47b911f2bab5fd3e52", - "uuidPlanMaster": "b640284fc74c4953912c9bd70f989976", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "3", - "Dosage": 20, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 1, - "HoleRow": 8, - "HoleColum": 12, - "HoleCollective": null, - "MixCount": 0, - "HeightFromBottom": 5, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 1 - }, - { - "uuid": "1f1174be9b76454a91a71cc7c70fcd34", - "uuidPlanMaster": "b640284fc74c4953912c9bd70f989976", - "Axis": "Left", - "ActOn": "Blending", - "Place": "3", - "Dosage": 20, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 3, - "IsFullPage": 1, - "HoleRow": 8, - "HoleColum": 12, - "HoleCollective": null, - "MixCount": 3, - "HeightFromBottom": 5, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 1 - }, - { - "uuid": "aab4637c9b984d1487edc80a392f287c", - "uuidPlanMaster": "b640284fc74c4953912c9bd70f989976", - "Axis": "Right", - "ActOn": "Imbibing", - "Place": "2", - "Dosage": 10, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 1, - "HoleRow": 8, - "HoleColum": 12, - "HoleCollective": null, - "MixCount": 0, - "HeightFromBottom": 5, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 1 - }, - { - "uuid": "571fdbfc2c88468f91665cb00287ac2e", - "uuidPlanMaster": "9936de255cb343d3885327fbae90785d", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1-8,T1", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "2f98aed2269043a1826884f49d8c7f3d", - "uuidPlanMaster": "9936de255cb343d3885327fbae90785d", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H5-8,T9", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 9, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "d846daf28a6c400ab180c69cef88343a", - "uuidPlanMaster": "9936de255cb343d3885327fbae90785d", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1-8,T2", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "5d64faab00c84b8e80c45ff9d2cdd788", - "uuidPlanMaster": "9936de255cb343d3885327fbae90785d", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H1-8,T16", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 16, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "dfe15c37da89419a98437a1b9b292e9b", - "uuidPlanMaster": "aeacc84305374fba944e1daf430341b8", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1-8,T1", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "bbcb9514a12a47cfb9898f8063db5cfb", - "uuidPlanMaster": "aeacc84305374fba944e1daf430341b8", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H5-8,T9", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 9, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "c9ecfa4035bc4443857f70eee0665ddc", - "uuidPlanMaster": "aeacc84305374fba944e1daf430341b8", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1-8,T2", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "a9530a16ba4d4006841a2d2d4750b8ff", - "uuidPlanMaster": "aeacc84305374fba944e1daf430341b8", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H1-8,T16", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 16, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "0bf0b8bf79554ca09593adc3f2360abc", - "uuidPlanMaster": "28ab42b24128415abc8f80283e437744", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1-8,T1", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "45d8375f03f04abebb0c60994c74b2fd", - "uuidPlanMaster": "28ab42b24128415abc8f80283e437744", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H5-8,T9", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 9, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "edd10ebd63794ea28b3a087d7f21dcb2", - "uuidPlanMaster": "28ab42b24128415abc8f80283e437744", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1-8,T2", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "2f15dc1e2bc24169a39cca536acff369", - "uuidPlanMaster": "28ab42b24128415abc8f80283e437744", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H1-8,T16", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 16, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "d06659c86c8644e0a4b4ecf90dda6db0", - "uuidPlanMaster": "8047347586b5455eb5e973bcc9c68c50", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1-8,T1", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "bc62b3e1d51c41638239cce565bcf794", - "uuidPlanMaster": "8047347586b5455eb5e973bcc9c68c50", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H5-8,T9", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 9, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "9bc2df1af6044a75b01477c2dcbb0743", - "uuidPlanMaster": "8047347586b5455eb5e973bcc9c68c50", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1-8,T2", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "83cd0c0adb8c4c79bc196d3ca6158397", - "uuidPlanMaster": "8047347586b5455eb5e973bcc9c68c50", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H1-8,T16", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 16, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "2503b005fd3f4d109ec72224a3bdb790", - "uuidPlanMaster": "923d5ce46bf4475c9f888cf44b5f6689", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1-8,T1", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "c7ce4ee419be49fe974e2f047a93f5c2", - "uuidPlanMaster": "923d5ce46bf4475c9f888cf44b5f6689", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H5-8,T9", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 9, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "02880be783de4eb08c95fc37ef514fae", - "uuidPlanMaster": "923d5ce46bf4475c9f888cf44b5f6689", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1-8,T2", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "53ec557f6f0c4ef4ac3eaad68c20d4f8", - "uuidPlanMaster": "923d5ce46bf4475c9f888cf44b5f6689", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H1-8,T16", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 16, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "e7b9a87fe15e481087c5ac6807dd6af1", - "uuidPlanMaster": "5460a9ff43bc48e18334d047765864e9", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1-8,T1", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "ee38b9ce9db34fc49042dae43df5fa72", - "uuidPlanMaster": "5460a9ff43bc48e18334d047765864e9", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H5-8,T9", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 9, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "134e36a8056342789ac1ec9d0fd97f69", - "uuidPlanMaster": "5460a9ff43bc48e18334d047765864e9", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1-8,T2", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "c948e8e843f240ebb23d8311bc58c036", - "uuidPlanMaster": "5460a9ff43bc48e18334d047765864e9", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H1-8,T16", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 16, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "e10b187fa6854403aefb8353255bc161", - "uuidPlanMaster": "d761389b454b4911b61393ca6416ca0c", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1-8,T1", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "2e80e6ce538842128708458123619c06", - "uuidPlanMaster": "d761389b454b4911b61393ca6416ca0c", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H5-8,T9", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 9, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "ad819e2c27aa4e22870f6ccf9c2f3457", - "uuidPlanMaster": "d761389b454b4911b61393ca6416ca0c", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1-8,T2", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "757101c7bb6b4145aefb56f4ad4b5e14", - "uuidPlanMaster": "d761389b454b4911b61393ca6416ca0c", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H1-8,T16", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 16, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "cb0031d5e6604acba10b4af55c5a99ec", - "uuidPlanMaster": "f2c01ff18b674f94a385dfceac42da3c", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1-8,T1", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "21a3bddc09f0435e90c36270d72a5e4d", - "uuidPlanMaster": "f2c01ff18b674f94a385dfceac42da3c", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H5-8,T9", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 9, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "dae424564c66427bb50a5fe8bb8b1698", - "uuidPlanMaster": "f2c01ff18b674f94a385dfceac42da3c", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1-8,T2", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "bd0a9127a6114448a5d6b2f0cd377db4", - "uuidPlanMaster": "f2c01ff18b674f94a385dfceac42da3c", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H1-8,T16", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 16, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "eab3b9ab356b4a048637004710edf6c2", - "uuidPlanMaster": "06600ac05cf646db823b20f45ac1c393", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1-8,T1", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "80369f23f86f432987628a82ada73fab", - "uuidPlanMaster": "06600ac05cf646db823b20f45ac1c393", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H5-8,T9", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 9, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "8bc9ebfdf99142118156b680fbffd327", - "uuidPlanMaster": "06600ac05cf646db823b20f45ac1c393", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1-8,T2", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "ae1a4131c698417cae999b1e4facce56", - "uuidPlanMaster": "06600ac05cf646db823b20f45ac1c393", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H1-8,T16", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 16, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "61840a156a714edb945c0abd33a53e32", - "uuidPlanMaster": "9bfa689900ef4743912defd1d8d66e35", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1-8,T1", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "e1feffc327034eba9605ad1ecb681f27", - "uuidPlanMaster": "9bfa689900ef4743912defd1d8d66e35", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H5-8,T9", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 9, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "4db95f930422453e975c64bb92a6ae5e", - "uuidPlanMaster": "9bfa689900ef4743912defd1d8d66e35", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1-8,T2", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "e3c5ebff94bc46c09ea238611e490a9c", - "uuidPlanMaster": "9bfa689900ef4743912defd1d8d66e35", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H1-8,T16", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 16, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "b7c7d39e7795471c9d1ec5e6d7f34b21", - "uuidPlanMaster": "bd32879b54764d15b0d426f57886ee50", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1-8,T1", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "8c45c0edc6154d9bb3ada1dda64fb9e2", - "uuidPlanMaster": "bd32879b54764d15b0d426f57886ee50", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H5-8,T9", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 9, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "26f9765edf1948c6a1a65aa50c61c830", - "uuidPlanMaster": "bd32879b54764d15b0d426f57886ee50", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1-8,T2", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "2961731961e449fc9e264c5e671c3255", - "uuidPlanMaster": "bd32879b54764d15b0d426f57886ee50", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H1-8,T16", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 16, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "1c044c78222e44529b9c0cd73277dd5c", - "uuidPlanMaster": "6c465ecccf3d4f068a6eae42a9b1965d", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1-8,T1", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "5dacfd6ef11940c89df133b735af605f", - "uuidPlanMaster": "6c465ecccf3d4f068a6eae42a9b1965d", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H5-8,T9", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 9, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "afff44bb56524e889541cc5a8cf5581a", - "uuidPlanMaster": "6c465ecccf3d4f068a6eae42a9b1965d", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1-8,T2", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "76f3b7a08322479588c5df941fdff36f", - "uuidPlanMaster": "6c465ecccf3d4f068a6eae42a9b1965d", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H1-8,T16", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 16, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "c580adb5b171410fac5816dd33b44cc7", - "uuidPlanMaster": "6f836eb2401a48fcbbc206e23d6aebad", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1-8,T1", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "bf032f96dd094babae9c5a60614c62f2", - "uuidPlanMaster": "6f836eb2401a48fcbbc206e23d6aebad", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H5-8,T9", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 9, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "fcec532dcf6d496a872a359e3758eb2d", - "uuidPlanMaster": "6f836eb2401a48fcbbc206e23d6aebad", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1-8,T2", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "2688393678c74c359c601bf7be3b1c53", - "uuidPlanMaster": "6f836eb2401a48fcbbc206e23d6aebad", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H1-8,T16", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 16, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "bc82c8b576af4e8689f67fdd90c69543", - "uuidPlanMaster": "31e5cdb175674bd3a4636caa0766fa47", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1-8,T1", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "032556fdd02d42bb924da783a83c1abf", - "uuidPlanMaster": "31e5cdb175674bd3a4636caa0766fa47", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H5-8,T9", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 9, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "9327fb7a2ae34f74a302776a566b4b96", - "uuidPlanMaster": "31e5cdb175674bd3a4636caa0766fa47", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1-8,T2", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "825983f98a8945fdb9a66ca1d5eb3e50", - "uuidPlanMaster": "31e5cdb175674bd3a4636caa0766fa47", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H1-8,T16", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 16, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "ebc20d21097f48299c6fe19d4000b478", - "uuidPlanMaster": "572a9e61489a4d4891fb75e1f0e87aa5", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1-8,T1", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "f4c1236756c840678509ca02d152a32f", - "uuidPlanMaster": "572a9e61489a4d4891fb75e1f0e87aa5", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H5-8,T9", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 9, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "a402b52af3d348eda8dbaf20f7f1dccd", - "uuidPlanMaster": "572a9e61489a4d4891fb75e1f0e87aa5", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1-8,T2", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "b7a282665c1542f4a352483913e3ec83", - "uuidPlanMaster": "572a9e61489a4d4891fb75e1f0e87aa5", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H1-8,T16", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 16, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "0f2da0d02e444747a2808a5df82d71d7", - "uuidPlanMaster": "dc18310cd2e64eea96cfdee803f7b679", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1-8,T1", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "88486c9ec6b7467782129033d51e5ea7", - "uuidPlanMaster": "dc18310cd2e64eea96cfdee803f7b679", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H5-8,T9", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 9, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "e43febd98f474edd81eba68e601da280", - "uuidPlanMaster": "dc18310cd2e64eea96cfdee803f7b679", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1-8,T2", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "f00c923f63624aefb0ed5c7a3b88441a", - "uuidPlanMaster": "dc18310cd2e64eea96cfdee803f7b679", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H1-8,T16", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 16, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "c4cb86ff7d354ef197f2f886717d6509", - "uuidPlanMaster": "ee26589df53f4a42a72153fe7901eee8", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1-8,T1", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "69616e9e6a974a78a19ff815114908ab", - "uuidPlanMaster": "ee26589df53f4a42a72153fe7901eee8", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H5-8,T9", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 9, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "39fad72efcb24e928df653faf22f66dd", - "uuidPlanMaster": "ee26589df53f4a42a72153fe7901eee8", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1-8,T2", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "6b0889973b9b4108be3a16c62a8d6dfe", - "uuidPlanMaster": "ee26589df53f4a42a72153fe7901eee8", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H1-8,T16", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 16, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "a853d18add1f4b5187d4c076e4bcc4f6", - "uuidPlanMaster": "558b09a967784165ba31226009cabb47", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1-8,T1", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "59605408b9834842afca682017a29d70", - "uuidPlanMaster": "558b09a967784165ba31226009cabb47", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H5-8,T9", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 9, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "749b987edca84ded9be8799832ef5491", - "uuidPlanMaster": "558b09a967784165ba31226009cabb47", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1-8,T2", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "9544e3f677f049bca113f61489207d8a", - "uuidPlanMaster": "558b09a967784165ba31226009cabb47", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H1-8,T16", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 16, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "b487491855c540c984c3b8ddb62d1ab2", - "uuidPlanMaster": "600f43d3f97c4c54a9b86b1543892537", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1-8,T1", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "5290970cfe2d468385b21327e5d42baa", - "uuidPlanMaster": "600f43d3f97c4c54a9b86b1543892537", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H5-8,T9", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 9, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "32f7bea6d7074e8b8f7864b5ab661ac3", - "uuidPlanMaster": "600f43d3f97c4c54a9b86b1543892537", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1-8,T2", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "0359756dbe8f4441987fc0cf91e7d61d", - "uuidPlanMaster": "600f43d3f97c4c54a9b86b1543892537", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H1-8,T16", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 16, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "cb7811f5a64241309ed3507b5493b842", - "uuidPlanMaster": "4fe3322104e44793be8b55f3a1f2f723", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1-8,T1", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "be38bbd49aa1452188b6162eff95683e", - "uuidPlanMaster": "4fe3322104e44793be8b55f3a1f2f723", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H5-8,T9", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 9, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "291090cfae3141818f01652172a19ad9", - "uuidPlanMaster": "4fe3322104e44793be8b55f3a1f2f723", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1-8,T2", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "d03164aa84fe4360a9f6897141579aa2", - "uuidPlanMaster": "4fe3322104e44793be8b55f3a1f2f723", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H1-8,T16", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 16, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "08711b89e7844381bdb66d921235a8fd", - "uuidPlanMaster": "17d158a1ede54bc7b65bdd567404f90e", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1-8,T1", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "0a8f212bb48049fa9b472a31abc1591b", - "uuidPlanMaster": "17d158a1ede54bc7b65bdd567404f90e", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H5-8,T9", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 9, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "cc792fc39a524da795ba9b3e02af2d67", - "uuidPlanMaster": "17d158a1ede54bc7b65bdd567404f90e", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1-8,T2", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "652305d11e89445e97511ac4134d65b6", - "uuidPlanMaster": "17d158a1ede54bc7b65bdd567404f90e", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H1-8,T16", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 16, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "b1707b4ce22b4097ad5a2c03d5b539ab", - "uuidPlanMaster": "30ca428fc95041c5bb0e03e3e7672083", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1-8,T1", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "dfb196a1b401485f921f0cbca39c292a", - "uuidPlanMaster": "30ca428fc95041c5bb0e03e3e7672083", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H5-8,T9", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 9, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "e9f158a165354963abecba0b0375bedb", - "uuidPlanMaster": "30ca428fc95041c5bb0e03e3e7672083", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1-8,T2", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "4ff6180836b140848ecb228396e85a1c", - "uuidPlanMaster": "30ca428fc95041c5bb0e03e3e7672083", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H1-8,T16", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 16, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "5ed7fd7192de4cf49918f65ab3090b59", - "uuidPlanMaster": "268634264c5f482ba90e645b34ad1cee", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1-8,T1", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "543fb57f882a419db9e9e0f0e60bdce3", - "uuidPlanMaster": "268634264c5f482ba90e645b34ad1cee", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H5-8,T9", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 9, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "9ecf4d2aacbf4c3f9ec92d8baf3ea641", - "uuidPlanMaster": "268634264c5f482ba90e645b34ad1cee", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1-8,T2", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "1ac3ecca74ab434cb0854c21162cf9c9", - "uuidPlanMaster": "268634264c5f482ba90e645b34ad1cee", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H1-8,T16", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 16, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "95a6ca93e42a4f9bbf421491a1b4a844", - "uuidPlanMaster": "88d88f33320048b3a49ed49c80ab9c13", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1-8,T1", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "361ceb8f27274d7faf87c3e10eb81e41", - "uuidPlanMaster": "88d88f33320048b3a49ed49c80ab9c13", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H5-8,T9", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 9, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "a3ddcd0cb56341faa744f20eebadc00a", - "uuidPlanMaster": "88d88f33320048b3a49ed49c80ab9c13", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1-8,T2", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "49454f4ddfe8449ea825c6cf1d447145", - "uuidPlanMaster": "88d88f33320048b3a49ed49c80ab9c13", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H1-8,T16", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 16, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "c33f15a868cc483ba7f97430b2bb222e", - "uuidPlanMaster": "f5d24447108049eb9d24e647a75ecbca", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1-8,T1", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "b0f436b2d7b34168a5bbf0ac8848fba2", - "uuidPlanMaster": "f5d24447108049eb9d24e647a75ecbca", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H5-8,T9", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 9, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "7f31f82a0b8a4251b88e987d0ef4f108", - "uuidPlanMaster": "f5d24447108049eb9d24e647a75ecbca", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1-8,T2", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "70c9d33158a24575ae6b6838dd9243a4", - "uuidPlanMaster": "f5d24447108049eb9d24e647a75ecbca", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H1-8,T16", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 16, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "1ba8d3b6baea493aaf1a4347727aaf2e", - "uuidPlanMaster": "194809ffad0341349a1de26d8979ecef", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1-8,T1", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "adb19356069b469090ec69be980451c6", - "uuidPlanMaster": "194809ffad0341349a1de26d8979ecef", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H5-8,T6", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 6, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "dcd14139e52743c6b7d1c90a9162fe14", - "uuidPlanMaster": "194809ffad0341349a1de26d8979ecef", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1-8,T2", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "7cb9c2b4a304408dbfa60e67ddf18b59", - "uuidPlanMaster": "194809ffad0341349a1de26d8979ecef", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H1-8,T11", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 11, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "9641f4a39f4145b687f7288f4dbc2813", - "uuidPlanMaster": "36180d84f1f447d6ae1cd82d1c1cfff3", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1-8,T1", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "e0b23fa65d784ef6a74a8fa3f8e1512f", - "uuidPlanMaster": "36180d84f1f447d6ae1cd82d1c1cfff3", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H5-8,T6", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 6, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "39d6aa9c0c354c0e909576d413414101", - "uuidPlanMaster": "36180d84f1f447d6ae1cd82d1c1cfff3", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1-8,T2", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "41bfe7b111344042b8c6e3ba9d1e057e", - "uuidPlanMaster": "36180d84f1f447d6ae1cd82d1c1cfff3", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H1-8,T11", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 11, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "f7e4bc3f1950453f8882970f9cae25e0", - "uuidPlanMaster": "9882691fb3b2418dbe6f79512ab83fce", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1-8,T1", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "bfc802500c30476988b608f65fc82357", - "uuidPlanMaster": "9882691fb3b2418dbe6f79512ab83fce", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H5-8,T6", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 6, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "8275a20ff6ab4d74be87881bcd41106f", - "uuidPlanMaster": "9882691fb3b2418dbe6f79512ab83fce", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1-8,T2", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "6b99b17391db4a36ab0fdd88d4bb75a7", - "uuidPlanMaster": "9882691fb3b2418dbe6f79512ab83fce", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H1-8,T11", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 11, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "91cebeb02ed247ed8c2fe05b85fd5131", - "uuidPlanMaster": "9ef76976b46c44faa4dd898f754a4714", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1-8,T1", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "fc8428bcc0334a68b6557bef0cb3e0c5", - "uuidPlanMaster": "9ef76976b46c44faa4dd898f754a4714", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H5-8,T6", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 6, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "328c3f50e7da4a809064f274b324caf9", - "uuidPlanMaster": "9ef76976b46c44faa4dd898f754a4714", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1-8,T2", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "db04ed87106946e3850d3f5967828bb3", - "uuidPlanMaster": "9ef76976b46c44faa4dd898f754a4714", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H1-8,T11", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 11, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "b5d63c2a636c4eafae11e8dadad776f3", - "uuidPlanMaster": "c5921bdf12614cdeb258e9f46202ebaa", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1-8,T1", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "a0d54bdce33a4649abb51c932ea18f10", - "uuidPlanMaster": "c5921bdf12614cdeb258e9f46202ebaa", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H5-8,T6", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 6, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "6798f552b80846bfa9378bb40a69853d", - "uuidPlanMaster": "c5921bdf12614cdeb258e9f46202ebaa", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1-8,T2", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "508c8acb8e784997a1acca73ce5518c6", - "uuidPlanMaster": "c5921bdf12614cdeb258e9f46202ebaa", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H1-8,T11", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 11, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "150869b1578346d4826cbd0fb40c1479", - "uuidPlanMaster": "6dec87a57e2145e8b67096118ada475c", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1-8,T1", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "2249c307df424037817f02f38439206a", - "uuidPlanMaster": "6dec87a57e2145e8b67096118ada475c", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H5-8,T6", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 6, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "380779aa08f843a68ca687d774829b1d", - "uuidPlanMaster": "6dec87a57e2145e8b67096118ada475c", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1-8,T2", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "5d253d1010eb41438f24d7fe582b67a4", - "uuidPlanMaster": "6dec87a57e2145e8b67096118ada475c", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H1-8,T11", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 11, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "0e8e1d69cdff45f886ab8a00e42404ce", - "uuidPlanMaster": "6273fb542c46428a9e36d51ecef8d2c7", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1-8,T1", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "a3ad05b575d14fe6942d6bc29f6a98f7", - "uuidPlanMaster": "6273fb542c46428a9e36d51ecef8d2c7", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H5-8,T6", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 6, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "e597d596e984466b9d2efc7c14ccac2a", - "uuidPlanMaster": "6273fb542c46428a9e36d51ecef8d2c7", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1-8,T2", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "9fa0d97d86ac43f78f8abac57738b24c", - "uuidPlanMaster": "6273fb542c46428a9e36d51ecef8d2c7", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H1-8,T11", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 11, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "58254a2b1054479394a984c6ae2064ce", - "uuidPlanMaster": "011c482e4ed7492d8549aeff4ee2eefa", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1-8,T1", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "8e2de184b7824e40815e17f20ffdcfe9", - "uuidPlanMaster": "011c482e4ed7492d8549aeff4ee2eefa", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H5-8,T6", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 6, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "c2e7d1d008f94d8099d23b89b611d53b", - "uuidPlanMaster": "011c482e4ed7492d8549aeff4ee2eefa", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1-8,T2", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "45d9454f137946aba7115beeda4885d0", - "uuidPlanMaster": "011c482e4ed7492d8549aeff4ee2eefa", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H1-8,T11", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 11, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "f12486d53b6b4c24bbd4280486a7d9f1", - "uuidPlanMaster": "fe2884b6c5ec4f43be2c8c497d0ada8e", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1-8,T1", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "9dec86c0aef042b188948593db008a7a", - "uuidPlanMaster": "fe2884b6c5ec4f43be2c8c497d0ada8e", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H5-8,T6", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 6, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "b6aa2216c34449b7b67aa466bcd035b5", - "uuidPlanMaster": "fe2884b6c5ec4f43be2c8c497d0ada8e", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1-8,T2", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "0136fe9498cb41a681ede7849843a16a", - "uuidPlanMaster": "fe2884b6c5ec4f43be2c8c497d0ada8e", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H1-8,T11", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 11, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "fa4af7956c9d4ef38399a72d84f2e325", - "uuidPlanMaster": "a3b3eb5c44ef43799058f770dbe2057b", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1-8,T1", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "5e290f429d694426aab0d653b17c58b6", - "uuidPlanMaster": "a3b3eb5c44ef43799058f770dbe2057b", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H5-8,T6", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 6, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "0ee4aa24fdca43f4a8c5da486f9e2977", - "uuidPlanMaster": "a3b3eb5c44ef43799058f770dbe2057b", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1-8,T2", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "8c96445091784373b59c88c7238c8847", - "uuidPlanMaster": "a3b3eb5c44ef43799058f770dbe2057b", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H1-8,T11", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 11, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "34936e84349d43869ef564dbdaacf0a0", - "uuidPlanMaster": "3c56daef8b5540c592160e3dd8be4e55", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1-8,T1", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "326ef97516b1489eba0da10cb748ea7b", - "uuidPlanMaster": "3c56daef8b5540c592160e3dd8be4e55", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H5-8,T6", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 6, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "d94b47f473f14ea39e18d014e0e21406", - "uuidPlanMaster": "3c56daef8b5540c592160e3dd8be4e55", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1-8,T2", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "0efbd46c001e4d00af085ca9c0ef02b8", - "uuidPlanMaster": "3c56daef8b5540c592160e3dd8be4e55", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H1-8,T11", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 11, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "0a18c4088776409784d982278e5a7cff", - "uuidPlanMaster": "d7ff94dd51514d15ac27bc978d92e19d", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1-8,T1", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "67a9616906644d2f918165c212327282", - "uuidPlanMaster": "d7ff94dd51514d15ac27bc978d92e19d", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H5-8,T6", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 6, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "8413db2abad74c6f88f1bf9773fcce68", - "uuidPlanMaster": "d7ff94dd51514d15ac27bc978d92e19d", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1-8,T2", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "5fb5526b44f441b2a0f9596ccba65c3c", - "uuidPlanMaster": "d7ff94dd51514d15ac27bc978d92e19d", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H1-8,T11", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 11, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "e7decf39e9d8427c82b785b74f702011", - "uuidPlanMaster": "fa7b09010db449ce955c8694e92f6abf", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1-8,T1", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "20f883b1e3554c2e96de1f94852ba6e4", - "uuidPlanMaster": "fa7b09010db449ce955c8694e92f6abf", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H5-8,T6", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 6, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "62833c3c666f4832956b36e68a8df6f5", - "uuidPlanMaster": "fa7b09010db449ce955c8694e92f6abf", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1-8,T2", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "94ce7efb001e404dbf32c546108cc593", - "uuidPlanMaster": "fa7b09010db449ce955c8694e92f6abf", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H1-8,T11", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 11, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "5aa4910961f0438cbc028f5f9d5b5282", - "uuidPlanMaster": "843855a686b44e86aa928eca140374f4", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1-8,T1", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "72da7816d5bf4559a17c0e1a6d7f8a7f", - "uuidPlanMaster": "843855a686b44e86aa928eca140374f4", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H5-8,T6", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 6, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "743e311e24664fc2b66013400699c414", - "uuidPlanMaster": "843855a686b44e86aa928eca140374f4", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1-8,T2", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "8082bf64bebf475ab2cc52adb0a569ce", - "uuidPlanMaster": "843855a686b44e86aa928eca140374f4", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H1-8,T11", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 11, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "9099fd269fa44ef09258fe795d6a4629", - "uuidPlanMaster": "f38f78a69ae242b4b4ff2a5dc649e376", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1-8,T1", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "669bcb8a3ce5442c86c915687e15c1a2", - "uuidPlanMaster": "f38f78a69ae242b4b4ff2a5dc649e376", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H5-8,T6", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 6, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "ae9076bed2904d90bed6c9caaddf194d", - "uuidPlanMaster": "f38f78a69ae242b4b4ff2a5dc649e376", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1-8,T2", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "457fae5376bc4621be7ed0e6615b091a", - "uuidPlanMaster": "f38f78a69ae242b4b4ff2a5dc649e376", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H1-8,T11", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 11, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "3484f7299e2c4ff1bbd30e86763c5571", - "uuidPlanMaster": "30b4b488bf7a4f3d862eb2ec316dfb3d", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1-8,T1", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "f54cc06b39f2443e80eadd23a66bab60", - "uuidPlanMaster": "30b4b488bf7a4f3d862eb2ec316dfb3d", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H5-8,T6", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 6, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "b36b9da4a525417094061dcbf20f2c47", - "uuidPlanMaster": "30b4b488bf7a4f3d862eb2ec316dfb3d", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1-8,T2", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "6ad75c60b03941dfb4340c124d89549c", - "uuidPlanMaster": "30b4b488bf7a4f3d862eb2ec316dfb3d", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H1-8,T11", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 11, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "5c0f994af8af40a98b85cd5de51d9447", - "uuidPlanMaster": "4e0c300de29c4c598bd8697f839fbac6", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1-8,T1", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "1dbc58c9d6ec4f6899d7f1a62a129422", - "uuidPlanMaster": "4e0c300de29c4c598bd8697f839fbac6", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H5-8,T6", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 6, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "08703c0658cc41afa4fba84441a08f7b", - "uuidPlanMaster": "4e0c300de29c4c598bd8697f839fbac6", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1-8,T2", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "dd85edcf21e44be5b039669b14f537b3", - "uuidPlanMaster": "4e0c300de29c4c598bd8697f839fbac6", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H1-8,T11", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 11, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "da3794117bda40c28f5e3567597f0b0a", - "uuidPlanMaster": "5f1f83f29b2c4f16bdfe799310e6d59c", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1-8,T1", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "dd9f65ad8d874a8abae7dc9e501e5dc2", - "uuidPlanMaster": "5f1f83f29b2c4f16bdfe799310e6d59c", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H5-8,T6", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 6, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "cbe735825684451a925a0fe800195970", - "uuidPlanMaster": "5f1f83f29b2c4f16bdfe799310e6d59c", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1-8,T2", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "adad3e5bd408426c8c5f19978ea54e44", - "uuidPlanMaster": "5f1f83f29b2c4f16bdfe799310e6d59c", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H1-8,T11", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 11, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "2a8541ce41a548598582f72cbce90bfd", - "uuidPlanMaster": "27957ace4aa24b3f90fba658166cbb73", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1-8,T1", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "93777b6c96f54816a2fb4a10503c75de", - "uuidPlanMaster": "27957ace4aa24b3f90fba658166cbb73", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H5-8,T6", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 6, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "f34eb95c6db944eb8b2aef8ea0298a87", - "uuidPlanMaster": "27957ace4aa24b3f90fba658166cbb73", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1-8,T2", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "25d7138c1fda4650abf9fbbe674ddeab", - "uuidPlanMaster": "27957ace4aa24b3f90fba658166cbb73", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H1-8,T11", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 11, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "9614236ffb7a4aeba900a4d00bf24a12", - "uuidPlanMaster": "2ada130d9f7a495aa2c8045ab330d0d5", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1-8,T1", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "27776694e2ec4d90bdd31825f286c6a1", - "uuidPlanMaster": "2ada130d9f7a495aa2c8045ab330d0d5", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H5-8,T6", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 6, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "c0f650866d1845fc86a6be6d23e96bd3", - "uuidPlanMaster": "2ada130d9f7a495aa2c8045ab330d0d5", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1-8,T2", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "9652fb8dcf1443cc9b55fe7464b322d3", - "uuidPlanMaster": "2ada130d9f7a495aa2c8045ab330d0d5", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H1-8,T11", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 11, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "e51ab473068b4387ad23b75eb11c01bf", - "uuidPlanMaster": "ce838b4b5b044d31aded7c977308ba67", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1-8,T1", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "a0974fa10a1b4e838fcca44c28fa5cd2", - "uuidPlanMaster": "ce838b4b5b044d31aded7c977308ba67", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H5-8,T6", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 6, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "4cc6e8964595499296fc136d5b589629", - "uuidPlanMaster": "ce838b4b5b044d31aded7c977308ba67", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1-8,T2", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "e1d3323dc787412db1f281844c161eea", - "uuidPlanMaster": "ce838b4b5b044d31aded7c977308ba67", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H1-8,T11", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 11, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "8112cdf873884da38b709256c057a516", - "uuidPlanMaster": "c653881bfc5744b0b23e417b8136c035", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1-8,T1", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "2fb81b58812f4e31a21e7e49332f076d", - "uuidPlanMaster": "c653881bfc5744b0b23e417b8136c035", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H5-8,T6", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 6, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "8df19354325f4378bf5ed27fecf81fb8", - "uuidPlanMaster": "c653881bfc5744b0b23e417b8136c035", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1-8,T2", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "e58d5640b42949c582c3c57d46397acb", - "uuidPlanMaster": "c653881bfc5744b0b23e417b8136c035", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H1-8,T11", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 11, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "c30861ff61f34f08b6add93ccab155aa", - "uuidPlanMaster": "08c3489d3e424914a805acee5b135a0a", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1-8,T1", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "237c9288b89844ee826ceaee7f285669", - "uuidPlanMaster": "08c3489d3e424914a805acee5b135a0a", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H5-8,T6", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 6, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "2034524324b843e7a1f76c65bab4397e", - "uuidPlanMaster": "08c3489d3e424914a805acee5b135a0a", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1-8,T2", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "328e252423b94b09a161ff1db45fe564", - "uuidPlanMaster": "08c3489d3e424914a805acee5b135a0a", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H1-8,T11", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 11, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "325e528a89244a36be87d52c44c274e9", - "uuidPlanMaster": "4738d1cbf5d547e49744f771d3a7c26c", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1-8,T1", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "6cb89d22fdf04ec6953ec6698e05078a", - "uuidPlanMaster": "4738d1cbf5d547e49744f771d3a7c26c", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H5-8,T6", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 6, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "aa82a86a3dfc46f0b8e2ad5a78793370", - "uuidPlanMaster": "4738d1cbf5d547e49744f771d3a7c26c", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1-8,T2", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "f1ce456a8b774de5980a5fe54dbd573a", - "uuidPlanMaster": "4738d1cbf5d547e49744f771d3a7c26c", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H1-8,T11", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 11, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "ad7b394d73fe4869922f504f774510d2", - "uuidPlanMaster": "1433803138bb43e08510d317537e6598", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1-8,T1", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "8dcadc0da7e5448bbf65da7769ffccb7", - "uuidPlanMaster": "1433803138bb43e08510d317537e6598", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H5-8,T6", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 6, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "f524e83c932148ab8f7d8c05e8be6485", - "uuidPlanMaster": "1433803138bb43e08510d317537e6598", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1-8,T2", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "f13213e1905a41af9d3ed2eed48f23a0", - "uuidPlanMaster": "1433803138bb43e08510d317537e6598", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H1-8,T11", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 11, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "958bbc35faf643a7bd39872eaef8743d", - "uuidPlanMaster": "09f6844a55674e059edd66823e37ee7c", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1-8,T1", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "11d10d1be5b640e480e656fe9df46d41", - "uuidPlanMaster": "09f6844a55674e059edd66823e37ee7c", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H5-8,T6", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 6, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "4a2ee64e0c064c1782bc9c4f044a9492", - "uuidPlanMaster": "09f6844a55674e059edd66823e37ee7c", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1-8,T2", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "102da91f09534b50aeea8579b213e83a", - "uuidPlanMaster": "09f6844a55674e059edd66823e37ee7c", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H1-8,T11", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 11, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "12d316524afe4b81a85901c8d6c81602", - "uuidPlanMaster": "8f463532d9594347afaeafed477e8df3", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1-8,T1", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "aa54c175434b47308a7bff4367226408", - "uuidPlanMaster": "8f463532d9594347afaeafed477e8df3", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H5-8,T6", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 6, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "eacdd18b3e094d59987466161925d5a7", - "uuidPlanMaster": "8f463532d9594347afaeafed477e8df3", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1-8,T2", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "be479259a1074958855eef946f06f216", - "uuidPlanMaster": "8f463532d9594347afaeafed477e8df3", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H1-8,T11", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 11, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "5747a1ec71424581b07d0213c8dbc175", - "uuidPlanMaster": "6b1f890d797840a3bb5efb45169633ab", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1-8,T1", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "e0d9fd1e88ee45edbe2de5635c3d20a7", - "uuidPlanMaster": "6b1f890d797840a3bb5efb45169633ab", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H5-8,T6", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 6, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "37417f006c3a4deb9cce2a5f0f41fb1c", - "uuidPlanMaster": "6b1f890d797840a3bb5efb45169633ab", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1-8,T2", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "9e403338d4a24d4e996468d94f6c37f1", - "uuidPlanMaster": "6b1f890d797840a3bb5efb45169633ab", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H1-8,T11", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 11, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "afce1c7be3124d06ad88c038e439349d", - "uuidPlanMaster": "3f1554c89daa403796d1262ea6a9530b", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1-8,T1", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "48fec6a82c7e4a14bd0d9f00d4b326ff", - "uuidPlanMaster": "3f1554c89daa403796d1262ea6a9530b", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H5-8,T6", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 6, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "1e61b6cc9dac4e91b8c99ef774a3a0c5", - "uuidPlanMaster": "3f1554c89daa403796d1262ea6a9530b", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1-8,T2", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "4a94532f40ba4398851fc1a37d8a366f", - "uuidPlanMaster": "3f1554c89daa403796d1262ea6a9530b", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H1-8,T11", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 11, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "bf6ef280583447ecb4ad33fde76f66ed", - "uuidPlanMaster": "e112fe31ecea48cd9a44dab1af145869", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1-8,T1", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "e60b302088f342088a94686aad875d80", - "uuidPlanMaster": "e112fe31ecea48cd9a44dab1af145869", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H1-8,T3", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 3, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "4385a12e9c924c92a4ab84b81dbedc1c", - "uuidPlanMaster": "e112fe31ecea48cd9a44dab1af145869", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1-8,T2", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "6b907a3233ac42488decc72bebe9705f", - "uuidPlanMaster": "e112fe31ecea48cd9a44dab1af145869", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H1-8,T11", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 11, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "b979cd50651c43bda2563489941f5f40", - "uuidPlanMaster": "c4e7d4dc39df49c59f547b554c1f0d4f", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1-8,T1", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "52f17548226b49889b63282dd3720436", - "uuidPlanMaster": "c4e7d4dc39df49c59f547b554c1f0d4f", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H2-8,T3", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 3, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 2, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "d70eab3007934299812ac57848d1ffa7", - "uuidPlanMaster": "c4e7d4dc39df49c59f547b554c1f0d4f", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1-8,T2", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "e2348e863a424f8bb76d6b834284096f", - "uuidPlanMaster": "c4e7d4dc39df49c59f547b554c1f0d4f", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H1-8,T11", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 11, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "20ec3c6200a6410d88724c0a864ead1f", - "uuidPlanMaster": "9078cab7222b4aaa8208f458626858e5", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1-8,T1", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "dd7f0590d63143c5baf9a371ddc88e90", - "uuidPlanMaster": "9078cab7222b4aaa8208f458626858e5", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H4-8,T3", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 3, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 4, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "5a4d2d0a14f6468b9ff862a341593dbf", - "uuidPlanMaster": "9078cab7222b4aaa8208f458626858e5", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1-8,T2", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "f0f9f270d2044af6a1941e188ec10e34", - "uuidPlanMaster": "9078cab7222b4aaa8208f458626858e5", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H1-8,T11", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 11, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "89cbbcf5115843db83abe22fb3f70df7", - "uuidPlanMaster": "7cbcd8516a7e4c0193a47c343fcc4edf", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1-8,T1", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "9e15cd29d6044ef39b3575e16e7ea787", - "uuidPlanMaster": "7cbcd8516a7e4c0193a47c343fcc4edf", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H12-8,T5", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 5, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 12, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "0404fabffb4c4a4ea5936782336b335d", - "uuidPlanMaster": "7cbcd8516a7e4c0193a47c343fcc4edf", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1-8,T2", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "ed9b8593e44d4cd0a3975fab80a40e80", - "uuidPlanMaster": "7cbcd8516a7e4c0193a47c343fcc4edf", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H1-8,T11", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 11, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "1e95e84448d444f49f4f1015b374c802", - "uuidPlanMaster": "0696f5af7a614f88a04d2c03a1a309e3", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1-8,T1", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "34fc744bcc0a487bb7b39000f664a1fc", - "uuidPlanMaster": "0696f5af7a614f88a04d2c03a1a309e3", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H10-8,T3", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 3, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 10, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "17f7cfdc1c9c42bc97f8ed6415ad8efc", - "uuidPlanMaster": "0696f5af7a614f88a04d2c03a1a309e3", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1-8,T2", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "854ef3c3490d4c7bb08506564af004ec", - "uuidPlanMaster": "0696f5af7a614f88a04d2c03a1a309e3", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H1-8,T11", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 11, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "8e2f761027d14303925b6ca99085b976", - "uuidPlanMaster": "c7f6df0004654c2fb85b192fb14923c7", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1-8,T1", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "0ce18310cdc24eff9d1e22c44182cdc3", - "uuidPlanMaster": "c7f6df0004654c2fb85b192fb14923c7", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H1-8,T6", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 6, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "2ae7e952c4264b76beaca55f18a97fc2", - "uuidPlanMaster": "c7f6df0004654c2fb85b192fb14923c7", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1-8,T2", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "8ae125670824418185ca3e3920743238", - "uuidPlanMaster": "c7f6df0004654c2fb85b192fb14923c7", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H1-8,T11", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 11, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "d31159306ed84a9c97786120d1a7bbe4", - "uuidPlanMaster": "08fc2df070d24e41a60f33c450a0ad42", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1-8,T1", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "42906a5c50ec458bb06f85920db4a976", - "uuidPlanMaster": "08fc2df070d24e41a60f33c450a0ad42", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H1-8,T6", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 6, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "7152ed2a317943968144cdb070d60f79", - "uuidPlanMaster": "08fc2df070d24e41a60f33c450a0ad42", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1-8,T2", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "70481a7f06604a80b57a3b990c351cd6", - "uuidPlanMaster": "08fc2df070d24e41a60f33c450a0ad42", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H1-8,T11", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 11, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "79b5c812a33c48a49570eba15e2e906b", - "uuidPlanMaster": "fd58d9719ff84b879c98c8c8b224faac", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1-8,T1", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "58d15f3fa2f649ceb8ac9671606fdf02", - "uuidPlanMaster": "fd58d9719ff84b879c98c8c8b224faac", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H1-8,T6", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 6, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "20175d79e46b463b92167a2b262094cb", - "uuidPlanMaster": "fd58d9719ff84b879c98c8c8b224faac", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1-8,T2", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "299e21b91cf944299cf46b06260e8335", - "uuidPlanMaster": "fd58d9719ff84b879c98c8c8b224faac", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H1-8,T11", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 11, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "3746afd9286842cdb98b82b235e2908a", - "uuidPlanMaster": "cbce38703a1248c882ea11b909341cf7", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1-8,T1", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "ad6148af3f1342cd96d74add9402e805", - "uuidPlanMaster": "cbce38703a1248c882ea11b909341cf7", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H12-8,T6", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 6, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 12, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "42b591320d7a4497b3a4ae0f2bfe59cc", - "uuidPlanMaster": "cbce38703a1248c882ea11b909341cf7", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1-8,T2", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "8e4a91a626d04e6ba39112e9f62bde41", - "uuidPlanMaster": "cbce38703a1248c882ea11b909341cf7", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H1-8,T11", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 11, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "d26b3cf5fcc84da38146ac701a669ca7", - "uuidPlanMaster": "d48b02ebb07e4711aa378480b4eb013b", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1-8,T1", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "6db6118700d14c00a2f35dac0f54b7a5", - "uuidPlanMaster": "d48b02ebb07e4711aa378480b4eb013b", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H5-8,T6", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 6, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "f7a1e875063f4c8c99aa516b6c652953", - "uuidPlanMaster": "d48b02ebb07e4711aa378480b4eb013b", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1-8,T2", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "5877180e1f0d4a45a98fc3c6bad1dcaa", - "uuidPlanMaster": "d48b02ebb07e4711aa378480b4eb013b", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H1-8,T11", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 11, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "488d5d5b8ee5495ea4f935e589089c59", - "uuidPlanMaster": "c7d4723649984b958a72de07a95d0648", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1-8,T1", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "50c97ae8d34a4296bd4e4cfc69b71f76", - "uuidPlanMaster": "c7d4723649984b958a72de07a95d0648", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H5-8,T6", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 6, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "9ed177de9026440fb5b282e4ef501240", - "uuidPlanMaster": "c7d4723649984b958a72de07a95d0648", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1-8,T2", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "3583a4b56301481fbff52986432137fa", - "uuidPlanMaster": "c7d4723649984b958a72de07a95d0648", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H1-8,T11", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 11, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "4419e4cbb41d4736ae8b9597b2117c6b", - "uuidPlanMaster": "6fbe437d7e274ee3aa9a9b198057ff2d", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1-8,T1", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "1b65aee8cfc6432daae4ccd06ac10ffc", - "uuidPlanMaster": "6fbe437d7e274ee3aa9a9b198057ff2d", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H5-8,T6", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 6, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "3e927a98668d495c9589ef40a233e952", - "uuidPlanMaster": "6fbe437d7e274ee3aa9a9b198057ff2d", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1-8,T2", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "94d70e5d380649ee8f9ee367bec61975", - "uuidPlanMaster": "6fbe437d7e274ee3aa9a9b198057ff2d", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H1-8,T11", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 11, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "251d85f4f3794ae19fea246313db6db8", - "uuidPlanMaster": "38ca83c8168b4422af208dd1e87767fc", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1-8,T1", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "69e673436bc84dba92043f693b04b80b", - "uuidPlanMaster": "38ca83c8168b4422af208dd1e87767fc", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H10-8,T3", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 3, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 10, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "5eb8def3b4fb4c48a4b7ae408066cd72", - "uuidPlanMaster": "38ca83c8168b4422af208dd1e87767fc", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1-8,T2", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "564ab86ad27745aa9d3d30486b8cddc5", - "uuidPlanMaster": "38ca83c8168b4422af208dd1e87767fc", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H1-8,T11", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 11, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "f3a9ee029cd247e798993faab0b43074", - "uuidPlanMaster": "276f25d917944b22933b3f6b67d752ee", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1-8,T1", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "67a96b78644f4ae3829024fb3cd912a1", - "uuidPlanMaster": "276f25d917944b22933b3f6b67d752ee", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H6-8,T3", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 3, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 6, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "93759476af2940b9b638e21a10ce85e9", - "uuidPlanMaster": "276f25d917944b22933b3f6b67d752ee", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1-8,T2", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "10d6b09b762a4e60bb0db648fe897111", - "uuidPlanMaster": "276f25d917944b22933b3f6b67d752ee", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H1-8,T11", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 11, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "401023d42b1d4d348aa137b4beca5c3e", - "uuidPlanMaster": "fd712708c3de4a90a098e02cf1792b1c", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1-8,T1", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "47cffe5904ee49599bb29e02ddff6bd5", - "uuidPlanMaster": "fd712708c3de4a90a098e02cf1792b1c", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H10-8,T3", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 3, - "IsFullPage": 0, - "HoleRow": 6, - "HoleColum": 10, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "ae1a8b14e86543079219ce73c2a35d23", - "uuidPlanMaster": "fd712708c3de4a90a098e02cf1792b1c", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H10-8,T3", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 3, - "IsFullPage": 0, - "HoleRow": 6, - "HoleColum": 10, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "7b54d47958154a11a1a34d1fdef5b7a9", - "uuidPlanMaster": "fd712708c3de4a90a098e02cf1792b1c", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H1-8,T11", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 11, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "44a105fb41694c91a8cb2077821ae673", - "uuidPlanMaster": "d920a90cb8384c65a5703eeb10c34d89", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1-8,T1", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "01102f6f95014f58a0e196f3894aa4de", - "uuidPlanMaster": "d920a90cb8384c65a5703eeb10c34d89", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H5-8,T6", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 6, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "2eef3c2e85da408aaf3f288c4931c2c2", - "uuidPlanMaster": "d920a90cb8384c65a5703eeb10c34d89", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1-8,T2", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "c891885224f3441eba3a0727eb4f6698", - "uuidPlanMaster": "d920a90cb8384c65a5703eeb10c34d89", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H1-8,T11", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 11, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "a8c358897bed472184587059de98acd9", - "uuidPlanMaster": "48eccefb9bce4a9788164c5970b142da", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1-8,T1", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "e3a2df5da78847bdaf8f0b4d7ce8337d", - "uuidPlanMaster": "48eccefb9bce4a9788164c5970b142da", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H2-8,T3", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 3, - "IsFullPage": 0, - "HoleRow": 7, - "HoleColum": 2, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "309914fe24c04735b2dcc51db03f348f", - "uuidPlanMaster": "48eccefb9bce4a9788164c5970b142da", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1-8,T2", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "1590411b94cc46f7bafcbe418a67b023", - "uuidPlanMaster": "48eccefb9bce4a9788164c5970b142da", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H1-8,T11", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 11, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "5f41923b2d9c43cb81a2c6df1634bc1a", - "uuidPlanMaster": "18d9994b08dc44d59e9190dea6a8cfff", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1-8,T1", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "7c62d39fa4ac49d7bbb5d4c3ba5afce6", - "uuidPlanMaster": "18d9994b08dc44d59e9190dea6a8cfff", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H5-8,T6", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 6, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "45863b6b30844e618a5471f84ae737c6", - "uuidPlanMaster": "18d9994b08dc44d59e9190dea6a8cfff", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1-8,T2", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "74f356aeecdc4549b53362935bf52d7f", - "uuidPlanMaster": "18d9994b08dc44d59e9190dea6a8cfff", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H1-8,T11", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 11, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "c438ed5aed624d1f92201c2aa6e156ae", - "uuidPlanMaster": "c56c72f32b4345b59501114cb68ebbfe", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1-8,T1", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "498a6dff12b24ceab4b51f1a3b672088", - "uuidPlanMaster": "c56c72f32b4345b59501114cb68ebbfe", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H5-8,T9", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 9, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "fa803047b1ff41f097eba526837122be", - "uuidPlanMaster": "c56c72f32b4345b59501114cb68ebbfe", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1-8,T2", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "53dbbc60ae5b4c28bdab26bd8b73b120", - "uuidPlanMaster": "c56c72f32b4345b59501114cb68ebbfe", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H1-8,T16", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 16, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "a0972068b1ff4fdf8f90a6328bcfb2b2", - "uuidPlanMaster": "3d9d89acc232499a862845d79a075246", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1-8,T1", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "60dedce76b9c4b0cba1da490cf7f72bc", - "uuidPlanMaster": "3d9d89acc232499a862845d79a075246", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H5-8,T9", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 9, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "26f469e56aa94640a046b2f407234690", - "uuidPlanMaster": "3d9d89acc232499a862845d79a075246", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1-8,T2", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "948c782ca0d64133a68313517e706fd8", - "uuidPlanMaster": "3d9d89acc232499a862845d79a075246", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H1-8,T16", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 16, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "7b42d224e7504471a3d1ec37d427e356", - "uuidPlanMaster": "2a535a17877448cba047b718ebeefcb1", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1-8,T1", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "0de04d6a23834cd1b1289664336d224c", - "uuidPlanMaster": "2a535a17877448cba047b718ebeefcb1", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H5-8,T6", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 6, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "072efd42b5114a999321997560541d72", - "uuidPlanMaster": "2a535a17877448cba047b718ebeefcb1", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1-8,T2", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "3ff2e1b36dcf4dfb804bebc10da6f4cb", - "uuidPlanMaster": "2a535a17877448cba047b718ebeefcb1", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H1-8,T11", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 11, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "b2733a4e631042cd9893551a81a1a6af", - "uuidPlanMaster": "e031fb1acb5c4c14a4bd7bc1472f935a", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1-8,T1", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "e172bfa0d9874dd2a5cd19ddbae9c639", - "uuidPlanMaster": "e031fb1acb5c4c14a4bd7bc1472f935a", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H5-8,T9", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 9, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "68f578e9c16e4220a28903af46670991", - "uuidPlanMaster": "e031fb1acb5c4c14a4bd7bc1472f935a", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1-8,T2", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "e2cf6160abe147c5bfb760fc8028cc90", - "uuidPlanMaster": "e031fb1acb5c4c14a4bd7bc1472f935a", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H1-8,T16", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 16, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "d5af0d3c8700466ebdafa754f7c80e66", - "uuidPlanMaster": "b7671ef2fb424d2faf9c392fa8fecda0", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1-8,T1", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "3e4c0b68f60e4432986684bfb7a808ed", - "uuidPlanMaster": "b7671ef2fb424d2faf9c392fa8fecda0", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H5-8,T6", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 6, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "82b605a4b65243b49aa36b88a3e4c156", - "uuidPlanMaster": "b7671ef2fb424d2faf9c392fa8fecda0", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1-8,T2", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "03c2736909834370ab10db70615f552e", - "uuidPlanMaster": "b7671ef2fb424d2faf9c392fa8fecda0", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H1-8,T11", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 11, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "8a6bebac21134c65ab66ccb147ab157f", - "uuidPlanMaster": "4c79b0d236be4e5abe05cf9ae16b0279", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1-8,T1", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "38825c34469340169873326801efbbc8", - "uuidPlanMaster": "4c79b0d236be4e5abe05cf9ae16b0279", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H5-8,T6", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 6, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "d8ddb7f6d3244fe0b0b447820cd68101", - "uuidPlanMaster": "4c79b0d236be4e5abe05cf9ae16b0279", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1-8,T2", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "11eacc59a891479f907dafaa8735d7ce", - "uuidPlanMaster": "4c79b0d236be4e5abe05cf9ae16b0279", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H1-8,T11", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 11, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "c0f66124b8464b30b34a23d76b21c0bd", - "uuidPlanMaster": "7c1970184e5246aaa99aa055bb41a039", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1-8,T1", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "bb52c6beac324026bd4e4cc049367b0f", - "uuidPlanMaster": "7c1970184e5246aaa99aa055bb41a039", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H5-8,T9", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 9, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "bacaf75b344f42bd8d0371c389126040", - "uuidPlanMaster": "7c1970184e5246aaa99aa055bb41a039", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1-8,T2", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "627aeea2fdf941ea8382367eb730d6e5", - "uuidPlanMaster": "7c1970184e5246aaa99aa055bb41a039", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H1-8,T16", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 16, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "fb3336b74b724396996b685c727f043c", - "uuidPlanMaster": "ef03d8989acc49f29b67b65ae104c935", - "Axis": "ClampingJaw", - "ActOn": "DefectiveLift", - "Place": "T16", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 16, - "IsFullPage": 1, - "HoleRow": 0, - "HoleColum": 0, - "HoleCollective": "", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "fe13acdb8d4f46759ce2dad36576102e", - "uuidPlanMaster": "ef03d8989acc49f29b67b65ae104c935", - "Axis": "ClampingJaw", - "ActOn": "PutDown", - "Place": "T15", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 15, - "IsFullPage": 1, - "HoleRow": 0, - "HoleColum": 0, - "HoleCollective": "", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "c536b4defd7a437b8d77c7c35bd188d5", - "uuidPlanMaster": "5c17a60fbe214a1d9a46f50e9872850e", - "Axis": "Left", - "ActOn": "Shaking", - "Place": null, - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 0, - "IsFullPage": 1, - "HoleRow": 0, - "HoleColum": 0, - "HoleCollective": "", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": "10", - "Module": 1, - "Temperature": null, - "Amplitude": "1200", - "Height": null, - "IsWait": 1, - "ImbSpeed": 0 - }, - { - "uuid": "721ba2d511aa4b4a90112f967b3f4996", - "uuidPlanMaster": "455b9b54cc844fb8b495b47fb4b1cdca", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1 - 1, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "b8724b2afb8d4606a879bbf442806a8f", - "uuidPlanMaster": "455b9b54cc844fb8b495b47fb4b1cdca", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H3 - 3, T2", - "Dosage": 50, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 1, - "HoleCollective": "3", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "cac7e77d267b4a18bf09d6a5c927a1cd", - "uuidPlanMaster": "455b9b54cc844fb8b495b47fb4b1cdca", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1 - 1, T2", - "Dosage": 30, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 1, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 4 - }, - { - "uuid": "de465f5de5014f34ad8f46df39dddf85", - "uuidPlanMaster": "87cfe7f248f94063a0301e38447e0d8d", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1 - 1, T1", - "Dosage": 0, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "ee165c2106ee4658812de71c5e9c8a7b", - "uuidPlanMaster": "87cfe7f248f94063a0301e38447e0d8d", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H3 - 3, T2", - "Dosage": 50, - "AssistA": null, - "AssistB": null, - "AssistC": null, - "AssistD": null, - "AssistE": null, - "Number": 2, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 1, - "HoleCollective": "3", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "649388abf17d437e91a642623e755177", - "uuidPlanMaster": "87cfe7f248f94063a0301e38447e0d8d", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1 - 1, T2", - "Dosage": 30, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 3, - "Time": null, - "Module": 1, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 4 - }, - { - "uuid": "29a7f25fead8485e9ae68275723ff0f1", - "uuidPlanMaster": "3874f9b83c454057bdaf8b368a4d33ca", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1-8,T1", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "25855ba538134276a59a805ac7fdcb43", - "uuidPlanMaster": "3874f9b83c454057bdaf8b368a4d33ca", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H4-8,T3", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 3, - "IsFullPage": 0, - "HoleRow": 6, - "HoleColum": 4, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "8a84c8f779774f448a6284e24c4b3059", - "uuidPlanMaster": "3874f9b83c454057bdaf8b368a4d33ca", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1-8,T2", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "da5f53f40b96456baa654f8e6cfd7089", - "uuidPlanMaster": "3874f9b83c454057bdaf8b368a4d33ca", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H1-8,T11", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 11, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "9bb25053401b4308b1814ca45bd8ac09", - "uuidPlanMaster": "d22dd26a60f7497a93d6a7624b1eaae7", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1-8,T1", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "9b1393aefb714908bd0bcc7e990f7a6c", - "uuidPlanMaster": "d22dd26a60f7497a93d6a7624b1eaae7", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H4-8,T4", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 4, - "IsFullPage": 0, - "HoleRow": 7, - "HoleColum": 4, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "83fdde06da734ee184d20890f8abf8b8", - "uuidPlanMaster": "d22dd26a60f7497a93d6a7624b1eaae7", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1-8,T2", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "53cc74d5645b460988c8a7f414b091e6", - "uuidPlanMaster": "d22dd26a60f7497a93d6a7624b1eaae7", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H1-8,T16", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 16, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "f7f31696f1ae4b818cad840123e6e863", - "uuidPlanMaster": "d99f664808cb4e85a2f65055dac62a7c", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1-8,T1", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "f262b3bd11d34a17ace9ea2b7c4c3e0b", - "uuidPlanMaster": "d99f664808cb4e85a2f65055dac62a7c", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H9-8,T4", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 9, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "c879ac3433a142f1a7f32908875b8f19", - "uuidPlanMaster": "d99f664808cb4e85a2f65055dac62a7c", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H9-8,T4", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 4, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 9, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "179fc1c725874da09695472c48f156e0", - "uuidPlanMaster": "d99f664808cb4e85a2f65055dac62a7c", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H1-8,T16", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 16, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "76be8aa9499a4a198948eb333a9a1d02", - "uuidPlanMaster": "9faf76e32759418a8b3951b7ce90ab05", - "Axis": "Left", - "ActOn": "Load", - "Place": "H4-8,T1", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 1, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 4, - "HoleCollective": "32", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "3522ef3490614358a39bc00cb901f16e", - "uuidPlanMaster": "9faf76e32759418a8b3951b7ce90ab05", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H3-8,T13", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 3, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "4b2b1a07d3e741a0a3b90b20bb5dace2", - "uuidPlanMaster": "9faf76e32759418a8b3951b7ce90ab05", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1-8,T2", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "22732e368f6445fea0170f698d9b796d", - "uuidPlanMaster": "9faf76e32759418a8b3951b7ce90ab05", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H1-8,T16", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 16, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "b7cf7b9da89049beb62fdcb1a6ccd6c9", - "uuidPlanMaster": "15c475a62ab44fffb9e5c876700c101d", - "Axis": "Left", - "ActOn": "Load", - "Place": "H2-8,T1", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 2, - "HoleCollective": "9", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "cae01b8f9c014703b8f10c4e4b949055", - "uuidPlanMaster": "15c475a62ab44fffb9e5c876700c101d", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H3-8,T13", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "93b7f4ee6f9245a0ae0443e7a3b035d5", - "uuidPlanMaster": "15c475a62ab44fffb9e5c876700c101d", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H12-8,T13", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 13, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 12, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "ba53decb74bf43d298fc38dcd10861fc", - "uuidPlanMaster": "15c475a62ab44fffb9e5c876700c101d", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H1-8,T16", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 16, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "719d64ba445c43d79ec246f1ee455bc5", - "uuidPlanMaster": "62568d1d0a8d4f81a879826b0ab6e466", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1-8,T1", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "50145e615c984bf8a90a48f1f0408a9d", - "uuidPlanMaster": "62568d1d0a8d4f81a879826b0ab6e466", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H5-8,T9", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 9, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "f13394ce9740421ab6607709a66d0fb1", - "uuidPlanMaster": "62568d1d0a8d4f81a879826b0ab6e466", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1-8,T2", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "9dafaac100ae40dfa8f69d268b47300d", - "uuidPlanMaster": "62568d1d0a8d4f81a879826b0ab6e466", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H1-8,T16", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 16, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "9a58399ceb5e4d27be12f81a75a9748f", - "uuidPlanMaster": "5b514d82ef71446e8b97f3746939b114", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1-8,T1", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "6bd8c8ec77274396945690022a2d4b57", - "uuidPlanMaster": "5b514d82ef71446e8b97f3746939b114", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H5-8,T9", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 9, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "9b6f7aff78824565ad68f0b174c230ca", - "uuidPlanMaster": "5b514d82ef71446e8b97f3746939b114", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1-8,T2", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "43ce6acdb7934ca4b3b62e2cf027616c", - "uuidPlanMaster": "5b514d82ef71446e8b97f3746939b114", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H1-8,T16", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 16, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "6afe501d2a60479ab4cdf79901311e0e", - "uuidPlanMaster": "08e219b1b241445486e1af41a65426dc", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1-8,T1", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 1, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 1, - "HoleCollective": "8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "227d2f114fef4c8eaa3b3d7af53dd3fe", - "uuidPlanMaster": "08e219b1b241445486e1af41a65426dc", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H1-8,T9", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 9, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "98f3a7d8b16a4687907cbd218e85834f", - "uuidPlanMaster": "08e219b1b241445486e1af41a65426dc", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H3-8,T9", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 9, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "5bb12526fa0a4e6cb8cee2adba8139f0", - "uuidPlanMaster": "08e219b1b241445486e1af41a65426dc", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H1-8,T16", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 16, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "ea6edf5f1ba14ce3ad4df7820aec51b1", - "uuidPlanMaster": "8b56dc3fe4024ff7874096898be421ab", - "Axis": "Left", - "ActOn": "Load", - "Place": "H3-8,T1", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "17", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "5810bea8bcee44cbaefa3c2c45730da9", - "uuidPlanMaster": "8b56dc3fe4024ff7874096898be421ab", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H1-8,T9", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 9, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "92b969b21b1a47fcbb803388e585eec0", - "uuidPlanMaster": "8b56dc3fe4024ff7874096898be421ab", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H4-8,T9", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 9, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 4, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "e2611e39c33e44bfba976632442ddbd5", - "uuidPlanMaster": "8b56dc3fe4024ff7874096898be421ab", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H1-8,T16", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 16, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "37c095c5b6a247fdaaca00618108ee96", - "uuidPlanMaster": "ea4df1ac33b247f4b8ee0d192b505422", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1-8,T1", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "1831fbb5f78f4249b6445408a4673921", - "uuidPlanMaster": "ea4df1ac33b247f4b8ee0d192b505422", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H5-8,T9", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 9, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "d7cf8a9de2f4444796605b24db235fe1", - "uuidPlanMaster": "ea4df1ac33b247f4b8ee0d192b505422", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1-8,T2", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "824236638c0b4fbb9c10ba1eb6260fdb", - "uuidPlanMaster": "ea4df1ac33b247f4b8ee0d192b505422", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H1-8,T16", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 16, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "55c064a75fe546849807ad91ad082219", - "uuidPlanMaster": "4b182a84084740c2838573c42db25472", - "Axis": "Left", - "ActOn": "Load", - "Place": "H12-8,T1", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 12, - "HoleCollective": "89", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "47ffeb695eb1472a9c160a1573ca1145", - "uuidPlanMaster": "4b182a84084740c2838573c42db25472", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H12-8,T9", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 9, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 12, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "c799a488f47741a2a5f80a56a764f489", - "uuidPlanMaster": "4b182a84084740c2838573c42db25472", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1-8,T9", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 9, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "14d245bb87974d58977548e6168fe8f6", - "uuidPlanMaster": "4b182a84084740c2838573c42db25472", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H1-8,T16", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 16, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "62b6a5a15f1549bfbbd35049f736468c", - "uuidPlanMaster": "80b129d227254b08ad0209635728ef07", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1-8,T1", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "d41d4500e98d458c9ea1e4c1e9d9e810", - "uuidPlanMaster": "80b129d227254b08ad0209635728ef07", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H5-8,T9", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 9, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "967b7e828a1447c7a355cb38dfabf762", - "uuidPlanMaster": "80b129d227254b08ad0209635728ef07", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1-8,T2", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "981276759f6c450fb2e0039246f7c121", - "uuidPlanMaster": "80b129d227254b08ad0209635728ef07", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H1-8,T16", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 16, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "a0e3f6692969423891926e8826032ee3", - "uuidPlanMaster": "82aa0d68ab63473ea51a063032bcbf3f", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1-8,T1", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "865a51e33bfa45cb8862ab38a46f1f4d", - "uuidPlanMaster": "82aa0d68ab63473ea51a063032bcbf3f", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H12-8,T9", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 9, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 12, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "08a98355408e498fbe5435c8481a965b", - "uuidPlanMaster": "82aa0d68ab63473ea51a063032bcbf3f", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1-8,T2", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "913d3044af8a4b999b844948ec20e10d", - "uuidPlanMaster": "82aa0d68ab63473ea51a063032bcbf3f", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H1-8,T16", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 16, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "5684c98bdbac4712b6929febb09b11ed", - "uuidPlanMaster": "afdd487efe9643088087b18e120d2b0c", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1-8,T1", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "78ac18f7979749f0b83ba922435e4ef4", - "uuidPlanMaster": "afdd487efe9643088087b18e120d2b0c", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H5-8,T9", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 9, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "fb6d8daba57e4d77872c0c5873986227", - "uuidPlanMaster": "afdd487efe9643088087b18e120d2b0c", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1-8,T2", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 0, - "HoleRow": 4, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "9729809e40b24538bf3085d6b2ca2b60", - "uuidPlanMaster": "afdd487efe9643088087b18e120d2b0c", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H1-8,T16", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 16, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "8da87331fa9740e29f664553b84925ed", - "uuidPlanMaster": "7e91bf286d264ae48d1b3a2e0a2ba564", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1-8,T5", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 5, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 1, - "HoleCollective": "8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "798da4aba6064c52b6c7dfbee2a143fd", - "uuidPlanMaster": "7e91bf286d264ae48d1b3a2e0a2ba564", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H1-8,T9", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 9, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "de36fb38039943bfac0ea20ccd64957f", - "uuidPlanMaster": "7e91bf286d264ae48d1b3a2e0a2ba564", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H4-8,T9", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 9, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 4, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "8f233a85db5044c7a674fcaa7e9eba10", - "uuidPlanMaster": "7e91bf286d264ae48d1b3a2e0a2ba564", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H1-8,T16", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 16, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "575982852c1b4bef811e65995d9eb7e1", - "uuidPlanMaster": "841aaa472624480db57cbc9f43b5605a", - "Axis": "Left", - "ActOn": "Load", - "Place": "H12-8,T5", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 5, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 12, - "HoleCollective": "96", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "fa7cb6396d1349c2aaf0fd6075e736c4", - "uuidPlanMaster": "841aaa472624480db57cbc9f43b5605a", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H12-8,T9", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 9, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 12, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "2084f92c12f74227acd2b3eca9878ce9", - "uuidPlanMaster": "841aaa472624480db57cbc9f43b5605a", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H11-8,T9", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 9, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 11, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "e2ed75bf584b4d188478f20d0d63f4ba", - "uuidPlanMaster": "841aaa472624480db57cbc9f43b5605a", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H1-8,T16", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 16, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "791ab047d96240b4975458f43c6b3bbd", - "uuidPlanMaster": "2ac7f86b287345d9ac9d723e341dc0cb", - "Axis": "Left", - "ActOn": "Load", - "Place": "H10-8,T1", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 10, - "HoleCollective": "73", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "2260bc99ab5b49e7b791477a9f51fe1e", - "uuidPlanMaster": "2ac7f86b287345d9ac9d723e341dc0cb", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H1-8,T9", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 9, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "adf324501dcc4763969ef8ac6a34ebc0", - "uuidPlanMaster": "2ac7f86b287345d9ac9d723e341dc0cb", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H2-8,T9", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 9, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 2, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "002cc0b4f1f246418524822462aecbd1", - "uuidPlanMaster": "2ac7f86b287345d9ac9d723e341dc0cb", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H1-8,T16", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 16, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "eea55a1d7c4042f19431db468bd5439a", - "uuidPlanMaster": "7f87a175c45d4889a841259e4e6c9c33", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1-8,T5", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 5, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "bf97df2ed1c741a2b677e0a1e0cbea46", - "uuidPlanMaster": "7f87a175c45d4889a841259e4e6c9c33", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H6-8,T9", - "Dosage": 200, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 9, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 6, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "ca4a350334d04bb09bf8ada69cb2bba9", - "uuidPlanMaster": "7f87a175c45d4889a841259e4e6c9c33", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H7-8,T9", - "Dosage": 200, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 9, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 7, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "1b4b440c303449989152c45ad120e2a3", - "uuidPlanMaster": "7f87a175c45d4889a841259e4e6c9c33", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H1-8,T16", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 16, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "09b46f6df38e4e21b2afbe23b52c68c1", - "uuidPlanMaster": "c07fe45794614cddb9bd9ca4a5322108", - "Axis": "Left", - "ActOn": "Load", - "Place": "H12-8,T1", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 1, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 12, - "HoleCollective": "96", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "51511bd345244c388d74f3119d4a5527", - "uuidPlanMaster": "c07fe45794614cddb9bd9ca4a5322108", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H1-8,T9", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 9, - "IsFullPage": 0, - "HoleRow": 6, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "1d8d51e5f3ed429a9039fe8cbdc2ba94", - "uuidPlanMaster": "c07fe45794614cddb9bd9ca4a5322108", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H2-8,T9", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 9, - "IsFullPage": 0, - "HoleRow": 6, - "HoleColum": 2, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "52e24b5f2c084428873cd4b948bfc4d9", - "uuidPlanMaster": "c07fe45794614cddb9bd9ca4a5322108", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H1-8,T16", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 16, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "47dc98f88be14d83b9d17a0b51d313e4", - "uuidPlanMaster": "ffe64ff91db64c3a9569c87543589297", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1-8,T1", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "b627e5c28a564ddbb6e1c41b5619d0f7", - "uuidPlanMaster": "ffe64ff91db64c3a9569c87543589297", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H5-8,T9", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 9, - "IsFullPage": 0, - "HoleRow": 2, - "HoleColum": 5, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "075b7fa118e245ce896608677cdb61d0", - "uuidPlanMaster": "ffe64ff91db64c3a9569c87543589297", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H1-8,T2", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 2, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "dc549e74ca274acfb525f99a95176ece", - "uuidPlanMaster": "ffe64ff91db64c3a9569c87543589297", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H1-8,T16", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 16, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "3eff733a4f984d32a87ad838b2bd0104", - "uuidPlanMaster": "b5dcf96e580e4663b09b4a3253583695", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1-8,T1", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 1, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 1, - "HoleCollective": "8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "02479e61addc4ffaaedaaa5bce2ae805", - "uuidPlanMaster": "b5dcf96e580e4663b09b4a3253583695", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H1-8,T9", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 9, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "10c1680f6a1041e08a4b18db4f039d92", - "uuidPlanMaster": "b5dcf96e580e4663b09b4a3253583695", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H3-8,T9", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 9, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "af02380cb8544adf94121b6da0eee6f4", - "uuidPlanMaster": "b5dcf96e580e4663b09b4a3253583695", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H1-8,T16", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 16, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "d68d4b20ebc84aa5b8544d98a77ba260", - "uuidPlanMaster": "ac533ce9f4dc45f2b5ac9625a8c7a232", - "Axis": "Left", - "ActOn": "Load", - "Place": "H12-8,T1", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 1, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 12, - "HoleCollective": "96", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "62784960875e410f9d04fe669c3b6e35", - "uuidPlanMaster": "ac533ce9f4dc45f2b5ac9625a8c7a232", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H12-8,T9", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 9, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 12, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "740c39e89db4445db0a3cce836022eed", - "uuidPlanMaster": "ac533ce9f4dc45f2b5ac9625a8c7a232", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H11-8,T9", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 9, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 11, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "44ae777d61b34d37baf875d71cb1801c", - "uuidPlanMaster": "ac533ce9f4dc45f2b5ac9625a8c7a232", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H1-8,T16", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 16, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "54e637871cd5435e884b87d6ce2e6d90", - "uuidPlanMaster": "08928a3c72404949b958868a4e6c77c3", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1-8,T1", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 1, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 1, - "HoleCollective": "8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "ddf852207b2a452684974eb5eca5d83b", - "uuidPlanMaster": "08928a3c72404949b958868a4e6c77c3", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H1-8,T9", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 9, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "14f804ec06384d31a78ae52001bb6fef", - "uuidPlanMaster": "08928a3c72404949b958868a4e6c77c3", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H4-8,T9", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 9, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 4, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "cceda7b449ce499fb3635304ae8deff9", - "uuidPlanMaster": "08928a3c72404949b958868a4e6c77c3", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H1-8,T16", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 16, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "bbe2e6723778499791f07d46c322b498", - "uuidPlanMaster": "1edb7af6aab6481d9920693a7e56b17b", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1-8,T1", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 1, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 1, - "HoleCollective": "8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "a59b749350f24fb9a54579655b9b484b", - "uuidPlanMaster": "1edb7af6aab6481d9920693a7e56b17b", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H1-8,T9", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 9, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "36d64632a72d40d4bada4976ffb189fe", - "uuidPlanMaster": "1edb7af6aab6481d9920693a7e56b17b", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H3-8,T9", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 9, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "dd0d434e9918415aa8667783d0159ed3", - "uuidPlanMaster": "1edb7af6aab6481d9920693a7e56b17b", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H1-8,T16", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 16, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "c90bddd63f8c4cf0b258e8f78f073391", - "uuidPlanMaster": "563257b41bd343d4b32edeef8ade22c0", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1-8,T1", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 1, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 1, - "HoleCollective": "8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "8a155e0a27884067b41b6afb5a231b4c", - "uuidPlanMaster": "563257b41bd343d4b32edeef8ade22c0", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H1-8,T9", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 9, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "0da7704697ce4af58f86fac8596cc081", - "uuidPlanMaster": "563257b41bd343d4b32edeef8ade22c0", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H3-8,T9", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 9, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "71273402e6e1445e8d8a41868ed10ed7", - "uuidPlanMaster": "563257b41bd343d4b32edeef8ade22c0", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H1-8,T16", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 16, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "c7b05c72dae943eba7b05aa1562a57bb", - "uuidPlanMaster": "de48aaab0c6c4d8b94c8279c221f6328", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1-8,T1", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 1, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 1, - "HoleCollective": "8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "32e7e7f3589e4025b8451b9552929def", - "uuidPlanMaster": "de48aaab0c6c4d8b94c8279c221f6328", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H1-8,T9", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 9, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "6509997c86d2436f9bea30eedbde07b3", - "uuidPlanMaster": "de48aaab0c6c4d8b94c8279c221f6328", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H3-8,T9", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 9, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "e0e4aad408f54641b3f0753f9093f204", - "uuidPlanMaster": "de48aaab0c6c4d8b94c8279c221f6328", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H1-8,T16", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 16, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "875949a12c264b5cb5131914ea412969", - "uuidPlanMaster": "6d5e1a5fd53342549483206f79838bed", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1-8,T1", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 1, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 1, - "HoleCollective": "8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "fbbe8d54f60d446f9db783f26c174586", - "uuidPlanMaster": "6d5e1a5fd53342549483206f79838bed", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H1-8,T9", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 9, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "f22ded6b4cdd4d0586ae368567029e56", - "uuidPlanMaster": "6d5e1a5fd53342549483206f79838bed", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H3-8,T9", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 9, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "8db1e9cee04f40e2878187057280a483", - "uuidPlanMaster": "6d5e1a5fd53342549483206f79838bed", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H1-8,T16", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 16, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "2f20b990a5824144a6eb4ae89d7f43f5", - "uuidPlanMaster": "c5e47bf1bb7e4b8ca4c375cea9c08d21", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1-8,T1", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 1, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 1, - "HoleCollective": "8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "1a462191a4444d539b1fad81cd5444b3", - "uuidPlanMaster": "c5e47bf1bb7e4b8ca4c375cea9c08d21", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H1-8,T9", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 9, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "21ce652b0230428c916ce2bbb4703e1c", - "uuidPlanMaster": "c5e47bf1bb7e4b8ca4c375cea9c08d21", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H3-8,T9", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 9, - "IsFullPage": 0, - "HoleRow": 8, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "2dcd3c6e78564e2ea09030b3dbee5115", - "uuidPlanMaster": "c5e47bf1bb7e4b8ca4c375cea9c08d21", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H1-8,T16", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 16, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "4d866ede0e9046c5ba9484a7fe72e003", - "uuidPlanMaster": "95f18085c1a24a92ae58779190662342", - "Axis": "Right", - "ActOn": "Load", - "Place": "H1-8,T1", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "fa4f21df3e004a03bc609ac393ccca52", - "uuidPlanMaster": "95f18085c1a24a92ae58779190662342", - "Axis": "Right", - "ActOn": "Imbibing", - "Place": "H1-8,T9", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 9, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "a92ced6071da45219092772b64dfb316", - "uuidPlanMaster": "95f18085c1a24a92ae58779190662342", - "Axis": "Right", - "ActOn": "Tapping", - "Place": "H3-8,T9", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 9, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "ef7b51b839f843c18f3a5f55d837a6f3", - "uuidPlanMaster": "95f18085c1a24a92ae58779190662342", - "Axis": "Right", - "ActOn": "UnLoad", - "Place": "H1-8,T16", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 16, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "4b7a6b8e8afd4e3aba03b6f4ceb97939", - "uuidPlanMaster": "f3715c962aac4332bffe1ea982fcce6e", - "Axis": "Left", - "ActOn": "Load", - "Place": "H1-8,T1", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 1, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "1d4c4f35a06044eab97f4532c984b8da", - "uuidPlanMaster": "f3715c962aac4332bffe1ea982fcce6e", - "Axis": "Left", - "ActOn": "Imbibing", - "Place": "H1-8,T9", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 9, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 1, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "66b799efeb394ed984c119f4c6cf1000", - "uuidPlanMaster": "f3715c962aac4332bffe1ea982fcce6e", - "Axis": "Left", - "ActOn": "Tapping", - "Place": "H3-8,T9", - "Dosage": 10, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 9, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - }, - { - "uuid": "cf41a70bb20e4b71b6aa2063cac4f6e1", - "uuidPlanMaster": "f3715c962aac4332bffe1ea982fcce6e", - "Axis": "Left", - "ActOn": "UnLoad", - "Place": "H1-8,T16", - "Dosage": 0, - "AssistA": "", - "AssistB": "", - "AssistC": "", - "AssistD": "", - "AssistE": "", - "Number": 16, - "IsFullPage": 0, - "HoleRow": 1, - "HoleColum": 3, - "HoleCollective": "1,2,3,4,5,6,7,8", - "MixCount": 0, - "HeightFromBottom": 0, - "AdapterCode": null, - "AdapterName": null, - "ConsumablesCode": null, - "ConsumablesName": null, - "IsWallContact": null, - "LiquidDispensingMethod": 0, - "Time": null, - "Module": 0, - "Temperature": null, - "Amplitude": null, - "Height": null, - "IsWait": 0, - "ImbSpeed": 0 - } -] \ No newline at end of file diff --git a/unilabos/devices/liquid_handling/prcxi/json_output/base_plan_master.json b/unilabos/devices/liquid_handling/prcxi/json_output/base_plan_master.json deleted file mode 100644 index d46789f7..00000000 --- a/unilabos/devices/liquid_handling/prcxi/json_output/base_plan_master.json +++ /dev/null @@ -1,3682 +0,0 @@ -[ - { - "uuid": "87ea11eeb24b43648ce294654b561fe7", - "PlanName": "2341", - "PlanCode": "2980eb", - "PlanTarget": "", - "Annotate": "", - "CreateName": "", - "CreateDate": "2023-05-15 18:24:00.8445073", - "MatrixId": "34ba3f02-6fcd-48e6-bb8e-3b0ce1d54ed5" - }, - { - "uuid": "0a977d6ebc4244739793b0b6f8b3f815", - "PlanName": "384测试方案(300模块)", - "PlanCode": "9336ee", - "PlanTarget": "", - "Annotate": "", - "CreateName": "", - "CreateDate": "2023-06-13 10:34:52.5310959", - "MatrixId": "74ed84ea-0b5d-4307-a966-ceb83fcaefe7" - }, - { - "uuid": "aff2cd213ad34072b370f44acb5ab658", - "PlanName": "96孔吸300方案(单放)", - "PlanCode": "9932fc", - "PlanTarget": "测试用", - "Annotate": "", - "CreateName": "", - "CreateDate": "2023-06-13 09:57:38.422353", - "MatrixId": "bacd78be-b86d-49d6-973a-dd522834e4c4" - }, - { - "uuid": "97816d94f99a48409379013d19f0ab66", - "PlanName": "384测试方案(50模块)", - "PlanCode": "3964de", - "PlanTarget": "", - "Annotate": "", - "CreateName": "", - "CreateDate": "2023-06-13 10:32:22.8918817", - "MatrixId": "74ed84ea-0b5d-4307-a966-ceb83fcaefe7" - }, - { - "uuid": "c3d86e9d7eed4ddb8c32e9234da659de", - "PlanName": "96吸50方案(单放)", - "PlanCode": "6994aa", - "PlanTarget": "测试用", - "Annotate": "", - "CreateName": "", - "CreateDate": "2023-08-08 11:50:14.6850189", - "MatrixId": "bacd78be-b86d-49d6-973a-dd522834e4c4" - }, - { - "uuid": "59a97f77718d4bbba6bed1ddbf959772", - "PlanName": "test12", - "PlanCode": "8630fa", - "PlanTarget": "12通道", - "Annotate": "", - "CreateName": "", - "CreateDate": "2023-10-08 09:36:14.2536629", - "MatrixId": "517c836e-56c6-4c06-a897-7074886061bd" - }, - { - "uuid": "84d50e4cf3034aa6a3de505a92b30812", - "PlanName": "test001", - "PlanCode": "9013fe", - "PlanTarget": "", - "Annotate": "", - "CreateName": "", - "CreateDate": "2023-10-08 16:37:57.2302499", - "MatrixId": "ed9b1ceb-b879-4b8c-a246-2d4f54fbe970" - }, - { - "uuid": "d052b893c6324ae38d301a58614a5663", - "PlanName": "test01", - "PlanCode": "8524cf", - "PlanTarget": "", - "Annotate": "", - "CreateName": "", - "CreateDate": "2023-10-09 11:00:21.4973895", - "MatrixId": "bacd78be-b86d-49d6-973a-dd522834e4c4" - }, - { - "uuid": "875a6eaa00e548b99318fd0be310e879", - "PlanName": "test002", - "PlanCode": "2477fe", - "PlanTarget": "", - "Annotate": "", - "CreateName": "", - "CreateDate": "2023-10-09 11:02:01.2027308", - "MatrixId": "7374dc89-d425-42aa-b252-1b1338d3c2f2" - }, - { - "uuid": "705edabbcbd645d0925e4e581643247c", - "PlanName": "test003", - "PlanCode": "4994cc", - "PlanTarget": "", - "Annotate": "", - "CreateName": "", - "CreateDate": "2023-10-09 11:41:04.1715458", - "MatrixId": "4c126841-5c37-49c7-b4e8-539983bc9cc4" - }, - { - "uuid": "6c58136d7de54a6abb7b51e6327eacac", - "PlanName": "test04", - "PlanCode": "9704dd", - "PlanTarget": "", - "Annotate": "", - "CreateName": "", - "CreateDate": "2023-10-09 11:51:59.1752071", - "MatrixId": "4c126841-5c37-49c7-b4e8-539983bc9cc4" - }, - { - "uuid": "208f00a911b846d9922b2e72bdda978c", - "PlanName": "96版位 50ul量程", - "PlanCode": "7595be", - "PlanTarget": "213213", - "Annotate": "", - "CreateName": "", - "CreateDate": "2023-10-18 19:12:17.4641981", - "MatrixId": "b3da2b21-875b-4ae6-8077-ec951730201b" - }, - { - "uuid": "40bd0ca25ffb4be6b246353db6ebefc9", - "PlanName": "96版位 300ul量程", - "PlanCode": "7421fc", - "PlanTarget": "", - "Annotate": "", - "CreateName": "", - "CreateDate": "2023-10-14 14:47:03.8105699", - "MatrixId": "b3da2b21-875b-4ae6-8077-ec951730201b" - }, - { - "uuid": "30b838bb7d124ec885b506df29ee7860", - "PlanName": "300版位 50ul量程", - "PlanCode": "6364cc", - "PlanTarget": "", - "Annotate": "", - "CreateName": "", - "CreateDate": "2023-10-14 14:48:05.2235254", - "MatrixId": "f8c70333-b717-4ca0-9306-c40fd5f156fb" - }, - { - "uuid": "e53c591c86334c6f92d3b1afa107bcf8", - "PlanName": "384版位 300ul量程", - "PlanCode": "4029be", - "PlanTarget": "", - "Annotate": "", - "CreateName": "", - "CreateDate": "2023-10-14 14:47:48.9478679", - "MatrixId": "f8c70333-b717-4ca0-9306-c40fd5f156fb" - }, - { - "uuid": "1d26d1ab45c6431990ba0e00cc1f78d2", - "PlanName": "96版位梯度稀释 50ul量程", - "PlanCode": "3502cf", - "PlanTarget": "", - "Annotate": "", - "CreateName": "", - "CreateDate": "2023-10-14 14:48:12.8676989", - "MatrixId": "916bbd00-e66c-4237-9843-e049b70b740a" - }, - { - "uuid": "7a0383b4fbb543339723513228365451", - "PlanName": "96版位梯度稀释 300ul量程", - "PlanCode": "9345fe", - "PlanTarget": "", - "Annotate": "", - "CreateName": "", - "CreateDate": "2023-10-14 14:50:02.0250566", - "MatrixId": "916bbd00-e66c-4237-9843-e049b70b740a" - }, - { - "uuid": "3603f89f4e0945f68353a33e8017ba6e", - "PlanName": "测试111", - "PlanCode": "8056eb", - "PlanTarget": "", - "Annotate": "", - "CreateName": "", - "CreateDate": "2024-01-16 09:29:12.1441631", - "MatrixId": "b3da2b21-875b-4ae6-8077-ec951730201b" - }, - { - "uuid": "b44be8260740460598816c40f13fd6b4", - "PlanName": "测试12", - "PlanCode": "8272fb", - "PlanTarget": "", - "Annotate": "", - "CreateName": "", - "CreateDate": "2024-01-16 10:40:54.2543702", - "MatrixId": "b3da2b21-875b-4ae6-8077-ec951730201b" - }, - { - "uuid": "f189a50122d54a568f3d39dc1f996167", - "PlanName": "0.5", - "PlanCode": "2093ec", - "PlanTarget": "", - "Annotate": "", - "CreateName": "", - "CreateDate": "2024-01-16 13:06:37.8280696", - "MatrixId": "b3da2b21-875b-4ae6-8077-ec951730201b" - }, - { - "uuid": "41d2ebc5ab5b4b2da3e203937c5cbe70", - "PlanName": "6", - "PlanCode": "5586de", - "PlanTarget": "", - "Annotate": "", - "CreateName": "", - "CreateDate": "2024-01-16 15:21:03.4440875", - "MatrixId": "b3da2b21-875b-4ae6-8077-ec951730201b" - }, - { - "uuid": "49ec03499aa646b9b8069a783dbeca1c", - "PlanName": "7", - "PlanCode": "1162bc", - "PlanTarget": "", - "Annotate": "", - "CreateName": "", - "CreateDate": "2024-01-16 15:31:33.7359724", - "MatrixId": "b3da2b21-875b-4ae6-8077-ec951730201b" - }, - { - "uuid": "a9c6d149cdf04636ac43cfb7623e4e7f", - "PlanName": "8", - "PlanCode": "7354eb", - "PlanTarget": "", - "Annotate": "", - "CreateName": "", - "CreateDate": "2024-01-16 15:39:32.2399414", - "MatrixId": "b3da2b21-875b-4ae6-8077-ec951730201b" - }, - { - "uuid": "0e3a36cabefa4f5497e35193db48b559", - "PlanName": "9", - "PlanCode": "4453ba", - "PlanTarget": "", - "Annotate": "", - "CreateName": "", - "CreateDate": "2024-01-16 15:49:31.5830134", - "MatrixId": "b3da2b21-875b-4ae6-8077-ec951730201b" - }, - { - "uuid": "6650f7df6b8944f98476da92ce81d688", - "PlanName": "12", - "PlanCode": "2145bd", - "PlanTarget": "", - "Annotate": "", - "CreateName": "", - "CreateDate": "2024-01-18 09:45:34.137906", - "MatrixId": "b3da2b21-875b-4ae6-8077-ec951730201b" - }, - { - "uuid": "d9740fea94a04c2db44b1364a336b338", - "PlanName": "250", - "PlanCode": "2601ea", - "PlanTarget": "", - "Annotate": "", - "CreateName": "", - "CreateDate": "2024-01-18 11:15:54.2583401", - "MatrixId": "b3da2b21-875b-4ae6-8077-ec951730201b" - }, - { - "uuid": "1d80c1fff5af442595c21963e6ca9fee", - "PlanName": "160", - "PlanCode": "6612ea", - "PlanTarget": "", - "Annotate": "", - "CreateName": "", - "CreateDate": "2024-01-18 11:18:59.0457638", - "MatrixId": "b3da2b21-875b-4ae6-8077-ec951730201b" - }, - { - "uuid": "d2f6e63cf1ff41a4a8d03f4444a2aeac", - "PlanName": "800", - "PlanCode": "4560bc", - "PlanTarget": "", - "Annotate": "", - "CreateName": "", - "CreateDate": "2024-01-18 13:42:35.5153947", - "MatrixId": "b3da2b21-875b-4ae6-8077-ec951730201b" - }, - { - "uuid": "f40a6f4326a346d39d5a82f6262aba47", - "PlanName": "测试12345", - "PlanCode": "3402ab", - "PlanTarget": "", - "Annotate": "", - "CreateName": "", - "CreateDate": "2024-01-18 14:37:29.8890777", - "MatrixId": "b3da2b21-875b-4ae6-8077-ec951730201b" - }, - { - "uuid": "4248035f01e943faa6d71697ed386e19", - "PlanName": "995", - "PlanCode": "2688dc", - "PlanTarget": "", - "Annotate": "", - "CreateName": "", - "CreateDate": "2024-01-18 14:39:23.5292196", - "MatrixId": "b3da2b21-875b-4ae6-8077-ec951730201b" - }, - { - "uuid": "4d97363a0a334094a1ff24494a902d02", - "PlanName": "2.。", - "PlanCode": "6527ff", - "PlanTarget": "", - "Annotate": "", - "CreateName": "", - "CreateDate": "2024-01-19 11:38:00.0672017", - "MatrixId": "b3da2b21-875b-4ae6-8077-ec951730201b" - }, - { - "uuid": "6eec360c74464769967ebefa43b7aec1", - "PlanName": "2222222", - "PlanCode": "8763ce", - "PlanTarget": "", - "Annotate": "", - "CreateName": "", - "CreateDate": "2024-01-19 11:40:42.7038484", - "MatrixId": "b3da2b21-875b-4ae6-8077-ec951730201b" - }, - { - "uuid": "986049c83b054171a1b34dd49b3ca9cf", - "PlanName": "9ul", - "PlanCode": "1945fd", - "PlanTarget": "", - "Annotate": "", - "CreateName": "", - "CreateDate": "2024-01-19 13:33:06.6556398", - "MatrixId": "b3da2b21-875b-4ae6-8077-ec951730201b" - }, - { - "uuid": "462eed73962142c2bd3b8fe717caceb6", - "PlanName": "8ul", - "PlanCode": "6912fc", - "PlanTarget": "", - "Annotate": "", - "CreateName": "", - "CreateDate": "2024-01-19 15:16:17.4254316", - "MatrixId": "b3da2b21-875b-4ae6-8077-ec951730201b" - }, - { - "uuid": "b2f0c7ab462f4cf1bae56ee59a49a253", - "PlanName": "11.", - "PlanCode": "6190ba", - "PlanTarget": "", - "Annotate": "", - "CreateName": "", - "CreateDate": "2024-01-19 15:21:57.6729366", - "MatrixId": "b3da2b21-875b-4ae6-8077-ec951730201b" - }, - { - "uuid": "b9768a1d91444d4a86b7a013467bee95", - "PlanName": "8ulll", - "PlanCode": "6899be", - "PlanTarget": "", - "Annotate": "", - "CreateName": "", - "CreateDate": "2024-01-19 15:29:03.2029069", - "MatrixId": "b3da2b21-875b-4ae6-8077-ec951730201b" - }, - { - "uuid": "98621898cd514bc9a1ac0c92362284f4", - "PlanName": "7u", - "PlanCode": "7651fe", - "PlanTarget": "", - "Annotate": "", - "CreateName": "", - "CreateDate": "2024-01-19 15:57:16.4898686", - "MatrixId": "b3da2b21-875b-4ae6-8077-ec951730201b" - }, - { - "uuid": "4d03142fd86844db8e23c19061b3d505", - "PlanName": "55555", - "PlanCode": "7963fe", - "PlanTarget": "", - "Annotate": "", - "CreateName": "", - "CreateDate": "2024-01-19 16:23:37.7271107", - "MatrixId": "b3da2b21-875b-4ae6-8077-ec951730201b" - }, - { - "uuid": "c78c3f38a59748c3aef949405e434b05", - "PlanName": "44443", - "PlanCode": "4564dd", - "PlanTarget": "", - "Annotate": "", - "CreateName": "", - "CreateDate": "2024-01-19 16:29:26.6765074", - "MatrixId": "b3da2b21-875b-4ae6-8077-ec951730201b" - }, - { - "uuid": "0fc4ffd86091451db26162af4f7b235e", - "PlanName": "u", - "PlanCode": "9246de", - "PlanTarget": "", - "Annotate": "", - "CreateName": "", - "CreateDate": "2024-01-19 16:34:15.4217796", - "MatrixId": "b3da2b21-875b-4ae6-8077-ec951730201b" - }, - { - "uuid": "a08748982b934daab8752f55796e1b0c", - "PlanName": "666y", - "PlanCode": "5492ce", - "PlanTarget": "", - "Annotate": "", - "CreateName": "", - "CreateDate": "2024-01-19 16:38:55.6092122", - "MatrixId": "b3da2b21-875b-4ae6-8077-ec951730201b" - }, - { - "uuid": "2317611bdb614e45b61a5118e58e3a2a", - "PlanName": "8ull、", - "PlanCode": "4641de", - "PlanTarget": "", - "Annotate": "", - "CreateName": "", - "CreateDate": "2024-01-19 16:46:26.6184295", - "MatrixId": "b3da2b21-875b-4ae6-8077-ec951730201b" - }, - { - "uuid": "62cb45ac3af64a46aa6d450ba56963e7", - "PlanName": "33333", - "PlanCode": "1270aa", - "PlanTarget": "", - "Annotate": "", - "CreateName": "", - "CreateDate": "2024-01-19 16:49:19.6115492", - "MatrixId": "b3da2b21-875b-4ae6-8077-ec951730201b" - }, - { - "uuid": "321f717a3a2640a3bfc9515aee7d1052", - "PlanName": "999", - "PlanCode": "7597ed", - "PlanTarget": "", - "Annotate": "", - "CreateName": "", - "CreateDate": "2024-01-19 16:58:22.6149002", - "MatrixId": "b3da2b21-875b-4ae6-8077-ec951730201b" - }, - { - "uuid": "6c3246ac0f974a6abc24c83bf45e1cf4", - "PlanName": "QPCR", - "PlanCode": "7297ad", - "PlanTarget": "", - "Annotate": "", - "CreateName": "", - "CreateDate": "2024-02-19 13:03:44.3456134", - "MatrixId": "f02830f3-ed67-49fb-9865-c31828ba3a48" - }, - { - "uuid": "1d307a2c095b461abeec6e8521565ad3", - "PlanName": "绝对定量", - "PlanCode": "8540af", - "PlanTarget": "", - "Annotate": "", - "CreateName": "", - "CreateDate": "2024-02-19 13:35:14.2243691", - "MatrixId": "739ddf78-e04c-4d43-9293-c35d31f36f51" - }, - { - "uuid": "bbd6dc765867466ca2a415525f5bdbdd", - "PlanName": "血凝", - "PlanCode": "6513ee", - "PlanTarget": "", - "Annotate": "", - "CreateName": "", - "CreateDate": "2024-02-20 16:14:25.0364174", - "MatrixId": "20e70dcb-63f6-4bac-82e3-29e88eb6a7ab" - }, - { - "uuid": "f7282ecbfee44e91b05cefbc1beac1ae", - "PlanName": "血凝抑制", - "PlanCode": "1431ba", - "PlanTarget": "", - "Annotate": "", - "CreateName": "", - "CreateDate": "2024-02-21 10:00:05.8661038", - "MatrixId": "1c948beb-4c32-494f-b226-14bb84b3e144" - }, - { - "uuid": "196e0d757c574020932b64b69e88fac9", - "PlanName": "测试杀杀杀", - "PlanCode": "9833df", - "PlanTarget": "", - "Annotate": "", - "CreateName": "", - "CreateDate": "2024-02-21 10:54:19.3136491", - "MatrixId": "3667ead7-9044-46ad-b73e-655b57c8c6b9" - }, - { - "uuid": "1c89eba44fa44141ba69894fe8f9da26", - "PlanName": "酶标", - "PlanCode": "9421dd", - "PlanTarget": "", - "Annotate": "", - "CreateName": "", - "CreateDate": "2024-05-11 13:49:34.2094596", - "MatrixId": "5e51626a-97d2-4053-81fb-b071d41c961a" - }, - { - "uuid": "de7f702f473a41449ac2d974bef4f560", - "PlanName": "111111", - "PlanCode": "1423dd", - "PlanTarget": "", - "Annotate": "", - "CreateName": "", - "CreateDate": "2024-06-03 16:40:10.4952865", - "MatrixId": "dcd47f75-925c-4d74-bfbb-79bd9126ee87" - }, - { - "uuid": "24b0d894891841c296ccbc8740072304", - "PlanName": "666", - "PlanCode": "6038cb", - "PlanTarget": "", - "Annotate": "", - "CreateName": "", - "CreateDate": "2024-06-04 17:05:19.3703456", - "MatrixId": "e68dcd50-e4de-49f1-bf95-99089ad3328d" - }, - { - "uuid": "07dad93828834d7c869782b151aac8af", - "PlanName": "全版", - "PlanCode": "4166fc", - "PlanTarget": "", - "Annotate": "", - "CreateName": "", - "CreateDate": "2024-06-04 17:15:47.1173723", - "MatrixId": "e68dcd50-e4de-49f1-bf95-99089ad3328d" - }, - { - "uuid": "60574c850876451aa983db8838cd5b36", - "PlanName": "96测试", - "PlanCode": "7032ea", - "PlanTarget": "", - "Annotate": "", - "CreateName": "", - "CreateDate": "2024-08-20 10:57:18.4066493", - "MatrixId": "6cb5ac54-7bd1-44b4-8d6c-0887f413c01a" - }, - { - "uuid": "aedd8f3fb8bb49a998b75b029d5f2627", - "PlanName": "E测试", - "PlanCode": "7787aa", - "PlanTarget": "", - "Annotate": "", - "CreateName": "", - "CreateDate": "2024-08-20 15:05:07.4304147", - "MatrixId": "e12ee101-a085-4861-b77d-36dbd55c94e8" - }, - { - "uuid": "6babe98a8de144a7a30b56d62cdcd6c7", - "PlanName": "整版12道", - "PlanCode": "4303ab", - "PlanTarget": "", - "Annotate": "", - "CreateName": "", - "CreateDate": "2024-08-20 15:14:51.8094432", - "MatrixId": "565c0f62-f292-4780-bbea-45b596279dbc" - }, - { - "uuid": "4a1c49a1bc704765bf7ac07fcddf4f75", - "PlanName": "装载测", - "PlanCode": "8800cc", - "PlanTarget": "", - "Annotate": "", - "CreateName": "", - "CreateDate": "2024-08-20 15:25:23.4291602", - "MatrixId": "565c0f62-f292-4780-bbea-45b596279dbc" - }, - { - "uuid": "b6ffa9147cd74c0eb0355ca035f22792", - "PlanName": "测11111", - "PlanCode": "8827dc", - "PlanTarget": "", - "Annotate": "", - "CreateName": "", - "CreateDate": "2024-08-20 15:55:03.5265109", - "MatrixId": "565c0f62-f292-4780-bbea-45b596279dbc" - }, - { - "uuid": "e080335e5302480da0bc85fd467d386c", - "PlanName": "1-11", - "PlanCode": "2172bb", - "PlanTarget": "", - "Annotate": "", - "CreateName": "", - "CreateDate": "2025-03-13 10:32:57.2434018", - "MatrixId": "f635aef2-20a3-4e04-895d-18d1aabb3c13" - }, - { - "uuid": "1fbf38d5c3e945f18cc38fdb36ea9634", - "PlanName": "1-12", - "PlanCode": "2149ef", - "PlanTarget": "", - "Annotate": "", - "CreateName": "", - "CreateDate": "2025-03-13 10:43:18.6493907", - "MatrixId": "f635aef2-20a3-4e04-895d-18d1aabb3c13" - }, - { - "uuid": "26cb682fdeef45ea9cfb59183198b5ab", - "PlanName": "测试", - "PlanCode": "9267dc", - "PlanTarget": "", - "Annotate": "", - "CreateName": "", - "CreateDate": "2025-03-13 11:18:51.8097344", - "MatrixId": "f635aef2-20a3-4e04-895d-18d1aabb3c13" - }, - { - "uuid": "37b6b8f2762b46ad8288557d802d3cc0", - "PlanName": "测试333", - "PlanCode": "7424ef", - "PlanTarget": "", - "Annotate": "", - "CreateName": "", - "CreateDate": "2025-03-13 14:52:39.2111266", - "MatrixId": "f635aef2-20a3-4e04-895d-18d1aabb3c13" - }, - { - "uuid": "c04009dd127e444fbd46fb210ad7afaa", - "PlanName": "测试222", - "PlanCode": "2198ce", - "PlanTarget": "", - "Annotate": "", - "CreateName": "", - "CreateDate": "2025-03-13 15:21:14.5265474", - "MatrixId": "f635aef2-20a3-4e04-895d-18d1aabb3c13" - }, - { - "uuid": "866f1d90aa5749609d20fc2cec991072", - "PlanName": "2143", - "PlanCode": "2312cc", - "PlanTarget": "", - "Annotate": "", - "CreateName": "", - "CreateDate": "2025-03-14 11:11:09.0560782", - "MatrixId": "e47b0e93-f856-4045-af02-7de413b86f60" - }, - { - "uuid": "d0cd9ffb87a54eca9d8d2d1d86df113f", - "PlanName": "全实验", - "PlanCode": "8886af", - "PlanTarget": "", - "Annotate": "", - "CreateName": "", - "CreateDate": "2025-04-22 16:21:54.0060964", - "MatrixId": "26ced8b8-d920-4ded-bd18-512c6ee946c7" - }, - { - "uuid": "42c377c363dd412f9784edf8e5d2991e", - "PlanName": "磁力", - "PlanCode": "6247fb", - "PlanTarget": "", - "Annotate": "", - "CreateName": "", - "CreateDate": "2025-05-15 13:54:33.0452054", - "MatrixId": "26ced8b8-d920-4ded-bd18-512c6ee946c7" - }, - { - "uuid": "baf122cd16974c61953423f3ada43846", - "PlanName": "震荡", - "PlanCode": "4729ab", - "PlanTarget": "", - "Annotate": "", - "CreateName": "", - "CreateDate": "2025-05-15 15:36:40.7981687", - "MatrixId": "26ced8b8-d920-4ded-bd18-512c6ee946c7" - }, - { - "uuid": "e0749e1a621c4038b105f21d24681f46", - "PlanName": "2200转速", - "PlanCode": "8997fa", - "PlanTarget": "", - "Annotate": "", - "CreateName": "", - "CreateDate": "2025-05-21 16:43:48.4417727", - "MatrixId": "82060bef-8907-4fd3-af43-99823831493e" - }, - { - "uuid": "4b7ae8ae283f493fab130a31fdb27fd7", - "PlanName": "装卸", - "PlanCode": "5734ab", - "PlanTarget": "", - "Annotate": "", - "CreateName": "", - "CreateDate": "2025-05-22 15:13:00.7932135", - "MatrixId": "82060bef-8907-4fd3-af43-99823831493e" - }, - { - "uuid": "34cfbb4451f046aaa6c4fd02b8709b06", - "PlanName": "48核酸提取-99", - "PlanCode": "7342ea", - "PlanTarget": "", - "Annotate": "", - "CreateName": "", - "CreateDate": "2025-05-22 15:31:05.4826326", - "MatrixId": "82060bef-8907-4fd3-af43-99823831493e" - }, - { - "uuid": "eea604acde004d2a8f4e66a81d11437f", - "PlanName": "500测试", - "PlanCode": "2912bf", - "PlanTarget": "", - "Annotate": "", - "CreateName": "", - "CreateDate": "2025-05-22 15:33:19.6473564", - "MatrixId": "82060bef-8907-4fd3-af43-99823831493e" - }, - { - "uuid": "6b71404f4b414b08b12752272d16cf33", - "PlanName": "带夹爪的", - "PlanCode": "2559fe", - "PlanTarget": "", - "Annotate": "", - "CreateName": "", - "CreateDate": "2025-05-22 15:39:40.2170697", - "MatrixId": "82060bef-8907-4fd3-af43-99823831493e" - }, - { - "uuid": "50cd9dadc035421c81a627f1a48982ab", - "PlanName": "500-1不加辅助功能", - "PlanCode": "6053fd", - "PlanTarget": "", - "Annotate": "", - "CreateName": "", - "CreateDate": "2025-05-22 15:45:47.5655961", - "MatrixId": "82060bef-8907-4fd3-af43-99823831493e" - }, - { - "uuid": "0bdf535156ed4ed29eb8b64fee6e1be9", - "PlanName": "500加辅助功能", - "PlanCode": "7805dc", - "PlanTarget": "", - "Annotate": "", - "CreateName": "", - "CreateDate": "2025-05-22 15:59:58.7861444", - "MatrixId": "82060bef-8907-4fd3-af43-99823831493e" - }, - { - "uuid": "04508af82b2f4c7fa7cff02a47eb6afd", - "PlanName": "测试er", - "PlanCode": "7487ec", - "PlanTarget": "", - "Annotate": "", - "CreateName": "", - "CreateDate": "2025-05-22 16:35:19.7981882", - "MatrixId": "82060bef-8907-4fd3-af43-99823831493e" - }, - { - "uuid": "7800873e3cd740cd8f4359424176410a", - "PlanName": "测试er2", - "PlanCode": "9812cf", - "PlanTarget": "", - "Annotate": "", - "CreateName": "", - "CreateDate": "2025-05-22 16:37:36.2500665", - "MatrixId": "82060bef-8907-4fd3-af43-99823831493e" - }, - { - "uuid": "87d4dc0846f2440a8a7e60d5072f7fdc", - "PlanName": "测试er3", - "PlanCode": "6410cf", - "PlanTarget": "", - "Annotate": "", - "CreateName": "", - "CreateDate": "2025-05-22 16:43:35.940277", - "MatrixId": "82060bef-8907-4fd3-af43-99823831493e" - }, - { - "uuid": "bc8a054fa0af4196a0def15230034978", - "PlanName": "测试er4", - "PlanCode": "4469ab", - "PlanTarget": "", - "Annotate": "", - "CreateName": "", - "CreateDate": "2025-05-22 16:47:20.025443", - "MatrixId": "82060bef-8907-4fd3-af43-99823831493e" - }, - { - "uuid": "9776ccb0c94e44a6804519ddabd4375c", - "PlanName": "测试er5", - "PlanCode": "9474cb", - "PlanTarget": "", - "Annotate": "", - "CreateName": "", - "CreateDate": "2025-05-22 16:52:38.4353449", - "MatrixId": "82060bef-8907-4fd3-af43-99823831493e" - }, - { - "uuid": "dc6da387887b496c8393d7285f78d17a", - "PlanName": "er6", - "PlanCode": "1131ea", - "PlanTarget": "", - "Annotate": "", - "CreateName": "", - "CreateDate": "2025-05-22 17:07:16.6415467", - "MatrixId": "82060bef-8907-4fd3-af43-99823831493e" - }, - { - "uuid": "6e961f74f401470daef898d0e04726eb", - "PlanName": "er7", - "PlanCode": "9299ee", - "PlanTarget": "", - "Annotate": "", - "CreateName": "", - "CreateDate": "2025-05-22 17:11:46.1587954", - "MatrixId": "82060bef-8907-4fd3-af43-99823831493e" - }, - { - "uuid": "c04eb6401d4441d98af113bb5ddb6ddd", - "PlanName": "test22", - "PlanCode": "2216eb", - "PlanTarget": "", - "Annotate": "", - "CreateName": "", - "CreateDate": "2025-05-22 17:36:51.246474", - "MatrixId": "82060bef-8907-4fd3-af43-99823831493e" - }, - { - "uuid": "fd72228925a34653b00d8578bfbd156c", - "PlanName": "test装卸", - "PlanCode": "5287ed", - "PlanTarget": "", - "Annotate": "", - "CreateName": "", - "CreateDate": "2025-05-30 15:21:59.8643377", - "MatrixId": "b2e8c5f1-cde2-4d4b-8358-d3ff496e206f" - }, - { - "uuid": "6e47614033714efebf616e56341ec2ad", - "PlanName": "y1xx", - "PlanCode": "6e47614033714efebf616e56341ec2ad", - "PlanTarget": "6e47614033714efebf616e56341ec2ad", - "Annotate": "6e47614033714efebf616e56341ec2ad", - "CreateName": "RPC", - "CreateDate": "2025-06-09 11:34:08.6597087", - "MatrixId": "967896fa-18a0-4847-9973-b537a49ac0b3" - }, - { - "uuid": "40c12adfa4d64066bdcbbf80157f85c0", - "PlanName": "test", - "PlanCode": "3318df", - "PlanTarget": "", - "Annotate": "", - "CreateName": "", - "CreateDate": "2025-06-24 16:07:28.8633371", - "MatrixId": "b2e8c5f1-cde2-4d4b-8358-d3ff496e206f" - }, - { - "uuid": "d252083869bf468180e2430560af7282", - "PlanName": "test02", - "PlanCode": "d252083869bf468180e2430560af7282", - "PlanTarget": "d252083869bf468180e2430560af7282", - "Annotate": "d252083869bf468180e2430560af7282", - "CreateName": "RPC", - "CreateDate": "2025-06-24 17:00:14.7407172", - "MatrixId": "2ac3568d-1857-4211-83dd-7fc691efb4ca" - }, - { - "uuid": "2e42809446e54e6192f722515a872c7a", - "PlanName": "水下", - "PlanCode": "7323cd", - "PlanTarget": "", - "Annotate": "", - "CreateName": "", - "CreateDate": "2025-09-02 09:26:33.6631761", - "MatrixId": "74c265e7-e99e-48f4-b741-9745983f04c4" - }, - { - "uuid": "69ce9af29c0949228cc1328e68473d3f", - "PlanName": "悬停", - "PlanCode": "2029ec", - "PlanTarget": "", - "Annotate": "", - "CreateName": "", - "CreateDate": "2025-09-02 09:27:06.648094", - "MatrixId": "74c265e7-e99e-48f4-b741-9745983f04c4" - }, - { - "uuid": "867f096308f44ad793df661d77947137", - "PlanName": "300", - "PlanCode": "3037ac", - "PlanTarget": "", - "Annotate": "", - "CreateName": "", - "CreateDate": "2025-09-02 10:23:04.1258865", - "MatrixId": "74c265e7-e99e-48f4-b741-9745983f04c4" - }, - { - "uuid": "23ca28ca034a498eac4ffa694e7d2cb9", - "PlanName": "200", - "PlanCode": "5285ef", - "PlanTarget": "", - "Annotate": "", - "CreateName": "", - "CreateDate": "2025-09-02 11:15:25.5828034", - "MatrixId": "74c265e7-e99e-48f4-b741-9745983f04c4" - }, - { - "uuid": "a8c47a98d16c471595a744bdbec7087e", - "PlanName": "100", - "PlanCode": "8911df", - "PlanTarget": "", - "Annotate": "", - "CreateName": "", - "CreateDate": "2025-09-02 11:32:20.7521367", - "MatrixId": "74c265e7-e99e-48f4-b741-9745983f04c4" - }, - { - "uuid": "cc4035451a634c8a906ac37da305fcae", - "PlanName": "50", - "PlanCode": "2159ec", - "PlanTarget": "", - "Annotate": "", - "CreateName": "", - "CreateDate": "2025-09-02 11:39:03.492238", - "MatrixId": "74c265e7-e99e-48f4-b741-9745983f04c4" - }, - { - "uuid": "6e6ff08ac8df49c7ae877266c154d2e5", - "PlanName": "10", - "PlanCode": "2843cc", - "PlanTarget": "", - "Annotate": "", - "CreateName": "", - "CreateDate": "2025-09-02 13:18:06.9324999", - "MatrixId": "74c265e7-e99e-48f4-b741-9745983f04c4" - }, - { - "uuid": "8b794b8f78ad4d69a6a3f91b2d8574c2", - "PlanName": "5", - "PlanCode": "2573ec", - "PlanTarget": "", - "Annotate": "", - "CreateName": "", - "CreateDate": "2025-09-02 13:23:02.1635283", - "MatrixId": "74c265e7-e99e-48f4-b741-9745983f04c4" - }, - { - "uuid": "78b73743917d491dbb10fe4fd7d4f308", - "PlanName": "3", - "PlanCode": "6783bc", - "PlanTarget": "", - "Annotate": "", - "CreateName": "", - "CreateDate": "2025-09-02 13:27:00.0616259", - "MatrixId": "74c265e7-e99e-48f4-b741-9745983f04c4" - }, - { - "uuid": "83eb0b519308431ea7a16be804801d4b", - "PlanName": "悬停右 ", - "PlanCode": "7141ee", - "PlanTarget": "", - "Annotate": "", - "CreateName": "", - "CreateDate": "2025-09-02 14:53:15.2716624", - "MatrixId": "af524393-812d-402d-b34e-dbc93b4596b9" - }, - { - "uuid": "5bb75f15171b4d3c815ea7bda6b3a000", - "PlanName": "水下 右", - "PlanCode": "7985da", - "PlanTarget": "", - "Annotate": "", - "CreateName": "", - "CreateDate": "2025-09-02 15:03:24.2651977", - "MatrixId": "af524393-812d-402d-b34e-dbc93b4596b9" - }, - { - "uuid": "f373b1f8440249eea71c4f93add0d38c", - "PlanName": "右", - "PlanCode": "1460ea", - "PlanTarget": "", - "Annotate": "", - "CreateName": "", - "CreateDate": "2025-09-02 16:04:01.31562", - "MatrixId": "af524393-812d-402d-b34e-dbc93b4596b9" - }, - { - "uuid": "8e74b779c0c14e6b8f8f81ae77db21fb", - "PlanName": "5 右", - "PlanCode": "6074db", - "PlanTarget": "", - "Annotate": "", - "CreateName": "", - "CreateDate": "2025-09-02 16:14:44.9791157", - "MatrixId": "af524393-812d-402d-b34e-dbc93b4596b9" - }, - { - "uuid": "54498151a0594ae4bd7c675b30eede45", - "PlanName": "1希多分", - "PlanCode": "6991cf", - "PlanTarget": "", - "Annotate": "", - "CreateName": "", - "CreateDate": "2025-09-03 09:13:10.6031425", - "MatrixId": "74c265e7-e99e-48f4-b741-9745983f04c4" - }, - { - "uuid": "bb1479d7151f4efba89b8a37287625dd", - "PlanName": "一希多分", - "PlanCode": "5114eb", - "PlanTarget": "", - "Annotate": "", - "CreateName": "", - "CreateDate": "2025-09-03 09:37:15.9314409", - "MatrixId": "74c265e7-e99e-48f4-b741-9745983f04c4" - }, - { - "uuid": "dcb4160131b7458a827bc583f3aed54d", - "PlanName": "方案", - "PlanCode": "5640cf", - "PlanTarget": "", - "Annotate": "", - "CreateName": "", - "CreateDate": "2025-09-08 17:17:37.9381726", - "MatrixId": "7f728cd2-3d2e-4f6d-b014-577764faffd6" - }, - { - "uuid": "d01fe1d717874c6d93dc107537e60210", - "PlanName": "protocol_1758279393.9552605", - "PlanCode": "d01fe1d717874c6d93dc107537e60210", - "PlanTarget": "d01fe1d717874c6d93dc107537e60210", - "Annotate": "d01fe1d717874c6d93dc107537e60210", - "CreateName": "RPC", - "CreateDate": "2025-09-19 18:56:34.0116915", - "MatrixId": "5de524d0-3f95-406c-86dd-f83626ebc7cb" - }, - { - "uuid": "ad2e4d6b5bd74ef1b11448a5fece64af", - "PlanName": "protocol_1758279854.117978", - "PlanCode": "ad2e4d6b5bd74ef1b11448a5fece64af", - "PlanTarget": "ad2e4d6b5bd74ef1b11448a5fece64af", - "Annotate": "ad2e4d6b5bd74ef1b11448a5fece64af", - "CreateName": "RPC", - "CreateDate": "2025-09-19 19:04:14.1294473", - "MatrixId": "5de524d0-3f95-406c-86dd-f83626ebc7cb" - }, - { - "uuid": "a20966e81ff140f8b7bcd5cdc9126026", - "PlanName": "protocol_1758284004.2471466", - "PlanCode": "a20966e81ff140f8b7bcd5cdc9126026", - "PlanTarget": "a20966e81ff140f8b7bcd5cdc9126026", - "Annotate": "a20966e81ff140f8b7bcd5cdc9126026", - "CreateName": "RPC", - "CreateDate": "2025-09-19 20:13:23.4959528", - "MatrixId": "5de524d0-3f95-406c-86dd-f83626ebc7cb" - }, - { - "uuid": "6287b01ab0274ddcb0df25ba6996b98e", - "PlanName": "protocol_1758284145.0736752", - "PlanCode": "6287b01ab0274ddcb0df25ba6996b98e", - "PlanTarget": "6287b01ab0274ddcb0df25ba6996b98e", - "Annotate": "6287b01ab0274ddcb0df25ba6996b98e", - "CreateName": "RPC", - "CreateDate": "2025-09-19 20:15:44.2607625", - "MatrixId": "5de524d0-3f95-406c-86dd-f83626ebc7cb" - }, - { - "uuid": "900d6962ac274feb88e2ea6478448ccc", - "PlanName": "protocol_1758284290.7955835", - "PlanCode": "900d6962ac274feb88e2ea6478448ccc", - "PlanTarget": "900d6962ac274feb88e2ea6478448ccc", - "Annotate": "900d6962ac274feb88e2ea6478448ccc", - "CreateName": "RPC", - "CreateDate": "2025-09-19 20:18:09.9843515", - "MatrixId": "5de524d0-3f95-406c-86dd-f83626ebc7cb" - }, - { - "uuid": "40cd2acf863e41499110fb1401b76e64", - "PlanName": "protocol_1758286043.261032", - "PlanCode": "40cd2acf863e41499110fb1401b76e64", - "PlanTarget": "40cd2acf863e41499110fb1401b76e64", - "Annotate": "40cd2acf863e41499110fb1401b76e64", - "CreateName": "RPC", - "CreateDate": "2025-09-19 20:47:22.3717859", - "MatrixId": "5de524d0-3f95-406c-86dd-f83626ebc7cb" - }, - { - "uuid": "6372e69d32ad4212861465b12d64668a", - "PlanName": "protocol_1758286732.9135964", - "PlanCode": "6372e69d32ad4212861465b12d64668a", - "PlanTarget": "6372e69d32ad4212861465b12d64668a", - "Annotate": "6372e69d32ad4212861465b12d64668a", - "CreateName": "RPC", - "CreateDate": "2025-09-19 20:58:52.003242", - "MatrixId": "5de524d0-3f95-406c-86dd-f83626ebc7cb" - }, - { - "uuid": "c20d46afdad5442bae990594fd707489", - "PlanName": "protocol_1758287137.1545322", - "PlanCode": "c20d46afdad5442bae990594fd707489", - "PlanTarget": "c20d46afdad5442bae990594fd707489", - "Annotate": "c20d46afdad5442bae990594fd707489", - "CreateName": "RPC", - "CreateDate": "2025-09-19 21:05:36.2126678", - "MatrixId": "5de524d0-3f95-406c-86dd-f83626ebc7cb" - }, - { - "uuid": "83e1c0c3ecaa43989a64ed90e47cd747", - "PlanName": "protocol_1758329384.2461421", - "PlanCode": "83e1c0c3ecaa43989a64ed90e47cd747", - "PlanTarget": "83e1c0c3ecaa43989a64ed90e47cd747", - "Annotate": "83e1c0c3ecaa43989a64ed90e47cd747", - "CreateName": "RPC", - "CreateDate": "2025-09-20 08:49:43.3381546", - "MatrixId": "5de524d0-3f95-406c-86dd-f83626ebc7cb" - }, - { - "uuid": "828d210896db4902a46c0bf0736a16bf", - "PlanName": "protocol_1758329410.5911455", - "PlanCode": "828d210896db4902a46c0bf0736a16bf", - "PlanTarget": "828d210896db4902a46c0bf0736a16bf", - "Annotate": "828d210896db4902a46c0bf0736a16bf", - "CreateName": "RPC", - "CreateDate": "2025-09-20 08:50:09.6428667", - "MatrixId": "5de524d0-3f95-406c-86dd-f83626ebc7cb" - }, - { - "uuid": "383c8e4584124ab3881ab5bf3a5995d8", - "PlanName": "protocol_1758329470.833005", - "PlanCode": "383c8e4584124ab3881ab5bf3a5995d8", - "PlanTarget": "383c8e4584124ab3881ab5bf3a5995d8", - "Annotate": "383c8e4584124ab3881ab5bf3a5995d8", - "CreateName": "RPC", - "CreateDate": "2025-09-20 08:51:09.8663109", - "MatrixId": "5de524d0-3f95-406c-86dd-f83626ebc7cb" - }, - { - "uuid": "e8af04dd7b9c4d79975e021edccb07df", - "PlanName": "protocol_1758329719.9594533", - "PlanCode": "e8af04dd7b9c4d79975e021edccb07df", - "PlanTarget": "e8af04dd7b9c4d79975e021edccb07df", - "Annotate": "e8af04dd7b9c4d79975e021edccb07df", - "CreateName": "RPC", - "CreateDate": "2025-09-20 08:55:18.9836703", - "MatrixId": "5de524d0-3f95-406c-86dd-f83626ebc7cb" - }, - { - "uuid": "a0e7e6e605f148cda91a3306b848cabd", - "PlanName": "protocol_1758330006.7458348", - "PlanCode": "a0e7e6e605f148cda91a3306b848cabd", - "PlanTarget": "a0e7e6e605f148cda91a3306b848cabd", - "Annotate": "a0e7e6e605f148cda91a3306b848cabd", - "CreateName": "RPC", - "CreateDate": "2025-09-20 09:00:05.7591137", - "MatrixId": "5de524d0-3f95-406c-86dd-f83626ebc7cb" - }, - { - "uuid": "322ada4d555c4882a02568b975d47899", - "PlanName": "protocol_1758330419.9118912", - "PlanCode": "322ada4d555c4882a02568b975d47899", - "PlanTarget": "322ada4d555c4882a02568b975d47899", - "Annotate": "322ada4d555c4882a02568b975d47899", - "CreateName": "RPC", - "CreateDate": "2025-09-20 09:06:58.917885", - "MatrixId": "5de524d0-3f95-406c-86dd-f83626ebc7cb" - }, - { - "uuid": "237434309186466ba1a84c8a0cd35a9c", - "PlanName": "protocol_1758330468.6890712", - "PlanCode": "237434309186466ba1a84c8a0cd35a9c", - "PlanTarget": "237434309186466ba1a84c8a0cd35a9c", - "Annotate": "237434309186466ba1a84c8a0cd35a9c", - "CreateName": "RPC", - "CreateDate": "2025-09-20 09:07:47.6902656", - "MatrixId": "5de524d0-3f95-406c-86dd-f83626ebc7cb" - }, - { - "uuid": "78ed740ccd62431aa08ebc74bfafa74c", - "PlanName": "protocol_1758330565.8733723", - "PlanCode": "78ed740ccd62431aa08ebc74bfafa74c", - "PlanTarget": "78ed740ccd62431aa08ebc74bfafa74c", - "Annotate": "78ed740ccd62431aa08ebc74bfafa74c", - "CreateName": "RPC", - "CreateDate": "2025-09-20 09:09:24.8771007", - "MatrixId": "5de524d0-3f95-406c-86dd-f83626ebc7cb" - }, - { - "uuid": "54b6d94440834fdaa2c4d8243905b878", - "PlanName": "protocol_1758330765.8390949", - "PlanCode": "54b6d94440834fdaa2c4d8243905b878", - "PlanTarget": "54b6d94440834fdaa2c4d8243905b878", - "Annotate": "54b6d94440834fdaa2c4d8243905b878", - "CreateName": "RPC", - "CreateDate": "2025-09-20 09:12:44.8326041", - "MatrixId": "5de524d0-3f95-406c-86dd-f83626ebc7cb" - }, - { - "uuid": "dc3385670fbd4662b7be100b6c5cf509", - "PlanName": "protocol_1758332003.352778", - "PlanCode": "dc3385670fbd4662b7be100b6c5cf509", - "PlanTarget": "dc3385670fbd4662b7be100b6c5cf509", - "Annotate": "dc3385670fbd4662b7be100b6c5cf509", - "CreateName": "RPC", - "CreateDate": "2025-09-20 09:33:22.26922", - "MatrixId": "5de524d0-3f95-406c-86dd-f83626ebc7cb" - }, - { - "uuid": "20ca12ffe751495b95d3786d2b057d72", - "PlanName": "protocol_1758332143.5367653", - "PlanCode": "20ca12ffe751495b95d3786d2b057d72", - "PlanTarget": "20ca12ffe751495b95d3786d2b057d72", - "Annotate": "20ca12ffe751495b95d3786d2b057d72", - "CreateName": "RPC", - "CreateDate": "2025-09-20 09:35:42.4511873", - "MatrixId": "5de524d0-3f95-406c-86dd-f83626ebc7cb" - }, - { - "uuid": "e0b3510f41c448c69e2c886faa711532", - "PlanName": "protocol_1758332380.958709", - "PlanCode": "e0b3510f41c448c69e2c886faa711532", - "PlanTarget": "e0b3510f41c448c69e2c886faa711532", - "Annotate": "e0b3510f41c448c69e2c886faa711532", - "CreateName": "RPC", - "CreateDate": "2025-09-20 09:39:39.9037198", - "MatrixId": "5de524d0-3f95-406c-86dd-f83626ebc7cb" - }, - { - "uuid": "34781933dabb4860a6f13e060dcd6da1", - "PlanName": "protocol_1758332498.1693442", - "PlanCode": "34781933dabb4860a6f13e060dcd6da1", - "PlanTarget": "34781933dabb4860a6f13e060dcd6da1", - "Annotate": "34781933dabb4860a6f13e060dcd6da1", - "CreateName": "RPC", - "CreateDate": "2025-09-20 09:41:37.0687012", - "MatrixId": "5de524d0-3f95-406c-86dd-f83626ebc7cb" - }, - { - "uuid": "492cda5ce1344509aa7e6de74c3adb99", - "PlanName": "protocol_1758332592.2940047", - "PlanCode": "492cda5ce1344509aa7e6de74c3adb99", - "PlanTarget": "492cda5ce1344509aa7e6de74c3adb99", - "Annotate": "492cda5ce1344509aa7e6de74c3adb99", - "CreateName": "RPC", - "CreateDate": "2025-09-20 09:43:11.1948735", - "MatrixId": "5de524d0-3f95-406c-86dd-f83626ebc7cb" - }, - { - "uuid": "4c6274aa17ca48208e4c53ce492c6600", - "PlanName": "protocol_1758332664.879078", - "PlanCode": "4c6274aa17ca48208e4c53ce492c6600", - "PlanTarget": "4c6274aa17ca48208e4c53ce492c6600", - "Annotate": "4c6274aa17ca48208e4c53ce492c6600", - "CreateName": "RPC", - "CreateDate": "2025-09-20 09:44:23.7855655", - "MatrixId": "5de524d0-3f95-406c-86dd-f83626ebc7cb" - }, - { - "uuid": "6ac6f11dd23a4b1ab236e0756637680e", - "PlanName": "protocol_1758332763.0573888", - "PlanCode": "6ac6f11dd23a4b1ab236e0756637680e", - "PlanTarget": "6ac6f11dd23a4b1ab236e0756637680e", - "Annotate": "6ac6f11dd23a4b1ab236e0756637680e", - "CreateName": "RPC", - "CreateDate": "2025-09-20 09:46:01.9642089", - "MatrixId": "5de524d0-3f95-406c-86dd-f83626ebc7cb" - }, - { - "uuid": "3308bab68ff8445f82e4f33737ad8367", - "PlanName": "protocol_1758333042.010326", - "PlanCode": "3308bab68ff8445f82e4f33737ad8367", - "PlanTarget": "3308bab68ff8445f82e4f33737ad8367", - "Annotate": "3308bab68ff8445f82e4f33737ad8367", - "CreateName": "RPC", - "CreateDate": "2025-09-20 09:50:40.9264992", - "MatrixId": "5de524d0-3f95-406c-86dd-f83626ebc7cb" - }, - { - "uuid": "1c5450323153441cb10161d1bb8c5101", - "PlanName": "protocol_1758333209.4031942", - "PlanCode": "1c5450323153441cb10161d1bb8c5101", - "PlanTarget": "1c5450323153441cb10161d1bb8c5101", - "Annotate": "1c5450323153441cb10161d1bb8c5101", - "CreateName": "RPC", - "CreateDate": "2025-09-20 09:53:28.3068861", - "MatrixId": "5de524d0-3f95-406c-86dd-f83626ebc7cb" - }, - { - "uuid": "ee0737c9ff094600a7f80b1fc490521f", - "PlanName": "protocol_1758333284.520074", - "PlanCode": "ee0737c9ff094600a7f80b1fc490521f", - "PlanTarget": "ee0737c9ff094600a7f80b1fc490521f", - "Annotate": "ee0737c9ff094600a7f80b1fc490521f", - "CreateName": "RPC", - "CreateDate": "2025-09-20 09:54:43.379492", - "MatrixId": "5de524d0-3f95-406c-86dd-f83626ebc7cb" - }, - { - "uuid": "c6dc03959f3d46dc94915b62549555a7", - "PlanName": "protocol_1758333461.3830075", - "PlanCode": "c6dc03959f3d46dc94915b62549555a7", - "PlanTarget": "c6dc03959f3d46dc94915b62549555a7", - "Annotate": "c6dc03959f3d46dc94915b62549555a7", - "CreateName": "RPC", - "CreateDate": "2025-09-20 09:57:40.2488486", - "MatrixId": "5de524d0-3f95-406c-86dd-f83626ebc7cb" - }, - { - "uuid": "de42a53d85c845f99d77e7e60f59c602", - "PlanName": "protocol_1758333801.8405554", - "PlanCode": "de42a53d85c845f99d77e7e60f59c602", - "PlanTarget": "de42a53d85c845f99d77e7e60f59c602", - "Annotate": "de42a53d85c845f99d77e7e60f59c602", - "CreateName": "RPC", - "CreateDate": "2025-09-20 10:03:20.6778707", - "MatrixId": "5de524d0-3f95-406c-86dd-f83626ebc7cb" - }, - { - "uuid": "56894b973f7247f381c1203c66d714a4", - "PlanName": "protocol_1758334247.0959442", - "PlanCode": "56894b973f7247f381c1203c66d714a4", - "PlanTarget": "56894b973f7247f381c1203c66d714a4", - "Annotate": "56894b973f7247f381c1203c66d714a4", - "CreateName": "RPC", - "CreateDate": "2025-09-20 10:10:45.9297268", - "MatrixId": "5de524d0-3f95-406c-86dd-f83626ebc7cb" - }, - { - "uuid": "6d7c789c50744f078681eff5c314a237", - "PlanName": "protocol_1758335182.0857306", - "PlanCode": "6d7c789c50744f078681eff5c314a237", - "PlanTarget": "6d7c789c50744f078681eff5c314a237", - "Annotate": "6d7c789c50744f078681eff5c314a237", - "CreateName": "RPC", - "CreateDate": "2025-09-20 10:26:20.8754814", - "MatrixId": "5de524d0-3f95-406c-86dd-f83626ebc7cb" - }, - { - "uuid": "e6868dc2e1f7460cb0ecd3cc0cc79f7c", - "PlanName": "protocol_1758335317.2585635", - "PlanCode": "e6868dc2e1f7460cb0ecd3cc0cc79f7c", - "PlanTarget": "e6868dc2e1f7460cb0ecd3cc0cc79f7c", - "Annotate": "e6868dc2e1f7460cb0ecd3cc0cc79f7c", - "CreateName": "RPC", - "CreateDate": "2025-09-20 10:28:36.0303136", - "MatrixId": "5de524d0-3f95-406c-86dd-f83626ebc7cb" - }, - { - "uuid": "7d0ead689a4547e4a0ea6adec69f4661", - "PlanName": "protocol_1758335994.4513712", - "PlanCode": "7d0ead689a4547e4a0ea6adec69f4661", - "PlanTarget": "7d0ead689a4547e4a0ea6adec69f4661", - "Annotate": "7d0ead689a4547e4a0ea6adec69f4661", - "CreateName": "RPC", - "CreateDate": "2025-09-20 10:39:53.1858202", - "MatrixId": "5de524d0-3f95-406c-86dd-f83626ebc7cb" - }, - { - "uuid": "10075ec6cf9b4e68989ff65ec973e1d5", - "PlanName": "protocol_1758336189.2127476", - "PlanCode": "10075ec6cf9b4e68989ff65ec973e1d5", - "PlanTarget": "10075ec6cf9b4e68989ff65ec973e1d5", - "Annotate": "10075ec6cf9b4e68989ff65ec973e1d5", - "CreateName": "RPC", - "CreateDate": "2025-09-20 10:43:07.9719272", - "MatrixId": "5de524d0-3f95-406c-86dd-f83626ebc7cb" - }, - { - "uuid": "44738f8cd700427988e3769859dc8644", - "PlanName": "protocol_1758336292.5250728", - "PlanCode": "44738f8cd700427988e3769859dc8644", - "PlanTarget": "44738f8cd700427988e3769859dc8644", - "Annotate": "44738f8cd700427988e3769859dc8644", - "CreateName": "RPC", - "CreateDate": "2025-09-20 10:44:51.2766653", - "MatrixId": "5de524d0-3f95-406c-86dd-f83626ebc7cb" - }, - { - "uuid": "94b61d85e1004ba2bf5c0b25279b0e89", - "PlanName": "protocol_1758336789.1957722", - "PlanCode": "94b61d85e1004ba2bf5c0b25279b0e89", - "PlanTarget": "94b61d85e1004ba2bf5c0b25279b0e89", - "Annotate": "94b61d85e1004ba2bf5c0b25279b0e89", - "CreateName": "RPC", - "CreateDate": "2025-09-20 10:53:07.8980059", - "MatrixId": "5de524d0-3f95-406c-86dd-f83626ebc7cb" - }, - { - "uuid": "855dc94f6514475aac8e6bb7699979f3", - "PlanName": "protocol_1758336842.4268389", - "PlanCode": "855dc94f6514475aac8e6bb7699979f3", - "PlanTarget": "855dc94f6514475aac8e6bb7699979f3", - "Annotate": "855dc94f6514475aac8e6bb7699979f3", - "CreateName": "RPC", - "CreateDate": "2025-09-20 10:54:01.1218481", - "MatrixId": "5de524d0-3f95-406c-86dd-f83626ebc7cb" - }, - { - "uuid": "20df19779aa044d291f8eaeb43c574e8", - "PlanName": "protocol_1758337017.040357", - "PlanCode": "20df19779aa044d291f8eaeb43c574e8", - "PlanTarget": "20df19779aa044d291f8eaeb43c574e8", - "Annotate": "20df19779aa044d291f8eaeb43c574e8", - "CreateName": "RPC", - "CreateDate": "2025-09-20 10:56:55.7284033", - "MatrixId": "5de524d0-3f95-406c-86dd-f83626ebc7cb" - }, - { - "uuid": "5c5d6046573f47098389f6e051e9b8f8", - "PlanName": "protocol_1758337646.1412873", - "PlanCode": "5c5d6046573f47098389f6e051e9b8f8", - "PlanTarget": "5c5d6046573f47098389f6e051e9b8f8", - "Annotate": "5c5d6046573f47098389f6e051e9b8f8", - "CreateName": "RPC", - "CreateDate": "2025-09-20 11:07:24.817637", - "MatrixId": "5de524d0-3f95-406c-86dd-f83626ebc7cb" - }, - { - "uuid": "6cf9fe918434498f957db8a9bbc890c2", - "PlanName": "protocol_1758350217.8826303", - "PlanCode": "6cf9fe918434498f957db8a9bbc890c2", - "PlanTarget": "6cf9fe918434498f957db8a9bbc890c2", - "Annotate": "6cf9fe918434498f957db8a9bbc890c2", - "CreateName": "RPC", - "CreateDate": "2025-09-20 14:36:55.9467307", - "MatrixId": "5de524d0-3f95-406c-86dd-f83626ebc7cb" - }, - { - "uuid": "9b163a306fe742c69d62c8d72c745b47", - "PlanName": "protocol_1758354450.295982", - "PlanCode": "9b163a306fe742c69d62c8d72c745b47", - "PlanTarget": "9b163a306fe742c69d62c8d72c745b47", - "Annotate": "9b163a306fe742c69d62c8d72c745b47", - "CreateName": "RPC", - "CreateDate": "2025-09-20 15:47:28.1580459", - "MatrixId": "5de524d0-3f95-406c-86dd-f83626ebc7cb" - }, - { - "uuid": "ef09cec147b64a15bdb3759e5dada10a", - "PlanName": "protocol_1758354677.2561398", - "PlanCode": "ef09cec147b64a15bdb3759e5dada10a", - "PlanTarget": "ef09cec147b64a15bdb3759e5dada10a", - "Annotate": "ef09cec147b64a15bdb3759e5dada10a", - "CreateName": "RPC", - "CreateDate": "2025-09-20 15:51:15.1008965", - "MatrixId": "5de524d0-3f95-406c-86dd-f83626ebc7cb" - }, - { - "uuid": "1361bdd242704652a5a21949aa2cc94e", - "PlanName": "protocol_1758417148.334982", - "PlanCode": "1361bdd242704652a5a21949aa2cc94e", - "PlanTarget": "1361bdd242704652a5a21949aa2cc94e", - "Annotate": "1361bdd242704652a5a21949aa2cc94e", - "CreateName": "RPC", - "CreateDate": "2025-09-21 09:12:25.7740533", - "MatrixId": "5de524d0-3f95-406c-86dd-f83626ebc7cb" - }, - { - "uuid": "e8784c290e6f4f43bc281fb696753b09", - "PlanName": "protocol_1758418221.2571847", - "PlanCode": "e8784c290e6f4f43bc281fb696753b09", - "PlanTarget": "e8784c290e6f4f43bc281fb696753b09", - "Annotate": "e8784c290e6f4f43bc281fb696753b09", - "CreateName": "RPC", - "CreateDate": "2025-09-21 09:30:18.6144306", - "MatrixId": "5de524d0-3f95-406c-86dd-f83626ebc7cb" - }, - { - "uuid": "1078c197e21f428eb13e19cbd2871acf", - "PlanName": "protocol_1758421326.3556337", - "PlanCode": "1078c197e21f428eb13e19cbd2871acf", - "PlanTarget": "1078c197e21f428eb13e19cbd2871acf", - "Annotate": "1078c197e21f428eb13e19cbd2871acf", - "CreateName": "RPC", - "CreateDate": "2025-09-21 10:22:03.5948794", - "MatrixId": "5de524d0-3f95-406c-86dd-f83626ebc7cb" - }, - { - "uuid": "0e319589c6fe4bd8a4b72342172e5d33", - "PlanName": "protocol_1758421374.4072897", - "PlanCode": "0e319589c6fe4bd8a4b72342172e5d33", - "PlanTarget": "0e319589c6fe4bd8a4b72342172e5d33", - "Annotate": "0e319589c6fe4bd8a4b72342172e5d33", - "CreateName": "RPC", - "CreateDate": "2025-09-21 10:22:51.6498395", - "MatrixId": "5de524d0-3f95-406c-86dd-f83626ebc7cb" - }, - { - "uuid": "6032b88f082d4bee9c8bf7c4f790bd03", - "PlanName": "protocol_1758421642.89701", - "PlanCode": "6032b88f082d4bee9c8bf7c4f790bd03", - "PlanTarget": "6032b88f082d4bee9c8bf7c4f790bd03", - "Annotate": "6032b88f082d4bee9c8bf7c4f790bd03", - "CreateName": "RPC", - "CreateDate": "2025-09-21 10:27:20.087914", - "MatrixId": "5de524d0-3f95-406c-86dd-f83626ebc7cb" - }, - { - "uuid": "e64758d2eaf74186b6d16b331039c949", - "PlanName": "protocol_1758421749.625002", - "PlanCode": "e64758d2eaf74186b6d16b331039c949", - "PlanTarget": "e64758d2eaf74186b6d16b331039c949", - "Annotate": "e64758d2eaf74186b6d16b331039c949", - "CreateName": "RPC", - "CreateDate": "2025-09-21 10:29:06.8326049", - "MatrixId": "5de524d0-3f95-406c-86dd-f83626ebc7cb" - }, - { - "uuid": "8293b7931347441bb9d44bbae41ab509", - "PlanName": "protocol_1758421967.6951466", - "PlanCode": "8293b7931347441bb9d44bbae41ab509", - "PlanTarget": "8293b7931347441bb9d44bbae41ab509", - "Annotate": "8293b7931347441bb9d44bbae41ab509", - "CreateName": "RPC", - "CreateDate": "2025-09-21 10:32:44.874967", - "MatrixId": "5de524d0-3f95-406c-86dd-f83626ebc7cb" - }, - { - "uuid": "98c1218b15dd4cfdb1952457fd7caec7", - "PlanName": "protocol_1758422128.3511224", - "PlanCode": "98c1218b15dd4cfdb1952457fd7caec7", - "PlanTarget": "98c1218b15dd4cfdb1952457fd7caec7", - "Annotate": "98c1218b15dd4cfdb1952457fd7caec7", - "CreateName": "RPC", - "CreateDate": "2025-09-21 10:35:25.5368623", - "MatrixId": "5de524d0-3f95-406c-86dd-f83626ebc7cb" - }, - { - "uuid": "7c3912e6245842beae669e7a2e8680ef", - "PlanName": "protocol_1758423538.2694588", - "PlanCode": "7c3912e6245842beae669e7a2e8680ef", - "PlanTarget": "7c3912e6245842beae669e7a2e8680ef", - "Annotate": "7c3912e6245842beae669e7a2e8680ef", - "CreateName": "RPC", - "CreateDate": "2025-09-21 10:58:55.3902415", - "MatrixId": "5de524d0-3f95-406c-86dd-f83626ebc7cb" - }, - { - "uuid": "87fe99b5b1d34c9b81b4e02d54746fbe", - "PlanName": "protocol_1758423810.398499", - "PlanCode": "87fe99b5b1d34c9b81b4e02d54746fbe", - "PlanTarget": "87fe99b5b1d34c9b81b4e02d54746fbe", - "Annotate": "87fe99b5b1d34c9b81b4e02d54746fbe", - "CreateName": "RPC", - "CreateDate": "2025-09-21 11:03:27.5051778", - "MatrixId": "5de524d0-3f95-406c-86dd-f83626ebc7cb" - }, - { - "uuid": "c7c4f8b718e7431289b11f1c7915fb1b", - "PlanName": "protocol_1758424854.8480017", - "PlanCode": "c7c4f8b718e7431289b11f1c7915fb1b", - "PlanTarget": "c7c4f8b718e7431289b11f1c7915fb1b", - "Annotate": "c7c4f8b718e7431289b11f1c7915fb1b", - "CreateName": "RPC", - "CreateDate": "2025-09-21 11:20:51.9074385", - "MatrixId": "5de524d0-3f95-406c-86dd-f83626ebc7cb" - }, - { - "uuid": "6c957d5235364c4f8fb7a34bce55e8e8", - "PlanName": "protocol_1758425205.0144129", - "PlanCode": "6c957d5235364c4f8fb7a34bce55e8e8", - "PlanTarget": "6c957d5235364c4f8fb7a34bce55e8e8", - "Annotate": "6c957d5235364c4f8fb7a34bce55e8e8", - "CreateName": "RPC", - "CreateDate": "2025-09-21 11:26:42.0544552", - "MatrixId": "5de524d0-3f95-406c-86dd-f83626ebc7cb" - }, - { - "uuid": "ac206e29a4cf48858855dc700bb0a22f", - "PlanName": "protocol_1758425775.0654705", - "PlanCode": "ac206e29a4cf48858855dc700bb0a22f", - "PlanTarget": "ac206e29a4cf48858855dc700bb0a22f", - "Annotate": "ac206e29a4cf48858855dc700bb0a22f", - "CreateName": "RPC", - "CreateDate": "2025-09-21 11:36:12.0632826", - "MatrixId": "5de524d0-3f95-406c-86dd-f83626ebc7cb" - }, - { - "uuid": "51d6e4a9176d4e35addc69da6bd4ef51", - "PlanName": "protocol_1758425969.8227205", - "PlanCode": "51d6e4a9176d4e35addc69da6bd4ef51", - "PlanTarget": "51d6e4a9176d4e35addc69da6bd4ef51", - "Annotate": "51d6e4a9176d4e35addc69da6bd4ef51", - "CreateName": "RPC", - "CreateDate": "2025-09-21 11:39:26.8413449", - "MatrixId": "5de524d0-3f95-406c-86dd-f83626ebc7cb" - }, - { - "uuid": "20b27fb98e624585aaa4129856f102b2", - "PlanName": "protocol_1758441236.7761586", - "PlanCode": "20b27fb98e624585aaa4129856f102b2", - "PlanTarget": "20b27fb98e624585aaa4129856f102b2", - "Annotate": "20b27fb98e624585aaa4129856f102b2", - "CreateName": "RPC", - "CreateDate": "2025-09-21 15:53:53.0695594", - "MatrixId": "5de524d0-3f95-406c-86dd-f83626ebc7cb" - }, - { - "uuid": "c3ccfcbfe975424bb2e7de9c663fae25", - "PlanName": "protocol_1758442363.515883", - "PlanCode": "c3ccfcbfe975424bb2e7de9c663fae25", - "PlanTarget": "c3ccfcbfe975424bb2e7de9c663fae25", - "Annotate": "c3ccfcbfe975424bb2e7de9c663fae25", - "CreateName": "RPC", - "CreateDate": "2025-09-21 16:12:39.7716662", - "MatrixId": "5de524d0-3f95-406c-86dd-f83626ebc7cb" - }, - { - "uuid": "36e8123539f243c0828a4c9e25397c5f", - "PlanName": "protocol_1758444538.8628056", - "PlanCode": "36e8123539f243c0828a4c9e25397c5f", - "PlanTarget": "36e8123539f243c0828a4c9e25397c5f", - "Annotate": "36e8123539f243c0828a4c9e25397c5f", - "CreateName": "RPC", - "CreateDate": "2025-09-21 16:48:55.0115581", - "MatrixId": "5de524d0-3f95-406c-86dd-f83626ebc7cb" - }, - { - "uuid": "084c7be96cb64369a2fe46b9a21d8d2b", - "PlanName": "protocol_1758445428.980143", - "PlanCode": "084c7be96cb64369a2fe46b9a21d8d2b", - "PlanTarget": "084c7be96cb64369a2fe46b9a21d8d2b", - "Annotate": "084c7be96cb64369a2fe46b9a21d8d2b", - "CreateName": "RPC", - "CreateDate": "2025-09-21 17:03:45.0753731", - "MatrixId": "5de524d0-3f95-406c-86dd-f83626ebc7cb" - }, - { - "uuid": "b9668970dc6542a9814f154ac4c5fed7", - "PlanName": "protocol_1758513731.9234066", - "PlanCode": "b9668970dc6542a9814f154ac4c5fed7", - "PlanTarget": "b9668970dc6542a9814f154ac4c5fed7", - "Annotate": "b9668970dc6542a9814f154ac4c5fed7", - "CreateName": "RPC", - "CreateDate": "2025-09-22 12:02:11.4173245", - "MatrixId": "5de524d0-3f95-406c-86dd-f83626ebc7cb" - }, - { - "uuid": "df055278dfb24fc697f3ece11c65985d", - "PlanName": "protocol_1758591509.1928713", - "PlanCode": "df055278dfb24fc697f3ece11c65985d", - "PlanTarget": "df055278dfb24fc697f3ece11c65985d", - "Annotate": "df055278dfb24fc697f3ece11c65985d", - "CreateName": "RPC", - "CreateDate": "2025-09-23 09:38:28.3636412", - "MatrixId": "5de524d0-3f95-406c-86dd-f83626ebc7cb" - }, - { - "uuid": "667b0cb3cc244fb88e50b52deba247a9", - "PlanName": "protocol_1758591666.8648207", - "PlanCode": "667b0cb3cc244fb88e50b52deba247a9", - "PlanTarget": "667b0cb3cc244fb88e50b52deba247a9", - "Annotate": "667b0cb3cc244fb88e50b52deba247a9", - "CreateName": "RPC", - "CreateDate": "2025-09-23 09:41:06.0286256", - "MatrixId": "5de524d0-3f95-406c-86dd-f83626ebc7cb" - }, - { - "uuid": "883641376b574e828cf5adb4c4575c20", - "PlanName": "protocol_1760341095.092693", - "PlanCode": "883641376b574e828cf5adb4c4575c20", - "PlanTarget": "883641376b574e828cf5adb4c4575c20", - "Annotate": "883641376b574e828cf5adb4c4575c20", - "CreateName": "RPC", - "CreateDate": "2025-10-13 15:38:14.1328998", - "MatrixId": "5de524d0-3f95-406c-86dd-f83626ebc7cb" - }, - { - "uuid": "115c126920ff4243a1b55c4f49e77795", - "PlanName": "protocol_1760341374.249738", - "PlanCode": "115c126920ff4243a1b55c4f49e77795", - "PlanTarget": "115c126920ff4243a1b55c4f49e77795", - "Annotate": "115c126920ff4243a1b55c4f49e77795", - "CreateName": "RPC", - "CreateDate": "2025-10-13 15:42:53.7358731", - "MatrixId": "5de524d0-3f95-406c-86dd-f83626ebc7cb" - }, - { - "uuid": "436d86b21857407f89cb4f9a78a71afb", - "PlanName": "protocol_1760342698.895742", - "PlanCode": "436d86b21857407f89cb4f9a78a71afb", - "PlanTarget": "436d86b21857407f89cb4f9a78a71afb", - "Annotate": "436d86b21857407f89cb4f9a78a71afb", - "CreateName": "RPC", - "CreateDate": "2025-10-13 16:04:58.801219", - "MatrixId": "5de524d0-3f95-406c-86dd-f83626ebc7cb" - }, - { - "uuid": "86d5979114474412a95c466fb4b52b95", - "PlanName": "dilution_solution", - "PlanCode": "86d5979114474412a95c466fb4b52b95", - "PlanTarget": "86d5979114474412a95c466fb4b52b95", - "Annotate": "86d5979114474412a95c466fb4b52b95", - "CreateName": "RPC", - "CreateDate": "2025-10-15 12:05:22.2357101", - "MatrixId": "c1d0d5dc-40f2-4f24-97ac-9cc49c68496c" - }, - { - "uuid": "67c4f25319b448909ad9fb3ec4ba519a", - "PlanName": "protocol_1761540486.607572", - "PlanCode": "67c4f25319b448909ad9fb3ec4ba519a", - "PlanTarget": "67c4f25319b448909ad9fb3ec4ba519a", - "Annotate": "67c4f25319b448909ad9fb3ec4ba519a", - "CreateName": "RPC", - "CreateDate": "2025-10-27 12:48:06.2666775", - "MatrixId": "5de524d0-3f95-406c-86dd-f83626ebc7cb" - }, - { - "uuid": "24eab79a2c2d464b85ab01a747839a94", - "PlanName": "protocol_1761540756.750231", - "PlanCode": "24eab79a2c2d464b85ab01a747839a94", - "PlanTarget": "24eab79a2c2d464b85ab01a747839a94", - "Annotate": "24eab79a2c2d464b85ab01a747839a94", - "CreateName": "RPC", - "CreateDate": "2025-10-27 12:52:36.4000024", - "MatrixId": "5de524d0-3f95-406c-86dd-f83626ebc7cb" - }, - { - "uuid": "d0b52ee4260d4d7c995893534f356894", - "PlanName": "protocol_1761540861.3241029", - "PlanCode": "d0b52ee4260d4d7c995893534f356894", - "PlanTarget": "d0b52ee4260d4d7c995893534f356894", - "Annotate": "d0b52ee4260d4d7c995893534f356894", - "CreateName": "RPC", - "CreateDate": "2025-10-27 12:54:20.9798492", - "MatrixId": "5de524d0-3f95-406c-86dd-f83626ebc7cb" - }, - { - "uuid": "c38d840c5a754fe19efec0bc2cd68289", - "PlanName": "protocol_1761545039.981426", - "PlanCode": "c38d840c5a754fe19efec0bc2cd68289", - "PlanTarget": "c38d840c5a754fe19efec0bc2cd68289", - "Annotate": "c38d840c5a754fe19efec0bc2cd68289", - "CreateName": "RPC", - "CreateDate": "2025-10-27 14:03:59.4286475", - "MatrixId": "5de524d0-3f95-406c-86dd-f83626ebc7cb" - }, - { - "uuid": "a6846668d4b84b0f9fcdb1580c8d5901", - "PlanName": "protocol_1761545325.544502", - "PlanCode": "a6846668d4b84b0f9fcdb1580c8d5901", - "PlanTarget": "a6846668d4b84b0f9fcdb1580c8d5901", - "Annotate": "a6846668d4b84b0f9fcdb1580c8d5901", - "CreateName": "RPC", - "CreateDate": "2025-10-27 14:08:44.978478", - "MatrixId": "5de524d0-3f95-406c-86dd-f83626ebc7cb" - }, - { - "uuid": "58a2b5de2da64894b0b0b965ab14b328", - "PlanName": "protocol_1761546519.8925471", - "PlanCode": "58a2b5de2da64894b0b0b965ab14b328", - "PlanTarget": "58a2b5de2da64894b0b0b965ab14b328", - "Annotate": "58a2b5de2da64894b0b0b965ab14b328", - "CreateName": "RPC", - "CreateDate": "2025-10-27 14:28:39.3299385", - "MatrixId": "5de524d0-3f95-406c-86dd-f83626ebc7cb" - }, - { - "uuid": "e17806ac0e794ed3870790eda61d80fd", - "PlanName": "protocol_1761546847.532612", - "PlanCode": "e17806ac0e794ed3870790eda61d80fd", - "PlanTarget": "e17806ac0e794ed3870790eda61d80fd", - "Annotate": "e17806ac0e794ed3870790eda61d80fd", - "CreateName": "RPC", - "CreateDate": "2025-10-27 14:34:06.910904", - "MatrixId": "5de524d0-3f95-406c-86dd-f83626ebc7cb" - }, - { - "uuid": "9228f17d4d404897804cb12d928dc32d", - "PlanName": "protocol_1761550842.475979", - "PlanCode": "9228f17d4d404897804cb12d928dc32d", - "PlanTarget": "9228f17d4d404897804cb12d928dc32d", - "Annotate": "9228f17d4d404897804cb12d928dc32d", - "CreateName": "RPC", - "CreateDate": "2025-10-27 15:40:41.525659", - "MatrixId": "5de524d0-3f95-406c-86dd-f83626ebc7cb" - }, - { - "uuid": "433c2eab16b347ffb7a7452b7809bd65", - "PlanName": "protocol_1762160785.098339", - "PlanCode": "433c2eab16b347ffb7a7452b7809bd65", - "PlanTarget": "433c2eab16b347ffb7a7452b7809bd65", - "Annotate": "433c2eab16b347ffb7a7452b7809bd65", - "CreateName": "RPC", - "CreateDate": "2025-11-03 17:06:24.439501", - "MatrixId": "5de524d0-3f95-406c-86dd-f83626ebc7cb" - }, - { - "uuid": "bd45f0e087ff4ee18252b167d588ab75", - "PlanName": "protocol_1762161009.134507", - "PlanCode": "bd45f0e087ff4ee18252b167d588ab75", - "PlanTarget": "bd45f0e087ff4ee18252b167d588ab75", - "Annotate": "bd45f0e087ff4ee18252b167d588ab75", - "CreateName": "RPC", - "CreateDate": "2025-11-03 17:10:08.4668331", - "MatrixId": "5de524d0-3f95-406c-86dd-f83626ebc7cb" - }, - { - "uuid": "0ca682e5dc9642e088b2c84a920df3e1", - "PlanName": "protocol_1762161750.685751", - "PlanCode": "0ca682e5dc9642e088b2c84a920df3e1", - "PlanTarget": "0ca682e5dc9642e088b2c84a920df3e1", - "Annotate": "0ca682e5dc9642e088b2c84a920df3e1", - "CreateName": "RPC", - "CreateDate": "2025-11-03 17:22:29.9901374", - "MatrixId": "5de524d0-3f95-406c-86dd-f83626ebc7cb" - }, - { - "uuid": "9f7a28c96c3542f8b95222c6899acdad", - "PlanName": "protocol_1762161832.8694541", - "PlanCode": "9f7a28c96c3542f8b95222c6899acdad", - "PlanTarget": "9f7a28c96c3542f8b95222c6899acdad", - "Annotate": "9f7a28c96c3542f8b95222c6899acdad", - "CreateName": "RPC", - "CreateDate": "2025-11-03 17:23:52.1561439", - "MatrixId": "5de524d0-3f95-406c-86dd-f83626ebc7cb" - }, - { - "uuid": "e053f0826a0e4806a29ac00214e8b204", - "PlanName": "protocol_1762161890.5055292", - "PlanCode": "e053f0826a0e4806a29ac00214e8b204", - "PlanTarget": "e053f0826a0e4806a29ac00214e8b204", - "Annotate": "e053f0826a0e4806a29ac00214e8b204", - "CreateName": "RPC", - "CreateDate": "2025-11-03 17:24:49.801121", - "MatrixId": "5de524d0-3f95-406c-86dd-f83626ebc7cb" - }, - { - "uuid": "33a2fbeff63044e48e2b4af18b1b236f", - "PlanName": "protocol_1762843398.914214", - "PlanCode": "33a2fbeff63044e48e2b4af18b1b236f", - "PlanTarget": "33a2fbeff63044e48e2b4af18b1b236f", - "Annotate": "33a2fbeff63044e48e2b4af18b1b236f", - "CreateName": "RPC", - "CreateDate": "2025-11-11 14:43:16.7461061", - "MatrixId": "5de524d0-3f95-406c-86dd-f83626ebc7cb" - }, - { - "uuid": "938e04894ed64431b2c3fbc5b8f71c32", - "PlanName": "protocol_1763109521.908803", - "PlanCode": "938e04894ed64431b2c3fbc5b8f71c32", - "PlanTarget": "938e04894ed64431b2c3fbc5b8f71c32", - "Annotate": "938e04894ed64431b2c3fbc5b8f71c32", - "CreateName": "RPC", - "CreateDate": "2025-11-14 16:38:42.0084946", - "MatrixId": "5de524d0-3f95-406c-86dd-f83626ebc7cb" - }, - { - "uuid": "28f05c949d404f7f9842e401d5181c39", - "PlanName": "protocol_1763110390.477279", - "PlanCode": "28f05c949d404f7f9842e401d5181c39", - "PlanTarget": "28f05c949d404f7f9842e401d5181c39", - "Annotate": "28f05c949d404f7f9842e401d5181c39", - "CreateName": "RPC", - "CreateDate": "2025-11-14 16:53:10.4783684", - "MatrixId": "5de524d0-3f95-406c-86dd-f83626ebc7cb" - }, - { - "uuid": "efe8a74486ce49f7bbb2f5d0bbd5768c", - "PlanName": "protocol_1763110941.637613", - "PlanCode": "efe8a74486ce49f7bbb2f5d0bbd5768c", - "PlanTarget": "efe8a74486ce49f7bbb2f5d0bbd5768c", - "Annotate": "efe8a74486ce49f7bbb2f5d0bbd5768c", - "CreateName": "RPC", - "CreateDate": "2025-11-14 17:02:21.6391126", - "MatrixId": "5de524d0-3f95-406c-86dd-f83626ebc7cb" - }, - { - "uuid": "ba70bd9fc056424e9df61f1f984ffbbd", - "PlanName": "protocol_1763111173.856073", - "PlanCode": "ba70bd9fc056424e9df61f1f984ffbbd", - "PlanTarget": "ba70bd9fc056424e9df61f1f984ffbbd", - "Annotate": "ba70bd9fc056424e9df61f1f984ffbbd", - "CreateName": "RPC", - "CreateDate": "2025-11-14 17:06:13.8738128", - "MatrixId": "5de524d0-3f95-406c-86dd-f83626ebc7cb" - }, - { - "uuid": "39cd38d096cf48e7bbb4f6dcd0fa4ad2", - "PlanName": "vertex", - "PlanCode": "6239ad", - "PlanTarget": "vertex", - "Annotate": "", - "CreateName": "", - "CreateDate": "2025-11-19 18:06:46.6451555", - "MatrixId": "5de524d0-3f95-406c-86dd-f83626ebc7cb" - }, - { - "uuid": "b7b2f96fff724d248bf55e89edfd3512", - "PlanName": "protocol_1764144633.752445", - "PlanCode": "b7b2f96fff724d248bf55e89edfd3512", - "PlanTarget": "b7b2f96fff724d248bf55e89edfd3512", - "Annotate": "b7b2f96fff724d248bf55e89edfd3512", - "CreateName": "RPC", - "CreateDate": "2025-11-26 16:10:31.1967663", - "MatrixId": "5de524d0-3f95-406c-86dd-f83626ebc7cb" - }, - { - "uuid": "183410657267493298eaca55fd9f16f4", - "PlanName": "protocol_1764146809.99628", - "PlanCode": "183410657267493298eaca55fd9f16f4", - "PlanTarget": "183410657267493298eaca55fd9f16f4", - "Annotate": "183410657267493298eaca55fd9f16f4", - "CreateName": "RPC", - "CreateDate": "2025-11-26 16:46:47.4817621", - "MatrixId": "5de524d0-3f95-406c-86dd-f83626ebc7cb" - }, - { - "uuid": "315b25484798448e923ba3b43bb272a5", - "PlanName": "protocol_1764152820.888669", - "PlanCode": "315b25484798448e923ba3b43bb272a5", - "PlanTarget": "315b25484798448e923ba3b43bb272a5", - "Annotate": "315b25484798448e923ba3b43bb272a5", - "CreateName": "RPC", - "CreateDate": "2025-11-26 18:26:57.956896", - "MatrixId": "5de524d0-3f95-406c-86dd-f83626ebc7cb" - }, - { - "uuid": "1441bfc59c2e4c839b73927ad56a2d63", - "PlanName": "protocol_1764153604.098283", - "PlanCode": "1441bfc59c2e4c839b73927ad56a2d63", - "PlanTarget": "1441bfc59c2e4c839b73927ad56a2d63", - "Annotate": "1441bfc59c2e4c839b73927ad56a2d63", - "CreateName": "RPC", - "CreateDate": "2025-11-26 18:40:01.0831631", - "MatrixId": "5de524d0-3f95-406c-86dd-f83626ebc7cb" - }, - { - "uuid": "23c12a193b3d414a8a2cdfedc135348d", - "PlanName": "protocol_1764154446.469318", - "PlanCode": "23c12a193b3d414a8a2cdfedc135348d", - "PlanTarget": "23c12a193b3d414a8a2cdfedc135348d", - "Annotate": "23c12a193b3d414a8a2cdfedc135348d", - "CreateName": "RPC", - "CreateDate": "2025-11-26 18:54:03.4194938", - "MatrixId": "5de524d0-3f95-406c-86dd-f83626ebc7cb" - }, - { - "uuid": "a9c868a7fb334128a196724131ae0a8d", - "PlanName": "protocol_1764154671.036289", - "PlanCode": "a9c868a7fb334128a196724131ae0a8d", - "PlanTarget": "a9c868a7fb334128a196724131ae0a8d", - "Annotate": "a9c868a7fb334128a196724131ae0a8d", - "CreateName": "RPC", - "CreateDate": "2025-11-26 18:57:47.9556663", - "MatrixId": "5de524d0-3f95-406c-86dd-f83626ebc7cb" - }, - { - "uuid": "acdf6b864dda4f7998c0e83942b44f41", - "PlanName": "protocol_1764228082.769203", - "PlanCode": "acdf6b864dda4f7998c0e83942b44f41", - "PlanTarget": "acdf6b864dda4f7998c0e83942b44f41", - "Annotate": "acdf6b864dda4f7998c0e83942b44f41", - "CreateName": "RPC", - "CreateDate": "2025-11-27 15:21:21.0874221", - "MatrixId": "5de524d0-3f95-406c-86dd-f83626ebc7cb" - }, - { - "uuid": "53e23c61234741a19f8a7577124da1cf", - "PlanName": "protocol_1764229062.734229", - "PlanCode": "53e23c61234741a19f8a7577124da1cf", - "PlanTarget": "53e23c61234741a19f8a7577124da1cf", - "Annotate": "53e23c61234741a19f8a7577124da1cf", - "CreateName": "RPC", - "CreateDate": "2025-11-27 15:37:41.0143541", - "MatrixId": "5de524d0-3f95-406c-86dd-f83626ebc7cb" - }, - { - "uuid": "f5cc8c74fc6b45fe8e8d1fdd761f359b", - "PlanName": "protocol_1764229223.29357", - "PlanCode": "f5cc8c74fc6b45fe8e8d1fdd761f359b", - "PlanTarget": "f5cc8c74fc6b45fe8e8d1fdd761f359b", - "Annotate": "f5cc8c74fc6b45fe8e8d1fdd761f359b", - "CreateName": "RPC", - "CreateDate": "2025-11-27 15:40:21.5714732", - "MatrixId": "5de524d0-3f95-406c-86dd-f83626ebc7cb" - }, - { - "uuid": "5c36d8b35a494a58b6fa9a959776f9eb", - "PlanName": "protocol_1764229418.975703", - "PlanCode": "5c36d8b35a494a58b6fa9a959776f9eb", - "PlanTarget": "5c36d8b35a494a58b6fa9a959776f9eb", - "Annotate": "5c36d8b35a494a58b6fa9a959776f9eb", - "CreateName": "RPC", - "CreateDate": "2025-11-27 15:43:37.2626379", - "MatrixId": "5de524d0-3f95-406c-86dd-f83626ebc7cb" - }, - { - "uuid": "a9c2e826b860456db5f432ede3519c96", - "PlanName": "protocol_1764229812.999966", - "PlanCode": "a9c2e826b860456db5f432ede3519c96", - "PlanTarget": "a9c2e826b860456db5f432ede3519c96", - "Annotate": "a9c2e826b860456db5f432ede3519c96", - "CreateName": "RPC", - "CreateDate": "2025-11-27 15:50:11.2552838", - "MatrixId": "5de524d0-3f95-406c-86dd-f83626ebc7cb" - }, - { - "uuid": "2215b01679f84fa5ac4904a1752d9ec3", - "PlanName": "protocol_1764230555.699015", - "PlanCode": "2215b01679f84fa5ac4904a1752d9ec3", - "PlanTarget": "2215b01679f84fa5ac4904a1752d9ec3", - "Annotate": "2215b01679f84fa5ac4904a1752d9ec3", - "CreateName": "RPC", - "CreateDate": "2025-11-27 16:02:33.8986415", - "MatrixId": "5de524d0-3f95-406c-86dd-f83626ebc7cb" - }, - { - "uuid": "d4cd4610e96b44d3a0ff8f983debbe44", - "PlanName": "protocol_1764231241.6575449", - "PlanCode": "d4cd4610e96b44d3a0ff8f983debbe44", - "PlanTarget": "d4cd4610e96b44d3a0ff8f983debbe44", - "Annotate": "d4cd4610e96b44d3a0ff8f983debbe44", - "CreateName": "RPC", - "CreateDate": "2025-11-27 16:13:59.7312768", - "MatrixId": "5de524d0-3f95-406c-86dd-f83626ebc7cb" - }, - { - "uuid": "018af2f0338c4c8e8ba4d2ee433e17e2", - "PlanName": "protocol_1764231408.803423", - "PlanCode": "018af2f0338c4c8e8ba4d2ee433e17e2", - "PlanTarget": "018af2f0338c4c8e8ba4d2ee433e17e2", - "Annotate": "018af2f0338c4c8e8ba4d2ee433e17e2", - "CreateName": "RPC", - "CreateDate": "2025-11-27 16:16:46.8809396", - "MatrixId": "5de524d0-3f95-406c-86dd-f83626ebc7cb" - }, - { - "uuid": "dc3c3028805747059fef63e9cba1906c", - "PlanName": "protocol_1764231827.8999732", - "PlanCode": "dc3c3028805747059fef63e9cba1906c", - "PlanTarget": "dc3c3028805747059fef63e9cba1906c", - "Annotate": "dc3c3028805747059fef63e9cba1906c", - "CreateName": "RPC", - "CreateDate": "2025-11-27 16:23:45.9592193", - "MatrixId": "5de524d0-3f95-406c-86dd-f83626ebc7cb" - }, - { - "uuid": "1ad675123d7a4ce3aee283f1a802384b", - "PlanName": "protocol_1764232012.40946", - "PlanCode": "1ad675123d7a4ce3aee283f1a802384b", - "PlanTarget": "1ad675123d7a4ce3aee283f1a802384b", - "Annotate": "1ad675123d7a4ce3aee283f1a802384b", - "CreateName": "RPC", - "CreateDate": "2025-11-27 16:26:50.4448764", - "MatrixId": "5de524d0-3f95-406c-86dd-f83626ebc7cb" - }, - { - "uuid": "3c84193495994a82bad96713e35f7fea", - "PlanName": "protocol_1764302258.5386071", - "PlanCode": "3c84193495994a82bad96713e35f7fea", - "PlanTarget": "3c84193495994a82bad96713e35f7fea", - "Annotate": "3c84193495994a82bad96713e35f7fea", - "CreateName": "RPC", - "CreateDate": "2025-11-28 11:57:36.5276483", - "MatrixId": "5de524d0-3f95-406c-86dd-f83626ebc7cb" - }, - { - "uuid": "48dfa57c9a654c89b6944a4c94508f8f", - "PlanName": "protocol_1764302365.420574", - "PlanCode": "48dfa57c9a654c89b6944a4c94508f8f", - "PlanTarget": "48dfa57c9a654c89b6944a4c94508f8f", - "Annotate": "48dfa57c9a654c89b6944a4c94508f8f", - "CreateName": "RPC", - "CreateDate": "2025-11-28 11:59:23.4006845", - "MatrixId": "5de524d0-3f95-406c-86dd-f83626ebc7cb" - }, - { - "uuid": "48a5dc6cb7df4d0d997bf51b7986f84a", - "PlanName": "protocol_1764302482.038572", - "PlanCode": "48a5dc6cb7df4d0d997bf51b7986f84a", - "PlanTarget": "48a5dc6cb7df4d0d997bf51b7986f84a", - "Annotate": "48a5dc6cb7df4d0d997bf51b7986f84a", - "CreateName": "RPC", - "CreateDate": "2025-11-28 12:01:20.0875982", - "MatrixId": "5de524d0-3f95-406c-86dd-f83626ebc7cb" - }, - { - "uuid": "8168e96c62a44283ac68287c83ce2444", - "PlanName": "protocol_1764302509.18068", - "PlanCode": "8168e96c62a44283ac68287c83ce2444", - "PlanTarget": "8168e96c62a44283ac68287c83ce2444", - "Annotate": "8168e96c62a44283ac68287c83ce2444", - "CreateName": "RPC", - "CreateDate": "2025-11-28 12:01:47.1840758", - "MatrixId": "5de524d0-3f95-406c-86dd-f83626ebc7cb" - }, - { - "uuid": "0c8551c3850d4d049558b77ea43934c5", - "PlanName": "protocol_1764404815.9122639", - "PlanCode": "0c8551c3850d4d049558b77ea43934c5", - "PlanTarget": "0c8551c3850d4d049558b77ea43934c5", - "Annotate": "0c8551c3850d4d049558b77ea43934c5", - "CreateName": "RPC", - "CreateDate": "2025-11-29 16:26:52.385902", - "MatrixId": "5de524d0-3f95-406c-86dd-f83626ebc7cb" - }, - { - "uuid": "8e783f6d56c74fc8a6b2a42953aab40f", - "PlanName": "protocol_1764408010.1862853", - "PlanCode": "8e783f6d56c74fc8a6b2a42953aab40f", - "PlanTarget": "8e783f6d56c74fc8a6b2a42953aab40f", - "Annotate": "8e783f6d56c74fc8a6b2a42953aab40f", - "CreateName": "RPC", - "CreateDate": "2025-11-29 17:20:06.6053977", - "MatrixId": "5de524d0-3f95-406c-86dd-f83626ebc7cb" - }, - { - "uuid": "4e985b1f90c4484baac69a125f24c591", - "PlanName": "protocol_1764408605.3970451", - "PlanCode": "4e985b1f90c4484baac69a125f24c591", - "PlanTarget": "4e985b1f90c4484baac69a125f24c591", - "Annotate": "4e985b1f90c4484baac69a125f24c591", - "CreateName": "RPC", - "CreateDate": "2025-11-29 17:30:01.7607664", - "MatrixId": "5de524d0-3f95-406c-86dd-f83626ebc7cb" - }, - { - "uuid": "f195c5d0131f4cdc944321f79807736b", - "PlanName": "protocol_1764408752.748086", - "PlanCode": "f195c5d0131f4cdc944321f79807736b", - "PlanTarget": "f195c5d0131f4cdc944321f79807736b", - "Annotate": "f195c5d0131f4cdc944321f79807736b", - "CreateName": "RPC", - "CreateDate": "2025-11-29 17:32:29.1089494", - "MatrixId": "5de524d0-3f95-406c-86dd-f83626ebc7cb" - }, - { - "uuid": "33c95c707ddc48dca98734cf8d6db279", - "PlanName": "protocol_1764408836.0916708", - "PlanCode": "33c95c707ddc48dca98734cf8d6db279", - "PlanTarget": "33c95c707ddc48dca98734cf8d6db279", - "Annotate": "33c95c707ddc48dca98734cf8d6db279", - "CreateName": "RPC", - "CreateDate": "2025-11-29 17:33:52.4914729", - "MatrixId": "5de524d0-3f95-406c-86dd-f83626ebc7cb" - }, - { - "uuid": "a29c8bcaf2894259a3ef54be3a170717", - "PlanName": "protocol_1764408851.1860409", - "PlanCode": "a29c8bcaf2894259a3ef54be3a170717", - "PlanTarget": "a29c8bcaf2894259a3ef54be3a170717", - "Annotate": "a29c8bcaf2894259a3ef54be3a170717", - "CreateName": "RPC", - "CreateDate": "2025-11-29 17:34:07.5841702", - "MatrixId": "5de524d0-3f95-406c-86dd-f83626ebc7cb" - }, - { - "uuid": "7119da87f1ba45c0a7becbd426a6ec18", - "PlanName": "protocol_1764424251.7621899", - "PlanCode": "7119da87f1ba45c0a7becbd426a6ec18", - "PlanTarget": "7119da87f1ba45c0a7becbd426a6ec18", - "Annotate": "7119da87f1ba45c0a7becbd426a6ec18", - "CreateName": "RPC", - "CreateDate": "2025-11-29 21:50:51.7750513", - "MatrixId": "5de524d0-3f95-406c-86dd-f83626ebc7cb" - }, - { - "uuid": "40c2f938b4c94b678b88b3d41adca84d", - "PlanName": "protocol_1764430609.4666047", - "PlanCode": "40c2f938b4c94b678b88b3d41adca84d", - "PlanTarget": "40c2f938b4c94b678b88b3d41adca84d", - "Annotate": "40c2f938b4c94b678b88b3d41adca84d", - "CreateName": "RPC", - "CreateDate": "2025-11-29 23:36:49.2601616", - "MatrixId": "5de524d0-3f95-406c-86dd-f83626ebc7cb" - }, - { - "uuid": "702018720c674c8f82ffc574d1347a1d", - "PlanName": "protocol_1764431478.7715147", - "PlanCode": "702018720c674c8f82ffc574d1347a1d", - "PlanTarget": "702018720c674c8f82ffc574d1347a1d", - "Annotate": "702018720c674c8f82ffc574d1347a1d", - "CreateName": "RPC", - "CreateDate": "2025-11-29 23:51:18.5115085", - "MatrixId": "5de524d0-3f95-406c-86dd-f83626ebc7cb" - }, - { - "uuid": "720d2c7e06904026970466eceb9b47e1", - "PlanName": "protocol_1764432666.7871795", - "PlanCode": "720d2c7e06904026970466eceb9b47e1", - "PlanTarget": "720d2c7e06904026970466eceb9b47e1", - "Annotate": "720d2c7e06904026970466eceb9b47e1", - "CreateName": "RPC", - "CreateDate": "2025-11-30 00:11:06.356714", - "MatrixId": "5de524d0-3f95-406c-86dd-f83626ebc7cb" - }, - { - "uuid": "f54e18afb0b246ed81795fc48a275a03", - "PlanName": "protocol_1764432761.7440124", - "PlanCode": "f54e18afb0b246ed81795fc48a275a03", - "PlanTarget": "f54e18afb0b246ed81795fc48a275a03", - "Annotate": "f54e18afb0b246ed81795fc48a275a03", - "CreateName": "RPC", - "CreateDate": "2025-11-30 00:12:41.3058885", - "MatrixId": "5de524d0-3f95-406c-86dd-f83626ebc7cb" - }, - { - "uuid": "f609e3fb67114ef0819acb2f44b1864e", - "PlanName": "protocol_1764432832.3993757", - "PlanCode": "f609e3fb67114ef0819acb2f44b1864e", - "PlanTarget": "f609e3fb67114ef0819acb2f44b1864e", - "Annotate": "f609e3fb67114ef0819acb2f44b1864e", - "CreateName": "RPC", - "CreateDate": "2025-11-30 00:13:51.967479", - "MatrixId": "5de524d0-3f95-406c-86dd-f83626ebc7cb" - }, - { - "uuid": "abd8dffdd673499780d4fd557c59f6f1", - "PlanName": "protocol_1764432884.3779776", - "PlanCode": "abd8dffdd673499780d4fd557c59f6f1", - "PlanTarget": "abd8dffdd673499780d4fd557c59f6f1", - "Annotate": "abd8dffdd673499780d4fd557c59f6f1", - "CreateName": "RPC", - "CreateDate": "2025-11-30 00:14:43.9382377", - "MatrixId": "5de524d0-3f95-406c-86dd-f83626ebc7cb" - }, - { - "uuid": "482f2916526e443aae1912bb51b6970b", - "PlanName": "protocol_1764432976.3831055", - "PlanCode": "482f2916526e443aae1912bb51b6970b", - "PlanTarget": "482f2916526e443aae1912bb51b6970b", - "Annotate": "482f2916526e443aae1912bb51b6970b", - "CreateName": "RPC", - "CreateDate": "2025-11-30 00:16:15.9844825", - "MatrixId": "5de524d0-3f95-406c-86dd-f83626ebc7cb" - }, - { - "uuid": "a511275d28f54ba7ae1eaa1f5c22f6e0", - "PlanName": "protocol_1764433707.668072", - "PlanCode": "a511275d28f54ba7ae1eaa1f5c22f6e0", - "PlanTarget": "a511275d28f54ba7ae1eaa1f5c22f6e0", - "Annotate": "a511275d28f54ba7ae1eaa1f5c22f6e0", - "CreateName": "RPC", - "CreateDate": "2025-11-30 00:28:27.2913055", - "MatrixId": "5de524d0-3f95-406c-86dd-f83626ebc7cb" - }, - { - "uuid": "f176927cdad044c99355eff053e0e756", - "PlanName": "protocol_1764434027.402088", - "PlanCode": "f176927cdad044c99355eff053e0e756", - "PlanTarget": "f176927cdad044c99355eff053e0e756", - "Annotate": "f176927cdad044c99355eff053e0e756", - "CreateName": "RPC", - "CreateDate": "2025-11-30 00:33:47.0154308", - "MatrixId": "5de524d0-3f95-406c-86dd-f83626ebc7cb" - }, - { - "uuid": "1f2901bdd7f2481a98b0a09f45fe4f56", - "PlanName": "protocol_1764438604.4894998", - "PlanCode": "1f2901bdd7f2481a98b0a09f45fe4f56", - "PlanTarget": "1f2901bdd7f2481a98b0a09f45fe4f56", - "Annotate": "1f2901bdd7f2481a98b0a09f45fe4f56", - "CreateName": "RPC", - "CreateDate": "2025-11-30 01:50:03.8567179", - "MatrixId": "5de524d0-3f95-406c-86dd-f83626ebc7cb" - }, - { - "uuid": "16ac837d3af8465788ec932cefd7a122", - "PlanName": "protocol_1764488340.424221", - "PlanCode": "16ac837d3af8465788ec932cefd7a122", - "PlanTarget": "16ac837d3af8465788ec932cefd7a122", - "Annotate": "16ac837d3af8465788ec932cefd7a122", - "CreateName": "RPC", - "CreateDate": "2025-11-30 15:38:57.7295829", - "MatrixId": "5de524d0-3f95-406c-86dd-f83626ebc7cb" - }, - { - "uuid": "d26a75bb51844b7c99846efe741009a5", - "PlanName": "protocol_1764488388.1924024", - "PlanCode": "d26a75bb51844b7c99846efe741009a5", - "PlanTarget": "d26a75bb51844b7c99846efe741009a5", - "Annotate": "d26a75bb51844b7c99846efe741009a5", - "CreateName": "RPC", - "CreateDate": "2025-11-30 15:39:45.4897428", - "MatrixId": "5de524d0-3f95-406c-86dd-f83626ebc7cb" - }, - { - "uuid": "c526f9badb8848fab0f8632b7afc54ed", - "PlanName": "protocol_1764576444.8537831", - "PlanCode": "c526f9badb8848fab0f8632b7afc54ed", - "PlanTarget": "c526f9badb8848fab0f8632b7afc54ed", - "Annotate": "c526f9badb8848fab0f8632b7afc54ed", - "CreateName": "RPC", - "CreateDate": "2025-12-01 16:07:24.4876317", - "MatrixId": "5de524d0-3f95-406c-86dd-f83626ebc7cb" - }, - { - "uuid": "3246a6ac98014466894bbf91c3a6618e", - "PlanName": "protocol_1764576594.313828", - "PlanCode": "3246a6ac98014466894bbf91c3a6618e", - "PlanTarget": "3246a6ac98014466894bbf91c3a6618e", - "Annotate": "3246a6ac98014466894bbf91c3a6618e", - "CreateName": "RPC", - "CreateDate": "2025-12-01 16:09:53.9503778", - "MatrixId": "5de524d0-3f95-406c-86dd-f83626ebc7cb" - }, - { - "uuid": "fa5b344d61934160b526c5683c6322bf", - "PlanName": "protocol_1764576613.995975", - "PlanCode": "fa5b344d61934160b526c5683c6322bf", - "PlanTarget": "fa5b344d61934160b526c5683c6322bf", - "Annotate": "fa5b344d61934160b526c5683c6322bf", - "CreateName": "RPC", - "CreateDate": "2025-12-01 16:10:13.5867267", - "MatrixId": "5de524d0-3f95-406c-86dd-f83626ebc7cb" - }, - { - "uuid": "1b4a38ff2f3d49eb9204d263f66c2092", - "PlanName": "protocol_1764576633.36306", - "PlanCode": "1b4a38ff2f3d49eb9204d263f66c2092", - "PlanTarget": "1b4a38ff2f3d49eb9204d263f66c2092", - "Annotate": "1b4a38ff2f3d49eb9204d263f66c2092", - "CreateName": "RPC", - "CreateDate": "2025-12-01 16:10:33.0021594", - "MatrixId": "5de524d0-3f95-406c-86dd-f83626ebc7cb" - }, - { - "uuid": "b99efea0949745c3bd2ad87b2b40aaa2", - "PlanName": "protocol_1764576743.0355048", - "PlanCode": "b99efea0949745c3bd2ad87b2b40aaa2", - "PlanTarget": "b99efea0949745c3bd2ad87b2b40aaa2", - "Annotate": "b99efea0949745c3bd2ad87b2b40aaa2", - "CreateName": "RPC", - "CreateDate": "2025-12-01 16:12:22.6091237", - "MatrixId": "5de524d0-3f95-406c-86dd-f83626ebc7cb" - }, - { - "uuid": "a783c76697f2410aad96906677bbfad1", - "PlanName": "protocol_1764577782.525975", - "PlanCode": "a783c76697f2410aad96906677bbfad1", - "PlanTarget": "a783c76697f2410aad96906677bbfad1", - "Annotate": "a783c76697f2410aad96906677bbfad1", - "CreateName": "RPC", - "CreateDate": "2025-12-01 16:29:43.1444859", - "MatrixId": "5de524d0-3f95-406c-86dd-f83626ebc7cb" - }, - { - "uuid": "2ad404bf7ea34b1db4d3640d6e54fa47", - "PlanName": "protocol_1764646195.59761", - "PlanCode": "2ad404bf7ea34b1db4d3640d6e54fa47", - "PlanTarget": "2ad404bf7ea34b1db4d3640d6e54fa47", - "Annotate": "2ad404bf7ea34b1db4d3640d6e54fa47", - "CreateName": "RPC", - "CreateDate": "2025-12-02 11:29:54.2106436", - "MatrixId": "5de524d0-3f95-406c-86dd-f83626ebc7cb" - }, - { - "uuid": "0078c546d118431d84badb124b9557a1", - "PlanName": "protocol_1764663701.590351", - "PlanCode": "0078c546d118431d84badb124b9557a1", - "PlanTarget": "0078c546d118431d84badb124b9557a1", - "Annotate": "0078c546d118431d84badb124b9557a1", - "CreateName": "RPC", - "CreateDate": "2025-12-02 16:21:39.5931989", - "MatrixId": "5de524d0-3f95-406c-86dd-f83626ebc7cb" - }, - { - "uuid": "004f685003dc4caa848c627ccf7d3d8f", - "PlanName": "protocol_1764664519.934897", - "PlanCode": "004f685003dc4caa848c627ccf7d3d8f", - "PlanTarget": "004f685003dc4caa848c627ccf7d3d8f", - "Annotate": "004f685003dc4caa848c627ccf7d3d8f", - "CreateName": "RPC", - "CreateDate": "2025-12-02 16:35:17.9246673", - "MatrixId": "5de524d0-3f95-406c-86dd-f83626ebc7cb" - }, - { - "uuid": "00eb325f821142b48370e78108283aac", - "PlanName": "protocol_1764666845.3343282", - "PlanCode": "00eb325f821142b48370e78108283aac", - "PlanTarget": "00eb325f821142b48370e78108283aac", - "Annotate": "00eb325f821142b48370e78108283aac", - "CreateName": "RPC", - "CreateDate": "2025-12-02 17:14:03.0971761", - "MatrixId": "5de524d0-3f95-406c-86dd-f83626ebc7cb" - }, - { - "uuid": "82e58038439947d79a16884960834bdc", - "PlanName": "protocol_1764666963.999711", - "PlanCode": "82e58038439947d79a16884960834bdc", - "PlanTarget": "82e58038439947d79a16884960834bdc", - "Annotate": "82e58038439947d79a16884960834bdc", - "CreateName": "RPC", - "CreateDate": "2025-12-02 17:16:01.7869541", - "MatrixId": "5de524d0-3f95-406c-86dd-f83626ebc7cb" - }, - { - "uuid": "7afbe625e639439da6be0ae465b71fc3", - "PlanName": "protocol_1764733591.566737", - "PlanCode": "7afbe625e639439da6be0ae465b71fc3", - "PlanTarget": "7afbe625e639439da6be0ae465b71fc3", - "Annotate": "7afbe625e639439da6be0ae465b71fc3", - "CreateName": "RPC", - "CreateDate": "2025-12-03 11:46:30.9580873", - "MatrixId": "5de524d0-3f95-406c-86dd-f83626ebc7cb" - }, - { - "uuid": "6457b78d91354697b5603f09f861ab25", - "PlanName": "123123", - "PlanCode": "6556ab", - "PlanTarget": "", - "Annotate": "", - "CreateName": "", - "CreateDate": "2025-12-03 14:58:42.3852766", - "MatrixId": "5de524d0-3f95-406c-86dd-f83626ebc7cb" - }, - { - "uuid": "e881d9341f254a8eb7838bb5049f3c81", - "PlanName": "protocol_1764748357.57696", - "PlanCode": "e881d9341f254a8eb7838bb5049f3c81", - "PlanTarget": "e881d9341f254a8eb7838bb5049f3c81", - "Annotate": "e881d9341f254a8eb7838bb5049f3c81", - "CreateName": "RPC", - "CreateDate": "2025-12-03 15:52:36.4433325", - "MatrixId": "5de524d0-3f95-406c-86dd-f83626ebc7cb" - }, - { - "uuid": "29171dc4a6cc4896bb92ee396ef0d161", - "PlanName": "protocol_1764748464.700376", - "PlanCode": "29171dc4a6cc4896bb92ee396ef0d161", - "PlanTarget": "29171dc4a6cc4896bb92ee396ef0d161", - "Annotate": "29171dc4a6cc4896bb92ee396ef0d161", - "CreateName": "RPC", - "CreateDate": "2025-12-03 15:54:23.5642245", - "MatrixId": "5de524d0-3f95-406c-86dd-f83626ebc7cb" - }, - { - "uuid": "f89ed1c85b9f4731812c48a8f26150eb", - "PlanName": "protocol_1764748542.0181131", - "PlanCode": "f89ed1c85b9f4731812c48a8f26150eb", - "PlanTarget": "f89ed1c85b9f4731812c48a8f26150eb", - "Annotate": "f89ed1c85b9f4731812c48a8f26150eb", - "CreateName": "RPC", - "CreateDate": "2025-12-03 15:55:40.8777591", - "MatrixId": "5de524d0-3f95-406c-86dd-f83626ebc7cb" - }, - { - "uuid": "315aaad239d54c9c8cdc0a6835b6ad3e", - "PlanName": "protocol_1764748602.225444", - "PlanCode": "315aaad239d54c9c8cdc0a6835b6ad3e", - "PlanTarget": "315aaad239d54c9c8cdc0a6835b6ad3e", - "Annotate": "315aaad239d54c9c8cdc0a6835b6ad3e", - "CreateName": "RPC", - "CreateDate": "2025-12-03 15:56:41.0848398", - "MatrixId": "5de524d0-3f95-406c-86dd-f83626ebc7cb" - }, - { - "uuid": "da7774b286884f69aee37f4e79ededbd", - "PlanName": "protocol_1764748947.357422", - "PlanCode": "da7774b286884f69aee37f4e79ededbd", - "PlanTarget": "da7774b286884f69aee37f4e79ededbd", - "Annotate": "da7774b286884f69aee37f4e79ededbd", - "CreateName": "RPC", - "CreateDate": "2025-12-03 16:02:27.6046771", - "MatrixId": "5de524d0-3f95-406c-86dd-f83626ebc7cb" - }, - { - "uuid": "74696644b3e7496eb8fa569e62f37e4f", - "PlanName": "protocol_1764749459.458047", - "PlanCode": "74696644b3e7496eb8fa569e62f37e4f", - "PlanTarget": "74696644b3e7496eb8fa569e62f37e4f", - "Annotate": "74696644b3e7496eb8fa569e62f37e4f", - "CreateName": "RPC", - "CreateDate": "2025-12-03 16:10:59.6584721", - "MatrixId": "5de524d0-3f95-406c-86dd-f83626ebc7cb" - }, - { - "uuid": "a49b287087be4f5eaca9f8d8adec8536", - "PlanName": "protocol_1764749474.038861", - "PlanCode": "a49b287087be4f5eaca9f8d8adec8536", - "PlanTarget": "a49b287087be4f5eaca9f8d8adec8536", - "Annotate": "a49b287087be4f5eaca9f8d8adec8536", - "CreateName": "RPC", - "CreateDate": "2025-12-03 16:11:14.2393572", - "MatrixId": "5de524d0-3f95-406c-86dd-f83626ebc7cb" - }, - { - "uuid": "6cfe6fffe2c34d9fb33b27df2fdeb0a6", - "PlanName": "protocol_1764749991.4153101", - "PlanCode": "6cfe6fffe2c34d9fb33b27df2fdeb0a6", - "PlanTarget": "6cfe6fffe2c34d9fb33b27df2fdeb0a6", - "Annotate": "6cfe6fffe2c34d9fb33b27df2fdeb0a6", - "CreateName": "RPC", - "CreateDate": "2025-12-03 16:19:51.6063048", - "MatrixId": "5de524d0-3f95-406c-86dd-f83626ebc7cb" - }, - { - "uuid": "eaa0616d8d0d49538946a891cfb4d067", - "PlanName": "protocol_1764750005.7755609", - "PlanCode": "eaa0616d8d0d49538946a891cfb4d067", - "PlanTarget": "eaa0616d8d0d49538946a891cfb4d067", - "Annotate": "eaa0616d8d0d49538946a891cfb4d067", - "CreateName": "RPC", - "CreateDate": "2025-12-03 16:20:05.9653666", - "MatrixId": "5de524d0-3f95-406c-86dd-f83626ebc7cb" - }, - { - "uuid": "78a1ea26dbc64cb687409ff2a4464df4", - "PlanName": "protocol_1764750020.149575", - "PlanCode": "78a1ea26dbc64cb687409ff2a4464df4", - "PlanTarget": "78a1ea26dbc64cb687409ff2a4464df4", - "Annotate": "78a1ea26dbc64cb687409ff2a4464df4", - "CreateName": "RPC", - "CreateDate": "2025-12-03 16:20:20.3302755", - "MatrixId": "5de524d0-3f95-406c-86dd-f83626ebc7cb" - }, - { - "uuid": "f38f403ae80747dca9687f8205bec892", - "PlanName": "protocol_1764750427.0817978", - "PlanCode": "f38f403ae80747dca9687f8205bec892", - "PlanTarget": "f38f403ae80747dca9687f8205bec892", - "Annotate": "f38f403ae80747dca9687f8205bec892", - "CreateName": "RPC", - "CreateDate": "2025-12-03 16:27:07.2502521", - "MatrixId": "5de524d0-3f95-406c-86dd-f83626ebc7cb" - }, - { - "uuid": "93d39f080f4d4d13a48951b913f975ec", - "PlanName": "protocol_1764751094.826048", - "PlanCode": "93d39f080f4d4d13a48951b913f975ec", - "PlanTarget": "93d39f080f4d4d13a48951b913f975ec", - "Annotate": "93d39f080f4d4d13a48951b913f975ec", - "CreateName": "RPC", - "CreateDate": "2025-12-03 16:38:14.9744773", - "MatrixId": "5de524d0-3f95-406c-86dd-f83626ebc7cb" - }, - { - "uuid": "ed9385ccba8f4cd99efb34ec2290c0f7", - "PlanName": "protocol_1764751109.5713558", - "PlanCode": "ed9385ccba8f4cd99efb34ec2290c0f7", - "PlanTarget": "ed9385ccba8f4cd99efb34ec2290c0f7", - "Annotate": "ed9385ccba8f4cd99efb34ec2290c0f7", - "CreateName": "RPC", - "CreateDate": "2025-12-03 16:38:29.7203", - "MatrixId": "5de524d0-3f95-406c-86dd-f83626ebc7cb" - }, - { - "uuid": "12fb549fdea14d6285a61414cf218835", - "PlanName": "protocol_1764751124.951248", - "PlanCode": "12fb549fdea14d6285a61414cf218835", - "PlanTarget": "12fb549fdea14d6285a61414cf218835", - "Annotate": "12fb549fdea14d6285a61414cf218835", - "CreateName": "RPC", - "CreateDate": "2025-12-03 16:38:45.0979029", - "MatrixId": "5de524d0-3f95-406c-86dd-f83626ebc7cb" - }, - { - "uuid": "b640284fc74c4953912c9bd70f989976", - "PlanName": "示例方案", - "PlanCode": "b640284fc74c4953912c9bd70f989976", - "PlanTarget": "b640284fc74c4953912c9bd70f989976", - "Annotate": "b640284fc74c4953912c9bd70f989976", - "CreateName": "RPC", - "CreateDate": "2025-12-03 16:42:36.5489053", - "MatrixId": "0547f1d9-05c3-4a9f-abd4-0b25f9a8409b" - }, - { - "uuid": "9936de255cb343d3885327fbae90785d", - "PlanName": "protocol_1764753476.301523", - "PlanCode": "9936de255cb343d3885327fbae90785d", - "PlanTarget": "9936de255cb343d3885327fbae90785d", - "Annotate": "9936de255cb343d3885327fbae90785d", - "CreateName": "RPC", - "CreateDate": "2025-12-03 17:17:56.3174267", - "MatrixId": "5de524d0-3f95-406c-86dd-f83626ebc7cb" - }, - { - "uuid": "aeacc84305374fba944e1daf430341b8", - "PlanName": "protocol_1764753491.175254", - "PlanCode": "aeacc84305374fba944e1daf430341b8", - "PlanTarget": "aeacc84305374fba944e1daf430341b8", - "Annotate": "aeacc84305374fba944e1daf430341b8", - "CreateName": "RPC", - "CreateDate": "2025-12-03 17:18:11.1622916", - "MatrixId": "5de524d0-3f95-406c-86dd-f83626ebc7cb" - }, - { - "uuid": "28ab42b24128415abc8f80283e437744", - "PlanName": "protocol_1764753506.514484", - "PlanCode": "28ab42b24128415abc8f80283e437744", - "PlanTarget": "28ab42b24128415abc8f80283e437744", - "Annotate": "28ab42b24128415abc8f80283e437744", - "CreateName": "RPC", - "CreateDate": "2025-12-03 17:18:26.5019961", - "MatrixId": "5de524d0-3f95-406c-86dd-f83626ebc7cb" - }, - { - "uuid": "8047347586b5455eb5e973bcc9c68c50", - "PlanName": "protocol_1764753520.909795", - "PlanCode": "8047347586b5455eb5e973bcc9c68c50", - "PlanTarget": "8047347586b5455eb5e973bcc9c68c50", - "Annotate": "8047347586b5455eb5e973bcc9c68c50", - "CreateName": "RPC", - "CreateDate": "2025-12-03 17:18:40.877106", - "MatrixId": "5de524d0-3f95-406c-86dd-f83626ebc7cb" - }, - { - "uuid": "923d5ce46bf4475c9f888cf44b5f6689", - "PlanName": "protocol_1764753932.9564512", - "PlanCode": "923d5ce46bf4475c9f888cf44b5f6689", - "PlanTarget": "923d5ce46bf4475c9f888cf44b5f6689", - "Annotate": "923d5ce46bf4475c9f888cf44b5f6689", - "CreateName": "RPC", - "CreateDate": "2025-12-03 17:25:32.9054669", - "MatrixId": "5de524d0-3f95-406c-86dd-f83626ebc7cb" - }, - { - "uuid": "5460a9ff43bc48e18334d047765864e9", - "PlanName": "protocol_1764753952.065471", - "PlanCode": "5460a9ff43bc48e18334d047765864e9", - "PlanTarget": "5460a9ff43bc48e18334d047765864e9", - "Annotate": "5460a9ff43bc48e18334d047765864e9", - "CreateName": "RPC", - "CreateDate": "2025-12-03 17:25:52.0193701", - "MatrixId": "5de524d0-3f95-406c-86dd-f83626ebc7cb" - }, - { - "uuid": "d761389b454b4911b61393ca6416ca0c", - "PlanName": "protocol_1764753972.494279", - "PlanCode": "d761389b454b4911b61393ca6416ca0c", - "PlanTarget": "d761389b454b4911b61393ca6416ca0c", - "Annotate": "d761389b454b4911b61393ca6416ca0c", - "CreateName": "RPC", - "CreateDate": "2025-12-03 17:26:12.4407153", - "MatrixId": "5de524d0-3f95-406c-86dd-f83626ebc7cb" - }, - { - "uuid": "f2c01ff18b674f94a385dfceac42da3c", - "PlanName": "protocol_1764753993.05516", - "PlanCode": "f2c01ff18b674f94a385dfceac42da3c", - "PlanTarget": "f2c01ff18b674f94a385dfceac42da3c", - "Annotate": "f2c01ff18b674f94a385dfceac42da3c", - "CreateName": "RPC", - "CreateDate": "2025-12-03 17:26:33.0027499", - "MatrixId": "5de524d0-3f95-406c-86dd-f83626ebc7cb" - }, - { - "uuid": "06600ac05cf646db823b20f45ac1c393", - "PlanName": "protocol_1764754009.962559", - "PlanCode": "06600ac05cf646db823b20f45ac1c393", - "PlanTarget": "06600ac05cf646db823b20f45ac1c393", - "Annotate": "06600ac05cf646db823b20f45ac1c393", - "CreateName": "RPC", - "CreateDate": "2025-12-03 17:26:49.9077384", - "MatrixId": "5de524d0-3f95-406c-86dd-f83626ebc7cb" - }, - { - "uuid": "9bfa689900ef4743912defd1d8d66e35", - "PlanName": "protocol_1764754032.5024981", - "PlanCode": "9bfa689900ef4743912defd1d8d66e35", - "PlanTarget": "9bfa689900ef4743912defd1d8d66e35", - "Annotate": "9bfa689900ef4743912defd1d8d66e35", - "CreateName": "RPC", - "CreateDate": "2025-12-03 17:27:12.4452929", - "MatrixId": "5de524d0-3f95-406c-86dd-f83626ebc7cb" - }, - { - "uuid": "bd32879b54764d15b0d426f57886ee50", - "PlanName": "protocol_1764754052.3660328", - "PlanCode": "bd32879b54764d15b0d426f57886ee50", - "PlanTarget": "bd32879b54764d15b0d426f57886ee50", - "Annotate": "bd32879b54764d15b0d426f57886ee50", - "CreateName": "RPC", - "CreateDate": "2025-12-03 17:27:32.3103536", - "MatrixId": "5de524d0-3f95-406c-86dd-f83626ebc7cb" - }, - { - "uuid": "6c465ecccf3d4f068a6eae42a9b1965d", - "PlanName": "protocol_1764754072.737359", - "PlanCode": "6c465ecccf3d4f068a6eae42a9b1965d", - "PlanTarget": "6c465ecccf3d4f068a6eae42a9b1965d", - "Annotate": "6c465ecccf3d4f068a6eae42a9b1965d", - "CreateName": "RPC", - "CreateDate": "2025-12-03 17:27:52.681497", - "MatrixId": "5de524d0-3f95-406c-86dd-f83626ebc7cb" - }, - { - "uuid": "6f836eb2401a48fcbbc206e23d6aebad", - "PlanName": "protocol_1764754135.8005388", - "PlanCode": "6f836eb2401a48fcbbc206e23d6aebad", - "PlanTarget": "6f836eb2401a48fcbbc206e23d6aebad", - "Annotate": "6f836eb2401a48fcbbc206e23d6aebad", - "CreateName": "RPC", - "CreateDate": "2025-12-03 17:28:55.7519894", - "MatrixId": "5de524d0-3f95-406c-86dd-f83626ebc7cb" - }, - { - "uuid": "31e5cdb175674bd3a4636caa0766fa47", - "PlanName": "protocol_1764755233.4377642", - "PlanCode": "31e5cdb175674bd3a4636caa0766fa47", - "PlanTarget": "31e5cdb175674bd3a4636caa0766fa47", - "Annotate": "31e5cdb175674bd3a4636caa0766fa47", - "CreateName": "RPC", - "CreateDate": "2025-12-03 17:47:13.3030996", - "MatrixId": "5de524d0-3f95-406c-86dd-f83626ebc7cb" - }, - { - "uuid": "572a9e61489a4d4891fb75e1f0e87aa5", - "PlanName": "protocol_1764755248.012023", - "PlanCode": "572a9e61489a4d4891fb75e1f0e87aa5", - "PlanTarget": "572a9e61489a4d4891fb75e1f0e87aa5", - "Annotate": "572a9e61489a4d4891fb75e1f0e87aa5", - "CreateName": "RPC", - "CreateDate": "2025-12-03 17:47:27.8788994", - "MatrixId": "5de524d0-3f95-406c-86dd-f83626ebc7cb" - }, - { - "uuid": "dc18310cd2e64eea96cfdee803f7b679", - "PlanName": "protocol_1764755263.0378938", - "PlanCode": "dc18310cd2e64eea96cfdee803f7b679", - "PlanTarget": "dc18310cd2e64eea96cfdee803f7b679", - "Annotate": "dc18310cd2e64eea96cfdee803f7b679", - "CreateName": "RPC", - "CreateDate": "2025-12-03 17:47:42.9365557", - "MatrixId": "5de524d0-3f95-406c-86dd-f83626ebc7cb" - }, - { - "uuid": "ee26589df53f4a42a72153fe7901eee8", - "PlanName": "protocol_1764755277.644546", - "PlanCode": "ee26589df53f4a42a72153fe7901eee8", - "PlanTarget": "ee26589df53f4a42a72153fe7901eee8", - "Annotate": "ee26589df53f4a42a72153fe7901eee8", - "CreateName": "RPC", - "CreateDate": "2025-12-03 17:47:57.5170084", - "MatrixId": "5de524d0-3f95-406c-86dd-f83626ebc7cb" - }, - { - "uuid": "558b09a967784165ba31226009cabb47", - "PlanName": "protocol_1764755292.272275", - "PlanCode": "558b09a967784165ba31226009cabb47", - "PlanTarget": "558b09a967784165ba31226009cabb47", - "Annotate": "558b09a967784165ba31226009cabb47", - "CreateName": "RPC", - "CreateDate": "2025-12-03 17:48:12.1349112", - "MatrixId": "5de524d0-3f95-406c-86dd-f83626ebc7cb" - }, - { - "uuid": "600f43d3f97c4c54a9b86b1543892537", - "PlanName": "protocol_1764755307.367182", - "PlanCode": "600f43d3f97c4c54a9b86b1543892537", - "PlanTarget": "600f43d3f97c4c54a9b86b1543892537", - "Annotate": "600f43d3f97c4c54a9b86b1543892537", - "CreateName": "RPC", - "CreateDate": "2025-12-03 17:48:27.2271908", - "MatrixId": "5de524d0-3f95-406c-86dd-f83626ebc7cb" - }, - { - "uuid": "4fe3322104e44793be8b55f3a1f2f723", - "PlanName": "protocol_1764755322.4572601", - "PlanCode": "4fe3322104e44793be8b55f3a1f2f723", - "PlanTarget": "4fe3322104e44793be8b55f3a1f2f723", - "Annotate": "4fe3322104e44793be8b55f3a1f2f723", - "CreateName": "RPC", - "CreateDate": "2025-12-03 17:48:42.3191705", - "MatrixId": "5de524d0-3f95-406c-86dd-f83626ebc7cb" - }, - { - "uuid": "17d158a1ede54bc7b65bdd567404f90e", - "PlanName": "protocol_1764755337.418543", - "PlanCode": "17d158a1ede54bc7b65bdd567404f90e", - "PlanTarget": "17d158a1ede54bc7b65bdd567404f90e", - "Annotate": "17d158a1ede54bc7b65bdd567404f90e", - "CreateName": "RPC", - "CreateDate": "2025-12-03 17:48:57.2818586", - "MatrixId": "5de524d0-3f95-406c-86dd-f83626ebc7cb" - }, - { - "uuid": "30ca428fc95041c5bb0e03e3e7672083", - "PlanName": "protocol_1764755352.5393212", - "PlanCode": "30ca428fc95041c5bb0e03e3e7672083", - "PlanTarget": "30ca428fc95041c5bb0e03e3e7672083", - "Annotate": "30ca428fc95041c5bb0e03e3e7672083", - "CreateName": "RPC", - "CreateDate": "2025-12-03 17:49:12.4010702", - "MatrixId": "5de524d0-3f95-406c-86dd-f83626ebc7cb" - }, - { - "uuid": "268634264c5f482ba90e645b34ad1cee", - "PlanName": "protocol_1764755367.674189", - "PlanCode": "268634264c5f482ba90e645b34ad1cee", - "PlanTarget": "268634264c5f482ba90e645b34ad1cee", - "Annotate": "268634264c5f482ba90e645b34ad1cee", - "CreateName": "RPC", - "CreateDate": "2025-12-03 17:49:27.5314915", - "MatrixId": "5de524d0-3f95-406c-86dd-f83626ebc7cb" - }, - { - "uuid": "88d88f33320048b3a49ed49c80ab9c13", - "PlanName": "protocol_1764755382.581307", - "PlanCode": "88d88f33320048b3a49ed49c80ab9c13", - "PlanTarget": "88d88f33320048b3a49ed49c80ab9c13", - "Annotate": "88d88f33320048b3a49ed49c80ab9c13", - "CreateName": "RPC", - "CreateDate": "2025-12-03 17:49:42.4375294", - "MatrixId": "5de524d0-3f95-406c-86dd-f83626ebc7cb" - }, - { - "uuid": "f5d24447108049eb9d24e647a75ecbca", - "PlanName": "protocol_1764755397.171324", - "PlanCode": "f5d24447108049eb9d24e647a75ecbca", - "PlanTarget": "f5d24447108049eb9d24e647a75ecbca", - "Annotate": "f5d24447108049eb9d24e647a75ecbca", - "CreateName": "RPC", - "CreateDate": "2025-12-03 17:49:57.0275359", - "MatrixId": "5de524d0-3f95-406c-86dd-f83626ebc7cb" - }, - { - "uuid": "194809ffad0341349a1de26d8979ecef", - "PlanName": "protocol_1764840438.409714", - "PlanCode": "194809ffad0341349a1de26d8979ecef", - "PlanTarget": "194809ffad0341349a1de26d8979ecef", - "Annotate": "194809ffad0341349a1de26d8979ecef", - "CreateName": "RPC", - "CreateDate": "2025-12-04 17:27:15.9002903", - "MatrixId": "5de524d0-3f95-406c-86dd-f83626ebc7cb" - }, - { - "uuid": "36180d84f1f447d6ae1cd82d1c1cfff3", - "PlanName": "protocol_1764840520.70851", - "PlanCode": "36180d84f1f447d6ae1cd82d1c1cfff3", - "PlanTarget": "36180d84f1f447d6ae1cd82d1c1cfff3", - "Annotate": "36180d84f1f447d6ae1cd82d1c1cfff3", - "CreateName": "RPC", - "CreateDate": "2025-12-04 17:28:37.1107253", - "MatrixId": "5de524d0-3f95-406c-86dd-f83626ebc7cb" - }, - { - "uuid": "9882691fb3b2418dbe6f79512ab83fce", - "PlanName": "protocol_1764840540.39765", - "PlanCode": "9882691fb3b2418dbe6f79512ab83fce", - "PlanTarget": "9882691fb3b2418dbe6f79512ab83fce", - "Annotate": "9882691fb3b2418dbe6f79512ab83fce", - "CreateName": "RPC", - "CreateDate": "2025-12-04 17:28:56.8132594", - "MatrixId": "5de524d0-3f95-406c-86dd-f83626ebc7cb" - }, - { - "uuid": "9ef76976b46c44faa4dd898f754a4714", - "PlanName": "protocol_1764840559.41054", - "PlanCode": "9ef76976b46c44faa4dd898f754a4714", - "PlanTarget": "9ef76976b46c44faa4dd898f754a4714", - "Annotate": "9ef76976b46c44faa4dd898f754a4714", - "CreateName": "RPC", - "CreateDate": "2025-12-04 17:29:15.8053905", - "MatrixId": "5de524d0-3f95-406c-86dd-f83626ebc7cb" - }, - { - "uuid": "c5921bdf12614cdeb258e9f46202ebaa", - "PlanName": "protocol_1764840580.5275981", - "PlanCode": "c5921bdf12614cdeb258e9f46202ebaa", - "PlanTarget": "c5921bdf12614cdeb258e9f46202ebaa", - "Annotate": "c5921bdf12614cdeb258e9f46202ebaa", - "CreateName": "RPC", - "CreateDate": "2025-12-04 17:29:36.9334669", - "MatrixId": "5de524d0-3f95-406c-86dd-f83626ebc7cb" - }, - { - "uuid": "6dec87a57e2145e8b67096118ada475c", - "PlanName": "protocol_1764840599.533004", - "PlanCode": "6dec87a57e2145e8b67096118ada475c", - "PlanTarget": "6dec87a57e2145e8b67096118ada475c", - "Annotate": "6dec87a57e2145e8b67096118ada475c", - "CreateName": "RPC", - "CreateDate": "2025-12-04 17:29:55.9226203", - "MatrixId": "5de524d0-3f95-406c-86dd-f83626ebc7cb" - }, - { - "uuid": "6273fb542c46428a9e36d51ecef8d2c7", - "PlanName": "protocol_1764840618.0837371", - "PlanCode": "6273fb542c46428a9e36d51ecef8d2c7", - "PlanTarget": "6273fb542c46428a9e36d51ecef8d2c7", - "Annotate": "6273fb542c46428a9e36d51ecef8d2c7", - "CreateName": "RPC", - "CreateDate": "2025-12-04 17:30:14.4720359", - "MatrixId": "5de524d0-3f95-406c-86dd-f83626ebc7cb" - }, - { - "uuid": "011c482e4ed7492d8549aeff4ee2eefa", - "PlanName": "protocol_1764902995.787536", - "PlanCode": "011c482e4ed7492d8549aeff4ee2eefa", - "PlanTarget": "011c482e4ed7492d8549aeff4ee2eefa", - "Annotate": "011c482e4ed7492d8549aeff4ee2eefa", - "CreateName": "RPC", - "CreateDate": "2025-12-05 10:49:55.4205237", - "MatrixId": "5de524d0-3f95-406c-86dd-f83626ebc7cb" - }, - { - "uuid": "fe2884b6c5ec4f43be2c8c497d0ada8e", - "PlanName": "protocol_1764904392.760789", - "PlanCode": "fe2884b6c5ec4f43be2c8c497d0ada8e", - "PlanTarget": "fe2884b6c5ec4f43be2c8c497d0ada8e", - "Annotate": "fe2884b6c5ec4f43be2c8c497d0ada8e", - "CreateName": "RPC", - "CreateDate": "2025-12-05 11:13:12.3495766", - "MatrixId": "5de524d0-3f95-406c-86dd-f83626ebc7cb" - }, - { - "uuid": "a3b3eb5c44ef43799058f770dbe2057b", - "PlanName": "protocol_1764904476.397472", - "PlanCode": "a3b3eb5c44ef43799058f770dbe2057b", - "PlanTarget": "a3b3eb5c44ef43799058f770dbe2057b", - "Annotate": "a3b3eb5c44ef43799058f770dbe2057b", - "CreateName": "RPC", - "CreateDate": "2025-12-05 11:14:35.9775698", - "MatrixId": "5de524d0-3f95-406c-86dd-f83626ebc7cb" - }, - { - "uuid": "3c56daef8b5540c592160e3dd8be4e55", - "PlanName": "protocol_1764904547.6927412", - "PlanCode": "3c56daef8b5540c592160e3dd8be4e55", - "PlanTarget": "3c56daef8b5540c592160e3dd8be4e55", - "Annotate": "3c56daef8b5540c592160e3dd8be4e55", - "CreateName": "RPC", - "CreateDate": "2025-12-05 11:15:47.271433", - "MatrixId": "5de524d0-3f95-406c-86dd-f83626ebc7cb" - }, - { - "uuid": "d7ff94dd51514d15ac27bc978d92e19d", - "PlanName": "protocol_1764904615.817332", - "PlanCode": "d7ff94dd51514d15ac27bc978d92e19d", - "PlanTarget": "d7ff94dd51514d15ac27bc978d92e19d", - "Annotate": "d7ff94dd51514d15ac27bc978d92e19d", - "CreateName": "RPC", - "CreateDate": "2025-12-05 11:16:55.3932176", - "MatrixId": "5de524d0-3f95-406c-86dd-f83626ebc7cb" - }, - { - "uuid": "fa7b09010db449ce955c8694e92f6abf", - "PlanName": "protocol_1764906586.734082", - "PlanCode": "fa7b09010db449ce955c8694e92f6abf", - "PlanTarget": "fa7b09010db449ce955c8694e92f6abf", - "Annotate": "fa7b09010db449ce955c8694e92f6abf", - "CreateName": "RPC", - "CreateDate": "2025-12-05 11:49:46.3021222", - "MatrixId": "5de524d0-3f95-406c-86dd-f83626ebc7cb" - }, - { - "uuid": "843855a686b44e86aa928eca140374f4", - "PlanName": "protocol_1764917265.116387", - "PlanCode": "843855a686b44e86aa928eca140374f4", - "PlanTarget": "843855a686b44e86aa928eca140374f4", - "Annotate": "843855a686b44e86aa928eca140374f4", - "CreateName": "RPC", - "CreateDate": "2025-12-05 14:47:44.10206", - "MatrixId": "5de524d0-3f95-406c-86dd-f83626ebc7cb" - }, - { - "uuid": "f38f78a69ae242b4b4ff2a5dc649e376", - "PlanName": "protocol_1764918831.9531143", - "PlanCode": "f38f78a69ae242b4b4ff2a5dc649e376", - "PlanTarget": "f38f78a69ae242b4b4ff2a5dc649e376", - "Annotate": "f38f78a69ae242b4b4ff2a5dc649e376", - "CreateName": "RPC", - "CreateDate": "2025-12-05 15:13:50.8480875", - "MatrixId": "5de524d0-3f95-406c-86dd-f83626ebc7cb" - }, - { - "uuid": "30b4b488bf7a4f3d862eb2ec316dfb3d", - "PlanName": "protocol_1764923383.9548218", - "PlanCode": "30b4b488bf7a4f3d862eb2ec316dfb3d", - "PlanTarget": "30b4b488bf7a4f3d862eb2ec316dfb3d", - "Annotate": "30b4b488bf7a4f3d862eb2ec316dfb3d", - "CreateName": "RPC", - "CreateDate": "2025-12-05 16:29:42.6785197", - "MatrixId": "5de524d0-3f95-406c-86dd-f83626ebc7cb" - }, - { - "uuid": "4e0c300de29c4c598bd8697f839fbac6", - "PlanName": "protocol_1764923817.3239524", - "PlanCode": "4e0c300de29c4c598bd8697f839fbac6", - "PlanTarget": "4e0c300de29c4c598bd8697f839fbac6", - "Annotate": "4e0c300de29c4c598bd8697f839fbac6", - "CreateName": "RPC", - "CreateDate": "2025-12-05 16:36:56.0218712", - "MatrixId": "5de524d0-3f95-406c-86dd-f83626ebc7cb" - }, - { - "uuid": "5f1f83f29b2c4f16bdfe799310e6d59c", - "PlanName": "protocol_1764923979.530665", - "PlanCode": "5f1f83f29b2c4f16bdfe799310e6d59c", - "PlanTarget": "5f1f83f29b2c4f16bdfe799310e6d59c", - "Annotate": "5f1f83f29b2c4f16bdfe799310e6d59c", - "CreateName": "RPC", - "CreateDate": "2025-12-05 16:39:38.213421", - "MatrixId": "5de524d0-3f95-406c-86dd-f83626ebc7cb" - }, - { - "uuid": "27957ace4aa24b3f90fba658166cbb73", - "PlanName": "protocol_1764924122.02284", - "PlanCode": "27957ace4aa24b3f90fba658166cbb73", - "PlanTarget": "27957ace4aa24b3f90fba658166cbb73", - "Annotate": "27957ace4aa24b3f90fba658166cbb73", - "CreateName": "RPC", - "CreateDate": "2025-12-05 16:42:00.6973363", - "MatrixId": "5de524d0-3f95-406c-86dd-f83626ebc7cb" - }, - { - "uuid": "2ada130d9f7a495aa2c8045ab330d0d5", - "PlanName": "protocol_1764924590.537087", - "PlanCode": "2ada130d9f7a495aa2c8045ab330d0d5", - "PlanTarget": "2ada130d9f7a495aa2c8045ab330d0d5", - "Annotate": "2ada130d9f7a495aa2c8045ab330d0d5", - "CreateName": "RPC", - "CreateDate": "2025-12-05 16:49:49.2019596", - "MatrixId": "5de524d0-3f95-406c-86dd-f83626ebc7cb" - }, - { - "uuid": "ce838b4b5b044d31aded7c977308ba67", - "PlanName": "protocol_1764924732.715151", - "PlanCode": "ce838b4b5b044d31aded7c977308ba67", - "PlanTarget": "ce838b4b5b044d31aded7c977308ba67", - "Annotate": "ce838b4b5b044d31aded7c977308ba67", - "CreateName": "RPC", - "CreateDate": "2025-12-05 16:52:11.3722969", - "MatrixId": "5de524d0-3f95-406c-86dd-f83626ebc7cb" - }, - { - "uuid": "c653881bfc5744b0b23e417b8136c035", - "PlanName": "protocol_1764924811.0964491", - "PlanCode": "c653881bfc5744b0b23e417b8136c035", - "PlanTarget": "c653881bfc5744b0b23e417b8136c035", - "Annotate": "c653881bfc5744b0b23e417b8136c035", - "CreateName": "RPC", - "CreateDate": "2025-12-05 16:53:29.7871809", - "MatrixId": "5de524d0-3f95-406c-86dd-f83626ebc7cb" - }, - { - "uuid": "08c3489d3e424914a805acee5b135a0a", - "PlanName": "protocol_1764924907.600372", - "PlanCode": "08c3489d3e424914a805acee5b135a0a", - "PlanTarget": "08c3489d3e424914a805acee5b135a0a", - "Annotate": "08c3489d3e424914a805acee5b135a0a", - "CreateName": "RPC", - "CreateDate": "2025-12-05 16:55:06.2453153", - "MatrixId": "5de524d0-3f95-406c-86dd-f83626ebc7cb" - }, - { - "uuid": "4738d1cbf5d547e49744f771d3a7c26c", - "PlanName": "protocol_1764925072.858943", - "PlanCode": "4738d1cbf5d547e49744f771d3a7c26c", - "PlanTarget": "4738d1cbf5d547e49744f771d3a7c26c", - "Annotate": "4738d1cbf5d547e49744f771d3a7c26c", - "CreateName": "RPC", - "CreateDate": "2025-12-05 16:57:51.5005557", - "MatrixId": "5de524d0-3f95-406c-86dd-f83626ebc7cb" - }, - { - "uuid": "1433803138bb43e08510d317537e6598", - "PlanName": "protocol_1764925263.4160588", - "PlanCode": "1433803138bb43e08510d317537e6598", - "PlanTarget": "1433803138bb43e08510d317537e6598", - "Annotate": "1433803138bb43e08510d317537e6598", - "CreateName": "RPC", - "CreateDate": "2025-12-05 17:01:02.0666447", - "MatrixId": "5de524d0-3f95-406c-86dd-f83626ebc7cb" - }, - { - "uuid": "09f6844a55674e059edd66823e37ee7c", - "PlanName": "protocol_1764925335.423661", - "PlanCode": "09f6844a55674e059edd66823e37ee7c", - "PlanTarget": "09f6844a55674e059edd66823e37ee7c", - "Annotate": "09f6844a55674e059edd66823e37ee7c", - "CreateName": "RPC", - "CreateDate": "2025-12-05 17:02:14.068541", - "MatrixId": "5de524d0-3f95-406c-86dd-f83626ebc7cb" - }, - { - "uuid": "8f463532d9594347afaeafed477e8df3", - "PlanName": "protocol_1764929705.74197", - "PlanCode": "8f463532d9594347afaeafed477e8df3", - "PlanTarget": "8f463532d9594347afaeafed477e8df3", - "Annotate": "8f463532d9594347afaeafed477e8df3", - "CreateName": "RPC", - "CreateDate": "2025-12-05 18:15:04.201636", - "MatrixId": "5de524d0-3f95-406c-86dd-f83626ebc7cb" - }, - { - "uuid": "6b1f890d797840a3bb5efb45169633ab", - "PlanName": "protocol_1765178556.4846919", - "PlanCode": "6b1f890d797840a3bb5efb45169633ab", - "PlanTarget": "6b1f890d797840a3bb5efb45169633ab", - "Annotate": "6b1f890d797840a3bb5efb45169633ab", - "CreateName": "RPC", - "CreateDate": "2025-12-08 15:22:35.6409505", - "MatrixId": "5de524d0-3f95-406c-86dd-f83626ebc7cb" - }, - { - "uuid": "3f1554c89daa403796d1262ea6a9530b", - "PlanName": "protocol_1765178674.9171414", - "PlanCode": "3f1554c89daa403796d1262ea6a9530b", - "PlanTarget": "3f1554c89daa403796d1262ea6a9530b", - "Annotate": "3f1554c89daa403796d1262ea6a9530b", - "CreateName": "RPC", - "CreateDate": "2025-12-08 15:24:34.0442007", - "MatrixId": "5de524d0-3f95-406c-86dd-f83626ebc7cb" - }, - { - "uuid": "e112fe31ecea48cd9a44dab1af145869", - "PlanName": "protocol_1765179958.7522223", - "PlanCode": "e112fe31ecea48cd9a44dab1af145869", - "PlanTarget": "e112fe31ecea48cd9a44dab1af145869", - "Annotate": "e112fe31ecea48cd9a44dab1af145869", - "CreateName": "RPC", - "CreateDate": "2025-12-08 15:45:57.8001704", - "MatrixId": "5de524d0-3f95-406c-86dd-f83626ebc7cb" - }, - { - "uuid": "c4e7d4dc39df49c59f547b554c1f0d4f", - "PlanName": "protocol_1765180175.963907", - "PlanCode": "c4e7d4dc39df49c59f547b554c1f0d4f", - "PlanTarget": "c4e7d4dc39df49c59f547b554c1f0d4f", - "Annotate": "c4e7d4dc39df49c59f547b554c1f0d4f", - "CreateName": "RPC", - "CreateDate": "2025-12-08 15:49:35.0612676", - "MatrixId": "5de524d0-3f95-406c-86dd-f83626ebc7cb" - }, - { - "uuid": "9078cab7222b4aaa8208f458626858e5", - "PlanName": "protocol_1765180399.221941", - "PlanCode": "9078cab7222b4aaa8208f458626858e5", - "PlanTarget": "9078cab7222b4aaa8208f458626858e5", - "Annotate": "9078cab7222b4aaa8208f458626858e5", - "CreateName": "RPC", - "CreateDate": "2025-12-08 15:53:18.2877253", - "MatrixId": "5de524d0-3f95-406c-86dd-f83626ebc7cb" - }, - { - "uuid": "7cbcd8516a7e4c0193a47c343fcc4edf", - "PlanName": "protocol_1765184073.2061677", - "PlanCode": "7cbcd8516a7e4c0193a47c343fcc4edf", - "PlanTarget": "7cbcd8516a7e4c0193a47c343fcc4edf", - "Annotate": "7cbcd8516a7e4c0193a47c343fcc4edf", - "CreateName": "RPC", - "CreateDate": "2025-12-08 16:54:32.0887202", - "MatrixId": "5de524d0-3f95-406c-86dd-f83626ebc7cb" - }, - { - "uuid": "0696f5af7a614f88a04d2c03a1a309e3", - "PlanName": "protocol_1765184331.359745", - "PlanCode": "0696f5af7a614f88a04d2c03a1a309e3", - "PlanTarget": "0696f5af7a614f88a04d2c03a1a309e3", - "Annotate": "0696f5af7a614f88a04d2c03a1a309e3", - "CreateName": "RPC", - "CreateDate": "2025-12-08 16:58:50.3061079", - "MatrixId": "5de524d0-3f95-406c-86dd-f83626ebc7cb" - }, - { - "uuid": "c7f6df0004654c2fb85b192fb14923c7", - "PlanName": "protocol_1765185879.1300857", - "PlanCode": "c7f6df0004654c2fb85b192fb14923c7", - "PlanTarget": "c7f6df0004654c2fb85b192fb14923c7", - "Annotate": "c7f6df0004654c2fb85b192fb14923c7", - "CreateName": "RPC", - "CreateDate": "2025-12-08 17:24:37.9516763", - "MatrixId": "5de524d0-3f95-406c-86dd-f83626ebc7cb" - }, - { - "uuid": "08fc2df070d24e41a60f33c450a0ad42", - "PlanName": "protocol_1765186094.5714493", - "PlanCode": "08fc2df070d24e41a60f33c450a0ad42", - "PlanTarget": "08fc2df070d24e41a60f33c450a0ad42", - "Annotate": "08fc2df070d24e41a60f33c450a0ad42", - "CreateName": "RPC", - "CreateDate": "2025-12-08 17:28:13.3670494", - "MatrixId": "5de524d0-3f95-406c-86dd-f83626ebc7cb" - }, - { - "uuid": "fd58d9719ff84b879c98c8c8b224faac", - "PlanName": "protocol_1765186661.2494216", - "PlanCode": "fd58d9719ff84b879c98c8c8b224faac", - "PlanTarget": "fd58d9719ff84b879c98c8c8b224faac", - "Annotate": "fd58d9719ff84b879c98c8c8b224faac", - "CreateName": "RPC", - "CreateDate": "2025-12-08 17:37:40.0489367", - "MatrixId": "5de524d0-3f95-406c-86dd-f83626ebc7cb" - }, - { - "uuid": "cbce38703a1248c882ea11b909341cf7", - "PlanName": "protocol_1765193460.9623337", - "PlanCode": "cbce38703a1248c882ea11b909341cf7", - "PlanTarget": "cbce38703a1248c882ea11b909341cf7", - "Annotate": "cbce38703a1248c882ea11b909341cf7", - "CreateName": "RPC", - "CreateDate": "2025-12-08 19:31:00.7899173", - "MatrixId": "5de524d0-3f95-406c-86dd-f83626ebc7cb" - }, - { - "uuid": "d48b02ebb07e4711aa378480b4eb013b", - "PlanName": "protocol_1765251120.2618816", - "PlanCode": "d48b02ebb07e4711aa378480b4eb013b", - "PlanTarget": "d48b02ebb07e4711aa378480b4eb013b", - "Annotate": "d48b02ebb07e4711aa378480b4eb013b", - "CreateName": "RPC", - "CreateDate": "2025-12-09 11:31:57.7037966", - "MatrixId": "5de524d0-3f95-406c-86dd-f83626ebc7cb" - }, - { - "uuid": "c7d4723649984b958a72de07a95d0648", - "PlanName": "protocol_1765251383.0237954", - "PlanCode": "c7d4723649984b958a72de07a95d0648", - "PlanTarget": "c7d4723649984b958a72de07a95d0648", - "Annotate": "c7d4723649984b958a72de07a95d0648", - "CreateName": "RPC", - "CreateDate": "2025-12-09 11:36:20.4704109", - "MatrixId": "5de524d0-3f95-406c-86dd-f83626ebc7cb" - }, - { - "uuid": "6fbe437d7e274ee3aa9a9b198057ff2d", - "PlanName": "protocol_1765252027.3320918", - "PlanCode": "6fbe437d7e274ee3aa9a9b198057ff2d", - "PlanTarget": "6fbe437d7e274ee3aa9a9b198057ff2d", - "Annotate": "6fbe437d7e274ee3aa9a9b198057ff2d", - "CreateName": "RPC", - "CreateDate": "2025-12-09 11:47:04.8639279", - "MatrixId": "5de524d0-3f95-406c-86dd-f83626ebc7cb" - }, - { - "uuid": "38ca83c8168b4422af208dd1e87767fc", - "PlanName": "protocol_1765252128.13034", - "PlanCode": "38ca83c8168b4422af208dd1e87767fc", - "PlanTarget": "38ca83c8168b4422af208dd1e87767fc", - "Annotate": "38ca83c8168b4422af208dd1e87767fc", - "CreateName": "RPC", - "CreateDate": "2025-12-09 11:48:45.6486679", - "MatrixId": "5de524d0-3f95-406c-86dd-f83626ebc7cb" - }, - { - "uuid": "276f25d917944b22933b3f6b67d752ee", - "PlanName": "protocol_1765261764.0624819", - "PlanCode": "276f25d917944b22933b3f6b67d752ee", - "PlanTarget": "276f25d917944b22933b3f6b67d752ee", - "Annotate": "276f25d917944b22933b3f6b67d752ee", - "CreateName": "RPC", - "CreateDate": "2025-12-09 14:29:21.0432439", - "MatrixId": "5de524d0-3f95-406c-86dd-f83626ebc7cb" - }, - { - "uuid": "fd712708c3de4a90a098e02cf1792b1c", - "PlanName": "protocol_1765261892.652781", - "PlanCode": "fd712708c3de4a90a098e02cf1792b1c", - "PlanTarget": "fd712708c3de4a90a098e02cf1792b1c", - "Annotate": "fd712708c3de4a90a098e02cf1792b1c", - "CreateName": "RPC", - "CreateDate": "2025-12-09 14:31:29.628378", - "MatrixId": "5de524d0-3f95-406c-86dd-f83626ebc7cb" - }, - { - "uuid": "d920a90cb8384c65a5703eeb10c34d89", - "PlanName": "protocol_1765262942.252825", - "PlanCode": "d920a90cb8384c65a5703eeb10c34d89", - "PlanTarget": "d920a90cb8384c65a5703eeb10c34d89", - "Annotate": "d920a90cb8384c65a5703eeb10c34d89", - "CreateName": "RPC", - "CreateDate": "2025-12-09 14:48:59.1867023", - "MatrixId": "5de524d0-3f95-406c-86dd-f83626ebc7cb" - }, - { - "uuid": "48eccefb9bce4a9788164c5970b142da", - "PlanName": "protocol_1765263752.35984", - "PlanCode": "48eccefb9bce4a9788164c5970b142da", - "PlanTarget": "48eccefb9bce4a9788164c5970b142da", - "Annotate": "48eccefb9bce4a9788164c5970b142da", - "CreateName": "RPC", - "CreateDate": "2025-12-09 15:02:29.3014257", - "MatrixId": "5de524d0-3f95-406c-86dd-f83626ebc7cb" - }, - { - "uuid": "18d9994b08dc44d59e9190dea6a8cfff", - "PlanName": "protocol_1765265148.8921788", - "PlanCode": "18d9994b08dc44d59e9190dea6a8cfff", - "PlanTarget": "18d9994b08dc44d59e9190dea6a8cfff", - "Annotate": "18d9994b08dc44d59e9190dea6a8cfff", - "CreateName": "RPC", - "CreateDate": "2025-12-09 15:25:45.7348838", - "MatrixId": "5de524d0-3f95-406c-86dd-f83626ebc7cb" - }, - { - "uuid": "c56c72f32b4345b59501114cb68ebbfe", - "PlanName": "protocol_1765265581.889363", - "PlanCode": "c56c72f32b4345b59501114cb68ebbfe", - "PlanTarget": "c56c72f32b4345b59501114cb68ebbfe", - "Annotate": "c56c72f32b4345b59501114cb68ebbfe", - "CreateName": "RPC", - "CreateDate": "2025-12-09 15:32:58.7953211", - "MatrixId": "5de524d0-3f95-406c-86dd-f83626ebc7cb" - }, - { - "uuid": "3d9d89acc232499a862845d79a075246", - "PlanName": "protocol_1765265938.682924", - "PlanCode": "3d9d89acc232499a862845d79a075246", - "PlanTarget": "3d9d89acc232499a862845d79a075246", - "Annotate": "3d9d89acc232499a862845d79a075246", - "CreateName": "RPC", - "CreateDate": "2025-12-09 15:38:55.5088275", - "MatrixId": "5de524d0-3f95-406c-86dd-f83626ebc7cb" - }, - { - "uuid": "2a535a17877448cba047b718ebeefcb1", - "PlanName": "protocol_1765266786.9585638", - "PlanCode": "2a535a17877448cba047b718ebeefcb1", - "PlanTarget": "2a535a17877448cba047b718ebeefcb1", - "Annotate": "2a535a17877448cba047b718ebeefcb1", - "CreateName": "RPC", - "CreateDate": "2025-12-09 15:53:03.7355799", - "MatrixId": "5de524d0-3f95-406c-86dd-f83626ebc7cb" - }, - { - "uuid": "e031fb1acb5c4c14a4bd7bc1472f935a", - "PlanName": "protocol_1765267396.0109682", - "PlanCode": "e031fb1acb5c4c14a4bd7bc1472f935a", - "PlanTarget": "e031fb1acb5c4c14a4bd7bc1472f935a", - "Annotate": "e031fb1acb5c4c14a4bd7bc1472f935a", - "CreateName": "RPC", - "CreateDate": "2025-12-09 16:03:12.7500551", - "MatrixId": "5de524d0-3f95-406c-86dd-f83626ebc7cb" - }, - { - "uuid": "b7671ef2fb424d2faf9c392fa8fecda0", - "PlanName": "protocol_1765267822.960093", - "PlanCode": "b7671ef2fb424d2faf9c392fa8fecda0", - "PlanTarget": "b7671ef2fb424d2faf9c392fa8fecda0", - "Annotate": "b7671ef2fb424d2faf9c392fa8fecda0", - "CreateName": "RPC", - "CreateDate": "2025-12-09 16:10:19.6920973", - "MatrixId": "5de524d0-3f95-406c-86dd-f83626ebc7cb" - }, - { - "uuid": "4c79b0d236be4e5abe05cf9ae16b0279", - "PlanName": "protocol_1765268027.1119034", - "PlanCode": "4c79b0d236be4e5abe05cf9ae16b0279", - "PlanTarget": "4c79b0d236be4e5abe05cf9ae16b0279", - "Annotate": "4c79b0d236be4e5abe05cf9ae16b0279", - "CreateName": "RPC", - "CreateDate": "2025-12-09 16:13:43.8434031", - "MatrixId": "5de524d0-3f95-406c-86dd-f83626ebc7cb" - }, - { - "uuid": "7c1970184e5246aaa99aa055bb41a039", - "PlanName": "protocol_1765269014.7485082", - "PlanCode": "7c1970184e5246aaa99aa055bb41a039", - "PlanTarget": "7c1970184e5246aaa99aa055bb41a039", - "Annotate": "7c1970184e5246aaa99aa055bb41a039", - "CreateName": "RPC", - "CreateDate": "2025-12-09 16:30:11.4140413", - "MatrixId": "5de524d0-3f95-406c-86dd-f83626ebc7cb" - }, - { - "uuid": "ef03d8989acc49f29b67b65ae104c935", - "PlanName": "111", - "PlanCode": "7908cd", - "PlanTarget": "", - "Annotate": "", - "CreateName": "", - "CreateDate": "2025-12-09 16:41:40.8780301", - "MatrixId": "5de524d0-3f95-406c-86dd-f83626ebc7cb" - }, - { - "uuid": "5c17a60fbe214a1d9a46f50e9872850e", - "PlanName": "123456", - "PlanCode": "1232ab", - "PlanTarget": "", - "Annotate": "", - "CreateName": "", - "CreateDate": "2025-12-09 16:57:19.0584382", - "MatrixId": "5de524d0-3f95-406c-86dd-f83626ebc7cb" - }, - { - "uuid": "455b9b54cc844fb8b495b47fb4b1cdca", - "PlanName": "qwert", - "PlanCode": "1194ff", - "PlanTarget": "", - "Annotate": "", - "CreateName": "", - "CreateDate": "2025-12-09 17:10:21.2246242", - "MatrixId": "5de524d0-3f95-406c-86dd-f83626ebc7cb" - }, - { - "uuid": "87cfe7f248f94063a0301e38447e0d8d", - "PlanName": "12345678", - "PlanCode": "7479cd", - "PlanTarget": "", - "Annotate": "", - "CreateName": "", - "CreateDate": "2025-12-09 17:17:53.4834703", - "MatrixId": "5de524d0-3f95-406c-86dd-f83626ebc7cb" - }, - { - "uuid": "3874f9b83c454057bdaf8b368a4d33ca", - "PlanName": "protocol_1765272647.343585", - "PlanCode": "3874f9b83c454057bdaf8b368a4d33ca", - "PlanTarget": "3874f9b83c454057bdaf8b368a4d33ca", - "Annotate": "3874f9b83c454057bdaf8b368a4d33ca", - "CreateName": "RPC", - "CreateDate": "2025-12-09 17:30:43.9679778", - "MatrixId": "5de524d0-3f95-406c-86dd-f83626ebc7cb" - }, - { - "uuid": "d22dd26a60f7497a93d6a7624b1eaae7", - "PlanName": "protocol_1765272961.894083", - "PlanCode": "d22dd26a60f7497a93d6a7624b1eaae7", - "PlanTarget": "d22dd26a60f7497a93d6a7624b1eaae7", - "Annotate": "d22dd26a60f7497a93d6a7624b1eaae7", - "CreateName": "RPC", - "CreateDate": "2025-12-09 17:35:58.4899073", - "MatrixId": "5de524d0-3f95-406c-86dd-f83626ebc7cb" - }, - { - "uuid": "d99f664808cb4e85a2f65055dac62a7c", - "PlanName": "protocol_1765273276.4529438", - "PlanCode": "d99f664808cb4e85a2f65055dac62a7c", - "PlanTarget": "d99f664808cb4e85a2f65055dac62a7c", - "Annotate": "d99f664808cb4e85a2f65055dac62a7c", - "CreateName": "RPC", - "CreateDate": "2025-12-09 17:41:13.0324529", - "MatrixId": "5de524d0-3f95-406c-86dd-f83626ebc7cb" - }, - { - "uuid": "9faf76e32759418a8b3951b7ce90ab05", - "PlanName": "protocol_1765337503.5230799", - "PlanCode": "9faf76e32759418a8b3951b7ce90ab05", - "PlanTarget": "9faf76e32759418a8b3951b7ce90ab05", - "Annotate": "9faf76e32759418a8b3951b7ce90ab05", - "CreateName": "RPC", - "CreateDate": "2025-12-10 11:31:42.4382605", - "MatrixId": "5de524d0-3f95-406c-86dd-f83626ebc7cb" - }, - { - "uuid": "15c475a62ab44fffb9e5c876700c101d", - "PlanName": "protocol_1765337728.09061", - "PlanCode": "15c475a62ab44fffb9e5c876700c101d", - "PlanTarget": "15c475a62ab44fffb9e5c876700c101d", - "Annotate": "15c475a62ab44fffb9e5c876700c101d", - "CreateName": "RPC", - "CreateDate": "2025-12-10 11:35:26.9493815", - "MatrixId": "5de524d0-3f95-406c-86dd-f83626ebc7cb" - }, - { - "uuid": "62568d1d0a8d4f81a879826b0ab6e466", - "PlanName": "protocol_1765338328.973164", - "PlanCode": "62568d1d0a8d4f81a879826b0ab6e466", - "PlanTarget": "62568d1d0a8d4f81a879826b0ab6e466", - "Annotate": "62568d1d0a8d4f81a879826b0ab6e466", - "CreateName": "RPC", - "CreateDate": "2025-12-10 11:45:27.8135535", - "MatrixId": "5de524d0-3f95-406c-86dd-f83626ebc7cb" - }, - { - "uuid": "5b514d82ef71446e8b97f3746939b114", - "PlanName": "protocol_1765348423.606692", - "PlanCode": "5b514d82ef71446e8b97f3746939b114", - "PlanTarget": "5b514d82ef71446e8b97f3746939b114", - "Annotate": "5b514d82ef71446e8b97f3746939b114", - "CreateName": "RPC", - "CreateDate": "2025-12-10 14:33:41.9436876", - "MatrixId": "5de524d0-3f95-406c-86dd-f83626ebc7cb" - }, - { - "uuid": "08e219b1b241445486e1af41a65426dc", - "PlanName": "protocol_1765348565.726896", - "PlanCode": "08e219b1b241445486e1af41a65426dc", - "PlanTarget": "08e219b1b241445486e1af41a65426dc", - "Annotate": "08e219b1b241445486e1af41a65426dc", - "CreateName": "RPC", - "CreateDate": "2025-12-10 14:36:04.0770817", - "MatrixId": "5de524d0-3f95-406c-86dd-f83626ebc7cb" - }, - { - "uuid": "8b56dc3fe4024ff7874096898be421ab", - "PlanName": "protocol_1765348729.426798", - "PlanCode": "8b56dc3fe4024ff7874096898be421ab", - "PlanTarget": "8b56dc3fe4024ff7874096898be421ab", - "Annotate": "8b56dc3fe4024ff7874096898be421ab", - "CreateName": "RPC", - "CreateDate": "2025-12-10 14:38:47.7589443", - "MatrixId": "5de524d0-3f95-406c-86dd-f83626ebc7cb" - }, - { - "uuid": "ea4df1ac33b247f4b8ee0d192b505422", - "PlanName": "protocol_1765348771.986075", - "PlanCode": "ea4df1ac33b247f4b8ee0d192b505422", - "PlanTarget": "ea4df1ac33b247f4b8ee0d192b505422", - "Annotate": "ea4df1ac33b247f4b8ee0d192b505422", - "CreateName": "RPC", - "CreateDate": "2025-12-10 14:39:30.3150079", - "MatrixId": "5de524d0-3f95-406c-86dd-f83626ebc7cb" - }, - { - "uuid": "4b182a84084740c2838573c42db25472", - "PlanName": "protocol_1765349066.1719658", - "PlanCode": "4b182a84084740c2838573c42db25472", - "PlanTarget": "4b182a84084740c2838573c42db25472", - "Annotate": "4b182a84084740c2838573c42db25472", - "CreateName": "RPC", - "CreateDate": "2025-12-10 14:44:24.4966166", - "MatrixId": "5de524d0-3f95-406c-86dd-f83626ebc7cb" - }, - { - "uuid": "80b129d227254b08ad0209635728ef07", - "PlanName": "protocol_1765351478.054213", - "PlanCode": "80b129d227254b08ad0209635728ef07", - "PlanTarget": "80b129d227254b08ad0209635728ef07", - "Annotate": "80b129d227254b08ad0209635728ef07", - "CreateName": "RPC", - "CreateDate": "2025-12-10 15:24:36.2931787", - "MatrixId": "5de524d0-3f95-406c-86dd-f83626ebc7cb" - }, - { - "uuid": "82aa0d68ab63473ea51a063032bcbf3f", - "PlanName": "protocol_1765351614.9890869", - "PlanCode": "82aa0d68ab63473ea51a063032bcbf3f", - "PlanTarget": "82aa0d68ab63473ea51a063032bcbf3f", - "Annotate": "82aa0d68ab63473ea51a063032bcbf3f", - "CreateName": "RPC", - "CreateDate": "2025-12-10 15:26:53.277455", - "MatrixId": "5de524d0-3f95-406c-86dd-f83626ebc7cb" - }, - { - "uuid": "afdd487efe9643088087b18e120d2b0c", - "PlanName": "protocol_1765353153.8630662", - "PlanCode": "afdd487efe9643088087b18e120d2b0c", - "PlanTarget": "afdd487efe9643088087b18e120d2b0c", - "Annotate": "afdd487efe9643088087b18e120d2b0c", - "CreateName": "RPC", - "CreateDate": "2025-12-10 15:52:31.9799257", - "MatrixId": "5de524d0-3f95-406c-86dd-f83626ebc7cb" - }, - { - "uuid": "7e91bf286d264ae48d1b3a2e0a2ba564", - "PlanName": "protocol_1765353327.386503", - "PlanCode": "7e91bf286d264ae48d1b3a2e0a2ba564", - "PlanTarget": "7e91bf286d264ae48d1b3a2e0a2ba564", - "Annotate": "7e91bf286d264ae48d1b3a2e0a2ba564", - "CreateName": "RPC", - "CreateDate": "2025-12-10 15:55:25.4881601", - "MatrixId": "5de524d0-3f95-406c-86dd-f83626ebc7cb" - }, - { - "uuid": "841aaa472624480db57cbc9f43b5605a", - "PlanName": "protocol_1765354435.378185", - "PlanCode": "841aaa472624480db57cbc9f43b5605a", - "PlanTarget": "841aaa472624480db57cbc9f43b5605a", - "Annotate": "841aaa472624480db57cbc9f43b5605a", - "CreateName": "RPC", - "CreateDate": "2025-12-10 16:13:53.4186503", - "MatrixId": "5de524d0-3f95-406c-86dd-f83626ebc7cb" - }, - { - "uuid": "2ac7f86b287345d9ac9d723e341dc0cb", - "PlanName": "protocol_1765354472.95896", - "PlanCode": "2ac7f86b287345d9ac9d723e341dc0cb", - "PlanTarget": "2ac7f86b287345d9ac9d723e341dc0cb", - "Annotate": "2ac7f86b287345d9ac9d723e341dc0cb", - "CreateName": "RPC", - "CreateDate": "2025-12-10 16:14:31.014069", - "MatrixId": "5de524d0-3f95-406c-86dd-f83626ebc7cb" - }, - { - "uuid": "7f87a175c45d4889a841259e4e6c9c33", - "PlanName": "protocol_1765354661.356786", - "PlanCode": "7f87a175c45d4889a841259e4e6c9c33", - "PlanTarget": "7f87a175c45d4889a841259e4e6c9c33", - "Annotate": "7f87a175c45d4889a841259e4e6c9c33", - "CreateName": "RPC", - "CreateDate": "2025-12-10 16:17:39.508416", - "MatrixId": "5de524d0-3f95-406c-86dd-f83626ebc7cb" - }, - { - "uuid": "c07fe45794614cddb9bd9ca4a5322108", - "PlanName": "protocol_1765355796.7156029", - "PlanCode": "c07fe45794614cddb9bd9ca4a5322108", - "PlanTarget": "c07fe45794614cddb9bd9ca4a5322108", - "Annotate": "c07fe45794614cddb9bd9ca4a5322108", - "CreateName": "RPC", - "CreateDate": "2025-12-10 16:36:36.9988157", - "MatrixId": "5de524d0-3f95-406c-86dd-f83626ebc7cb" - }, - { - "uuid": "ffe64ff91db64c3a9569c87543589297", - "PlanName": "protocol_1765358234.454807", - "PlanCode": "ffe64ff91db64c3a9569c87543589297", - "PlanTarget": "ffe64ff91db64c3a9569c87543589297", - "Annotate": "ffe64ff91db64c3a9569c87543589297", - "CreateName": "RPC", - "CreateDate": "2025-12-10 17:17:14.6106047", - "MatrixId": "5de524d0-3f95-406c-86dd-f83626ebc7cb" - }, - { - "uuid": "b5dcf96e580e4663b09b4a3253583695", - "PlanName": "protocol_1765358446.736762", - "PlanCode": "b5dcf96e580e4663b09b4a3253583695", - "PlanTarget": "b5dcf96e580e4663b09b4a3253583695", - "Annotate": "b5dcf96e580e4663b09b4a3253583695", - "CreateName": "RPC", - "CreateDate": "2025-12-10 17:20:46.917161", - "MatrixId": "5de524d0-3f95-406c-86dd-f83626ebc7cb" - }, - { - "uuid": "ac533ce9f4dc45f2b5ac9625a8c7a232", - "PlanName": "protocol_1765358564.385175", - "PlanCode": "ac533ce9f4dc45f2b5ac9625a8c7a232", - "PlanTarget": "ac533ce9f4dc45f2b5ac9625a8c7a232", - "Annotate": "ac533ce9f4dc45f2b5ac9625a8c7a232", - "CreateName": "RPC", - "CreateDate": "2025-12-10 17:22:44.5358231", - "MatrixId": "5de524d0-3f95-406c-86dd-f83626ebc7cb" - }, - { - "uuid": "08928a3c72404949b958868a4e6c77c3", - "PlanName": "protocol_1765436692.253953", - "PlanCode": "08928a3c72404949b958868a4e6c77c3", - "PlanTarget": "08928a3c72404949b958868a4e6c77c3", - "Annotate": "08928a3c72404949b958868a4e6c77c3", - "CreateName": "RPC", - "CreateDate": "2025-12-11 15:04:49.2816905", - "MatrixId": "5de524d0-3f95-406c-86dd-f83626ebc7cb" - }, - { - "uuid": "1edb7af6aab6481d9920693a7e56b17b", - "PlanName": "protocol_1765438836.235264", - "PlanCode": "1edb7af6aab6481d9920693a7e56b17b", - "PlanTarget": "1edb7af6aab6481d9920693a7e56b17b", - "Annotate": "1edb7af6aab6481d9920693a7e56b17b", - "CreateName": "RPC", - "CreateDate": "2025-12-11 15:40:32.979771", - "MatrixId": "5de524d0-3f95-406c-86dd-f83626ebc7cb" - }, - { - "uuid": "563257b41bd343d4b32edeef8ade22c0", - "PlanName": "protocol_1765447051.3557901", - "PlanCode": "563257b41bd343d4b32edeef8ade22c0", - "PlanTarget": "563257b41bd343d4b32edeef8ade22c0", - "Annotate": "563257b41bd343d4b32edeef8ade22c0", - "CreateName": "RPC", - "CreateDate": "2025-12-11 17:57:27.7396842", - "MatrixId": "5de524d0-3f95-406c-86dd-f83626ebc7cb" - }, - { - "uuid": "de48aaab0c6c4d8b94c8279c221f6328", - "PlanName": "protocol_1765448816.6414661", - "PlanCode": "de48aaab0c6c4d8b94c8279c221f6328", - "PlanTarget": "de48aaab0c6c4d8b94c8279c221f6328", - "Annotate": "de48aaab0c6c4d8b94c8279c221f6328", - "CreateName": "RPC", - "CreateDate": "2025-12-11 18:26:53.0367658", - "MatrixId": "5de524d0-3f95-406c-86dd-f83626ebc7cb" - }, - { - "uuid": "6d5e1a5fd53342549483206f79838bed", - "PlanName": "protocol_1765449000.330406", - "PlanCode": "6d5e1a5fd53342549483206f79838bed", - "PlanTarget": "6d5e1a5fd53342549483206f79838bed", - "Annotate": "6d5e1a5fd53342549483206f79838bed", - "CreateName": "RPC", - "CreateDate": "2025-12-11 18:29:56.7265213", - "MatrixId": "5de524d0-3f95-406c-86dd-f83626ebc7cb" - }, - { - "uuid": "c5e47bf1bb7e4b8ca4c375cea9c08d21", - "PlanName": "protocol_1765505853.8375318", - "PlanCode": "c5e47bf1bb7e4b8ca4c375cea9c08d21", - "PlanTarget": "c5e47bf1bb7e4b8ca4c375cea9c08d21", - "Annotate": "c5e47bf1bb7e4b8ca4c375cea9c08d21", - "CreateName": "RPC", - "CreateDate": "2025-12-12 10:17:32.0891528", - "MatrixId": "5de524d0-3f95-406c-86dd-f83626ebc7cb" - }, - { - "uuid": "95f18085c1a24a92ae58779190662342", - "PlanName": "protocol_1765790980.0094335", - "PlanCode": "95f18085c1a24a92ae58779190662342", - "PlanTarget": "95f18085c1a24a92ae58779190662342", - "Annotate": "95f18085c1a24a92ae58779190662342", - "CreateName": "RPC", - "CreateDate": "2025-12-15 17:29:37.2530925", - "MatrixId": "5de524d0-3f95-406c-86dd-f83626ebc7cb" - }, - { - "uuid": "f3715c962aac4332bffe1ea982fcce6e", - "PlanName": "protocol_1765791098.0649621", - "PlanCode": "f3715c962aac4332bffe1ea982fcce6e", - "PlanTarget": "f3715c962aac4332bffe1ea982fcce6e", - "Annotate": "f3715c962aac4332bffe1ea982fcce6e", - "CreateName": "RPC", - "CreateDate": "2025-12-15 17:31:35.2784592", - "MatrixId": "5de524d0-3f95-406c-86dd-f83626ebc7cb" - } -] \ No newline at end of file diff --git a/unilabos/devices/liquid_handling/prcxi/json_output/base_plate_position.json b/unilabos/devices/liquid_handling/prcxi/json_output/base_plate_position.json deleted file mode 100644 index 6ae75ca2..00000000 --- a/unilabos/devices/liquid_handling/prcxi/json_output/base_plate_position.json +++ /dev/null @@ -1,98 +0,0 @@ -[ - { - "id": "ef121889-2724-4b3d-a786-bbf0bd213c3d", - "name": "9300_V02", - "row": 2, - "col": 3, - "create_name": "", - "create_time": "2023-08-12 16:02:20.994", - "update_name": null, - "update_time": null, - "remark": "9300_V02", - "isUse": 0 - }, - { - "id": "9af15efc-29d2-4c44-8533-bbaf24913be6", - "name": "9310", - "row": 3, - "col": 4, - "create_name": "", - "create_time": "2023-08-12 16:23:07.472", - "update_name": null, - "update_time": null, - "remark": "9310", - "isUse": 0 - }, - { - "id": "6ed12532-eeae-4c16-a9ae-18f0b0cfc546", - "name": "6版位", - "row": 2, - "col": 4, - "create_name": "", - "create_time": "2023-10-09 11:05:57.244", - "update_name": null, - "update_time": null, - "remark": "6版位", - "isUse": 0 - }, - { - "id": "77673540-92c4-4404-b659-4257034a9c5e", - "name": "9300_V03", - "row": 2, - "col": 3, - "create_name": "", - "create_time": "2024-01-20 08:49:09.620", - "update_name": null, - "update_time": null, - "remark": "9300_V03", - "isUse": 0 - }, - { - "id": "c08591fe-bc7e-42a8-bfa1-a27a4967058e", - "name": "9320", - "row": 4, - "col": 7, - "create_name": "", - "create_time": "2025-03-10 13:44:17.994", - "update_name": null, - "update_time": null, - "remark": "9320", - "isUse": 0 - }, - { - "id": "54092457-a8b8-4457-bccd-e8c251e83ebd", - "name": "7.17演示", - "row": 4, - "col": 4, - "create_name": "", - "create_time": "2025-07-12 17:08:38.336", - "update_name": null, - "update_time": null, - "remark": "7.17演示", - "isUse": 0 - }, - { - "id": "e3855307-d91f-4ddc-9caf-565c0fd8adfc", - "name": "北京大学 16版位", - "row": 4, - "col": 4, - "create_name": "", - "create_time": "2025-09-03 13:23:51.781", - "update_name": null, - "update_time": null, - "remark": "北京大学 16版位", - "isUse": 1 - }, - { - "id": "a25563ec-8a2a-4de8-9ca2-a59c1c71427a", - "name": "TEST", - "row": 4, - "col": 4, - "create_name": "", - "create_time": "2025-10-27 14:36:03.266", - "update_name": null, - "update_time": null, - "remark": "TEST", - "isUse": 0 - } -] \ No newline at end of file diff --git a/unilabos/devices/liquid_handling/prcxi/json_output/base_plate_position_detail.json b/unilabos/devices/liquid_handling/prcxi/json_output/base_plate_position_detail.json deleted file mode 100644 index 7b1f30bb..00000000 --- a/unilabos/devices/liquid_handling/prcxi/json_output/base_plate_position_detail.json +++ /dev/null @@ -1,872 +0,0 @@ -[ - { - "id": "630a9ca9-dfbf-40f9-b90b-6df73e6a1d7f", - "number": 1, - "name": "T1", - "row": 0, - "col": 0, - "row_span": 1, - "col_span": 1, - "plate_position_id": "ef121889-2724-4b3d-a786-bbf0bd213c3d" - }, - { - "id": "db955443-1397-4a7a-a0cc-185eb6422c27", - "number": 2, - "name": "T2", - "row": 0, - "col": 1, - "row_span": 1, - "col_span": 1, - "plate_position_id": "ef121889-2724-4b3d-a786-bbf0bd213c3d" - }, - { - "id": "635e8265-e2b9-430e-8a4e-ddf94256266f", - "number": 3, - "name": "T3", - "row": 0, - "col": 2, - "row_span": 2, - "col_span": 1, - "plate_position_id": "ef121889-2724-4b3d-a786-bbf0bd213c3d" - }, - { - "id": "6de1521d-a249-4a7e-800f-1d49b5c7b56f", - "number": 4, - "name": "T4", - "row": 1, - "col": 0, - "row_span": 1, - "col_span": 1, - "plate_position_id": "ef121889-2724-4b3d-a786-bbf0bd213c3d" - }, - { - "id": "4f9f2527-0f71-4ec4-a0ac-e546407e2960", - "number": 5, - "name": "T5", - "row": 1, - "col": 1, - "row_span": 1, - "col_span": 1, - "plate_position_id": "ef121889-2724-4b3d-a786-bbf0bd213c3d" - }, - { - "id": "55ecff40-453f-4a5f-9ed3-1267b0a03cae", - "number": 1, - "name": "T1", - "row": 0, - "col": 0, - "row_span": 1, - "col_span": 1, - "plate_position_id": "9af15efc-29d2-4c44-8533-bbaf24913be6" - }, - { - "id": "7dcd9c87-6702-4659-b28a-f6565b27f8e3", - "number": 2, - "name": "T2", - "row": 0, - "col": 1, - "row_span": 1, - "col_span": 1, - "plate_position_id": "9af15efc-29d2-4c44-8533-bbaf24913be6" - }, - { - "id": "67e51bd6-6eee-46e4-931c-73d9e07397eb", - "number": 3, - "name": "T3", - "row": 0, - "col": 2, - "row_span": 1, - "col_span": 1, - "plate_position_id": "9af15efc-29d2-4c44-8533-bbaf24913be6" - }, - { - "id": "e1289406-4f5e-4966-a1e6-fb29be6cd4bd", - "number": 4, - "name": "T4", - "row": 0, - "col": 3, - "row_span": 1, - "col_span": 1, - "plate_position_id": "9af15efc-29d2-4c44-8533-bbaf24913be6" - }, - { - "id": "4ecb9ef7-cbd4-44bc-a6a9-fdbbefdc01d6", - "number": 5, - "name": "T5", - "row": 1, - "col": 0, - "row_span": 1, - "col_span": 1, - "plate_position_id": "9af15efc-29d2-4c44-8533-bbaf24913be6" - }, - { - "id": "c7bcaeeb-7ce7-479d-8dae-e82f4023a2b6", - "number": 6, - "name": "T6", - "row": 1, - "col": 1, - "row_span": 1, - "col_span": 1, - "plate_position_id": "9af15efc-29d2-4c44-8533-bbaf24913be6" - }, - { - "id": "e502d5ee-3197-4f60-8ac4-3bc005349dfd", - "number": 7, - "name": "T7", - "row": 1, - "col": 2, - "row_span": 1, - "col_span": 1, - "plate_position_id": "9af15efc-29d2-4c44-8533-bbaf24913be6" - }, - { - "id": "829c78b0-9e05-448f-9531-6d19c094c83f", - "number": 8, - "name": "T8", - "row": 1, - "col": 3, - "row_span": 1, - "col_span": 1, - "plate_position_id": "9af15efc-29d2-4c44-8533-bbaf24913be6" - }, - { - "id": "d0fd64d6-360d-4f5e-9451-21a332e247f5", - "number": 9, - "name": "T9", - "row": 2, - "col": 0, - "row_span": 1, - "col_span": 1, - "plate_position_id": "9af15efc-29d2-4c44-8533-bbaf24913be6" - }, - { - "id": "7f3da25d-0be0-4e07-885f-fbbbfa952f9f", - "number": 10, - "name": "T10", - "row": 2, - "col": 1, - "row_span": 1, - "col_span": 1, - "plate_position_id": "9af15efc-29d2-4c44-8533-bbaf24913be6" - }, - { - "id": "491d396d-7264-43d6-9ad4-60bffbe66c26", - "number": 11, - "name": "T11", - "row": 2, - "col": 2, - "row_span": 1, - "col_span": 1, - "plate_position_id": "9af15efc-29d2-4c44-8533-bbaf24913be6" - }, - { - "id": "a8853b6d-639d-46f9-a4bf-9153c0c22461", - "number": 12, - "name": "T12", - "row": 2, - "col": 3, - "row_span": 1, - "col_span": 1, - "plate_position_id": "9af15efc-29d2-4c44-8533-bbaf24913be6" - }, - { - "id": "b7beb8d0-0003-471d-bd8d-a9c0e09b07d5", - "number": 1, - "name": "T1", - "row": 0, - "col": 0, - "row_span": 1, - "col_span": 1, - "plate_position_id": "6ed12532-eeae-4c16-a9ae-18f0b0cfc546" - }, - { - "id": "306e3f96-a6d7-484a-83ef-722e3710d5c4", - "number": 2, - "name": "T2", - "row": 0, - "col": 1, - "row_span": 1, - "col_span": 1, - "plate_position_id": "6ed12532-eeae-4c16-a9ae-18f0b0cfc546" - }, - { - "id": "4e7bb617-ac1a-4360-b379-7ac4197089c4", - "number": 3, - "name": "T3", - "row": 0, - "col": 2, - "row_span": 1, - "col_span": 1, - "plate_position_id": "6ed12532-eeae-4c16-a9ae-18f0b0cfc546" - }, - { - "id": "af583180-c29d-418e-9061-9e030f77cf57", - "number": 4, - "name": "T4", - "row": 0, - "col": 3, - "row_span": 2, - "col_span": 1, - "plate_position_id": "6ed12532-eeae-4c16-a9ae-18f0b0cfc546" - }, - { - "id": "24a85ce8-e9e3-44f5-9d08-25116173ba75", - "number": 5, - "name": "T5", - "row": 1, - "col": 0, - "row_span": 1, - "col_span": 1, - "plate_position_id": "6ed12532-eeae-4c16-a9ae-18f0b0cfc546" - }, - { - "id": "7bf61a40-f65a-4d2f-bb19-d42bfd80e2e9", - "number": 6, - "name": "T6", - "row": 1, - "col": 1, - "row_span": 1, - "col_span": 1, - "plate_position_id": "6ed12532-eeae-4c16-a9ae-18f0b0cfc546" - }, - { - "id": "a3177806-3c02-4c4f-86d6-604a38c2ba2a", - "number": 7, - "name": "T7", - "row": 1, - "col": 2, - "row_span": 1, - "col_span": 1, - "plate_position_id": "6ed12532-eeae-4c16-a9ae-18f0b0cfc546" - }, - { - "id": "8ccaad5a-8588-4ff3-b0d7-17e7fd5ac6cc", - "number": 1, - "name": "T1", - "row": 0, - "col": 0, - "row_span": 1, - "col_span": 1, - "plate_position_id": "77673540-92c4-4404-b659-4257034a9c5e" - }, - { - "id": "93ae7707-b6b8-4bc4-8700-c500c3d7b165", - "number": 2, - "name": "T2", - "row": 0, - "col": 1, - "row_span": 1, - "col_span": 1, - "plate_position_id": "77673540-92c4-4404-b659-4257034a9c5e" - }, - { - "id": "3591a07b-4922-4882-996f-7bebee843be1", - "number": 3, - "name": "T3", - "row": 0, - "col": 2, - "row_span": 1, - "col_span": 1, - "plate_position_id": "77673540-92c4-4404-b659-4257034a9c5e" - }, - { - "id": "669fdba9-b20c-4bd2-8352-8fe5682e3e0c", - "number": 4, - "name": "T4", - "row": 1, - "col": 0, - "row_span": 1, - "col_span": 1, - "plate_position_id": "77673540-92c4-4404-b659-4257034a9c5e" - }, - { - "id": "8bf3333e-4a73-4e4c-959a-8ae44e1038a2", - "number": 5, - "name": "T5", - "row": 1, - "col": 1, - "row_span": 1, - "col_span": 1, - "plate_position_id": "77673540-92c4-4404-b659-4257034a9c5e" - }, - { - "id": "2837bf69-273a-4cbb-a74c-0af1b362f609", - "number": 6, - "name": "T6", - "row": 1, - "col": 2, - "row_span": 1, - "col_span": 1, - "plate_position_id": "77673540-92c4-4404-b659-4257034a9c5e" - }, - { - "id": "e9d352fa-816a-4c01-a9e2-f52bce8771f1", - "number": 1, - "name": "T1", - "row": 0, - "col": 0, - "row_span": 4, - "col_span": 1, - "plate_position_id": "c08591fe-bc7e-42a8-bfa1-a27a4967058e" - }, - { - "id": "713f1d85-b671-49f1-a2f9-11a64e5bb545", - "number": 2, - "name": "T2", - "row": 0, - "col": 1, - "row_span": 4, - "col_span": 1, - "plate_position_id": "c08591fe-bc7e-42a8-bfa1-a27a4967058e" - }, - { - "id": "ba2d8fd6-e2fa-4dd3-8afc-13472ca12afb", - "number": 3, - "name": "T3", - "row": 0, - "col": 2, - "row_span": 4, - "col_span": 1, - "plate_position_id": "c08591fe-bc7e-42a8-bfa1-a27a4967058e" - }, - { - "id": "68137a87-ae26-4e27-8953-4b1335ed957c", - "number": 4, - "name": "T4", - "row": 0, - "col": 3, - "row_span": 1, - "col_span": 1, - "plate_position_id": "c08591fe-bc7e-42a8-bfa1-a27a4967058e" - }, - { - "id": "182b2814-9c89-4a75-8456-9a82e774f876", - "number": 5, - "name": "T5", - "row": 0, - "col": 4, - "row_span": 1, - "col_span": 1, - "plate_position_id": "c08591fe-bc7e-42a8-bfa1-a27a4967058e" - }, - { - "id": "bc149d3c-9d54-45f0-8c33-23a5d4b70aff", - "number": 6, - "name": "T6", - "row": 0, - "col": 5, - "row_span": 1, - "col_span": 1, - "plate_position_id": "c08591fe-bc7e-42a8-bfa1-a27a4967058e" - }, - { - "id": "7d9ce812-c39c-42fe-9b73-f35364a7b01f", - "number": 7, - "name": "T7", - "row": 0, - "col": 6, - "row_span": 1, - "col_span": 1, - "plate_position_id": "c08591fe-bc7e-42a8-bfa1-a27a4967058e" - }, - { - "id": "4907b17d-c3f8-40a6-a8a2-e874f66195b1", - "number": 8, - "name": "T8", - "row": 1, - "col": 3, - "row_span": 1, - "col_span": 1, - "plate_position_id": "c08591fe-bc7e-42a8-bfa1-a27a4967058e" - }, - { - "id": "f858fdb5-649f-4cb2-8e95-06a1b2d97113", - "number": 9, - "name": "T9", - "row": 1, - "col": 4, - "row_span": 1, - "col_span": 1, - "plate_position_id": "c08591fe-bc7e-42a8-bfa1-a27a4967058e" - }, - { - "id": "cc5f91d2-494a-4991-9dda-3b82ae61556b", - "number": 10, - "name": "T10", - "row": 1, - "col": 5, - "row_span": 1, - "col_span": 1, - "plate_position_id": "c08591fe-bc7e-42a8-bfa1-a27a4967058e" - }, - { - "id": "afed9a1f-2f48-4ca9-ae14-eb1ae4e80181", - "number": 11, - "name": "T11", - "row": 1, - "col": 6, - "row_span": 1, - "col_span": 1, - "plate_position_id": "c08591fe-bc7e-42a8-bfa1-a27a4967058e" - }, - { - "id": "1d39cacd-7828-4318-9d4f-5bf8fc21d77d", - "number": 12, - "name": "T12", - "row": 2, - "col": 3, - "row_span": 1, - "col_span": 1, - "plate_position_id": "c08591fe-bc7e-42a8-bfa1-a27a4967058e" - }, - { - "id": "086912ac-4f33-4214-a2c8-22acb5291bfe", - "number": 13, - "name": "T13", - "row": 2, - "col": 4, - "row_span": 1, - "col_span": 1, - "plate_position_id": "c08591fe-bc7e-42a8-bfa1-a27a4967058e" - }, - { - "id": "89d43ea4-93f6-4cbf-aba4-564b0067295f", - "number": 14, - "name": "T14", - "row": 2, - "col": 5, - "row_span": 1, - "col_span": 1, - "plate_position_id": "c08591fe-bc7e-42a8-bfa1-a27a4967058e" - }, - { - "id": "866b12a8-5ef6-426d-a65b-b0583a3d8f16", - "number": 15, - "name": "T15", - "row": 2, - "col": 6, - "row_span": 1, - "col_span": 1, - "plate_position_id": "c08591fe-bc7e-42a8-bfa1-a27a4967058e" - }, - { - "id": "6c5969a9-e763-48f4-97f4-a9027e3ea7ef", - "number": 16, - "name": "T16", - "row": 3, - "col": 3, - "row_span": 1, - "col_span": 1, - "plate_position_id": "c08591fe-bc7e-42a8-bfa1-a27a4967058e" - }, - { - "id": "af8370be-076d-455d-b0b3-dd246f76d930", - "number": 17, - "name": "T17", - "row": 3, - "col": 4, - "row_span": 1, - "col_span": 1, - "plate_position_id": "c08591fe-bc7e-42a8-bfa1-a27a4967058e" - }, - { - "id": "abf2b8c7-79ef-4fd1-9f9b-14e7e6a128c7", - "number": 18, - "name": "T18", - "row": 3, - "col": 5, - "row_span": 1, - "col_span": 1, - "plate_position_id": "c08591fe-bc7e-42a8-bfa1-a27a4967058e" - }, - { - "id": "ca92a1e9-eb7d-4f9a-a42c-9bae461da797", - "number": 19, - "name": "T19", - "row": 3, - "col": 6, - "row_span": 1, - "col_span": 1, - "plate_position_id": "c08591fe-bc7e-42a8-bfa1-a27a4967058e" - }, - { - "id": "4a4df4fd-ea0b-461c-aad4-032bfda5abab", - "number": 1, - "name": "T1", - "row": 0, - "col": 0, - "row_span": 4, - "col_span": 1, - "plate_position_id": "54092457-a8b8-4457-bccd-e8c251e83ebd" - }, - { - "id": "dba90870-4b7a-4fbd-b33f-948bbb594703", - "number": 2, - "name": "T2", - "row": 0, - "col": 1, - "row_span": 1, - "col_span": 1, - "plate_position_id": "54092457-a8b8-4457-bccd-e8c251e83ebd" - }, - { - "id": "fddc5c2b-157f-4554-8b39-2c9e338f4d3a", - "number": 3, - "name": "T3", - "row": 0, - "col": 2, - "row_span": 1, - "col_span": 1, - "plate_position_id": "54092457-a8b8-4457-bccd-e8c251e83ebd" - }, - { - "id": "2569a396-2cd8-4cac-8b78-a8af1313c993", - "number": 4, - "name": "T4", - "row": 0, - "col": 3, - "row_span": 1, - "col_span": 1, - "plate_position_id": "54092457-a8b8-4457-bccd-e8c251e83ebd" - }, - { - "id": "f0f693c7-a45f-4dd3-b629-621461ca9992", - "number": 5, - "name": "T5", - "row": 1, - "col": 1, - "row_span": 1, - "col_span": 1, - "plate_position_id": "54092457-a8b8-4457-bccd-e8c251e83ebd" - }, - { - "id": "9dcba2bf-8a48-4bc6-a9b1-88f51ffaa8af", - "number": 6, - "name": "T6", - "row": 1, - "col": 2, - "row_span": 1, - "col_span": 1, - "plate_position_id": "54092457-a8b8-4457-bccd-e8c251e83ebd" - }, - { - "id": "08449a38-0dca-48c4-a156-6f1055cf74c4", - "number": 7, - "name": "T7", - "row": 1, - "col": 3, - "row_span": 1, - "col_span": 1, - "plate_position_id": "54092457-a8b8-4457-bccd-e8c251e83ebd" - }, - { - "id": "6ec7343f-12b9-42ae-86d1-3894758e69b4", - "number": 8, - "name": "T8", - "row": 2, - "col": 1, - "row_span": 1, - "col_span": 1, - "plate_position_id": "54092457-a8b8-4457-bccd-e8c251e83ebd" - }, - { - "id": "b5f02dbc-ffc6-452a-ad9f-2d1ff3db2064", - "number": 9, - "name": "T9", - "row": 2, - "col": 2, - "row_span": 1, - "col_span": 1, - "plate_position_id": "54092457-a8b8-4457-bccd-e8c251e83ebd" - }, - { - "id": "7635380a-4f96-4894-9a54-37c2bd27f148", - "number": 10, - "name": "T10", - "row": 2, - "col": 3, - "row_span": 1, - "col_span": 1, - "plate_position_id": "54092457-a8b8-4457-bccd-e8c251e83ebd" - }, - { - "id": "b4b6b063-5a0b-45a2-aa47-f427d4cd06f6", - "number": 11, - "name": "T11", - "row": 3, - "col": 1, - "row_span": 1, - "col_span": 1, - "plate_position_id": "54092457-a8b8-4457-bccd-e8c251e83ebd" - }, - { - "id": "af02c689-7bca-476b-bd05-ce21d3e83f27", - "number": 12, - "name": "T12", - "row": 3, - "col": 2, - "row_span": 1, - "col_span": 1, - "plate_position_id": "54092457-a8b8-4457-bccd-e8c251e83ebd" - }, - { - "id": "52a42e58-c0d6-420c-bc0b-575f749c7e3b", - "number": 13, - "name": "T13", - "row": 3, - "col": 3, - "row_span": 1, - "col_span": 1, - "plate_position_id": "54092457-a8b8-4457-bccd-e8c251e83ebd" - }, - { - "id": "169c12fe-e2f4-465e-9fd3-e58eac83a502", - "number": 1, - "name": "T1", - "row": 0, - "col": 0, - "row_span": 1, - "col_span": 1, - "plate_position_id": "e3855307-d91f-4ddc-9caf-565c0fd8adfc" - }, - { - "id": "b6072651-1df5-4946-a5b4-fbff3fa54e6a", - "number": 2, - "name": "T2", - "row": 0, - "col": 1, - "row_span": 1, - "col_span": 1, - "plate_position_id": "e3855307-d91f-4ddc-9caf-565c0fd8adfc" - }, - { - "id": "d0b8ea7c-f06e-4d94-98a8-70ffcba73c47", - "number": 3, - "name": "T3", - "row": 0, - "col": 2, - "row_span": 1, - "col_span": 1, - "plate_position_id": "e3855307-d91f-4ddc-9caf-565c0fd8adfc" - }, - { - "id": "a7a8eb69-63f6-494e-a441-b7aef0f7c8a4", - "number": 4, - "name": "T4", - "row": 0, - "col": 3, - "row_span": 1, - "col_span": 1, - "plate_position_id": "e3855307-d91f-4ddc-9caf-565c0fd8adfc" - }, - { - "id": "21966669-6761-4e37-947c-12fec82173fb", - "number": 5, - "name": "T5", - "row": 1, - "col": 0, - "row_span": 1, - "col_span": 1, - "plate_position_id": "e3855307-d91f-4ddc-9caf-565c0fd8adfc" - }, - { - "id": "2227b825-fe1d-4fa3-bcb2-6e4b3c10ea53", - "number": 6, - "name": "T6", - "row": 1, - "col": 1, - "row_span": 1, - "col_span": 1, - "plate_position_id": "e3855307-d91f-4ddc-9caf-565c0fd8adfc" - }, - { - "id": "b799da88-c2d9-4ec4-81ec-bc0991a50fe5", - "number": 7, - "name": "T7", - "row": 1, - "col": 2, - "row_span": 1, - "col_span": 1, - "plate_position_id": "e3855307-d91f-4ddc-9caf-565c0fd8adfc" - }, - { - "id": "adaaa00a-ff6b-4bd8-b8f1-bb100488f306", - "number": 8, - "name": "T8", - "row": 1, - "col": 3, - "row_span": 1, - "col_span": 1, - "plate_position_id": "e3855307-d91f-4ddc-9caf-565c0fd8adfc" - }, - { - "id": "3bc98311-b548-46d3-a0e0-4f1edcf10e24", - "number": 9, - "name": "T9", - "row": 2, - "col": 0, - "row_span": 1, - "col_span": 1, - "plate_position_id": "e3855307-d91f-4ddc-9caf-565c0fd8adfc" - }, - { - "id": "81befc70-d249-49af-93dd-2efbe88c0211", - "number": 10, - "name": "T10", - "row": 2, - "col": 1, - "row_span": 1, - "col_span": 1, - "plate_position_id": "e3855307-d91f-4ddc-9caf-565c0fd8adfc" - }, - { - "id": "45dd5535-0293-4d27-beab-1e486657b148", - "number": 11, - "name": "T11", - "row": 2, - "col": 2, - "row_span": 1, - "col_span": 1, - "plate_position_id": "e3855307-d91f-4ddc-9caf-565c0fd8adfc" - }, - { - "id": "12ccf33a-6fe7-44a4-8643-b0b0ac6dd181", - "number": 12, - "name": "T12", - "row": 2, - "col": 3, - "row_span": 1, - "col_span": 1, - "plate_position_id": "e3855307-d91f-4ddc-9caf-565c0fd8adfc" - }, - { - "id": "900272dd-23fd-41a4-a366-254999a30487", - "number": 13, - "name": "T13", - "row": 3, - "col": 0, - "row_span": 1, - "col_span": 1, - "plate_position_id": "e3855307-d91f-4ddc-9caf-565c0fd8adfc" - }, - { - "id": "c366710d-2b81-4cee-8667-2b86e77e5c34", - "number": 14, - "name": "T14", - "row": 3, - "col": 1, - "row_span": 1, - "col_span": 1, - "plate_position_id": "e3855307-d91f-4ddc-9caf-565c0fd8adfc" - }, - { - "id": "e18a9271-bc66-4c2b-8bc1-0fb129b5cc2f", - "number": 15, - "name": "T15", - "row": 3, - "col": 2, - "row_span": 1, - "col_span": 1, - "plate_position_id": "e3855307-d91f-4ddc-9caf-565c0fd8adfc" - }, - { - "id": "6737cba0-de84-4c1f-992d-645e7f159b0c", - "number": 16, - "name": "T16", - "row": 3, - "col": 3, - "row_span": 1, - "col_span": 1, - "plate_position_id": "e3855307-d91f-4ddc-9caf-565c0fd8adfc" - }, - { - "id": "8ace38ab-dbc7-48a1-8226-0fe92d176e07", - "number": 1, - "name": "T1", - "row": 0, - "col": 0, - "row_span": 1, - "col_span": 1, - "plate_position_id": "a25563ec-8a2a-4de8-9ca2-a59c1c71427a" - }, - { - "id": "033fec53-c52d-4b59-aec6-2135ae0e18b9", - "number": 2, - "name": "T2", - "row": 0, - "col": 1, - "row_span": 1, - "col_span": 1, - "plate_position_id": "a25563ec-8a2a-4de8-9ca2-a59c1c71427a" - }, - { - "id": "fa730930-8709-4250-928f-f757fce57b60", - "number": 3, - "name": "T3", - "row": 0, - "col": 2, - "row_span": 1, - "col_span": 1, - "plate_position_id": "a25563ec-8a2a-4de8-9ca2-a59c1c71427a" - }, - { - "id": "e279d6f1-5243-4224-8953-1033dbea25ac", - "number": 4, - "name": "T4", - "row": 0, - "col": 3, - "row_span": 1, - "col_span": 1, - "plate_position_id": "a25563ec-8a2a-4de8-9ca2-a59c1c71427a" - }, - { - "id": "76bd9426-6324-4af2-b12f-6ec0ff8c416e", - "number": 5, - "name": "T5", - "row": 1, - "col": 0, - "row_span": 1, - "col_span": 1, - "plate_position_id": "a25563ec-8a2a-4de8-9ca2-a59c1c71427a" - }, - { - "id": "3f4ff652-3d87-4254-a235-bafde3359dae", - "number": 6, - "name": "T6", - "row": 1, - "col": 1, - "row_span": 1, - "col_span": 1, - "plate_position_id": "a25563ec-8a2a-4de8-9ca2-a59c1c71427a" - }, - { - "id": "a38e94af-e91e-4e7a-b49d-8668001bb356", - "number": 7, - "name": "T7", - "row": 1, - "col": 2, - "row_span": 1, - "col_span": 1, - "plate_position_id": "a25563ec-8a2a-4de8-9ca2-a59c1c71427a" - }, - { - "id": "9e45da24-1346-4886-a303-932880a79954", - "number": 8, - "name": "T8", - "row": 1, - "col": 3, - "row_span": 1, - "col_span": 1, - "plate_position_id": "a25563ec-8a2a-4de8-9ca2-a59c1c71427a" - }, - { - "id": "1ac46e58-86ae-42d9-b230-d476b984507a", - "number": 9, - "name": "T9", - "row": 2, - "col": 0, - "row_span": 1, - "col_span": 1, - "plate_position_id": "a25563ec-8a2a-4de8-9ca2-a59c1c71427a" - } -] \ No newline at end of file diff --git a/unilabos/devices/liquid_handling/prcxi/json_output/base_process_detail.json b/unilabos/devices/liquid_handling/prcxi/json_output/base_process_detail.json deleted file mode 100644 index 0637a088..00000000 --- a/unilabos/devices/liquid_handling/prcxi/json_output/base_process_detail.json +++ /dev/null @@ -1 +0,0 @@ -[] \ No newline at end of file diff --git a/unilabos/devices/liquid_handling/prcxi/json_output/base_process_master.json b/unilabos/devices/liquid_handling/prcxi/json_output/base_process_master.json deleted file mode 100644 index 0637a088..00000000 --- a/unilabos/devices/liquid_handling/prcxi/json_output/base_process_master.json +++ /dev/null @@ -1 +0,0 @@ -[] \ No newline at end of file diff --git a/unilabos/devices/liquid_handling/prcxi/json_output/base_qrcode.json b/unilabos/devices/liquid_handling/prcxi/json_output/base_qrcode.json deleted file mode 100644 index 5f1b6182..00000000 --- a/unilabos/devices/liquid_handling/prcxi/json_output/base_qrcode.json +++ /dev/null @@ -1,58 +0,0 @@ -[ - { - "uuid": "4034fa042e7f418db42ab80b0044a8cd", - "Code": "MDHC-001-10", - "Key": "c28ae2cb", - "Value": "MDHC-001-1000522001001612db9dc", - "CreateTime": "2022-01-22 17:07:00.8651386" - }, - { - "uuid": "8fb6d7589fdd42df93c1e1989ff13a62", - "Code": "MDHC-001-10", - "Key": "52980979", - "Value": "MDHC-001-100052200100119bb6731", - "CreateTime": "2022-01-22 20:19:20.9444209" - }, - { - "uuid": "efc4c92b40a94de6b0662c64486c18d1", - "Code": "MDHC-001-10", - "Key": "79da8402", - "Value": "MDHC-001-1000522001001e24ea780", - "CreateTime": "2022-01-22 20:19:26.8107506" - }, - { - "uuid": "3b81b1a9eabc4449b4dcbbbde47cb17f", - "Code": "MDHC-001-10", - "Key": "daa51755", - "Value": "MDHC-001-100052200100185dd22e2", - "CreateTime": "2022-01-22 20:19:36.1581374" - }, - { - "uuid": "d005a70801544e42ab9d216ad68dbf50", - "Code": "MDHC-023-0.2", - "Key": "992bbdab", - "Value": "MDHC-023-0.2005220010014871a385", - "CreateTime": "2022-02-16 15:49:53.760377" - }, - { - "uuid": "222315afb8e04320b0fcff10e3ddb8ae", - "Code": "MDHC-023-0.2", - "Key": "76d23270", - "Value": "MDHC-023-0.200522001001e61547ee", - "CreateTime": "2022-02-16 15:50:05.1932055" - }, - { - "uuid": "31e2a5d4f884419aa9ba96cef98b7385", - "Code": "MDHC-023-0.2", - "Key": "ba2b8a46", - "Value": "MDHC-023-0.2005220010013bfed6cf", - "CreateTime": "2022-02-16 17:26:20.0024235" - }, - { - "uuid": "9ccb8e0c5ca64ef09b8aced680395335", - "Code": "MDHC-023-0.2", - "Key": "1d1276d0", - "Value": "MDHC-023-0.2005220010015c039a9c", - "CreateTime": "2022-02-16 17:26:31.8479966" - } -] \ No newline at end of file diff --git a/unilabos/devices/liquid_handling/prcxi/json_output/sys_role.json b/unilabos/devices/liquid_handling/prcxi/json_output/sys_role.json deleted file mode 100644 index 8fd51b25..00000000 --- a/unilabos/devices/liquid_handling/prcxi/json_output/sys_role.json +++ /dev/null @@ -1,22 +0,0 @@ -[ - { - "uuid": "f3932aeae93533f19c0519c4c14702aa", - "RoleCode": "admin", - "RoleName": "管理员", - "RoleMenu": "all", - "CreateTime": "2022-02-26 00:00:00.000", - "CreateName": "admin", - "UpdateTime": "2022-02-26 14:50:10.000", - "UpdateName": "admin" - }, - { - "uuid": "8c822592b360345fb59690e49ac6b181", - "RoleCode": "user", - "RoleName": "实验员", - "RoleMenu": "nosetting", - "CreateTime": "2022-02-26 14:54:16.000", - "CreateName": "admin", - "UpdateTime": "2022-02-26 14:54:19.000", - "UpdateName": "admin" - } -] \ No newline at end of file diff --git a/unilabos/devices/liquid_handling/prcxi/json_output/sys_user.json b/unilabos/devices/liquid_handling/prcxi/json_output/sys_user.json deleted file mode 100644 index ee4422fe..00000000 --- a/unilabos/devices/liquid_handling/prcxi/json_output/sys_user.json +++ /dev/null @@ -1,54 +0,0 @@ -[ - { - "uuid": "f3932aeae93533f19c0519c4c14702dd", - "UserName": "admin", - "Password": "NuGlByx4NZBm7XcV9f89qA==", - "RealName": "管理员", - "IsEnable": 1, - "uuidRole": "f3932aeae93533f19c0519c4c14702aa", - "IsDel": 0, - "CreateTime": "2022-02-26 14:51:41.000", - "CreateName": "admin", - "UpdateTime": "2022-02-26 14:51:49.000", - "UpdateName": "admin" - }, - { - "uuid": "5c522592b366645fb55690e49ac6b166", - "UserName": "user", - "Password": "4QrcOUm6Wau+VuBX8g+IPg==", - "RealName": "实验员", - "IsEnable": 1, - "uuidRole": "8c822592b360345fb59690e49ac6b181", - "IsDel": 0, - "CreateTime": "2022-02-26 14:56:57.000", - "CreateName": "admin", - "UpdateTime": "2022-02-26 14:58:39.000", - "UpdateName": "admin" - }, - { - "uuid": "ju0514zjhi9267mz8s0buspq8b9s0bgb", - "UserName": "Administrator", - "Password": "3J17Il4KOR+wKPszf/0cHQ==", - "RealName": "超级管理员", - "IsEnable": 1, - "uuidRole": "f3932aeae93533f19c0519c4c14702aa", - "IsDel": 0, - "CreateTime": "2023-08-12 00:00:00.000", - "CreateName": "admin", - "UpdateTime": "2023-08-12 00:00:00.000", - "UpdateName": "admin" - }, - { - "uuid": "2", - "UserName": "shortcut", - "Password": "4QrcOUm6Wau+VuBX8g+IPg==", - "RealName": "实验员", - "IsEnable": 1, - "uuidRole": "8c822592b360345fb59690e49ac6b181", - "IsDel": 0, - "CreateTime": null, - "CreateName": "admin", - "UpdateTime": "2023-10-23 00:00:00.000", - "UpdateName": null - } -] \ No newline at end of file diff --git a/unilabos/devices/liquid_handling/prcxi/prcxi.py b/unilabos/devices/liquid_handling/prcxi/prcxi.py deleted file mode 100644 index e0c7e80b..00000000 --- a/unilabos/devices/liquid_handling/prcxi/prcxi.py +++ /dev/null @@ -1,2547 +0,0 @@ -import asyncio -import collections -from collections import OrderedDict -import contextlib -import json -import os -import socket -import time -import uuid -from typing import Any, List, Dict, Optional, Tuple, TypedDict, Union, Sequence, Iterator, Literal -from pylabrobot.liquid_handling.standard import GripDirection - -from pylabrobot.liquid_handling import ( - LiquidHandlerBackend, - Pickup, - SingleChannelAspiration, - Drop, - SingleChannelDispense, - PickupTipRack, - DropTipRack, - MultiHeadAspirationPlate, - ChatterBoxBackend, - LiquidHandlerChatterboxBackend, -) -from pylabrobot.liquid_handling.standard import ( - MultiHeadAspirationContainer, - MultiHeadDispenseContainer, - MultiHeadDispensePlate, - ResourcePickup, - ResourceMove, - ResourceDrop, -) -from pylabrobot.resources import ResourceHolder, ResourceStack, Tip, Deck, Plate, Well, TipRack, Resource, Container, Coordinate, TipSpot, Trash, PlateAdapter, TubeRack - -from unilabos.devices.liquid_handling.liquid_handler_abstract import LiquidHandlerAbstract, SimpleReturn -from unilabos.ros.nodes.base_device_node import BaseROS2DeviceNode - - -class PRCXIError(RuntimeError): - """Lilith 返回 Success=false 时抛出的业务异常""" - - -class Material(TypedDict): # 和Plate同关系 - uuid: str - Code: Optional[str] - Name: Optional[str] - SummaryName: Optional[str] - PipetteHeight: Optional[int] - materialEnum: Optional[int] - - -class WorkTablets(TypedDict): - Number: int - Code: str - Material: Dict[str, Any] - - -class MatrixInfo(TypedDict): - MatrixId: str - MatrixName: str - MatrixCount: int - WorkTablets: list[WorkTablets] - - -class PRCXI9300Deck(Deck): - """PRCXI 9300 的专用 Deck 类,继承自 Deck。 - - 该类定义了 PRCXI 9300 的工作台布局和槽位信息。 - """ - - def __init__(self, name: str, size_x: float, size_y: float, size_z: float, **kwargs): - super().__init__(name, size_x, size_y, size_z) - self.slots = [None] * 16 # PRCXI 9300/9320 最大有 16 个槽位 - self.slot_locations = [Coordinate(0, 0, 0)] * 16 - - def assign_child_at_slot(self, resource: Resource, slot: int, reassign: bool = False) -> None: - if self.slots[slot - 1] is not None and not reassign: - raise ValueError(f"Spot {slot} is already occupied") - - self.slots[slot - 1] = resource - super().assign_child_resource(resource, location=self.slot_locations[slot - 1]) - -class PRCXI9300Container(Plate): - """PRCXI 9300 的专用 Container 类,继承自 Plate,用于槽位定位和未知模块。 - - 该类定义了 PRCXI 9300 的工作台布局和槽位信息。 - """ - - def __init__( - self, - name: str, - size_x: float, - size_y: float, - size_z: float, - category: str, - ordering: collections.OrderedDict, - model: Optional[str] = None, - **kwargs, - ): - super().__init__(name, size_x, size_y, size_z, category=category, ordering=ordering, model=model) - self._unilabos_state = {} - - def load_state(self, state: Dict[str, Any]) -> None: - """从给定的状态加载工作台信息。""" - super().load_state(state) - self._unilabos_state = state - - def serialize_state(self) -> Dict[str, Dict[str, Any]]: - data = super().serialize_state() - data.update(self._unilabos_state) - return data -class PRCXI9300Plate(Plate): - """ - 专用孔板类: - 1. 继承自 PLR 原生 Plate,保留所有物理特性。 - 2. 增加 material_info 参数,用于在初始化时直接绑定 Unilab UUID。 - """ - def __init__(self, name: str, size_x: float, size_y: float, size_z: float, - category: str = "plate", - ordered_items: collections.OrderedDict = None, - ordering: Optional[collections.OrderedDict] = None, - model: Optional[str] = None, - material_info: Optional[Dict[str, Any]] = None, - **kwargs): - # 如果 ordered_items 不为 None,直接使用 - if ordered_items is not None: - items = ordered_items - elif ordering is not None: - # 检查 ordering 中的值是否是字符串(从 JSON 反序列化时的情况) - # 如果是字符串,说明这是位置名称,需要让 Plate 自己创建 Well 对象 - # 我们只传递位置信息(键),不传递值,使用 ordering 参数 - if ordering and isinstance(next(iter(ordering.values()), None), str): - # ordering 的值是字符串,只使用键(位置信息)创建新的 OrderedDict - # 传递 ordering 参数而不是 ordered_items,让 Plate 自己创建 Well 对象 - items = None - # 使用 ordering 参数,只包含位置信息(键) - ordering_param = collections.OrderedDict((k, None) for k in ordering.keys()) - else: - # ordering 的值已经是对象,可以直接使用 - items = ordering - ordering_param = None - else: - items = None - ordering_param = None - - # 根据情况传递不同的参数 - if items is not None: - super().__init__(name, size_x, size_y, size_z, - ordered_items=items, - category=category, - model=model, **kwargs) - elif ordering_param is not None: - # 传递 ordering 参数,让 Plate 自己创建 Well 对象 - super().__init__(name, size_x, size_y, size_z, - ordering=ordering_param, - category=category, - model=model, **kwargs) - else: - super().__init__(name, size_x, size_y, size_z, - category=category, - model=model, **kwargs) - - self._unilabos_state = {} - if material_info: - self._unilabos_state["Material"] = material_info - - - def load_state(self, state: Dict[str, Any]) -> None: - super().load_state(state) - self._unilabos_state = state - - - def serialize_state(self) -> Dict[str, Dict[str, Any]]: - try: - data = super().serialize_state() - except AttributeError: - data = {} - if hasattr(self, '_unilabos_state') and self._unilabos_state: - safe_state = {} - for k, v in self._unilabos_state.items(): - # 如果是 Material 字典,深入检查 - if k == "Material" and isinstance(v, dict): - safe_material = {} - for mk, mv in v.items(): - # 只保留基本数据类型 (字符串, 数字, 布尔值, 列表, 字典) - if isinstance(mv, (str, int, float, bool, list, dict, type(None))): - safe_material[mk] = mv - else: - # 打印日志提醒(可选) - # print(f"Warning: Removing non-serializable key {mk} from {self.name}") - pass - safe_state[k] = safe_material - # 其他顶层属性也进行类型检查 - elif isinstance(v, (str, int, float, bool, list, dict, type(None))): - safe_state[k] = v - - data.update(safe_state) - return data # 其他顶层属性也进行类型检查 -class PRCXI9300TipRack(TipRack): - """ 专用吸头盒类 """ - def __init__(self, name: str, size_x: float, size_y: float, size_z: float, - category: str = "tip_rack", - ordered_items: collections.OrderedDict = None, - ordering: Optional[collections.OrderedDict] = None, - model: Optional[str] = None, - material_info: Optional[Dict[str, Any]] = None, - **kwargs): - # 如果 ordered_items 不为 None,直接使用 - if ordered_items is not None: - items = ordered_items - elif ordering is not None: - # 检查 ordering 中的值是否是字符串(从 JSON 反序列化时的情况) - # 如果是字符串,说明这是位置名称,需要让 TipRack 自己创建 Tip 对象 - # 我们只传递位置信息(键),不传递值,使用 ordering 参数 - if ordering and isinstance(next(iter(ordering.values()), None), str): - # ordering 的值是字符串,只使用键(位置信息)创建新的 OrderedDict - # 传递 ordering 参数而不是 ordered_items,让 TipRack 自己创建 Tip 对象 - items = None - # 使用 ordering 参数,只包含位置信息(键) - ordering_param = collections.OrderedDict((k, None) for k in ordering.keys()) - else: - # ordering 的值已经是对象,可以直接使用 - items = ordering - ordering_param = None - else: - items = None - ordering_param = None - - # 根据情况传递不同的参数 - if items is not None: - super().__init__(name, size_x, size_y, size_z, - ordered_items=items, - category=category, - model=model, **kwargs) - elif ordering_param is not None: - # 传递 ordering 参数,让 TipRack 自己创建 Tip 对象 - super().__init__(name, size_x, size_y, size_z, - ordering=ordering_param, - category=category, - model=model, **kwargs) - else: - super().__init__(name, size_x, size_y, size_z, - category=category, - model=model, **kwargs) - self._unilabos_state = {} - if material_info: - self._unilabos_state["Material"] = material_info - - def load_state(self, state: Dict[str, Any]) -> None: - super().load_state(state) - self._unilabos_state = state - - def serialize_state(self) -> Dict[str, Dict[str, Any]]: - try: - data = super().serialize_state() - except AttributeError: - data = {} - if hasattr(self, '_unilabos_state') and self._unilabos_state: - safe_state = {} - for k, v in self._unilabos_state.items(): - # 如果是 Material 字典,深入检查 - if k == "Material" and isinstance(v, dict): - safe_material = {} - for mk, mv in v.items(): - # 只保留基本数据类型 (字符串, 数字, 布尔值, 列表, 字典) - if isinstance(mv, (str, int, float, bool, list, dict, type(None))): - safe_material[mk] = mv - else: - # 打印日志提醒(可选) - # print(f"Warning: Removing non-serializable key {mk} from {self.name}") - pass - safe_state[k] = safe_material - # 其他顶层属性也进行类型检查 - elif isinstance(v, (str, int, float, bool, list, dict, type(None))): - safe_state[k] = v - - data.update(safe_state) - return data - -class PRCXI9300Trash(Trash): - """PRCXI 9300 的专用 Trash 类,继承自 Trash。 - - 该类定义了 PRCXI 9300 的工作台布局和槽位信息。 - """ - - def __init__(self, name: str, size_x: float, size_y: float, size_z: float, - category: str = "trash", - material_info: Optional[Dict[str, Any]] = None, - **kwargs): - - if name != "trash": - print(f"Warning: PRCXI9300Trash usually expects name='trash' for backend logic, but got '{name}'.") - super().__init__(name, size_x, size_y, size_z, **kwargs) - self._unilabos_state = {} - # 初始化时注入 UUID - if material_info: - self._unilabos_state["Material"] = material_info - - def load_state(self, state: Dict[str, Any]) -> None: - """从给定的状态加载工作台信息。""" - # super().load_state(state) - self._unilabos_state = state - - def serialize_state(self) -> Dict[str, Dict[str, Any]]: - try: - data = super().serialize_state() - except AttributeError: - data = {} - if hasattr(self, '_unilabos_state') and self._unilabos_state: - safe_state = {} - for k, v in self._unilabos_state.items(): - # 如果是 Material 字典,深入检查 - if k == "Material" and isinstance(v, dict): - safe_material = {} - for mk, mv in v.items(): - # 只保留基本数据类型 (字符串, 数字, 布尔值, 列表, 字典) - if isinstance(mv, (str, int, float, bool, list, dict, type(None))): - safe_material[mk] = mv - else: - # 打印日志提醒(可选) - # print(f"Warning: Removing non-serializable key {mk} from {self.name}") - pass - safe_state[k] = safe_material - # 其他顶层属性也进行类型检查 - elif isinstance(v, (str, int, float, bool, list, dict, type(None))): - safe_state[k] = v - - data.update(safe_state) - return data - -class PRCXI9300TubeRack(TubeRack): - """ - 专用管架类:用于 EP 管架、试管架等。 - 继承自 PLR 的 TubeRack,并支持注入 material_info (UUID)。 - """ - def __init__(self, name: str, size_x: float, size_y: float, size_z: float, - category: str = "tube_rack", - items: Optional[Dict[str, Any]] = None, - ordered_items: Optional[OrderedDict] = None, - ordering: Optional[OrderedDict] = None, - model: Optional[str] = None, - material_info: Optional[Dict[str, Any]] = None, - **kwargs): - - # 如果 ordered_items 不为 None,直接使用 - if ordered_items is not None: - items_to_pass = ordered_items - ordering_param = None - elif ordering is not None: - # 检查 ordering 中的值是否是字符串(从 JSON 反序列化时的情况) - # 如果是字符串,说明这是位置名称,需要让 TubeRack 自己创建 Tube 对象 - # 我们只传递位置信息(键),不传递值,使用 ordering 参数 - if ordering and isinstance(next(iter(ordering.values()), None), str): - # ordering 的值是字符串,只使用键(位置信息)创建新的 OrderedDict - # 传递 ordering 参数而不是 ordered_items,让 TubeRack 自己创建 Tube 对象 - items_to_pass = None - # 使用 ordering 参数,只包含位置信息(键) - ordering_param = collections.OrderedDict((k, None) for k in ordering.keys()) - else: - # ordering 的值已经是对象,可以直接使用 - items_to_pass = ordering - ordering_param = None - elif items is not None: - # 兼容旧的 items 参数 - items_to_pass = items - ordering_param = None - else: - items_to_pass = None - ordering_param = None - - # 根据情况传递不同的参数 - if items_to_pass is not None: - super().__init__(name, size_x, size_y, size_z, - ordered_items=items_to_pass, - model=model, - **kwargs) - elif ordering_param is not None: - # 传递 ordering 参数,让 TubeRack 自己创建 Tube 对象 - super().__init__(name, size_x, size_y, size_z, - ordering=ordering_param, - model=model, - **kwargs) - else: - super().__init__(name, size_x, size_y, size_z, - model=model, - **kwargs) - - self._unilabos_state = {} - if material_info: - self._unilabos_state["Material"] = material_info - - def serialize_state(self) -> Dict[str, Dict[str, Any]]: - try: - data = super().serialize_state() - except AttributeError: - data = {} - if hasattr(self, '_unilabos_state') and self._unilabos_state: - safe_state = {} - for k, v in self._unilabos_state.items(): - # 如果是 Material 字典,深入检查 - if k == "Material" and isinstance(v, dict): - safe_material = {} - for mk, mv in v.items(): - # 只保留基本数据类型 (字符串, 数字, 布尔值, 列表, 字典) - if isinstance(mv, (str, int, float, bool, list, dict, type(None))): - safe_material[mk] = mv - else: - # 打印日志提醒(可选) - # print(f"Warning: Removing non-serializable key {mk} from {self.name}") - pass - safe_state[k] = safe_material - # 其他顶层属性也进行类型检查 - elif isinstance(v, (str, int, float, bool, list, dict, type(None))): - safe_state[k] = v - - data.update(safe_state) - return data - -class PRCXI9300PlateAdapter(PlateAdapter): - """ - 专用板式适配器类:用于承载 Plate 的底座(如 PCR 适配器、磁吸架等)。 - 支持注入 material_info (UUID)。 - """ - def __init__(self, name: str, size_x: float, size_y: float, size_z: float, - category: str = "plate_adapter", - model: Optional[str] = None, - material_info: Optional[Dict[str, Any]] = None, - # 参数给予默认值 (标准96孔板尺寸) - adapter_hole_size_x: float = 127.76, - adapter_hole_size_y: float = 85.48, - adapter_hole_size_z: float = 10.0, # 假设凹槽深度或板子放置高度 - dx: Optional[float] = None, - dy: Optional[float] = None, - dz: float = 0.0, # 默认Z轴偏移 - **kwargs): - - # 自动居中计算:如果未指定 dx/dy,则根据适配器尺寸和孔尺寸计算居中位置 - if dx is None: - dx = (size_x - adapter_hole_size_x) / 2 - if dy is None: - dy = (size_y - adapter_hole_size_y) / 2 - - super().__init__( - name=name, - size_x=size_x, - size_y=size_y, - size_z=size_z, - dx=dx, - dy=dy, - dz=dz, - adapter_hole_size_x=adapter_hole_size_x, - adapter_hole_size_y=adapter_hole_size_y, - adapter_hole_size_z=adapter_hole_size_z, - model=model, - **kwargs - ) - - self._unilabos_state = {} - if material_info: - self._unilabos_state["Material"] = material_info - - def serialize_state(self) -> Dict[str, Dict[str, Any]]: - try: - data = super().serialize_state() - except AttributeError: - data = {} - if hasattr(self, '_unilabos_state') and self._unilabos_state: - safe_state = {} - for k, v in self._unilabos_state.items(): - # 如果是 Material 字典,深入检查 - if k == "Material" and isinstance(v, dict): - safe_material = {} - for mk, mv in v.items(): - # 只保留基本数据类型 (字符串, 数字, 布尔值, 列表, 字典) - if isinstance(mv, (str, int, float, bool, list, dict, type(None))): - safe_material[mk] = mv - else: - # 打印日志提醒(可选) - # print(f"Warning: Removing non-serializable key {mk} from {self.name}") - pass - safe_state[k] = safe_material - # 其他顶层属性也进行类型检查 - elif isinstance(v, (str, int, float, bool, list, dict, type(None))): - safe_state[k] = v - - data.update(safe_state) - return data - -class PRCXI9300Handler(LiquidHandlerAbstract): - support_touch_tip = False - - @property - def reset_ok(self) -> bool: - """检查设备是否已重置成功。""" - if self._unilabos_backend.debug: - return True - return self._unilabos_backend.is_reset_ok - - def __init__( - self, - deck: Deck, - host: str, - port: int, - timeout: float, - channel_num=8, - axis="Left", - setup=True, - debug=False, - simulator=False, - step_mode=False, - matrix_id="", - is_9320=False, - ): - tablets_info = [] - count = 0 - for child in deck.children: - if child.children: - if "Material" in child.children[0]._unilabos_state: - number = int(child.name.replace("T", "")) - tablets_info.append( - WorkTablets(Number=number, Code=f"T{number}", Material=child.children[0]._unilabos_state["Material"]) - ) - if is_9320: - print("当前设备是9320") - # 始终初始化 step_mode 属性 - self.step_mode = False - if step_mode: - if is_9320: - self.step_mode = step_mode - else: - print("9300设备不支持 单点动作模式") - self._unilabos_backend = PRCXI9300Backend( - tablets_info, host, port, timeout, channel_num, axis, setup, debug, matrix_id, is_9320 - ) - super().__init__(backend=self._unilabos_backend, deck=deck, simulator=simulator, channel_num=channel_num) - - def post_init(self, ros_node: BaseROS2DeviceNode): - super().post_init(ros_node) - self._unilabos_backend.post_init(ros_node) - - def set_liquid(self, wells: list[Well], liquid_names: list[str], volumes: list[float]) -> SimpleReturn: - return super().set_liquid(wells, liquid_names, volumes) - - def set_group(self, group_name: str, wells: List[Well], volumes: List[float]): - return super().set_group(group_name, wells, volumes) - - async def transfer_group(self, source_group_name: str, target_group_name: str, unit_volume: float): - return await super().transfer_group(source_group_name, target_group_name, unit_volume) - - async def create_protocol( - self, - protocol_name: str = "", - protocol_description: str = "", - protocol_version: str = "", - protocol_author: str = "", - protocol_date: str = "", - protocol_type: str = "", - none_keys: List[str] = [], - ): - self._unilabos_backend.create_protocol(protocol_name) - - async def run_protocol(self): - return self._unilabos_backend.run_protocol() - - async def remove_liquid( - self, - vols: List[float], - sources: Sequence[Container], - waste_liquid: Optional[Container] = None, - *, - use_channels: Optional[List[int]] = None, - flow_rates: Optional[List[Optional[float]]] = None, - offsets: Optional[List[Coordinate]] = None, - liquid_height: Optional[List[Optional[float]]] = None, - blow_out_air_volume: Optional[List[Optional[float]]] = None, - spread: Optional[Literal["wide", "tight", "custom"]] = "wide", - delays: Optional[List[int]] = None, - is_96_well: Optional[bool] = False, - top: Optional[List[float]] = None, - none_keys: List[str] = [], - ): - return await super().remove_liquid( - vols, - sources, - waste_liquid, - use_channels=use_channels, - flow_rates=flow_rates, - offsets=offsets, - liquid_height=liquid_height, - blow_out_air_volume=blow_out_air_volume, - spread=spread, - delays=delays, - is_96_well=is_96_well, - top=top, - none_keys=none_keys, - ) - - async def add_liquid( - self, - asp_vols: Union[List[float], float], - dis_vols: Union[List[float], float], - reagent_sources: Sequence[Container], - targets: Sequence[Container], - *, - use_channels: Optional[List[int]] = None, - flow_rates: Optional[List[Optional[float]]] = None, - offsets: Optional[List[Coordinate]] = None, - liquid_height: Optional[List[Optional[float]]] = None, - blow_out_air_volume: Optional[List[Optional[float]]] = None, - spread: Optional[Literal["wide", "tight", "custom"]] = "wide", - is_96_well: bool = False, - delays: Optional[List[int]] = None, - mix_time: Optional[int] = None, - mix_vol: Optional[int] = None, - mix_rate: Optional[int] = None, - mix_liquid_height: Optional[float] = None, - none_keys: List[str] = [], - ): - return await super().add_liquid( - asp_vols, - dis_vols, - reagent_sources, - targets, - use_channels=use_channels, - flow_rates=flow_rates, - offsets=offsets, - liquid_height=liquid_height, - blow_out_air_volume=blow_out_air_volume, - spread=spread, - is_96_well=is_96_well, - delays=delays, - mix_time=mix_time, - mix_vol=mix_vol, - mix_rate=mix_rate, - mix_liquid_height=mix_liquid_height, - none_keys=none_keys, - ) - - async def transfer_liquid( - self, - sources: Sequence[Container], - targets: Sequence[Container], - tip_racks: Sequence[TipRack], - *, - use_channels: Optional[List[int]] = None, - asp_vols: Union[List[float], float], - dis_vols: Union[List[float], float], - asp_flow_rates: Optional[List[Optional[float]]] = None, - dis_flow_rates: Optional[List[Optional[float]]] = None, - offsets: Optional[List[Coordinate]] = None, - touch_tip: bool = False, - liquid_height: Optional[List[Optional[float]]] = None, - blow_out_air_volume: Optional[List[Optional[float]]] = None, - spread: Literal["wide", "tight", "custom"] = "wide", - is_96_well: bool = False, - mix_stage: Optional[Literal["none", "before", "after", "both"]] = "none", - mix_times: Optional[List[int]] = None, - mix_vol: Optional[int] = None, - mix_rate: Optional[int] = None, - mix_liquid_height: Optional[float] = None, - delays: Optional[List[int]] = None, - none_keys: List[str] = [], - ): - return await super().transfer_liquid( - sources, - targets, - tip_racks, - use_channels=use_channels, - asp_vols=asp_vols, - dis_vols=dis_vols, - asp_flow_rates=asp_flow_rates, - dis_flow_rates=dis_flow_rates, - offsets=offsets, - touch_tip=touch_tip, - liquid_height=liquid_height, - blow_out_air_volume=blow_out_air_volume, - spread=spread, - is_96_well=is_96_well, - mix_stage=mix_stage, - mix_times=mix_times, - mix_vol=mix_vol, - mix_rate=mix_rate, - mix_liquid_height=mix_liquid_height, - delays=delays, - none_keys=none_keys, - ) - - async def custom_delay(self, seconds=0, msg=None): - return await super().custom_delay(seconds, msg) - - async def touch_tip(self, targets: Sequence[Container]): - return await super().touch_tip(targets) - - async def mix( - self, - targets: Sequence[Container], - mix_time: int = None, - mix_vol: Optional[int] = None, - height_to_bottom: Optional[float] = None, - offsets: Optional[Coordinate] = None, - mix_rate: Optional[float] = None, - none_keys: List[str] = [], - ): - return await self._unilabos_backend.mix( - targets, mix_time, mix_vol, height_to_bottom, offsets, mix_rate, none_keys - ) - - def iter_tips(self, tip_racks: Sequence[TipRack]) -> Iterator[Resource]: - return super().iter_tips(tip_racks) - - async def pick_up_tips( - self, - tip_spots: List[TipSpot], - use_channels: Optional[List[int]] = None, - offsets: Optional[List[Coordinate]] = None, - **backend_kwargs, - ): - if self.step_mode: - await self.create_protocol(f"单点动作{time.time()}") - await super().pick_up_tips(tip_spots, use_channels, offsets, **backend_kwargs) - await self.run_protocol() - return await super().pick_up_tips(tip_spots, use_channels, offsets, **backend_kwargs) - - async def aspirate( - self, - resources: Sequence[Container], - vols: List[float], - use_channels: Optional[List[int]] = None, - flow_rates: Optional[List[Optional[float]]] = None, - offsets: Optional[List[Coordinate]] = None, - liquid_height: Optional[List[Optional[float]]] = None, - blow_out_air_volume: Optional[List[Optional[float]]] = None, - spread: Literal["wide", "tight", "custom"] = "wide", - **backend_kwargs, - ): - - return await super().aspirate( - resources, - vols, - use_channels, - flow_rates, - offsets, - liquid_height, - blow_out_air_volume, - spread, - **backend_kwargs, - ) - - async def drop_tips( - self, - tip_spots: Sequence[Union[TipSpot, Trash]], - use_channels: Optional[List[int]] = None, - offsets: Optional[List[Coordinate]] = None, - allow_nonzero_volume: bool = False, - **backend_kwargs, - ): - return await super().drop_tips(tip_spots, use_channels, offsets, allow_nonzero_volume, **backend_kwargs) - - async def dispense( - self, - resources: Sequence[Container], - vols: List[float], - use_channels: Optional[List[int]] = None, - flow_rates: Optional[List[Optional[float]]] = None, - offsets: Optional[List[Coordinate]] = None, - liquid_height: Optional[List[Optional[float]]] = None, - blow_out_air_volume: Optional[List[Optional[float]]] = None, - spread: Literal["wide", "tight", "custom"] = "wide", - **backend_kwargs, - ): - return await super().dispense( - resources, - vols, - use_channels, - flow_rates, - offsets, - liquid_height, - blow_out_air_volume, - spread, - **backend_kwargs, - ) - - async def discard_tips( - self, - use_channels: Optional[List[int]] = None, - allow_nonzero_volume: bool = True, - offsets: Optional[List[Coordinate]] = None, - **backend_kwargs, - ): - return await super().discard_tips(use_channels, allow_nonzero_volume, offsets, **backend_kwargs) - - def set_tiprack(self, tip_racks: Sequence[TipRack]): - super().set_tiprack(tip_racks) - - async def move_to(self, well: Well, dis_to_top: float = 0, channel: int = 0): - return await super().move_to(well, dis_to_top, channel) - - async def shaker_action(self, time: int, module_no: int, amplitude: int, is_wait: bool): - return await self._unilabos_backend.shaker_action(time, module_no, amplitude, is_wait) - - async def heater_action(self, temperature: float, time: int): - return await self._unilabos_backend.heater_action(temperature, time) - async def move_plate( - self, - plate: Plate, - to: Resource, - intermediate_locations: Optional[List[Coordinate]] = None, - pickup_offset: Coordinate = Coordinate.zero(), - destination_offset: Coordinate = Coordinate.zero(), - drop_direction: GripDirection = GripDirection.FRONT, - pickup_direction: GripDirection = GripDirection.FRONT, - pickup_distance_from_top: float = 13.2 - 3.33, - **backend_kwargs, - ): - - return await super().move_plate( - plate, - to, - intermediate_locations, - pickup_offset, - destination_offset, - drop_direction, - pickup_direction, - pickup_distance_from_top, - target_plate_number = to, - **backend_kwargs, - ) - -class PRCXI9300Backend(LiquidHandlerBackend): - """PRCXI 9300 的后端实现,继承自 LiquidHandlerBackend。 - - 该类提供了与 PRCXI 9300 设备进行通信的基本方法,包括方案管理、自动化控制、运行状态查询等。 - """ - - _num_channels = 8 # 默认通道数为 8 - _is_reset_ok = False - _ros_node: BaseROS2DeviceNode - - @property - def is_reset_ok(self) -> bool: - self._is_reset_ok = self.api_client.get_reset_status() - return self._is_reset_ok - - matrix_info: MatrixInfo - protocol_name: str - steps_todo_list = [] - - def __init__( - self, - tablets_info: list[WorkTablets], - host: str = "127.0.0.1", - port: int = 9999, - timeout: float = 10.0, - channel_num: int = 8, - axis: str = "Left", - setup=True, - debug=False, - matrix_id="", - is_9320=False, - ) -> None: - super().__init__() - self.tablets_info = tablets_info - self.matrix_id = matrix_id - self.api_client = PRCXI9300Api(host, port, timeout, axis, debug, is_9320) - self.host, self.port, self.timeout = host, port, timeout - self._num_channels = channel_num - self._execute_setup = setup - self.debug = debug - self.axis = "Left" - - async def shaker_action(self, time: int, module_no: int, amplitude: int, is_wait: bool): - step = self.api_client.shaker_action( - time=time, - module_no=module_no, - amplitude=amplitude, - is_wait=is_wait, - ) - self.steps_todo_list.append(step) - return step - - - async def pick_up_resource(self, pickup: ResourcePickup, **backend_kwargs): - - resource=pickup.resource - offset=pickup.offset - pickup_distance_from_top=pickup.pickup_distance_from_top - direction=pickup.direction - - plate_number = int(resource.parent.name.replace("T", "")) - is_whole_plate = True - balance_height = 0 - step = self.api_client.clamp_jaw_pick_up(plate_number, is_whole_plate, balance_height) - - self.steps_todo_list.append(step) - return step - - async def drop_resource(self, drop: ResourceDrop, **backend_kwargs): - - - plate_number = None - target_plate_number = backend_kwargs.get("target_plate_number", None) - if target_plate_number is not None: - plate_number = int(target_plate_number.name.replace("T", "")) - - - is_whole_plate = True - balance_height = 0 - if plate_number is None: - raise ValueError("target_plate_number is required when dropping a resource") - step = self.api_client.clamp_jaw_drop(plate_number, is_whole_plate, balance_height) - self.steps_todo_list.append(step) - return step - - - async def heater_action(self, temperature: float, time: int): - print(f"\n\nHeater action: temperature={temperature}, time={time}\n\n") - # return await self.api_client.heater_action(temperature, time) - - def post_init(self, ros_node: BaseROS2DeviceNode): - self._ros_node = ros_node - - def create_protocol(self, protocol_name): - self.protocol_name = protocol_name - self.steps_todo_list = [] - - def run_protocol(self): - assert self.is_reset_ok, "PRCXI9300Backend is not reset successfully. Please call setup() first." - run_time = time.time() - self.matrix_info = MatrixInfo( - MatrixId=f"{int(run_time)}", - MatrixName=f"protocol_{run_time}", - MatrixCount=len(self.tablets_info), - WorkTablets=self.tablets_info, - ) - # print(json.dumps(self.matrix_info, indent=2)) - if not len(self.matrix_id): - res = self.api_client.add_WorkTablet_Matrix(self.matrix_info) - assert res["Success"], f"Failed to create matrix: {res.get('Message', 'Unknown error')}" - print(f"PRCXI9300Backend created matrix with ID: {self.matrix_info['MatrixId']}, result: {res}") - solution_id = self.api_client.add_solution( - f"protocol_{run_time}", self.matrix_info["MatrixId"], self.steps_todo_list - ) - else: - print(f"PRCXI9300Backend using predefined worktable {self.matrix_id}, skipping matrix creation.") - solution_id = self.api_client.add_solution(f"protocol_{run_time}", self.matrix_id, self.steps_todo_list) - print(f"PRCXI9300Backend created solution with ID: {solution_id}") - self.api_client.load_solution(solution_id) - print(json.dumps(self.steps_todo_list, indent=2)) - if not self.api_client.start(): - return False - if not self.api_client.wait_for_finish(): - return False - return True - - @classmethod - def check_channels(cls, use_channels: List[int]) -> List[int]: - """检查通道是否符合要求,PRCXI9300Backend 只支持所有 8 个通道。""" - if use_channels != [0, 1, 2, 3, 4, 5, 6, 7]: - print("PRCXI9300Backend only supports all 8 channels, using default [0, 1, 2, 3, 4, 5, 6, 7].") - return [0, 1, 2, 3, 4, 5, 6, 7] - return use_channels - - async def setup(self): - await super().setup() - try: - if self._execute_setup: - # 先获取错误代码 - error_code = self.api_client.get_error_code() - if error_code: - print(f"PRCXI9300 error code detected: {error_code}") - - # 清除错误代码 - self.api_client.clear_error_code() - print("PRCXI9300 error code cleared.") - self.api_client.call("IAutomation", "Stop") - # 执行重置 - print("Starting PRCXI9300 reset...") - self.api_client.call("IAutomation", "Reset") - - # 检查重置状态并等待完成 - while not self.is_reset_ok: - print("Waiting for PRCXI9300 to reset...") - if hasattr(self, '_ros_node') and self._ros_node is not None: - await self._ros_node.sleep(1) - else: - await asyncio.sleep(1) - print("PRCXI9300 reset successfully.") - except ConnectionRefusedError as e: - raise RuntimeError( - f"Failed to connect to PRCXI9300 API at {self.host}:{self.port}. " - "Please ensure the PRCXI9300 service is running." - ) from e - - async def stop(self): - self.api_client.call("IAutomation", "Stop") - - async def pick_up_tips(self, ops: List[Pickup], use_channels: List[int] = None): - """Pick up tips from the specified resource.""" - # INSERT_YOUR_CODE - # Ensure use_channels is converted to a list of ints if it's an array - if hasattr(use_channels, 'tolist'): - _use_channels = use_channels.tolist() - else: - _use_channels = list(use_channels) if use_channels is not None else None - if _use_channels == [0]: - axis = "Left" - elif _use_channels == [1]: - axis = "Right" - else: - raise ValueError("Invalid use channels: " + str(_use_channels)) - plate_indexes = [] - for op in ops: - plate = op.resource.parent - deck = plate.parent.parent - plate_index = deck.children.index(plate.parent) - # print(f"Plate index: {plate_index}, Plate name: {plate.name}") - # print(f"Number of children in deck: {len(deck.children)}") - - plate_indexes.append(plate_index) - - if len(set(plate_indexes)) != 1: - raise ValueError("All pickups must be from the same plate. Found different plates: " + str(plate_indexes)) - - tip_columns = [] - for op in ops: - tipspot = op.resource - tipspot_index = tipspot.parent.children.index(tipspot) - tip_columns.append(tipspot_index // 8) - if len(set(tip_columns)) != 1: - raise ValueError( - "All pickups must be from the same tip column. Found different columns: " + str(tip_columns) - ) - PlateNo = plate_indexes[0] + 1 - hole_col = tip_columns[0] + 1 - hole_row = 1 - if self._num_channels == 1: - hole_row = tipspot_index % 8 + 1 - - step = self.api_client.Load( - axis=axis, - dosage=0, - plate_no=PlateNo, - is_whole_plate=False, - hole_row=hole_row, - hole_col=hole_col, - blending_times=0, - balance_height=0, - plate_or_hole=f"H{hole_col}-8,T{PlateNo}", - hole_numbers=f"{(hole_col - 1) * 8 + hole_row}" if self._num_channels == 1 else "1,2,3,4,5", - ) - self.steps_todo_list.append(step) - - async def drop_tips(self, ops: List[Drop], use_channels: List[int] = None): - """Pick up tips from the specified resource.""" - if hasattr(use_channels, 'tolist'): - _use_channels = use_channels.tolist() - else: - _use_channels = list(use_channels) if use_channels is not None else None - if _use_channels == [0]: - axis = "Left" - elif _use_channels == [1]: - axis = "Right" - else: - raise ValueError("Invalid use channels: " + str(_use_channels)) - # 检查trash # - if ops[0].resource.name == "trash": - - PlateNo = ops[0].resource.parent.parent.children.index(ops[0].resource.parent) + 1 - - step = self.api_client.UnLoad( - axis=axis, - dosage=0, - plate_no=PlateNo, - is_whole_plate=False, - hole_row=1, - hole_col=3, - blending_times=0, - balance_height=0, - plate_or_hole=f"H{1}-8,T{PlateNo}", - hole_numbers="1,2,3,4,5,6,7,8", - ) - self.steps_todo_list.append(step) - return - # print(ops[0].resource.parent.children.index(ops[0].resource)) - - plate_indexes = [] - for op in ops: - plate = op.resource.parent - deck = plate.parent.parent - plate_index = deck.children.index(plate.parent) - plate_indexes.append(plate_index) - if len(set(plate_indexes)) != 1: - raise ValueError( - "All drop_tips must be from the same plate. Found different plates: " + str(plate_indexes) - ) - - tip_columns = [] - for op in ops: - tipspot = op.resource - tipspot_index = tipspot.parent.children.index(tipspot) - tip_columns.append(tipspot_index // 8) - if len(set(tip_columns)) != 1: - raise ValueError( - "All drop_tips must be from the same tip column. Found different columns: " + str(tip_columns) - ) - - PlateNo = plate_indexes[0] + 1 - hole_col = tip_columns[0] + 1 - - if self.channel_num == 1: - hole_row = tipspot_index % 8 + 1 - - step = self.api_client.UnLoad( - axis=axis, - dosage=0, - plate_no=PlateNo, - is_whole_plate=False, - hole_row=hole_row, - hole_col=hole_col, - blending_times=0, - balance_height=0, - plate_or_hole=f"H{hole_col}-8,T{PlateNo}", - hole_numbers="1,2,3,4,5,6,7,8", - ) - self.steps_todo_list.append(step) - - async def mix( - self, - targets: Sequence[Container], - mix_time: int = None, - mix_vol: Optional[int] = None, - height_to_bottom: Optional[float] = None, - offsets: Optional[Coordinate] = None, - mix_rate: Optional[float] = None, - none_keys: List[str] = [], - ): - """Mix liquid in the specified resources.""" - - plate_indexes = [] - for op in targets: - deck = op.parent.parent.parent - plate = op.parent - plate_index = deck.children.index(plate.parent) - plate_indexes.append(plate_index) - - if len(set(plate_indexes)) != 1: - raise ValueError("All pickups must be from the same plate. Found different plates: " + str(plate_indexes)) - - tip_columns = [] - for op in targets: - tipspot_index = op.parent.children.index(op) - tip_columns.append(tipspot_index // 8) - - if len(set(tip_columns)) != 1: - raise ValueError( - "All pickups must be from the same tip column. Found different columns: " + str(tip_columns) - ) - - PlateNo = plate_indexes[0] + 1 - hole_col = tip_columns[0] + 1 - hole_row = 1 - if self.num_channels == 1: - hole_row = tipspot_index % 8 + 1 - - assert mix_time > 0 - step = self.api_client.Blending( - dosage=mix_vol, - plate_no=PlateNo, - is_whole_plate=False, - hole_row=hole_row, - hole_col=hole_col, - blending_times=mix_time, - balance_height=0, - plate_or_hole=f"H{hole_col}-8,T{PlateNo}", - hole_numbers="1,2,3,4,5,6,7,8", - ) - self.steps_todo_list.append(step) - - async def aspirate(self, ops: List[SingleChannelAspiration], use_channels: List[int] = None): - """Aspirate liquid from the specified resources.""" - if hasattr(use_channels, 'tolist'): - _use_channels = use_channels.tolist() - else: - _use_channels = list(use_channels) if use_channels is not None else None - if _use_channels == [0]: - axis = "Left" - elif _use_channels == [1]: - axis = "Right" - else: - raise ValueError("Invalid use channels: " + str(_use_channels)) - plate_indexes = [] - for op in ops: - plate = op.resource.parent - deck = plate.parent.parent - plate_index = deck.children.index(plate.parent) - plate_indexes.append(plate_index) - - if len(set(plate_indexes)) != 1: - raise ValueError("All pickups must be from the same plate. Found different plates: " + str(plate_indexes)) - - tip_columns = [] - for op in ops: - tipspot = op.resource - tipspot_index = tipspot.parent.children.index(tipspot) - tip_columns.append(tipspot_index // 8) - - if len(set(tip_columns)) != 1: - raise ValueError( - "All pickups must be from the same tip column. Found different columns: " + str(tip_columns) - ) - - volumes = [op.volume for op in ops] - if len(set(volumes)) != 1: - raise ValueError("All aspirate volumes must be the same. Found different volumes: " + str(volumes)) - - PlateNo = plate_indexes[0] + 1 - hole_col = tip_columns[0] + 1 - hole_row = 1 - if self.num_channels == 1: - hole_row = tipspot_index % 8 + 1 - - step = self.api_client.Imbibing( - axis=axis, - dosage=int(volumes[0]), - plate_no=PlateNo, - is_whole_plate=False, - hole_row=hole_row, - hole_col=hole_col, - blending_times=0, - balance_height=0, - plate_or_hole=f"H{hole_col}-8,T{PlateNo}", - hole_numbers="1,2,3,4,5,6,7,8", - ) - self.steps_todo_list.append(step) - - async def dispense(self, ops: List[SingleChannelDispense], use_channels: List[int] = None): - """Dispense liquid into the specified resources.""" - if hasattr(use_channels, 'tolist'): - _use_channels = use_channels.tolist() - else: - _use_channels = list(use_channels) if use_channels is not None else None - if _use_channels == [0]: - axis = "Left" - elif _use_channels == [1]: - axis = "Right" - else: - raise ValueError("Invalid use channels: " + str(_use_channels)) - plate_indexes = [] - for op in ops: - plate = op.resource.parent - deck = plate.parent.parent - plate_index = deck.children.index(plate.parent) - plate_indexes.append(plate_index) - - if len(set(plate_indexes)) != 1: - raise ValueError("All dispense must be from the same plate. Found different plates: " + str(plate_indexes)) - - tip_columns = [] - for op in ops: - tipspot = op.resource - tipspot_index = tipspot.parent.children.index(tipspot) - tip_columns.append(tipspot_index // 8) - - if len(set(tip_columns)) != 1: - raise ValueError( - "All dispense must be from the same tip column. Found different columns: " + str(tip_columns) - ) - - volumes = [op.volume for op in ops] - if len(set(volumes)) != 1: - raise ValueError("All dispense volumes must be the same. Found different volumes: " + str(volumes)) - - PlateNo = plate_indexes[0] + 1 - hole_col = tip_columns[0] + 1 - - hole_row = 1 - if self.num_channels == 1: - hole_row = tipspot_index % 8 + 1 - - step = self.api_client.Tapping( - axis=axis, - dosage=int(volumes[0]), - plate_no=PlateNo, - is_whole_plate=False, - hole_row=hole_row, - hole_col=hole_col, - blending_times=0, - balance_height=0, - plate_or_hole=f"H{hole_col}-8,T{PlateNo}", - hole_numbers="1,2,3,4,5,6,7,8", - ) - self.steps_todo_list.append(step) - - async def pick_up_tips96(self, pickup: PickupTipRack): - raise NotImplementedError("The PRCXI backend does not support the 96 head.") - - async def drop_tips96(self, drop: DropTipRack): - raise NotImplementedError("The PRCXI backend does not support the 96 head.") - - async def aspirate96(self, aspiration: Union[MultiHeadAspirationPlate, MultiHeadAspirationContainer]): - raise NotImplementedError("The Opentrons backend does not support the 96 head.") - - async def dispense96(self, dispense: Union[MultiHeadDispensePlate, MultiHeadDispenseContainer]): - raise NotImplementedError("The Opentrons backend does not support the 96 head.") - - async def move_picked_up_resource(self, move: ResourceMove): - pass - - def can_pick_up_tip(self, channel_idx: int, tip: Tip) -> bool: - return True # PRCXI9300Backend does not have tip compatibility issues - - def serialize(self) -> dict: - raise NotImplementedError() - - @property - def num_channels(self) -> int: - return self._num_channels - - -class PRCXI9300Api: - def __init__( - self, - host: str = "127.0.0.1", - port: int = 9999, - timeout: float = 10.0, - axis="Left", - debug: bool = False, - is_9320: bool = False, - ) -> None: - self.host, self.port, self.timeout = host, port, timeout - self.debug = debug - self.axis = axis - self.is_9320 = is_9320 - - @staticmethod - def _len_prefix(n: int) -> bytes: - return bytes.fromhex(format(n, "016x")) - - def _raw_request(self, payload: str) -> str: - if self.debug: - # 调试/仿真模式下直接返回可解析的模拟 JSON,避免后续 json.loads 报错 - try: - req = json.loads(payload) - method = req.get("MethodName") - except Exception: - method = None - - data: Any = True - if method in {"AddSolution"}: - data = str(uuid.uuid4()) - elif method in {"AddWorkTabletMatrix", "AddWorkTabletMatrix2"}: - data = {"Success": True, "Message": "debug mock"} - elif method in {"GetErrorCode"}: - data = "" - elif method in {"RemoveErrorCodet", "Reset", "Start", "LoadSolution", "Pause", "Resume", "Stop"}: - data = True - elif method in {"GetStepStateList", "GetStepStatus", "GetStepState"}: - data = [] - elif method in {"GetLocation"}: - data = {"X": 0, "Y": 0, "Z": 0} - elif method in {"GetResetStatus"}: - data = False - - return json.dumps({"Success": True, "Msg": "debug mock", "Data": data}) - with contextlib.closing(socket.socket()) as sock: - sock.settimeout(self.timeout) - sock.connect((self.host, self.port)) - data = payload.encode() - sock.sendall(self._len_prefix(len(data)) + data) - - chunks, first = [], True - while True: - chunk = sock.recv(4096) - if not chunk: - break - if first: - chunk, first = chunk[8:], False - chunks.append(chunk) - return b"".join(chunks).decode() - - # ---------------------------------------------------- 方案相关(ISolution) - def list_solutions(self) -> List[Dict[str, Any]]: - """GetSolutionList""" - return self.call("ISolution", "GetSolutionList") - - def load_solution(self, solution_id: str) -> bool: - """LoadSolution""" - return self.call("ISolution", "LoadSolution", [solution_id]) - - def add_solution(self, name: str, matrix_id: str, steps: List[Dict[str, Any]]) -> str: - """AddSolution → 返回新方案 GUID""" - return self.call("ISolution", "AddSolution", [name, matrix_id, steps]) - - # ---------------------------------------------------- 自动化控制(IAutomation) - def start(self) -> bool: - return self.call("IAutomation", "Start") - - def wait_for_finish(self) -> bool: - success = False - start = False - while not success: - status = self.step_state_list() - if len(status) == 1: - start = True - if status is None: - break - if len(status) == 0: - break - if status[-1]["State"] == 2 and start: - success = True - elif status[-1]["State"] > 2: - break - elif status[-1]["State"] == 0: - start = True - else: - time.sleep(1) - return success - - - def call(self, service: str, method: str, params: Optional[list] = None) -> Any: - payload = json.dumps( - {"ServiceName": service, "MethodName": method, "Paramters": params or []}, separators=(",", ":") - ) - resp = json.loads(self._raw_request(payload)) - if not resp.get("Success", False): - raise PRCXIError(resp.get("Msg", "Unknown error")) - data = resp.get("Data") - try: - return json.loads(data) - except (TypeError, json.JSONDecodeError): - return data - - def pause(self) -> bool: - """Pause""" - return self.call("IAutomation", "Pause") - - def resume(self) -> bool: - """Resume""" - return self.call("IAutomation", "Resume") - - def get_error_code(self) -> Optional[str]: - """GetErrorCode""" - return self.call("IAutomation", "GetErrorCode") - - def get_reset_status(self) -> bool: - """GetErrorCode""" - if self.debug: - return True - res = self.call("IAutomation", "GetResetStatus") - return not res - - def clear_error_code(self) -> bool: - """RemoveErrorCodet""" - return self.call("IAutomation", "RemoveErrorCodet") - - # ---------------------------------------------------- 运行状态(IMachineState) - def step_state_list(self) -> List[Dict[str, Any]]: - """GetStepStateList""" - return self.call("IMachineState", "GetStepStateList") - - def step_status(self, seq_num: int) -> Dict[str, Any]: - """GetStepStatus""" - return self.call("IMachineState", "GetStepStatus", [seq_num]) - - def step_state(self, seq_num: int) -> Dict[str, Any]: - """GetStepState""" - return self.call("IMachineState", "GetStepState", [seq_num]) - - def axis_location(self, axis_num: int = 1) -> Dict[str, Any]: - """GetLocation""" - return self.call("IMachineState", "GetLocation", [axis_num]) - - # ---------------------------------------------------- 版位矩阵(IMatrix) - def get_all_materials(self) -> Dict[str, Any]: - """GetStepState""" - return self.call("IMatrix", "GetAllMaterial", []) - - def list_matrices(self) -> List[Dict[str, Any]]: - """GetWorkTabletMatrices""" - return self.call("IMatrix", "GetWorkTabletMatrices") - - def matrix_by_id(self, matrix_id: str) -> Dict[str, Any]: - """GetWorkTabletMatrixById""" - return self.call("IMatrix", "GetWorkTabletMatrixById", [matrix_id]) - - def add_WorkTablet_Matrix(self, matrix: MatrixInfo): - return self.call("IMatrix", "AddWorkTabletMatrix2" if self.is_9320 else "AddWorkTabletMatrix", [matrix]) - - def Load( - self, - dosage: int, - plate_no: int, - is_whole_plate: bool, - hole_row: int, - hole_col: int, - blending_times: int, - balance_height: int, - plate_or_hole: str, - hole_numbers: str, - assist_fun1: str = "", - assist_fun2: str = "", - assist_fun3: str = "", - assist_fun4: str = "", - assist_fun5: str = "", - liquid_method: str = "NormalDispense", - axis: str = "Left", - ) -> Dict[str, Any]: - return { - "StepAxis": axis, - "Function": "Load", - "DosageNum": dosage, - "PlateNo": plate_no, - "IsWholePlate": is_whole_plate, - "HoleRow": hole_row, - "HoleCol": hole_col, - "BlendingTimes": blending_times, - "BalanceHeight": balance_height, - "PlateOrHoleNum": plate_or_hole, - "AssistFun1": assist_fun1, - "AssistFun2": assist_fun2, - "AssistFun3": assist_fun3, - "AssistFun4": assist_fun4, - "AssistFun5": assist_fun5, - "HoleNumbers": hole_numbers, - "LiquidDispensingMethod": liquid_method, - } - - def Imbibing( - self, - dosage: int, - plate_no: int, - is_whole_plate: bool, - hole_row: int, - hole_col: int, - blending_times: int, - balance_height: int, - plate_or_hole: str, - hole_numbers: str, - assist_fun1: str = "", - assist_fun2: str = "", - assist_fun3: str = "", - assist_fun4: str = "", - assist_fun5: str = "", - liquid_method: str = "NormalDispense", - axis: str = "Left", - ) -> Dict[str, Any]: - return { - "StepAxis": axis, - "Function": "Imbibing", - "DosageNum": dosage, - "PlateNo": plate_no, - "IsWholePlate": is_whole_plate, - "HoleRow": hole_row, - "HoleCol": hole_col, - "BlendingTimes": blending_times, - "BalanceHeight": balance_height, - "PlateOrHoleNum": plate_or_hole, - "AssistFun1": assist_fun1, - "AssistFun2": assist_fun2, - "AssistFun3": assist_fun3, - "AssistFun4": assist_fun4, - "AssistFun5": assist_fun5, - "HoleNumbers": hole_numbers, - "LiquidDispensingMethod": liquid_method, - } - - def Tapping( - self, - dosage: int, - plate_no: int, - is_whole_plate: bool, - hole_row: int, - hole_col: int, - blending_times: int, - balance_height: int, - plate_or_hole: str, - hole_numbers: str, - assist_fun1: str = "", - assist_fun2: str = "", - assist_fun3: str = "", - assist_fun4: str = "", - assist_fun5: str = "", - liquid_method: str = "NormalDispense", - axis: str = "Left", - ) -> Dict[str, Any]: - return { - "StepAxis": axis, - "Function": "Tapping", - "DosageNum": dosage, - "PlateNo": plate_no, - "IsWholePlate": is_whole_plate, - "HoleRow": hole_row, - "HoleCol": hole_col, - "BlendingTimes": blending_times, - "BalanceHeight": balance_height, - "PlateOrHoleNum": plate_or_hole, - "AssistFun1": assist_fun1, - "AssistFun2": assist_fun2, - "AssistFun3": assist_fun3, - "AssistFun4": assist_fun4, - "AssistFun5": assist_fun5, - "HoleNumbers": hole_numbers, - "LiquidDispensingMethod": liquid_method, - } - - def Blending( - self, - dosage: int, - plate_no: int, - is_whole_plate: bool, - hole_row: int, - hole_col: int, - blending_times: int, - balance_height: int, - plate_or_hole: str, - hole_numbers: str, - assist_fun1: str = "", - assist_fun2: str = "", - assist_fun3: str = "", - assist_fun4: str = "", - assist_fun5: str = "", - liquid_method: str = "NormalDispense", - axis: str = "Left", - ) -> Dict[str, Any]: - return { - "StepAxis": axis, - "Function": "Blending", - "DosageNum": dosage, - "PlateNo": plate_no, - "IsWholePlate": is_whole_plate, - "HoleRow": hole_row, - "HoleCol": hole_col, - "BlendingTimes": blending_times, - "BalanceHeight": balance_height, - "PlateOrHoleNum": plate_or_hole, - "AssistFun1": assist_fun1, - "AssistFun2": assist_fun2, - "AssistFun3": assist_fun3, - "AssistFun4": assist_fun4, - "AssistFun5": assist_fun5, - "HoleNumbers": hole_numbers, - "LiquidDispensingMethod": liquid_method, - } - - def UnLoad( - self, - dosage: int, - plate_no: int, - is_whole_plate: bool, - hole_row: int, - hole_col: int, - blending_times: int, - balance_height: int, - plate_or_hole: str, - hole_numbers: str, - assist_fun1: str = "", - assist_fun2: str = "", - assist_fun3: str = "", - assist_fun4: str = "", - assist_fun5: str = "", - liquid_method: str = "NormalDispense", - axis: str = "Left", - ) -> Dict[str, Any]: - return { - "StepAxis": axis, - "Function": "UnLoad", - "DosageNum": dosage, - "PlateNo": plate_no, - "IsWholePlate": is_whole_plate, - "HoleRow": hole_row, - "HoleCol": hole_col, - "BlendingTimes": blending_times, - "BalanceHeight": balance_height, - "PlateOrHoleNum": plate_or_hole, - "AssistFun1": assist_fun1, - "AssistFun2": assist_fun2, - "AssistFun3": assist_fun3, - "AssistFun4": assist_fun4, - "AssistFun5": assist_fun5, - "HoleNumbers": hole_numbers, - "LiquidDispensingMethod": liquid_method, - } - - def clamp_jaw_pick_up(self, - plate_no: int, - is_whole_plate: bool, - balance_height: int, - - ) -> Dict[str, Any]: - return { - "StepAxis": "ClampingJaw", - "Function": "DefectiveLift", - "PlateNo": plate_no, - "IsWholePlate": is_whole_plate, - "HoleRow": 1, - "HoleCol": 1, - "BalanceHeight": balance_height, - "PlateOrHoleNum": f"T{plate_no}" - } - - def clamp_jaw_drop( - self, - plate_no: int, - is_whole_plate: bool, - balance_height: int, - - ) -> Dict[str, Any]: - return { - "StepAxis": "ClampingJaw", - "Function": "PutDown", - "PlateNo": plate_no, - "IsWholePlate": is_whole_plate, - "HoleRow": 1, - "HoleCol": 1, - "BalanceHeight": balance_height, - "PlateOrHoleNum": f"T{plate_no}" - } - - def shaker_action(self, time: int, module_no: int, amplitude: int, is_wait: bool): - return { - "StepAxis": "Left", - "Function": "Shaking", - "AssistFun1": time, - "AssistFun2": module_no, - "AssistFun3": amplitude, - "AssistFun4": is_wait, - } - -class DefaultLayout: - - def __init__(self, product_name: str = "PRCXI9300"): - self.labresource = {} - if product_name not in ["PRCXI9300", "PRCXI9320"]: - raise ValueError( - f"Unsupported product_name: {product_name}. Only 'PRCXI9300' and 'PRCXI9320' are supported." - ) - - if product_name == "PRCXI9300": - self.rows = 2 - self.columns = 3 - self.layout = [1, 2, 3, 4, 5, 6] - self.trash_slot = 3 - self.waste_liquid_slot = 6 - - elif product_name == "PRCXI9320": - self.rows = 4 - self.columns = 4 - self.layout = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16] - self.trash_slot = 16 - self.waste_liquid_slot = 12 - self.default_layout = { - "MatrixId": f"{time.time()}", - "MatrixName": f"{time.time()}", - "MatrixCount": 16, - "WorkTablets": [ - { - "Number": 1, - "Code": "T1", - "Material": {"uuid": "57b1e4711e9e4a32b529f3132fc5931f", "materialEnum": 0}, - }, - { - "Number": 2, - "Code": "T2", - "Material": {"uuid": "57b1e4711e9e4a32b529f3132fc5931f", "materialEnum": 0}, - }, - { - "Number": 3, - "Code": "T3", - "Material": {"uuid": "57b1e4711e9e4a32b529f3132fc5931f", "materialEnum": 0}, - }, - { - "Number": 4, - "Code": "T4", - "Material": {"uuid": "57b1e4711e9e4a32b529f3132fc5931f", "materialEnum": 0}, - }, - { - "Number": 5, - "Code": "T5", - "Material": {"uuid": "57b1e4711e9e4a32b529f3132fc5931f", "materialEnum": 0}, - }, - { - "Number": 6, - "Code": "T6", - "Material": {"uuid": "57b1e4711e9e4a32b529f3132fc5931f", "materialEnum": 0}, - }, - { - "Number": 7, - "Code": "T7", - "Material": {"uuid": "57b1e4711e9e4a32b529f3132fc5931f", "materialEnum": 0}, - }, - { - "Number": 8, - "Code": "T8", - "Material": {"uuid": "57b1e4711e9e4a32b529f3132fc5931f", "materialEnum": 0}, - }, - { - "Number": 9, - "Code": "T9", - "Material": {"uuid": "57b1e4711e9e4a32b529f3132fc5931f", "materialEnum": 0}, - }, - { - "Number": 10, - "Code": "T10", - "Material": {"uuid": "57b1e4711e9e4a32b529f3132fc5931f", "materialEnum": 0}, - }, - { - "Number": 11, - "Code": "T11", - "Material": {"uuid": "57b1e4711e9e4a32b529f3132fc5931f", "materialEnum": 0}, - }, - { - "Number": 12, - "Code": "T12", - "Material": {"uuid": "730067cf07ae43849ddf4034299030e9", "materialEnum": 0}, - }, # 这个设置成废液槽,用储液槽表示 - { - "Number": 13, - "Code": "T13", - "Material": {"uuid": "57b1e4711e9e4a32b529f3132fc5931f", "materialEnum": 0}, - }, - { - "Number": 14, - "Code": "T14", - "Material": {"uuid": "57b1e4711e9e4a32b529f3132fc5931f", "materialEnum": 0}, - }, - { - "Number": 15, - "Code": "T15", - "Material": {"uuid": "57b1e4711e9e4a32b529f3132fc5931f", "materialEnum": 0}, - }, - { - "Number": 16, - "Code": "T16", - "Material": {"uuid": "730067cf07ae43849ddf4034299030e9", "materialEnum": 0}, - }, # 这个设置成垃圾桶,用储液槽表示 - ], - } - - def get_layout(self) -> Dict[str, Any]: - return { - "rows": self.rows, - "columns": self.columns, - "layout": self.layout, - "trash_slot": self.trash_slot, - "waste_liquid_slot": self.waste_liquid_slot, - } - - def get_trash_slot(self) -> int: - return self.trash_slot - - def get_waste_liquid_slot(self) -> int: - return self.waste_liquid_slot - - def add_lab_resource(self, material_info): - self.labresource = material_info - - def recommend_layout(self, needs: List[Tuple[str, str, int]]) -> Dict[str, Any]: - layout_list = [] - for reagent_name, material_name, count in needs: - - if material_name not in self.labresource: - raise ValueError(f"Material {reagent_name} not found in lab resources.") - - # 预留位置12和16不动 - reserved_positions = {12, 16} - available_positions = [i for i in range(1, 17) if i not in reserved_positions] - - # 计算总需求 - total_needed = sum(count for _, _, count in needs) - if total_needed > len(available_positions): - raise ValueError( - f"需要 {total_needed} 个位置,但只有 {len(available_positions)} 个可用位置(排除位置12和16)" - ) - - # 依次分配位置 - current_pos = 0 - for reagent_name, material_name, count in needs: - - material_uuid = self.labresource[material_name]["uuid"] - material_enum = self.labresource[material_name]["materialEnum"] - - for _ in range(count): - if current_pos >= len(available_positions): - raise ValueError("位置不足,无法分配更多物料") - - position = available_positions[current_pos] - # 找到对应的tablet并更新 - for tablet in self.default_layout["WorkTablets"]: - if tablet["Number"] == position: - tablet["Material"]["uuid"] = material_uuid - tablet["Material"]["materialEnum"] = material_enum - layout_list.append( - dict(reagent_name=reagent_name, material_name=material_name, positions=position) - ) - break - current_pos += 1 - return self.default_layout, layout_list - - -if __name__ == "__main__": - # Example usage - # 1. 用导出的json,给每个T1 T2板子设定相应的物料,如果是孔板和枪头盒,要对应区分 - # 2. backend需要支持num channel为1的情况 - # 3. 设计一个单点动作流程,可以跑 - # 4. - - # deck = PRCXI9300Deck(name="PRCXI_Deck_9300", size_x=100, size_y=100, size_z=100) - - # from pylabrobot.resources.opentrons.tip_racks import opentrons_96_tiprack_300ul,opentrons_96_tiprack_10ul - # from pylabrobot.resources.opentrons.plates import corning_96_wellplate_360ul_flat, nest_96_wellplate_2ml_deep - - # def get_well_container(name: str) -> PRCXI9300Container: - # well_containers = corning_96_wellplate_360ul_flat(name).serialize() - # plate = PRCXI9300Container(name=name, size_x=50, size_y=50, size_z=10, category="plate", - # ordering=well_containers["ordering"]) - # plate_serialized = plate.serialize() - # plate_serialized["parent_name"] = deck.name - # well_containers.update({k: v for k, v in plate_serialized.items() if k not in ["children"]}) - # new_plate: PRCXI9300Container = PRCXI9300Container.deserialize(well_containers) - # return new_plate - - # def get_tip_rack(name: str) -> PRCXI9300Container: - # tip_racks = opentrons_96_tiprack_300ul("name").serialize() - # tip_rack = PRCXI9300Container(name=name, size_x=50, size_y=50, size_z=10, category="tip_rack", - # ordering=tip_racks["ordering"]) - # tip_rack_serialized = tip_rack.serialize() - # tip_rack_serialized["parent_name"] = deck.name - # tip_racks.update({k: v for k, v in tip_rack_serialized.items() if k not in ["children"]}) - # new_tip_rack: PRCXI9300Container = PRCXI9300Container.deserialize(tip_racks) - # return new_tip_rack - - # plate1 = get_tip_rack("RackT1") - # plate1.load_state({ - # "Material": { - # "uuid": "076250742950465b9d6ea29a225dfb00", - # "Code": "ZX-001-300", - # "Name": "300μL Tip头" - # } - # }) - - # plate2 = get_well_container("PlateT2") - # plate2.load_state({ - # "Material": { - # "uuid": "57b1e4711e9e4a32b529f3132fc5931f", - # "Code": "ZX-019-2.2", - # "Name": "96深孔板" - # } - # }) - - # plate3 = PRCXI9300Trash("trash", size_x=50, size_y=100, size_z=10, category="trash") - # plate3.load_state({ - # "Material": { - # "uuid": "730067cf07ae43849ddf4034299030e9" - # } - # }) - - # plate4 = get_well_container("PlateT4") - # plate4.load_state({ - # "Material": { - # "uuid": "57b1e4711e9e4a32b529f3132fc5931f", - # "Code": "ZX-019-2.2", - # "Name": "96深孔板" - # } - # }) - - # plate5 = get_well_container("PlateT5") - # plate5.load_state({ - # "Material": { - # "uuid": "57b1e4711e9e4a32b529f3132fc5931f", - # "Code": "ZX-019-2.2", - # "Name": "96深孔板" - # } - # }) - # plate6 = get_well_container("PlateT6") - - # plate6.load_state({ - # "Material": { - # "uuid": "57b1e4711e9e4a32b529f3132fc5931f", - # "Code": "ZX-019-2.2", - # "Name": "96深孔板" - # } - # }) - - # deck.assign_child_resource(plate1, location=Coordinate(0, 0, 0)) - # deck.assign_child_resource(plate2, location=Coordinate(0, 0, 0)) - # deck.assign_child_resource(plate3, location=Coordinate(0, 0, 0)) - # deck.assign_child_resource(plate4, location=Coordinate(0, 0, 0)) - # deck.assign_child_resource(plate5, location=Coordinate(0, 0, 0)) - # deck.assign_child_resource(plate6, location=Coordinate(0, 0, 0)) - - # # # plate_2_liquids = [[('water', 500)]]*96 - - # # # plate2.set_well_liquids(plate_2_liquids) - - # handler = PRCXI9300Handler(deck=deck, host="10.181.214.132", port=9999, - # timeout=10.0, setup=False, debug=False, - # simulator=True, - # matrix_id="71593", - # channel_num=8, axis="Left") # Initialize the handler with the deck and host settings - - # plate_2_liquids = handler.set_group("water", plate2.children[:8], [200]*8) - - # plate5_liquids = handler.set_group("master_mix", plate5.children[:8], [100]*8) - - # handler.set_tiprack([plate1]) - # asyncio.run(handler.setup()) # Initialize the handler and setup the connection - # from pylabrobot.resources import set_volume_tracking - # from pylabrobot.resources import set_tip_tracking - # set_volume_tracking(enabled=True) - # from unilabos.resources.graphio import * - # # A = tree_to_list([resource_plr_to_ulab(deck)]) - # # with open("deck_9300_new.json", "w", encoding="utf-8") as f: - # # json.dump(A, f, indent=4, ensure_ascii=False) - # asyncio.run(handler.create_protocol(protocol_name="Test Protocol")) # Initialize the backend and setup the connection - # asyncio.run(handler.transfer_group("water", "master_mix", 100)) # Reset tip tracking - - # asyncio.run(handler.pick_up_tips(plate1.children[:8],[0,1,2,3,4,5,6,7])) - # print(plate1.children[:8]) - # asyncio.run(handler.aspirate(plate2.children[:8],[50]*8, [0,1,2,3,4,5,6,7])) - # print(plate2.children[:8]) - # asyncio.run(handler.dispense(plate5.children[:8],[50]*8,[0,1,2,3,4,5,6,7])) - # print(plate5.children[:8]) - - # #asyncio.run(handler.drop_tips(tip_rack.children[8:16],[0,1,2,3,4,5,6,7])) - # asyncio.run(handler.discard_tips([0,1,2,3,4,5,6,7])) - - # asyncio.run(handler.mix(well_containers.children[:8 - # ], mix_time=3, mix_vol=50, height_to_bottom=0.5, offsets=Coordinate(0, 0, 0), mix_rate=100)) - # #print(json.dumps(handler._unilabos_backend.steps_todo_list, indent=2)) # Print matrix info - # asyncio.run(handler.add_liquid( - # asp_vols=[100]*16, - # dis_vols=[100]*16, - # reagent_sources=plate2.children[:16], - # targets=plate5.children[:16], - # use_channels=[0, 1, 2, 3, 4, 5, 6, 7], - # flow_rates=[None] * 32, - # offsets=[Coordinate(0, 0, 0)] * 32, - # liquid_height=[None] * 16, - # blow_out_air_volume=[None] * 16, - # delays=None, - # mix_time=3, - # mix_vol=50, - # spread="wide", - # )) - # asyncio.run(handler.run_protocol()) # Run the protocol - # asyncio.run(handler.remove_liquid( - # vols=[100]*16, - # sources=plate2.children[-16:], - # waste_liquid=plate5.children[:16], # 这个有些奇怪,但是好像也只能这么写 - # use_channels=[0, 1, 2, 3, 4, 5, 6, 7], - # flow_rates=[None] * 32, - # offsets=[Coordinate(0, 0, 0)] * 32, - # liquid_height=[None] * 32, - # blow_out_air_volume=[None] * 32, - # spread="wide", - # )) - - # acid = [20]*8+[40]*8+[60]*8+[80]*8+[100]*8+[120]*8+[140]*8+[160]*8+[180]*8+[200]*8+[220]*8+[240]*8 - # alkaline = acid[::-1] # Reverse the acid list for alkaline - # asyncio.run(handler.transfer_liquid( - # asp_vols=acid, - # dis_vols=acid, - # tip_racks=[plate1], - # sources=plate2.children[:], - # targets=plate5.children[:], - # use_channels=[0, 1, 2, 3, 4, 5, 6, 7], - # offsets=[Coordinate(0, 0, 0)] * 32, - # asp_flow_rates=[None] * 16, - # dis_flow_rates=[None] * 16, - # liquid_height=[None] * 32, - # blow_out_air_volume=[None] * 32, - # mix_times=3, - # mix_vol=50, - # spread="wide", - # )) - # asyncio.run(handler.run_protocol()) # Run the protocol - # # input("Running protocol...") - # # input("Press Enter to continue...") # Wait for user input before proceeding - # # print("PRCXI9300Handler initialized with deck and host settings.") - - ### 9320 ### - - deck = PRCXI9300Deck(name="PRCXI_Deck", size_x=100, size_y=100, size_z=100) - - from pylabrobot.resources.opentrons.tip_racks import tipone_96_tiprack_200ul, opentrons_96_tiprack_10ul - from pylabrobot.resources.opentrons.plates import corning_96_wellplate_360ul_flat, nest_96_wellplate_2ml_deep - - def get_well_container(name: str) -> PRCXI9300Plate: - well_containers = corning_96_wellplate_360ul_flat(name).serialize() - plate = PRCXI9300Plate( - name=name, size_x=50, size_y=50, size_z=10, category="plate", ordered_items=well_containers["ordering"] - ) - plate_serialized = plate.serialize() - plate_serialized["parent_name"] = deck.name - well_containers.update({k: v for k, v in plate_serialized.items() if k not in ["children"]}) - new_plate: PRCXI9300Plate = PRCXI9300Plate.deserialize(well_containers) - return new_plate - - def get_tip_rack(name: str, child_prefix: str = "tip") -> PRCXI9300TipRack: - tip_racks = opentrons_96_tiprack_10ul(name).serialize() - tip_rack = PRCXI9300TipRack( - name=name, - size_x=50, - size_y=50, - size_z=10, - category="tip_rack", - ordered_items=collections.OrderedDict({k: f"{child_prefix}_{k}" for k, v in tip_racks["ordering"].items()}), - ) - tip_rack_serialized = tip_rack.serialize() - tip_rack_serialized["parent_name"] = deck.name - tip_racks.update({k: v for k, v in tip_rack_serialized.items() if k not in ["children"]}) - new_tip_rack: PRCXI9300TipRack = PRCXI9300TipRack.deserialize(tip_racks) - return new_tip_rack - - plate1 = get_tip_rack("RackT1") - plate1.load_state( - {"Material": {"uuid": "068b3815e36b4a72a59bae017011b29f", "Code": "ZX-001-10+", "Name": "10μL加长 Tip头"}} - ) - plate2 = get_well_container("PlateT2") - plate2.load_state( - {"Material": {"uuid": "b05b3b2aafd94ec38ea0cd3215ecea8f", "Code": "ZX-78-096", "Name": "细菌培养皿"}} - ) - plate3 = get_well_container("PlateT3") - plate3.load_state( - { - "Material": { - "uuid": "04211a2dc93547fe9bf6121eac533650", - } - } - ) - plate4 = get_well_container("PlateT4") - plate4.load_state( - {"Material": {"uuid": "b05b3b2aafd94ec38ea0cd3215ecea8f", "Code": "ZX-78-096", "Name": "细菌培养皿"}} - ) - - plate5 = get_tip_rack("RackT5") - plate5.load_state( - { - "Material": { - "uuid": "076250742950465b9d6ea29a225dfb00", - "Code": "ZX-001-300", - "SupplyType": 1, - "Name": "300μL Tip头", - } - } - ) - plate6 = get_well_container("PlateT6") - plate6.load_state( - { - "Material": { - "uuid": "e146697c395e4eabb3d6b74f0dd6aaf7", - "Code": "1", - "SupplyType": 1, - "Name": "ep适配器", - "SummaryName": "ep适配器", - } - } - ) - plate7 = PRCXI9300Plate( - name="plateT7", size_x=50, size_y=50, size_z=10, category="plate", ordered_items=collections.OrderedDict() - ) - plate7.load_state({"Material": {"uuid": "04211a2dc93547fe9bf6121eac533650"}}) - plate8 = get_tip_rack("PlateT8") - plate8.load_state({"Material": {"uuid": "04211a2dc93547fe9bf6121eac533650"}}) - plate9 = get_well_container("PlateT9") - plate9.load_state( - { - "Material": { - "uuid": "4a043a07c65a4f9bb97745e1f129b165", - "Code": "ZX-58-0001", - "SupplyType": 2, - "Name": "全裙边 PCR适配器", - "SummaryName": "全裙边 PCR适配器", - } - } - ) - plate10 = get_well_container("PlateT10") - plate10.load_state( - { - "Material": { - "uuid": "4a043a07c65a4f9bb97745e1f129b165", - "Code": "ZX-58-0001", - "SupplyType": 2, - "Name": "全裙边 PCR适配器", - "SummaryName": "全裙边 PCR适配器", - } - } - ) - plate11 = get_well_container("PlateT11") - plate11.load_state( - { - "Material": { - "uuid": "04211a2dc93547fe9bf6121eac533650", - } - } - ) - plate12 = get_well_container("PlateT12") - plate12.load_state({"Material": {"uuid": "04211a2dc93547fe9bf6121eac533650"}}) - plate13 = get_well_container("PlateT13") - plate13.load_state( - { - "Material": { - "uuid": "4a043a07c65a4f9bb97745e1f129b165", - "Code": "ZX-58-0001", - "SupplyType": 2, - "Name": "全裙边 PCR适配器", - "SummaryName": "全裙边 PCR适配器", - } - } - ), - plate14 = get_well_container("PlateT14") - plate14.load_state( - { - "Material": { - "uuid": "4a043a07c65a4f9bb97745e1f129b165", - "Code": "ZX-58-0001", - "SupplyType": 2, - "Name": "全裙边 PCR适配器", - "SummaryName": "全裙边 PCR适配器", - } - } - ), - plate15 = get_well_container("PlateT15") - plate15.load_state({"Material": {"uuid": "04211a2dc93547fe9bf6121eac533650"}}) - - trash = PRCXI9300Trash(name="trash", size_x=50, size_y=50, size_z=10, category="trash") - trash.load_state({"Material": {"uuid": "730067cf07ae43849ddf4034299030e9"}}) - - # container_for_nothing = PRCXI9300Container(name="container_for_nothing", size_x=50, size_y=50, size_z=10, category="plate", ordering=collections.OrderedDict()) - - deck.assign_child_resource(plate1, location=Coordinate(0, 0, 0)) - deck.assign_child_resource(plate2, location=Coordinate(0, 0, 0)) - deck.assign_child_resource( - PRCXI9300Plate( - name="container_for_nothin3", - size_x=50, - size_y=50, - size_z=10, - category="plate", - ordered_items=collections.OrderedDict(), - ), - location=Coordinate(0, 0, 0), - ) - deck.assign_child_resource(plate4, location=Coordinate(0, 0, 0)) - deck.assign_child_resource(plate5, location=Coordinate(0, 0, 0)) - deck.assign_child_resource(plate6, location=Coordinate(0, 0, 0)) - deck.assign_child_resource( - PRCXI9300Plate( - name="container_for_nothing7", - size_x=50, - size_y=50, - size_z=10, - category="plate", - ordered_items=collections.OrderedDict(), - ), - location=Coordinate(0, 0, 0), - ) - deck.assign_child_resource( - PRCXI9300Plate( - name="container_for_nothing8", - size_x=50, - size_y=50, - size_z=10, - category="plate", - ordered_items=collections.OrderedDict(), - ), - location=Coordinate(0, 0, 0), - ) - deck.assign_child_resource(plate9, location=Coordinate(0, 0, 0)) - deck.assign_child_resource(plate10, location=Coordinate(0, 0, 0)) - deck.assign_child_resource( - PRCXI9300Plate( - name="container_for_nothing11", - size_x=50, - size_y=50, - size_z=10, - category="plate", - ordered_items=collections.OrderedDict(), - ), - location=Coordinate(0, 0, 0), - ) - deck.assign_child_resource( - PRCXI9300Plate( - name="container_for_nothing12", - size_x=50, - size_y=50, - size_z=10, - category="plate", - ordered_items=collections.OrderedDict(), - ), - location=Coordinate(0, 0, 0), - ) - deck.assign_child_resource(plate13, location=Coordinate(0, 0, 0)) - deck.assign_child_resource(plate14, location=Coordinate(0, 0, 0)) - deck.assign_child_resource(plate15, location=Coordinate(0, 0, 0)) - deck.assign_child_resource(trash, location=Coordinate(0, 0, 0)) - - from unilabos.resources.graphio import tree_to_list, resource_plr_to_ulab - - A = tree_to_list([resource_plr_to_ulab(deck)]) - with open("deck.json", "w", encoding="utf-8") as f: - A.insert(0, { - "id": "PRCXI", - "name": "PRCXI", - "parent": None, - "type": "device", - "class": "liquid_handler.prcxi", - "position": { - "x": 0, - "y": 0, - "z": 0 - }, - "config": { - "deck": { - "_resource_child_name": "PRCXI_Deck", - "_resource_type": "unilabos.devices.liquid_handling.prcxi.prcxi:PRCXI9300Deck" - }, - "host": "192.168.0.121", - "port": 9999, - "timeout": 10.0, - "axis": "Right", - "channel_num": 1, - "setup": False, - "debug": True, - "simulator": True, - "matrix_id": "5de524d0-3f95-406c-86dd-f83626ebc7cb", - "is_9320": True - }, - "data": {}, - "children": [ - "PRCXI_Deck" - ] - }) - A[1]["parent"] = "PRCXI" - json.dump({ - "nodes": A, - "links": [] - }, f, indent=4, ensure_ascii=False) - - handler = PRCXI9300Handler( - deck=deck, - host="192.168.1.201", - port=9999, - timeout=10.0, - setup=True, - debug=False, - matrix_id="5de524d0-3f95-406c-86dd-f83626ebc7cb", - channel_num=1, - axis="Right", - simulator=False, - is_9320=True, - ) - backend: PRCXI9300Backend = handler.backend - from pylabrobot.resources import set_volume_tracking - - set_volume_tracking(enabled=True) - # res = backend.api_client.get_all_materials() - asyncio.run(handler.setup()) # Initialize the handler and setup the connection - handler.set_tiprack([plate1, plate5]) # Set the tip rack for the handler - handler.set_liquid([plate9.get_well("H12")], ["water"], [5]) - asyncio.run(handler.create_protocol(protocol_name="Test Protocol")) - asyncio.run(handler.pick_up_tips([plate5.get_item("C5")], [0])) - asyncio.run(handler.aspirate([plate9.get_item("H12")], [5], [0])) - - for well in plate13.get_all_items(): - # well_pos = well.name.split("_")[1] # 走一行 - # if well_pos.startswith("A"): - if well.name.startswith("PlateT13"): # 走整个Plate - asyncio.run(handler.dispense([well], [0.01], [0])) - - # asyncio.run(handler.dispense([plate10.get_item("H12")], [1], [0])) - # asyncio.run(handler.dispense([plate13.get_item("A1")], [1], [0])) - # asyncio.run(handler.dispense([plate14.get_item("C5")], [1], [0])) - asyncio.run(handler.mix([plate10.get_item("H12")], mix_time=3, mix_vol=5)) - asyncio.run(handler.discard_tips([0])) - asyncio.run(handler.run_protocol()) - time.sleep(5) - os._exit(0) - - - prcxi_api = PRCXI9300Api(host="192.168.0.121", port=9999) - prcxi_api.list_matrices() - prcxi_api.get_all_materials() - - # 第一种情景:一个孔往多个孔加液 - # plate_2_liquids = handler.set_group("water", [plate2.children[0]], [300]) - # plate5_liquids = handler.set_group("master_mix", plate5.children[:23], [100]*23) - # 第二个情景:多个孔往多个孔加液(但是个数得对应) - plate_2_liquids = handler.set_group("water", plate2.children[:23], [300] * 23) - plate5_liquids = handler.set_group("master_mix", plate5.children[:23], [100] * 23) - - # plate11.set_well_liquids([("Water", 100) if (i % 8 == 0 and i // 8 < 6) else (None, 100) for i in range(96)]) # Set liquids for every 8 wells in plate8 - - # plate11.set_well_liquids([("Water", 100) if (i % 8 == 0 and i // 8 < 6) else (None, 100) for i in range(96)]) # Set liquids for every 8 wells in plate8 - - # A = tree_to_list([resource_plr_to_ulab(deck)]) - # # with open("deck.json", "w", encoding="utf-8") as f: - # # json.dump(A, f, indent=4, ensure_ascii=False) - - # print(plate11.get_well(0).tracker.get_used_volume()) - # Initialize the backend and setup the connection - asyncio.run(handler.transfer_group("water", "master_mix", 10)) # Reset tip tracking - - # asyncio.run(handler.pick_up_tips([plate8.children[8]],[0])) - # print(plate8.children[8]) - # asyncio.run(handler.run_protocol()) - # asyncio.run(handler.aspirate([plate11.children[0]],[10], [0])) - # print(plate11.children[0]) - # # asyncio.run(handler.run_protocol()) - # asyncio.run(handler.dispense([plate1.children[0]],[10],[0])) - # print(plate1.children[0]) - # asyncio.run(handler.run_protocol()) - # asyncio.run(handler.mix([plate1.children[0]], mix_time=3, mix_vol=5, height_to_bottom=0.5, offsets=Coordinate(0, 0, 0), mix_rate=100)) - # print(plate1.children[0]) - # asyncio.run(handler.discard_tips([0])) - - # asyncio.run(handler.add_liquid( - # asp_vols=[10]*7, - # dis_vols=[10]*7, - # reagent_sources=plate11.children[:7], - # targets=plate1.children[2:9], - # use_channels=[0], - # flow_rates=[None] * 7, - # offsets=[Coordinate(0, 0, 0)] * 7, - # liquid_height=[None] * 7, - # blow_out_air_volume=[None] * 2, - # delays=None, - # mix_time=3, - # mix_vol=5, - # spread="custom", - # )) - - # asyncio.run(handler.run_protocol()) # Run the protocol - - # # # asyncio.run(handler.transfer_liquid( - # # # asp_vols=[10]*2, - # # # dis_vols=[10]*2, - # # # sources=plate11.children[:2], - # # # targets=plate11.children[-2:], - # # # use_channels=[0], - # # # offsets=[Coordinate(0, 0, 0)] * 4, - # # # liquid_height=[None] * 2, - # # # blow_out_air_volume=[None] * 2, - # # # delays=None, - # # # mix_times=3, - # # # mix_vol=5, - # # # spread="wide", - # # # tip_racks=[plate8] - # # # )) - - # # # asyncio.run(handler.remove_liquid( - # # # vols=[10]*2, - # # # sources=plate11.children[:2], - # # # waste_liquid=plate11.children[43], - # # # use_channels=[0], - # # # offsets=[Coordinate(0, 0, 0)] * 4, - # # # liquid_height=[None] * 2, - # # # blow_out_air_volume=[None] * 2, - # # # delays=None, - # # # spread="wide" - # # # )) - # # asyncio.run(handler.run_protocol()) - - # # # asyncio.run(handler.discard_tips()) - # # # asyncio.run(handler.mix(well_containers.children[:8 - # # # ], mix_time=3, mix_vol=50, height_to_bottom=0.5, offsets=Coordinate(0, 0, 0), mix_rate=100)) - # # #print(json.dumps(handler._unilabos_backend.steps_todo_list, indent=2)) # Print matrix info - - # # # asyncio.run(handler.remove_liquid( - # # # vols=[100]*16, - # # # sources=well_containers.children[-16:], - # # # waste_liquid=well_containers.children[:16], # 这个有些奇怪,但是好像也只能这么写 - # # # use_channels=[0, 1, 2, 3, 4, 5, 6, 7], - # # # flow_rates=[None] * 32, - # # # offsets=[Coordinate(0, 0, 0)] * 32, - # # # liquid_height=[None] * 32, - # # # blow_out_air_volume=[None] * 32, - # # # spread="wide", - # # # )) - # # # asyncio.run(handler.transfer_liquid( - # # # asp_vols=[100]*16, - # # # dis_vols=[100]*16, - # # # tip_racks=[tip_rack], - # # # sources=well_containers.children[-16:], - # # # targets=well_containers.children[:16], - # # # use_channels=[0, 1, 2, 3, 4, 5, 6, 7], - # # # offsets=[Coordinate(0, 0, 0)] * 32, - # # # asp_flow_rates=[None] * 16, - # # # dis_flow_rates=[None] * 16, - # # # liquid_height=[None] * 32, - # # # blow_out_air_volume=[None] * 32, - # # # mix_times=3, - # # # mix_vol=50, - # # # spread="wide", - # # # )) - # # print(json.dumps(handler._unilabos_backend.steps_todo_list, indent=2)) # Print matrix info - # # # input("pick_up_tips add step") - # asyncio.run(handler.run_protocol()) # Run the protocol - # # # input("Running protocol...") - # # # input("Press Enter to continue...") # Wait for user input before proceeding - # # # print("PRCXI9300Handler initialized with deck and host settings.") - - # 一些推荐版位组合的测试样例: - - # 一些推荐版位组合的测试样例: - - with open("prcxi_material.json", "r") as f: - material_info = json.load(f) - - layout = DefaultLayout("PRCXI9320") - layout.add_lab_resource(material_info) - MatrixLayout_1, dict_1 = layout.recommend_layout( - [ - ("reagent_1", "96 细胞培养皿", 3), - ("reagent_2", "12道储液槽", 1), - ("reagent_3", "200μL Tip头", 7), - ("reagent_4", "10μL加长 Tip头", 1), - ] - ) - print(dict_1) - MatrixLayout_2, dict_2 = layout.recommend_layout( - [ - ("reagent_1", "96深孔板", 4), - ("reagent_2", "12道储液槽", 1), - ("reagent_3", "200μL Tip头", 1), - ("reagent_4", "10μL加长 Tip头", 1), - ] - ) - -# with open("prcxi_material.json", "r") as f: -# material_info = json.load(f) - -# layout = DefaultLayout("PRCXI9320") -# layout.add_lab_resource(material_info) -# MatrixLayout_1, dict_1 = layout.recommend_layout([ -# ("reagent_1", "96 细胞培养皿", 3), -# ("reagent_2", "12道储液槽", 1), -# ("reagent_3", "200μL Tip头", 7), -# ("reagent_4", "10μL加长 Tip头", 1), -# ]) -# print(dict_1) -# MatrixLayout_2, dict_2 = layout.recommend_layout([ -# ("reagent_1", "96深孔板", 4), -# ("reagent_2", "12道储液槽", 1), -# ("reagent_3", "200μL Tip头", 1), -# ("reagent_4", "10μL加长 Tip头", 1), -# ]) diff --git a/unilabos/devices/liquid_handling/prcxi/prcxi_labware.py b/unilabos/devices/liquid_handling/prcxi/prcxi_labware.py deleted file mode 100644 index b87e1e23..00000000 --- a/unilabos/devices/liquid_handling/prcxi/prcxi_labware.py +++ /dev/null @@ -1,841 +0,0 @@ -from typing import Optional -from pylabrobot.resources import Tube, Coordinate -from pylabrobot.resources.well import Well, WellBottomType, CrossSectionType -from pylabrobot.resources.tip import Tip, TipCreator -from pylabrobot.resources.tip_rack import TipRack, TipSpot -from pylabrobot.resources.utils import create_ordered_items_2d -from pylabrobot.resources.height_volume_functions import ( - compute_height_from_volume_rectangle, - compute_volume_from_height_rectangle, -) - -from .prcxi import PRCXI9300Plate, PRCXI9300TipRack, PRCXI9300Trash, PRCXI9300TubeRack, PRCXI9300PlateAdapter - -def _make_tip_helper(volume: float, length: float, depth: float) -> Tip: - """ - PLR 的 Tip 类参数名为: maximal_volume, total_tip_length, fitting_depth - """ - return Tip( - has_filter=False, # 默认无滤芯 - maximal_volume=volume, - total_tip_length=length, - fitting_depth=depth - ) - -# ========================================================================= -# 标准品 参照 PLR 标准库的参数,但是用 PRCXI9300Plate 实例化,并注入 UUID -# ========================================================================= -def PRCXI_BioER_96_wellplate(name: str) -> PRCXI9300Plate: - """ - 对应 JSON Code: ZX-019-2.2 (2.2ml 深孔板) - 原型: pylabrobot.resources.bioer.BioER_96_wellplate_Vb_2200uL - """ - return PRCXI9300Plate( - name=name, - size_x=127.1, - size_y=85.0, - size_z=44.2, - lid=None, - model="PRCXI_BioER_96_wellplate", - category="plate", - material_info={ - "uuid": "ca877b8b114a4310b429d1de4aae96ee", - "Code": "ZX-019-2.2", - "Name": "2.2ml 深孔板", - "materialEnum": 0, - "SupplyType": 1 - }, - - ordered_items=create_ordered_items_2d( - Well, - size_x=8.25, - size_y=8.25, - size_z=39.3, # 修改过 - dx=9.5, - dy=7.5, - dz=6, - material_z_thickness=0.8, - item_dx=9.0, - item_dy=9.0, - num_items_x=12, - num_items_y=8, - cross_section_type=CrossSectionType.RECTANGLE, - bottom_type=WellBottomType.V, # 是否需要修改? - max_volume=2200, - ), - ) -def PRCXI_nest_1_troughplate(name: str) -> PRCXI9300Plate: - """ - 对应 JSON Code: ZX-58-10000 (储液槽) - 原型: pylabrobot.resources.nest.nest_1_troughplate_195000uL_Vb - """ - well_size_x = 127.76 - (14.38 - 9 / 2) * 2 - well_size_y = 85.48 - (11.24 - 9 / 2) * 2 - well_kwargs = { - "size_x": well_size_x, - "size_y": well_size_y, - "size_z": 26.85, - "bottom_type": WellBottomType.V, - "compute_height_from_volume": lambda liquid_volume: compute_height_from_volume_rectangle( - liquid_volume=liquid_volume, well_length=well_size_x, well_width=well_size_y - ), - "compute_volume_from_height": lambda liquid_height: compute_volume_from_height_rectangle( - liquid_height=liquid_height, well_length=well_size_x, well_width=well_size_y - ), - "material_z_thickness": 31.4 - 26.85 - 3.55, - } - - return PRCXI9300Plate( - name=name, - size_x=127.76, - size_y=85.48, - size_z=31.4, - lid=None, - model="PRCXI_Nest_1_troughplate", - category="plate", - material_info={ - "uuid": "04211a2dc93547fe9bf6121eac533650", - "Code": "ZX-58-10000", - "Name": "储液槽", - "materialEnum": 0, - "SupplyType": 1 - }, - - ordered_items=create_ordered_items_2d( - Well, - num_items_x=1, - num_items_y=1, - dx=14.38 - 9 / 2, - dy=11.24 - 9 / 2, - dz=3.55, - item_dx=9.0, - item_dy=9.0, - **well_kwargs, # 传入上面计算好的孔参数 - ), - ) -def PRCXI_BioRad_384_wellplate(name: str) -> PRCXI9300Plate: - """ - 对应 JSON Code: q3 (384板) - 原型: pylabrobot.resources.biorad.BioRad_384_wellplate_50uL_Vb - """ - return PRCXI9300Plate( - name=name, - # 直接抄录 PLR 标准品的物理尺寸 - size_x=127.76, - size_y=85.48, - size_z=10.40, - model="BioRad_384_wellplate_50uL_Vb", - category="plate", - # 2. 注入 Unilab 必须的 UUID 信息 - material_info={ - "uuid": "853dcfb6226f476e8b23c250217dc7da", - "Code": "q3", - "Name": "384板", - "SupplyType": 1, - }, - # 3. 定义孔的排列 (抄录标准参数) - ordered_items=create_ordered_items_2d( - Well, - num_items_x=24, - num_items_y=16, - dx=10.58, # A1 左边缘距离板子左边缘 需要进一步测量 - dy=7.44, # P1 下边缘距离板子下边缘 需要进一步测量 - dz=1.05, - item_dx=4.5, - item_dy=4.5, - size_x=3.10, - size_y=3.10, - size_z=9.35, - max_volume=50, - material_z_thickness=1, - bottom_type=WellBottomType.V, - cross_section_type=CrossSectionType.CIRCLE, - ) - ) -def PRCXI_AGenBio_4_troughplate(name: str) -> PRCXI9300Plate: - """ - 对应 JSON Code: sdfrth654 (4道储液槽) - 原型: pylabrobot.resources.agenbio.AGenBio_4_troughplate_75000uL_Vb - """ - INNER_WELL_WIDTH = 26.1 - INNER_WELL_LENGTH = 71.2 - well_kwargs = { - "size_x": 26, - "size_y": 71.2, - "size_z": 42.55, - "bottom_type": WellBottomType.FLAT, - "cross_section_type": CrossSectionType.RECTANGLE, - "compute_height_from_volume": lambda liquid_volume: compute_height_from_volume_rectangle( - liquid_volume, - INNER_WELL_LENGTH, - INNER_WELL_WIDTH, - ), - "compute_volume_from_height": lambda liquid_height: compute_volume_from_height_rectangle( - liquid_height, - INNER_WELL_LENGTH, - INNER_WELL_WIDTH, - ), - "material_z_thickness": 1, - } - - return PRCXI9300Plate( - name=name, - size_x=127.76, - size_y=85.48, - size_z=43.80, - model="PRCXI_AGenBio_4_troughplate", - category="plate", - material_info={ - "uuid": "01953864f6f140ccaa8ddffd4f3e46f5", - "Code": "sdfrth654", - "Name": "4道储液槽", - "materialEnum": 0, - "SupplyType": 1 - }, - - ordered_items=create_ordered_items_2d( - Well, - num_items_x=4, - num_items_y=1, - dx=9.8, - dy=7.2, - dz=0.9, - item_dx=INNER_WELL_WIDTH + 1, # 1 mm wall thickness - item_dy=INNER_WELL_LENGTH, - **well_kwargs, - ), - ) -def PRCXI_nest_12_troughplate(name: str) -> PRCXI9300Plate: - """ - 对应 JSON Code: 12道储液槽 (12道储液槽) - 原型: pylabrobot.resources.nest.nest_12_troughplate_15000uL_Vb - """ - well_size_x = 8.2 - well_size_y = 71.2 - well_kwargs = { - "size_x": well_size_x, - "size_y": well_size_y, - "size_z": 26.85, - "bottom_type": WellBottomType.V, - "compute_height_from_volume": lambda liquid_volume: compute_height_from_volume_rectangle( - liquid_volume=liquid_volume, well_length=well_size_x, well_width=well_size_y - ), - "compute_volume_from_height": lambda liquid_height: compute_volume_from_height_rectangle( - liquid_height=liquid_height, well_length=well_size_x, well_width=well_size_y - ), - "material_z_thickness": 31.4 - 26.85 - 3.55, - } - - return PRCXI9300Plate( - name=name, - size_x=127.76, - size_y=85.48, - size_z=31.4, - lid=None, - model="PRCXI_nest_12_troughplate", - category="plate", - material_info={ - "uuid": "0f1639987b154e1fac78f4fb29a1f7c1", - "Code": "12道储液槽", - "Name": "12道储液槽", - "materialEnum": 0, - "SupplyType": 1 - }, - ordered_items=create_ordered_items_2d( - Well, - num_items_x=12, - num_items_y=1, - dx=14.38 - 8.2 / 2, - dy=(85.48 - 71.2) / 2, - dz=3.55, - item_dx=9.0, - item_dy=9.0, - **well_kwargs, - ), - ) -def PRCXI_CellTreat_96_wellplate(name: str) -> PRCXI9300Plate: - """ - 对应 JSON Code: ZX-78-096 (细菌培养皿) - 原型: pylabrobot.resources.celltreat.CellTreat_96_wellplate_350ul_Fb - """ - well_kwargs = { - "size_x": 6.96, - "size_y": 6.96, - "size_z": 10.04, - "bottom_type": WellBottomType.FLAT, - "material_z_thickness": 1.75, - "cross_section_type": CrossSectionType.CIRCLE, - "max_volume": 300, - } - - return PRCXI9300Plate( - name=name, - size_x=127.61, - size_y=85.24, - size_z=14.30, - lid=None, - model="PRCXI_CellTreat_96_wellplate", - category="plate", - material_info={ - "uuid": "b05b3b2aafd94ec38ea0cd3215ecea8f", - "Code": "ZX-78-096", - "Name": "细菌培养皿", - "materialEnum": 4, - "SupplyType": 1 - }, - ordered_items=create_ordered_items_2d( - Well, - num_items_x=12, - num_items_y=8, - dx=10.83, - dy=7.67, - dz=4.05, - item_dx=9, - item_dy=9, - **well_kwargs, - ), - ) -# ========================================================================= -# 自定义/需测量品 (Custom Measurement) -# ========================================================================= -def PRCXI_10ul_eTips(name: str) -> PRCXI9300TipRack: - """ - 对应 JSON Code: ZX-001-10+ - """ - return PRCXI9300TipRack( - name=name, - size_x=122.11, - size_y=85.48, #修改 - size_z=58.23, - model="PRCXI_10ul_eTips", - material_info={ - "uuid": "068b3815e36b4a72a59bae017011b29f", - "Code": "ZX-001-10+", - "Name": "10μL加长 Tip头", - "SupplyType": 1 - }, - ordered_items=create_ordered_items_2d( - TipSpot, - num_items_x=12, - num_items_y=8, - dx=7.97, #需要修改 - dy=5.0, #需修改 - dz=2.0, #需修改 - item_dx=9.0, - item_dy=9.0, - size_x=7.0, - size_y=7.0, - size_z=0, - make_tip=lambda: _make_tip_helper(volume=10, length=52.0, depth=45.1) - ) - ) -def PRCXI_300ul_Tips(name: str) -> PRCXI9300TipRack: - """ - 对应 JSON Code: ZX-001-300 - 吸头盒通常比较特殊,需要定义 Tip 对象 - """ - return PRCXI9300TipRack( - name=name, - size_x=122.11, - size_y=85.48, #修改 - size_z=58.23, - model="PRCXI_300ul_Tips", - material_info={ - "uuid": "076250742950465b9d6ea29a225dfb00", - "Code": "ZX-001-300", - "Name": "300μL Tip头", - "SupplyType": 1 - }, - ordered_items=create_ordered_items_2d( - TipSpot, - num_items_x=12, - num_items_y=8, - dx=7.97, #需要修改 - dy=5.0, #需修改 - dz=2.0, #需修改 - item_dx=9.0, - item_dy=9.0, - size_x=7.0, - size_y=7.0, - size_z=0, - make_tip=lambda: _make_tip_helper(volume=300, length=60.0, depth=51.0) - ) - ) -def PRCXI_PCR_Plate_200uL_nonskirted(name: str) -> PRCXI9300Plate: - """ - 对应 JSON Code: ZX-023-0.2 (0.2ml PCR 板) - """ - return PRCXI9300Plate( - name=name, - size_x=119.5, - size_y=80.0, - size_z=26.0, - model="PRCXI_PCR_Plate_200uL_nonskirted", - plate_type="non-skirted", - category="plate", - material_info={ - "uuid": "73bb9b10bc394978b70e027bf45ce2d3", - "Code": "ZX-023-0.2", - "Name": "0.2ml PCR 板", - "materialEnum": 0, - "SupplyType": 1 - }, - ordered_items=create_ordered_items_2d( - Well, - num_items_x=12, - num_items_y=8, - dx=7, - dy=5, - dz=0.0, - item_dx=9, - item_dy=9, - size_x=6, - size_y=6, - size_z=15.17, - bottom_type=WellBottomType.V, - cross_section_type=CrossSectionType.CIRCLE, - ), -) -def PRCXI_PCR_Plate_200uL_semiskirted(name: str) -> PRCXI9300Plate: - """ - 对应 JSON Code: ZX-023-0.2 (0.2ml PCR 板) - """ - return PRCXI9300Plate( - name=name, - size_x=126, - size_y=86, - size_z=21.2, - model="PRCXI_PCR_Plate_200uL_semiskirted", - plate_type="semi-skirted", - category="plate", - material_info={ - "uuid": "73bb9b10bc394978b70e027bf45ce2d3", - "Code": "ZX-023-0.2", - "Name": "0.2ml PCR 板", - "materialEnum": 0, - "SupplyType": 1 - }, - ordered_items=create_ordered_items_2d( - Well, - num_items_x=12, - num_items_y=8, - dx=11, - dy=8, - dz=0.0, - item_dx=9, - item_dy=9, - size_x=6, - size_y=6, - size_z=15.17, - bottom_type=WellBottomType.V, - cross_section_type=CrossSectionType.CIRCLE, - ), -) -def PRCXI_PCR_Plate_200uL_skirted(name: str) -> PRCXI9300Plate: - """ - 对应 JSON Code: ZX-023-0.2 (0.2ml PCR 板) - """ - return PRCXI9300Plate( - name=name, - size_x=127.76, - size_y=86, - size_z=16.1, - model="PRCXI_PCR_Plate_200uL_skirted", - plate_type="skirted", - category="plate", - material_info={ - "uuid": "73bb9b10bc394978b70e027bf45ce2d3", - "Code": "ZX-023-0.2", - "Name": "0.2ml PCR 板", - "materialEnum": 0, - "SupplyType": 1 - }, - ordered_items=create_ordered_items_2d( - Well, - num_items_x=12, - num_items_y=8, - dx=11, - dy=8.49, - dz=0.8, - item_dx=9, - item_dy=9, - size_x=6, - size_y=6, - size_z=15.1, - bottom_type=WellBottomType.V, - cross_section_type=CrossSectionType.CIRCLE, - ), -) -def PRCXI_trash(name: str = "trash") -> PRCXI9300Trash: - """ - 对应 JSON Code: q1 (废弃槽) - """ - return PRCXI9300Trash( - name="trash", - size_x=126.59, - size_y=84.87, - size_z=89.5, # 修改 - category="trash", - model="PRCXI_trash", - material_info={ - "uuid": "730067cf07ae43849ddf4034299030e9", - "Code": "q1", - "Name": "废弃槽", - "materialEnum": 0, - "SupplyType": 1 - } - ) -def PRCXI_96_DeepWell(name: str) -> PRCXI9300Plate: - """ - 对应 JSON Code: q2 (96深孔板) - """ - return PRCXI9300Plate( - name=name, - size_x=127.3, - size_y=85.35, - size_z=45.0, #修改 - model="PRCXI_96_DeepWell", - material_info={ - "uuid": "57b1e4711e9e4a32b529f3132fc5931f", # 对应 q2 uuid - "Code": "q2", - "Name": "96深孔板", - "materialEnum": 0 - }, - ordered_items=create_ordered_items_2d( - Well, - num_items_x=12, - num_items_y=8, - dx=10.9, - dy=8.25, - dz=2.0, - item_dx=9.0, - item_dy=9.0, - size_x=8.2, - size_y=8.2, - size_z=42.0, - max_volume=2200 - ) - ) -def PRCXI_EP_Adapter(name: str) -> PRCXI9300TubeRack: - """ - 对应 JSON Code: 1 (ep适配器) - 这是一个 4x6 的 EP 管架,适配 1.5mL/2.0mL 离心管 - """ - ep_tube_prototype = Tube( - name="EP_Tube_1.5mL", - size_x=10.6, - size_y=10.6, - size_z=40.0, # 管子本身的高度,通常比架子孔略高或持平 - max_volume=1500, - model="EP_Tube_1.5mL" - ) - - # 计算 PRCXI9300TubeRack 中孔的起始位置 dx, dy - dy_calc = 85.8 - 10.5 - (3 * 18) - 10.6 - dx_calc = 3.54 - return PRCXI9300TubeRack( - name=name, - size_x=128.04, - size_y=85.8, - size_z=42.66, - model="PRCXI_EP_Adapter", - category="tube_rack", - material_info={ - "uuid": "e146697c395e4eabb3d6b74f0dd6aaf7", - "Code": "1", - "Name": "ep适配器", - "materialEnum": 0, - "SupplyType": 1 - }, - ordered_items=create_ordered_items_2d( - Tube, - num_items_x=6, - num_items_y=4, - dx=dx_calc, - dy=dy_calc, - dz=42.66 - 38.08, # 架高 - 孔深 - item_dx=21.0, - item_dy=18.0, - size_x=10.6, - size_y=10.6, - size_z=40.0, - max_volume=1500 - ) - ) -# ========================================================================= -# 无实物,需要测量 -# ========================================================================= -def PRCXI_Tip1250_Adapter(name: str) -> PRCXI9300PlateAdapter: - """ Code: ZX-58-1250 """ - return PRCXI9300PlateAdapter( - name=name, - size_x=128, - size_y=85, - size_z=20, - material_info={ - "uuid": "3b6f33ffbf734014bcc20e3c63e124d4", - "Code": "ZX-58-1250", - "Name": "Tip头适配器 1250uL", - "SupplyType": 2 - } - ) -def PRCXI_Tip300_Adapter(name: str) -> PRCXI9300PlateAdapter: - """ Code: ZX-58-300 """ - return PRCXI9300PlateAdapter( - name=name, - size_x=127, - size_y=85, - size_z=81, - material_info={ - "uuid": "7c822592b360451fb59690e49ac6b181", - "Code": "ZX-58-300", - "Name": "ZHONGXI 适配器 300uL", - "SupplyType": 2 - } - ) -def PRCXI_Tip10_Adapter(name: str) -> PRCXI9300PlateAdapter: - """ Code: ZX-58-10 """ - return PRCXI9300PlateAdapter( - name=name, - size_x=128, - size_y=85, - size_z=72.3, - material_info={ - "uuid": "8cc3dce884ac41c09f4570d0bcbfb01c", - "Code": "ZX-58-10", - "Name": "吸头10ul 适配器", - "SupplyType": 2 - } - ) -def PRCXI_1250uL_Tips(name: str) -> PRCXI9300TipRack: - """ Code: ZX-001-1250 """ - return PRCXI9300TipRack( - name=name, - size_x=118.09, - size_y=80.7, - size_z=107.67, - model="PRCXI_1250uL_Tips", - material_info={ - "uuid": "7960f49ddfe9448abadda89bd1556936", - "Code": "ZX-001-1250", - "Name": "1250μL Tip头", - "SupplyType": 1 - }, - ordered_items=create_ordered_items_2d( - TipSpot, - num_items_x=12, - num_items_y=8, - dx=9.545 - 7.95/2, - dy=8.85 - 7.95/2, - dz=2.0, - item_dx=9, - item_dy=9, - size_x=7.0, - size_y=7.0, - size_z=0, - make_tip=lambda: _make_tip_helper(volume=1250, length=107.67, depth=8) - ) - ) -def PRCXI_10uL_Tips(name: str) -> PRCXI9300TipRack: - """ Code: ZX-001-10 """ - return PRCXI9300TipRack( - name=name, - size_x=120.98, - size_y=82.12, - size_z=67, - model="PRCXI_10uL_Tips", - material_info={ - "uuid": "45f2ed3ad925484d96463d675a0ebf66", - "Code": "ZX-001-10", - "Name": "10μL Tip头", - "SupplyType": 1 - }, - ordered_items=create_ordered_items_2d( - TipSpot, - num_items_x=12, - num_items_y=8, - dx=10.99 - 5/2, - dy=9.56 - 5/2, - dz=2.0, - item_dx=9, - item_dy=9, - size_x=7.0, - size_y=7.0, - size_z=0, - make_tip=lambda: _make_tip_helper(volume=1250, length=52.0, depth=5) - ) - ) -def PRCXI_1000uL_Tips(name: str) -> PRCXI9300TipRack: - """ Code: ZX-001-1000 """ - return PRCXI9300TipRack( - name=name, - size_x=128.09, - size_y=85.8, - size_z=98, - model="PRCXI_1000uL_Tips", - material_info={ - "uuid": "80652665f6a54402b2408d50b40398df", - "Code": "ZX-001-1000", - "Name": "1000μL Tip头", - "SupplyType": 1 - }, - ordered_items=create_ordered_items_2d( - TipSpot, - num_items_x=12, - num_items_y=8, - dx=14.5 - 7.95/2, - dy=7.425, - dz=2.0, - item_dx=9, - item_dy=9, - size_x=7.0, - size_y=7.0, - size_z=0, - make_tip=lambda: _make_tip_helper(volume=1000, length=55.0, depth=8) - ) - ) -def PRCXI_200uL_Tips(name: str) -> PRCXI9300TipRack: - """ Code: ZX-001-200 """ - return PRCXI9300TipRack( - name=name, - size_x=120.98, - size_y=82.12, - size_z=66.9, - model="PRCXI_200uL_Tips", - material_info={ - "uuid": "7a73bb9e5c264515a8fcbe88aed0e6f7", - "Code": "ZX-001-200", - "Name": "200μL Tip头", - "SupplyType": 1}, - ordered_items=create_ordered_items_2d( - TipSpot, - num_items_x=12, - num_items_y=8, - dx=10.99 - 5.5/2, - dy=9.56 - 5.5/2, - dz=2.0, - item_dx=9, - item_dy=9, - size_x=7.0, - size_z=0, - size_y=7.0, - make_tip=lambda: _make_tip_helper(volume=200, length=52.0, depth=5) - ) - ) -def PRCXI_PCR_Adapter(name: str) -> PRCXI9300PlateAdapter: - """ - 对应 JSON Code: ZX-58-0001 (全裙边 PCR适配器) - """ - return PRCXI9300PlateAdapter( - name=name, - size_x=127.76, - size_y=85.48, - size_z=21.69, - model="PRCXI_PCR_Adapter", - material_info={ - "uuid": "4a043a07c65a4f9bb97745e1f129b165", - "Code": "ZX-58-0001", - "Name": "全裙边 PCR适配器", - "materialEnum": 3, - "SupplyType": 2 - } - ) -def PRCXI_Reservoir_Adapter(name: str) -> PRCXI9300PlateAdapter: - """ Code: ZX-ADP-001 """ - return PRCXI9300PlateAdapter( - name=name, - size_x=133, - size_y=91.8, - size_z=70, - material_info={ - "uuid": "6bdfdd7069df453896b0806df50f2f4d", - "Code": "ZX-ADP-001", - "Name": "储液槽 适配器", - "SupplyType": 2 - } - ) -def PRCXI_Deep300_Adapter(name: str) -> PRCXI9300PlateAdapter: - """ Code: ZX-002-300 """ - return PRCXI9300PlateAdapter( - name=name, - size_x=136.4, - size_y=93.8, - size_z=96, - material_info={ - "uuid": "9a439bed8f3344549643d6b3bc5a5eb4", - "Code": "ZX-002-300", - "Name": "300ul深孔板适配器", - "SupplyType": 2 - } - ) -def PRCXI_Deep10_Adapter(name: str) -> PRCXI9300PlateAdapter: - """ Code: ZX-002-10 """ - return PRCXI9300PlateAdapter( - name=name, - size_x=136.5, - size_y=93.8, - size_z=121.5, - material_info={ - "uuid": "4dc8d6ecfd0449549683b8ef815a861b", - "Code": "ZX-002-10", - "Name": "10ul专用深孔板适配器", - "SupplyType": 2 - } - ) -def PRCXI_Adapter(name: str) -> PRCXI9300PlateAdapter: - """ Code: Fhh478 """ - return PRCXI9300PlateAdapter( - name=name, - size_x=120, - size_y=90, - size_z=86, - material_info={ - "uuid": "adfabfffa8f24af5abfbba67b8d0f973", - "Code": "Fhh478", - "Name": "适配器", - "SupplyType": 2 - } - ) -def PRCXI_48_DeepWell(name: str) -> PRCXI9300Plate: - """ Code: 22 (48孔深孔板) """ - print("Warning: Code '22' (48孔深孔板) dimensions are null in JSON.") - return PRCXI9300Plate( - name=name, - size_x=127, - size_y=85, - size_z=44, - model="PRCXI_48_DeepWell", - material_info={ - "uuid": "026c5d5cf3d94e56b4e16b7fb53a995b", - "Code": "22", - "Name": "48孔深孔板", - "SupplyType": 1 - }, - ordered_items=create_ordered_items_2d( - Well, - num_items_x=6, - num_items_y=8, - dx=10, - dy=10, - dz=1, - item_dx=18.5, - item_dy=9, - size_x=8, - size_y=8, - size_z=40 - ) - ) -def PRCXI_30mm_Adapter(name: str) -> PRCXI9300PlateAdapter: - """ Code: ZX-58-30 """ - return PRCXI9300PlateAdapter( - name=name, - size_x=132, - size_y=93.5, - size_z=30, - material_info={ - "uuid": "a0757a90d8e44e81a68f306a608694f2", - "Code": "ZX-58-30", - "Name": "30mm适配器", - "SupplyType": 2 - } - ) \ No newline at end of file diff --git a/unilabos/devices/liquid_handling/revvity.py b/unilabos/devices/liquid_handling/revvity.py deleted file mode 100644 index d080ba0b..00000000 --- a/unilabos/devices/liquid_handling/revvity.py +++ /dev/null @@ -1,94 +0,0 @@ -import time -import sys -import io -# sys.path.insert(0, r'C:\kui\winprep_cli\winprep_c_Uni-lab\x64\Debug') - -try: - import winprep_c -except ImportError as e: - print("Error importing winprep_c:", e) - print("Please ensure that the winprep_c module is correctly installed and accessible.") -from queue import Queue - - -class Revvity: - _success: bool = False - _status: str = "Idle" - _status_queue: Queue = Queue() - - def __init__(self): - self._status = "Idle" - self._success = False - self._status_queue = Queue() - - - @property - def success(self) -> bool: - # print("success") - return self._success - @property - def status(self) -> str: - if not self._status_queue.empty(): - self._status = self._status_queue.get() - return self._status - def _run_script(self, file_path: str): - output = io.StringIO() - sys.stdout = output # 重定向标准输出 - - try: - # 执行 winprep_c.test_mtp_script 并打印结果 - winprep_c.test_mtp_script(file_path) - except Exception as e: - # 捕获执行过程中的异常 - print(e) - self._status_queue.put(f"Error: {str(e)}") - - finally: - sys.stdout = sys.__stdout__ # 恢复标准输出 - - # 获取捕获的输出并逐行更新状态 - for line in output.getvalue().splitlines(): - print(line) - self._status_queue.put(line) - self._status=line - - def run(self, file_path: str, params:str, resource: dict = {"AichemecoHiwo": {"id": "AichemecoHiwo"}}): - # 设置状态为 Running - self._status = "Running" - winprep_c.test_mtp_script(file_path) - - # 在一个新的线程中运行 MTP 脚本,避免阻塞主线程 - # thread = threading.Thread(target=self._run_script, args=(file_path,)) - # thread.start() - # self._run_script(file_path) -# - # # 在主线程中持续访问状态 - # while thread.is_alive() or self._success == False: - # current_status = self.status() # 获取当前的状态 - # print(f"Current Status: {current_status}") - # time.sleep(0.5) - - # output = io.StringIO() - # sys.stdout = output # 重定向标准输出 - - # try: - # # 执行 winprep_c.test_mtp_script 并打印结果 - # winprep_c.test_mtp_script(file_path) - # finally: - # sys.stdout = sys.__stdout__ # 恢复标准输出 - - # # 获取捕获的输出并逐行更新状态 - # for line in output.getvalue().splitlines(): - # self._status_queue.put(line) - # self._success = True - # 修改物料信息 - workstation = list(resource.values())[0] - input_plate_wells = list(workstation["children"]["test-GL96-2A02"]["children"].values()) - output_plate_wells = list(workstation["children"]["HPLC_Plate"]["children"].values()) - - for j in range(8): - output_plate_wells[j]["data"]["liquid"] += input_plate_wells[j]["data"]["liquid"] - output_plate_wells[j]["sample_id"] = input_plate_wells[j]["sample_id"] - - self._status = "Idle" - self._success = True \ No newline at end of file diff --git a/unilabos/devices/liquid_handling/rviz_backend.py b/unilabos/devices/liquid_handling/rviz_backend.py deleted file mode 100644 index 3bd2c2f8..00000000 --- a/unilabos/devices/liquid_handling/rviz_backend.py +++ /dev/null @@ -1,321 +0,0 @@ - -import json -import threading -from typing import List, Optional, Union - -from pylabrobot.liquid_handling.backends.backend import ( - LiquidHandlerBackend, -) -from pylabrobot.liquid_handling.standard import ( - Drop, - DropTipRack, - MultiHeadAspirationContainer, - MultiHeadAspirationPlate, - MultiHeadDispenseContainer, - MultiHeadDispensePlate, - Pickup, - PickupTipRack, - ResourceDrop, - ResourceMove, - ResourcePickup, - SingleChannelAspiration, - SingleChannelDispense, -) -from pylabrobot.resources import Resource, Tip - -import rclpy -from rclpy.node import Node -from sensor_msgs.msg import JointState -import time -from rclpy.action import ActionClient -from unilabos_msgs.action import SendCmd -import re - -from unilabos.devices.ros_dev.liquid_handler_joint_publisher_node import LiquidHandlerJointPublisher - - -class UniLiquidHandlerRvizBackend(LiquidHandlerBackend): - """Chatter box backend for device-free testing. Prints out all operations.""" - - _pip_length = 5 - _vol_length = 8 - _resource_length = 20 - _offset_length = 16 - _flow_rate_length = 10 - _blowout_length = 10 - _lld_z_length = 10 - _kwargs_length = 15 - _tip_type_length = 12 - _max_volume_length = 16 - _fitting_depth_length = 20 - _tip_length_length = 16 - _filter_length = 10 - - def __init__(self, num_channels: int = 8 , tip_length: float = 0 , total_height: float = 310, **kwargs): - """Initialize a chatter box backend.""" - super().__init__() - self._num_channels = num_channels - self.tip_length = tip_length - self.total_height = total_height - self.joint_config = kwargs.get("joint_config", None) - self.lh_device_id = kwargs.get("lh_device_id", "lh_joint_publisher") - if not rclpy.ok(): - rclpy.init() - self.joint_state_publisher = None - self.executor = None - self.executor_thread = None - - async def setup(self): - self.joint_state_publisher = LiquidHandlerJointPublisher( - joint_config=self.joint_config, - lh_device_id=self.lh_device_id, - simulate_rviz=True) - - # 启动ROS executor - self.executor = rclpy.executors.MultiThreadedExecutor() - self.executor.add_node(self.joint_state_publisher) - self.executor_thread = threading.Thread(target=self.executor.spin, daemon=True) - self.executor_thread.start() - - await super().setup() - - print("Setting up the liquid handler.") - - async def stop(self): - # 停止ROS executor - if self.executor and self.joint_state_publisher: - self.executor.remove_node(self.joint_state_publisher) - if self.executor_thread and self.executor_thread.is_alive(): - self.executor.shutdown() - print("Stopping the liquid handler.") - - def serialize(self) -> dict: - return {**super().serialize(), "num_channels": self.num_channels} - - @property - def num_channels(self) -> int: - return self._num_channels - - async def assigned_resource_callback(self, resource: Resource): - print(f"Resource {resource.name} was assigned to the liquid handler.") - - async def unassigned_resource_callback(self, name: str): - print(f"Resource {name} was unassigned from the liquid handler.") - - async def pick_up_tips(self, ops: List[Pickup], use_channels: List[int], **backend_kwargs): - print("Picking up tips:") - # print(ops.tip) - header = ( - f"{'pip#':<{UniLiquidHandlerRvizBackend._pip_length}} " - f"{'resource':<{UniLiquidHandlerRvizBackend._resource_length}} " - f"{'offset':<{UniLiquidHandlerRvizBackend._offset_length}} " - f"{'tip type':<{UniLiquidHandlerRvizBackend._tip_type_length}} " - f"{'max volume (µL)':<{UniLiquidHandlerRvizBackend._max_volume_length}} " - f"{'fitting depth (mm)':<{UniLiquidHandlerRvizBackend._fitting_depth_length}} " - f"{'tip length (mm)':<{UniLiquidHandlerRvizBackend._tip_length_length}} " - # f"{'pickup method':<{ChatterboxBackend._pickup_method_length}} " - f"{'filter':<{UniLiquidHandlerRvizBackend._filter_length}}" - ) - # print(header) - - for op, channel in zip(ops, use_channels): - offset = f"{round(op.offset.x, 1)},{round(op.offset.y, 1)},{round(op.offset.z, 1)}" - row = ( - f" p{channel}: " - f"{op.resource.name[-30:]:<{UniLiquidHandlerRvizBackend._resource_length}} " - f"{offset:<{UniLiquidHandlerRvizBackend._offset_length}} " - f"{op.tip.__class__.__name__:<{UniLiquidHandlerRvizBackend._tip_type_length}} " - f"{op.tip.maximal_volume:<{UniLiquidHandlerRvizBackend._max_volume_length}} " - f"{op.tip.fitting_depth:<{UniLiquidHandlerRvizBackend._fitting_depth_length}} " - f"{op.tip.total_tip_length:<{UniLiquidHandlerRvizBackend._tip_length_length}} " - # f"{str(op.tip.pickup_method)[-20:]:<{ChatterboxBackend._pickup_method_length}} " - f"{'Yes' if op.tip.has_filter else 'No':<{UniLiquidHandlerRvizBackend._filter_length}}" - ) - # print(row) - # print(op.resource.get_absolute_location()) - - self.tip_length = ops[0].tip.total_tip_length - coordinate = ops[0].resource.get_absolute_location(x="c",y="c") - offset_xyz = ops[0].offset - x = coordinate.x + offset_xyz.x - y = coordinate.y + offset_xyz.y - z = self.total_height - (coordinate.z + self.tip_length) + offset_xyz.z - # print("moving") - self.joint_state_publisher.move_joints(ops[0].resource.name, x, y, z, "pick",channels=use_channels) - # goback() - - - - - async def drop_tips(self, ops: List[Drop], use_channels: List[int], **backend_kwargs): - print("Dropping tips:") - header = ( - f"{'pip#':<{UniLiquidHandlerRvizBackend._pip_length}} " - f"{'resource':<{UniLiquidHandlerRvizBackend._resource_length}} " - f"{'offset':<{UniLiquidHandlerRvizBackend._offset_length}} " - f"{'tip type':<{UniLiquidHandlerRvizBackend._tip_type_length}} " - f"{'max volume (µL)':<{UniLiquidHandlerRvizBackend._max_volume_length}} " - f"{'fitting depth (mm)':<{UniLiquidHandlerRvizBackend._fitting_depth_length}} " - f"{'tip length (mm)':<{UniLiquidHandlerRvizBackend._tip_length_length}} " - # f"{'pickup method':<{ChatterboxBackend._pickup_method_length}} " - f"{'filter':<{UniLiquidHandlerRvizBackend._filter_length}}" - ) - # print(header) - - for op, channel in zip(ops, use_channels): - offset = f"{round(op.offset.x, 1)},{round(op.offset.y, 1)},{round(op.offset.z, 1)}" - row = ( - f" p{channel}: " - f"{op.resource.name[-30:]:<{UniLiquidHandlerRvizBackend._resource_length}} " - f"{offset:<{UniLiquidHandlerRvizBackend._offset_length}} " - f"{op.tip.__class__.__name__:<{UniLiquidHandlerRvizBackend._tip_type_length}} " - f"{op.tip.maximal_volume:<{UniLiquidHandlerRvizBackend._max_volume_length}} " - f"{op.tip.fitting_depth:<{UniLiquidHandlerRvizBackend._fitting_depth_length}} " - f"{op.tip.total_tip_length:<{UniLiquidHandlerRvizBackend._tip_length_length}} " - # f"{str(op.tip.pickup_method)[-20:]:<{ChatterboxBackend._pickup_method_length}} " - f"{'Yes' if op.tip.has_filter else 'No':<{UniLiquidHandlerRvizBackend._filter_length}}" - ) - # print(row) - - coordinate = ops[0].resource.get_absolute_location(x="c",y="c") - offset_xyz = ops[0].offset - x = coordinate.x + offset_xyz.x - y = coordinate.y + offset_xyz.y - z = self.total_height - (coordinate.z + self.tip_length) + offset_xyz.z - # print(x, y, z) - # print("moving") - self.joint_state_publisher.move_joints(ops[0].resource.name, x, y, z, "drop_trash",channels=use_channels) - # goback() - - async def aspirate( - self, - ops: List[SingleChannelAspiration], - use_channels: List[int], - **backend_kwargs, - ): - print("Aspirating:") - header = ( - f"{'pip#':<{UniLiquidHandlerRvizBackend._pip_length}} " - f"{'vol(ul)':<{UniLiquidHandlerRvizBackend._vol_length}} " - f"{'resource':<{UniLiquidHandlerRvizBackend._resource_length}} " - f"{'offset':<{UniLiquidHandlerRvizBackend._offset_length}} " - f"{'flow rate':<{UniLiquidHandlerRvizBackend._flow_rate_length}} " - f"{'blowout':<{UniLiquidHandlerRvizBackend._blowout_length}} " - f"{'lld_z':<{UniLiquidHandlerRvizBackend._lld_z_length}} " - # f"{'liquids':<20}" # TODO: add liquids - ) - for key in backend_kwargs: - header += f"{key:<{UniLiquidHandlerRvizBackend._kwargs_length}} "[-16:] - # print(header) - - for o, p in zip(ops, use_channels): - offset = f"{round(o.offset.x, 1)},{round(o.offset.y, 1)},{round(o.offset.z, 1)}" - row = ( - f" p{p}: " - f"{o.volume:<{UniLiquidHandlerRvizBackend._vol_length}} " - f"{o.resource.name[-20:]:<{UniLiquidHandlerRvizBackend._resource_length}} " - f"{offset:<{UniLiquidHandlerRvizBackend._offset_length}} " - f"{str(o.flow_rate):<{UniLiquidHandlerRvizBackend._flow_rate_length}} " - f"{str(o.blow_out_air_volume):<{UniLiquidHandlerRvizBackend._blowout_length}} " - f"{str(o.liquid_height):<{UniLiquidHandlerRvizBackend._lld_z_length}} " - # f"{o.liquids if o.liquids is not None else 'none'}" - ) - for key, value in backend_kwargs.items(): - if isinstance(value, list) and all(isinstance(v, bool) for v in value): - value = "".join("T" if v else "F" for v in value) - if isinstance(value, list): - value = "".join(map(str, value)) - row += f" {value:<15}" - # print(row) - coordinate = ops[0].resource.get_absolute_location(x="c",y="c") - offset_xyz = ops[0].offset - x = coordinate.x + offset_xyz.x - y = coordinate.y + offset_xyz.y - z = self.total_height - (coordinate.z + self.tip_length) + offset_xyz.z - # print(x, y, z) - # print("moving") - self.joint_state_publisher.move_joints(ops[0].resource.name, x, y, z, "",channels=use_channels) - - - async def dispense( - self, - ops: List[SingleChannelDispense], - use_channels: List[int], - **backend_kwargs, - ): - # print("Dispensing:") - header = ( - f"{'pip#':<{UniLiquidHandlerRvizBackend._pip_length}} " - f"{'vol(ul)':<{UniLiquidHandlerRvizBackend._vol_length}} " - f"{'resource':<{UniLiquidHandlerRvizBackend._resource_length}} " - f"{'offset':<{UniLiquidHandlerRvizBackend._offset_length}} " - f"{'flow rate':<{UniLiquidHandlerRvizBackend._flow_rate_length}} " - f"{'blowout':<{UniLiquidHandlerRvizBackend._blowout_length}} " - f"{'lld_z':<{UniLiquidHandlerRvizBackend._lld_z_length}} " - # f"{'liquids':<20}" # TODO: add liquids - ) - for key in backend_kwargs: - header += f"{key:<{UniLiquidHandlerRvizBackend._kwargs_length}} "[-16:] - # print(header) - - for o, p in zip(ops, use_channels): - offset = f"{round(o.offset.x, 1)},{round(o.offset.y, 1)},{round(o.offset.z, 1)}" - row = ( - f" p{p}: " - f"{o.volume:<{UniLiquidHandlerRvizBackend._vol_length}} " - f"{o.resource.name[-20:]:<{UniLiquidHandlerRvizBackend._resource_length}} " - f"{offset:<{UniLiquidHandlerRvizBackend._offset_length}} " - f"{str(o.flow_rate):<{UniLiquidHandlerRvizBackend._flow_rate_length}} " - f"{str(o.blow_out_air_volume):<{UniLiquidHandlerRvizBackend._blowout_length}} " - f"{str(o.liquid_height):<{UniLiquidHandlerRvizBackend._lld_z_length}} " - # f"{o.liquids if o.liquids is not None else 'none'}" - ) - for key, value in backend_kwargs.items(): - if isinstance(value, list) and all(isinstance(v, bool) for v in value): - value = "".join("T" if v else "F" for v in value) - if isinstance(value, list): - value = "".join(map(str, value)) - row += f" {value:<{UniLiquidHandlerRvizBackend._kwargs_length}}" - # print(row) - coordinate = ops[0].resource.get_absolute_location(x="c",y="c") - offset_xyz = ops[0].offset - x = coordinate.x + offset_xyz.x - y = coordinate.y + offset_xyz.y - z = self.total_height - (coordinate.z + self.tip_length) + offset_xyz.z - - self.joint_state_publisher.move_joints(ops[0].resource.name, x, y, z, "",channels=use_channels) - - async def pick_up_tips96(self, pickup: PickupTipRack, **backend_kwargs): - print(f"Picking up tips from {pickup.resource.name}.") - - async def drop_tips96(self, drop: DropTipRack, **backend_kwargs): - print(f"Dropping tips to {drop.resource.name}.") - - async def aspirate96( - self, aspiration: Union[MultiHeadAspirationPlate, MultiHeadAspirationContainer] - ): - if isinstance(aspiration, MultiHeadAspirationPlate): - resource = aspiration.wells[0].parent - else: - resource = aspiration.container - print(f"Aspirating {aspiration.volume} from {resource}.") - - async def dispense96(self, dispense: Union[MultiHeadDispensePlate, MultiHeadDispenseContainer]): - if isinstance(dispense, MultiHeadDispensePlate): - resource = dispense.wells[0].parent - else: - resource = dispense.container - print(f"Dispensing {dispense.volume} to {resource}.") - - async def pick_up_resource(self, pickup: ResourcePickup): - print(f"Picking up resource: {pickup}") - - async def move_picked_up_resource(self, move: ResourceMove): - print(f"Moving picked up resource: {move}") - - async def drop_resource(self, drop: ResourceDrop): - print(f"Dropping resource: {drop}") - - def can_pick_up_tip(self, channel_idx: int, tip: Tip) -> bool: - return True - diff --git a/unilabos/devices/liquid_handling/test liquid handler/convert_biomek.py b/unilabos/devices/liquid_handling/test liquid handler/convert_biomek.py deleted file mode 100644 index 712fdd9f..00000000 --- a/unilabos/devices/liquid_handling/test liquid handler/convert_biomek.py +++ /dev/null @@ -1,154 +0,0 @@ - -import json -from typing import Sequence, Optional, List, Union, Literal -json_path = "/Users/guangxinzhang/Documents/Deep Potential/opentrons/convert/protocols/enriched_steps/sci-lucif-assay4.json" - -with open(json_path, "r") as f: - data = json.load(f) - -transfer_example = data[0] -#print(transfer_example) - - -temp_protocol = [] -TipLocation = "BC1025F" # Assuming this is a fixed tip location for the transfer -sources = transfer_example["sources"] # Assuming sources is a list of Container objects -targets = transfer_example["targets"] # Assuming targets is a list of Container objects -tip_racks = transfer_example["tip_racks"] # Assuming tip_racks is a list of TipRack objects -asp_vols = transfer_example["asp_vols"] # Assuming asp_vols is a list of volumes -solvent = "PBS" - -def transfer_liquid( - #self, - sources,#: Sequence[Container], - targets,#: Sequence[Container], - tip_racks,#: Sequence[TipRack], - TipLocation, - # *, - # use_channels: Optional[List[int]] = None, - asp_vols: Union[List[float], float], - solvent: Optional[str] = None, - # dis_vols: Union[List[float], float], - # asp_flow_rates: Optional[List[Optional[float]]] = None, - # dis_flow_rates: Optional[List[Optional[float]]] = None, - # offsets,#: Optional[List[]] = None, - # touch_tip: bool = False, - # liquid_height: Optional[List[Optional[float]]] = None, - # blow_out_air_volume: Optional[List[Optional[float]]] = None, - # spread: Literal["wide", "tight", "custom"] = "wide", - # is_96_well: bool = False, - # mix_stage: Optional[Literal["none", "before", "after", "both"]] = "none", - # mix_times,#: Optional[list() = None, - # mix_vol: Optional[int] = None, - # mix_rate: Optional[int] = None, - # mix_liquid_height: Optional[float] = None, - # delays: Optional[List[int]] = None, - # none_keys: List[str] = [] - ): - # -------- Build Biomek transfer step -------- - # 1) Construct default parameter scaffold (values mirror Biomek “Transfer” block). - - transfer_params = { - "Span8": False, - "Pod": "Pod1", - "items": {}, # to be filled below - "Wash": False, - "Dynamic?": True, - "AutoSelectActiveWashTechnique": False, - "ActiveWashTechnique": "", - "ChangeTipsBetweenDests": False, - "ChangeTipsBetweenSources": False, - "DefaultCaption": "", # filled after we know first pair/vol - "UseExpression": False, - "LeaveTipsOn": False, - "MandrelExpression": "", - "Repeats": "1", - "RepeatsByVolume": False, - "Replicates": "1", - "ShowTipHandlingDetails": False, - "ShowTransferDetails": True, - "Solvent": "Water", - "Span8Wash": False, - "Span8WashVolume": "2", - "Span8WasteVolume": "1", - "SplitVolume": False, - "SplitVolumeCleaning": False, - "Stop": "Destinations", - "TipLocation": "BC1025F", - "UseCurrentTips": False, - "UseDisposableTips": True, - "UseFixedTips": False, - "UseJIT": True, - "UseMandrelSelection": True, - "UseProbes": [True, True, True, True, True, True, True, True], - "WashCycles": "1", - "WashVolume": "110%", - "Wizard": False - } - - items: dict = {} - for idx, (src, dst) in enumerate(zip(sources, targets)): - items[str(idx)] = { - "Source": str(src), - "Destination": str(dst), - "Volume": asp_vols[idx] - } - transfer_params["items"] = items - transfer_params["Solvent"] = solvent if solvent else "Water" - transfer_params["TipLocation"] = TipLocation - - if len(tip_racks) == 1: - transfer_params['UseCurrentTips'] = True - elif len(tip_racks) > 1: - transfer_params["ChangeTipsBetweenDests"] = True - - return transfer_params - -action = transfer_liquid(sources=sources,targets=targets,tip_racks=tip_racks, asp_vols=asp_vols,solvent = solvent, TipLocation=TipLocation) -print(json.dumps(action,indent=2)) -# print(action) - - - - -""" - "transfer": { - - "items": {}, - "Wash": false, - "Dynamic?": true, - "AutoSelectActiveWashTechnique": false, - "ActiveWashTechnique": "", - "ChangeTipsBetweenDests": true, - "ChangeTipsBetweenSources": false, - "DefaultCaption": "Transfer 100 µL from P13 to P3", - "UseExpression": false, - "LeaveTipsOn": false, - "MandrelExpression": "", - "Repeats": "1", - "RepeatsByVolume": false, - "Replicates": "1", - "ShowTipHandlingDetails": true, - "ShowTransferDetails": true, - - "Span8Wash": false, - "Span8WashVolume": "2", - "Span8WasteVolume": "1", - "SplitVolume": false, - "SplitVolumeCleaning": false, - "Stop": "Destinations", - "TipLocation": "BC1025F", - "UseCurrentTips": false, - "UseDisposableTips": false, - "UseFixedTips": false, - "UseJIT": true, - "UseMandrelSelection": true, - "UseProbes": [true, true, true, true, true, true, true, true], - "WashCycles": "3", - "WashVolume": "110%", - "Wizard": false -""" - - - - diff --git a/unilabos/devices/liquid_handling/test liquid handler/sci-lucif-assay4.json b/unilabos/devices/liquid_handling/test liquid handler/sci-lucif-assay4.json deleted file mode 100644 index 012a1606..00000000 --- a/unilabos/devices/liquid_handling/test liquid handler/sci-lucif-assay4.json +++ /dev/null @@ -1,4033 +0,0 @@ -[ - { - "template": "transfer", - "sources": [ - { - "well": "A1", - "labware": "working plate", - "slot": 6 - }, - { - "well": "A2", - "labware": "working plate", - "slot": 6 - }, - { - "well": "A3", - "labware": "working plate", - "slot": 6 - }, - { - "well": "A4", - "labware": "working plate", - "slot": 6 - }, - { - "well": "A5", - "labware": "working plate", - "slot": 6 - }, - { - "well": "A6", - "labware": "working plate", - "slot": 6 - }, - { - "well": "A7", - "labware": "working plate", - "slot": 6 - }, - { - "well": "A8", - "labware": "working plate", - "slot": 6 - }, - { - "well": "A9", - "labware": "working plate", - "slot": 6 - }, - { - "well": "A10", - "labware": "working plate", - "slot": 6 - }, - { - "well": "A11", - "labware": "working plate", - "slot": 6 - }, - { - "well": "A12", - "labware": "working plate", - "slot": 6 - } - ], - "targets": [ - { - "well": "A1", - "labware": "waste", - "slot": 9 - }, - { - "well": "A1", - "labware": "waste", - "slot": 9 - }, - { - "well": "A1", - "labware": "waste", - "slot": 9 - }, - { - "well": "A1", - "labware": "waste", - "slot": 9 - }, - { - "well": "A1", - "labware": "waste", - "slot": 9 - }, - { - "well": "A1", - "labware": "waste", - "slot": 9 - }, - { - "well": "A1", - "labware": "waste", - "slot": 9 - }, - { - "well": "A1", - "labware": "waste", - "slot": 9 - }, - { - "well": "A1", - "labware": "waste", - "slot": 9 - }, - { - "well": "A1", - "labware": "waste", - "slot": 9 - }, - { - "well": "A1", - "labware": "waste", - "slot": 9 - }, - { - "well": "A1", - "labware": "waste", - "slot": 9 - } - ], - "tip_racks": [ - { - "well": "A1", - "type": "Opentrons OT-2 96 Tip Rack 300 \u00b5L", - "slot": 8 - }, - { - "well": "A2", - "type": "Opentrons OT-2 96 Tip Rack 300 \u00b5L", - "slot": 8 - }, - { - "well": "A3", - "type": "Opentrons OT-2 96 Tip Rack 300 \u00b5L", - "slot": 8 - }, - { - "well": "A4", - "type": "Opentrons OT-2 96 Tip Rack 300 \u00b5L", - "slot": 8 - }, - { - "well": "A5", - "type": "Opentrons OT-2 96 Tip Rack 300 \u00b5L", - "slot": 8 - }, - { - "well": "A6", - "type": "Opentrons OT-2 96 Tip Rack 300 \u00b5L", - "slot": 8 - }, - { - "well": "A7", - "type": "Opentrons OT-2 96 Tip Rack 300 \u00b5L", - "slot": 8 - }, - { - "well": "A8", - "type": "Opentrons OT-2 96 Tip Rack 300 \u00b5L", - "slot": 8 - }, - { - "well": "A9", - "type": "Opentrons OT-2 96 Tip Rack 300 \u00b5L", - "slot": 8 - }, - { - "well": "A10", - "type": "Opentrons OT-2 96 Tip Rack 300 \u00b5L", - "slot": 8 - }, - { - "well": "A11", - "type": "Opentrons OT-2 96 Tip Rack 300 \u00b5L", - "slot": 8 - }, - { - "well": "A12", - "type": "Opentrons OT-2 96 Tip Rack 300 \u00b5L", - "slot": 8 - } - ], - "use_channels": null, - "asp_vols": [ - 120.0, - 120.0, - 120.0, - 120.0, - 120.0, - 120.0, - 120.0, - 120.0, - 120.0, - 120.0, - 120.0, - 120.0 - ], - "asp_flow_rates": [ - 18.8, - 18.8, - 18.8, - 18.8, - 18.8, - 18.8, - 18.8, - 18.8, - 18.8, - 18.8, - 18.8, - 18.8 - ], - "disp_vols": [ - 120.0, - 120.0, - 120.0, - 120.0, - 120.0, - 120.0, - 120.0, - 120.0, - 120.0, - 120.0, - 120.0, - 120.0 - ], - "dis_flow_rates": [ - 282.0, - 282.0, - 282.0, - 282.0, - 282.0, - 282.0, - 282.0, - 282.0, - 282.0, - 282.0, - 282.0, - 282.0 - ], - "offsets": null, - "touch_tip": false, - "liquid_height": null, - "blow_out_air_volume": [ - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0 - ], - "is_96_well": false, - "mix_stage": "none", - "mix_times": 0, - "mix_vol": null, - "mix_rate": null, - "mix_liquid_height": null, - "delays": [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - "top": [ - null, - -5, - null, - -5, - null, - -5, - null, - -5, - null, - -5, - null, - -5, - null, - -5, - null, - -5, - null, - -5, - null, - -5, - null, - -5, - null, - -5 - ], - "bottom": [ - 0.2, - null, - 0.2, - null, - 0.2, - null, - 0.2, - null, - 0.2, - null, - 0.2, - null, - 0.2, - null, - 0.2, - null, - 0.2, - null, - 0.2, - null, - 0.2, - null, - 0.2, - null - ], - "move": [ - [ - -2.5, - 0.0, - 0.0 - ], - null, - [ - -2.5, - 0.0, - 0.0 - ], - null, - [ - -2.5, - 0.0, - 0.0 - ], - null, - [ - -2.5, - 0.0, - 0.0 - ], - null, - [ - -2.5, - 0.0, - 0.0 - ], - null, - [ - -2.5, - 0.0, - 0.0 - ], - null, - [ - -2.5, - 0.0, - 0.0 - ], - null, - [ - -2.5, - 0.0, - 0.0 - ], - null, - [ - -2.5, - 0.0, - 0.0 - ], - null, - [ - -2.5, - 0.0, - 0.0 - ], - null, - [ - -2.5, - 0.0, - 0.0 - ], - null, - [ - -2.5, - 0.0, - 0.0 - ], - null - ], - "center": [ - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false - ], - "move_to": [ - { - "top": [ - -0.2 - ], - "bottom": [ - null - ], - "move": [ - null - ], - "center": [ - false - ] - }, - { - "top": [], - "bottom": [], - "move": [], - "center": [] - }, - { - "top": [ - -0.2 - ], - "bottom": [ - null - ], - "move": [ - null - ], - "center": [ - false - ] - }, - { - "top": [], - "bottom": [], - "move": [], - "center": [] - }, - { - "top": [ - -0.2 - ], - "bottom": [ - null - ], - "move": [ - null - ], - "center": [ - false - ] - }, - { - "top": [], - "bottom": [], - "move": [], - "center": [] - }, - { - "top": [ - -0.2 - ], - "bottom": [ - null - ], - "move": [ - null - ], - "center": [ - false - ] - }, - { - "top": [], - "bottom": [], - "move": [], - "center": [] - }, - { - "top": [ - -0.2 - ], - "bottom": [ - null - ], - "move": [ - null - ], - "center": [ - false - ] - }, - { - "top": [], - "bottom": [], - "move": [], - "center": [] - }, - { - "top": [ - -0.2 - ], - "bottom": [ - null - ], - "move": [ - null - ], - "center": [ - false - ] - }, - { - "top": [], - "bottom": [], - "move": [], - "center": [] - }, - { - "top": [ - -0.2 - ], - "bottom": [ - null - ], - "move": [ - null - ], - "center": [ - false - ] - }, - { - "top": [], - "bottom": [], - "move": [], - "center": [] - }, - { - "top": [ - -0.2 - ], - "bottom": [ - null - ], - "move": [ - null - ], - "center": [ - false - ] - }, - { - "top": [], - "bottom": [], - "move": [], - "center": [] - }, - { - "top": [ - -0.2 - ], - "bottom": [ - null - ], - "move": [ - null - ], - "center": [ - false - ] - }, - { - "top": [], - "bottom": [], - "move": [], - "center": [] - }, - { - "top": [ - -0.2 - ], - "bottom": [ - null - ], - "move": [ - null - ], - "center": [ - false - ] - }, - { - "top": [], - "bottom": [], - "move": [], - "center": [] - }, - { - "top": [ - -0.2 - ], - "bottom": [ - null - ], - "move": [ - null - ], - "center": [ - false - ] - }, - { - "top": [], - "bottom": [], - "move": [], - "center": [] - }, - { - "top": [ - -0.2 - ], - "bottom": [ - null - ], - "move": [ - null - ], - "center": [ - false - ] - }, - { - "top": [], - "bottom": [], - "move": [], - "center": [] - } - ], - "mix_detail": [ - { - "top": [], - "bottom": [], - "move": [], - "center": [] - }, - { - "top": [], - "bottom": [], - "move": [], - "center": [] - }, - { - "top": [], - "bottom": [], - "move": [], - "center": [] - }, - { - "top": [], - "bottom": [], - "move": [], - "center": [] - }, - { - "top": [], - "bottom": [], - "move": [], - "center": [] - }, - { - "top": [], - "bottom": [], - "move": [], - "center": [] - }, - { - "top": [], - "bottom": [], - "move": [], - "center": [] - }, - { - "top": [], - "bottom": [], - "move": [], - "center": [] - }, - { - "top": [], - "bottom": [], - "move": [], - "center": [] - }, - { - "top": [], - "bottom": [], - "move": [], - "center": [] - }, - { - "top": [], - "bottom": [], - "move": [], - "center": [] - }, - { - "top": [], - "bottom": [], - "move": [], - "center": [] - }, - { - "top": [], - "bottom": [], - "move": [], - "center": [] - }, - { - "top": [], - "bottom": [], - "move": [], - "center": [] - }, - { - "top": [], - "bottom": [], - "move": [], - "center": [] - }, - { - "top": [], - "bottom": [], - "move": [], - "center": [] - }, - { - "top": [], - "bottom": [], - "move": [], - "center": [] - }, - { - "top": [], - "bottom": [], - "move": [], - "center": [] - }, - { - "top": [], - "bottom": [], - "move": [], - "center": [] - }, - { - "top": [], - "bottom": [], - "move": [], - "center": [] - }, - { - "top": [], - "bottom": [], - "move": [], - "center": [] - }, - { - "top": [], - "bottom": [], - "move": [], - "center": [] - }, - { - "top": [], - "bottom": [], - "move": [], - "center": [] - }, - { - "top": [], - "bottom": [], - "move": [], - "center": [] - } - ] - }, - { - "template": "transfer", - "sources": [ - { - "well": "A1", - "labware": "reagent stock", - "slot": 3 - }, - { - "well": "A1", - "labware": "reagent stock", - "slot": 3 - }, - { - "well": "A1", - "labware": "reagent stock", - "slot": 3 - }, - { - "well": "A1", - "labware": "reagent stock", - "slot": 3 - }, - { - "well": "A1", - "labware": "reagent stock", - "slot": 3 - }, - { - "well": "A1", - "labware": "reagent stock", - "slot": 3 - }, - { - "well": "A1", - "labware": "reagent stock", - "slot": 3 - }, - { - "well": "A1", - "labware": "reagent stock", - "slot": 3 - }, - { - "well": "A1", - "labware": "reagent stock", - "slot": 3 - }, - { - "well": "A1", - "labware": "reagent stock", - "slot": 3 - }, - { - "well": "A1", - "labware": "reagent stock", - "slot": 3 - }, - { - "well": "A1", - "labware": "reagent stock", - "slot": 3 - } - ], - "targets": [ - { - "well": "A1", - "labware": "working plate", - "slot": 6 - }, - { - "well": "A2", - "labware": "working plate", - "slot": 6 - }, - { - "well": "A3", - "labware": "working plate", - "slot": 6 - }, - { - "well": "A4", - "labware": "working plate", - "slot": 6 - }, - { - "well": "A5", - "labware": "working plate", - "slot": 6 - }, - { - "well": "A6", - "labware": "working plate", - "slot": 6 - }, - { - "well": "A7", - "labware": "working plate", - "slot": 6 - }, - { - "well": "A8", - "labware": "working plate", - "slot": 6 - }, - { - "well": "A9", - "labware": "working plate", - "slot": 6 - }, - { - "well": "A10", - "labware": "working plate", - "slot": 6 - }, - { - "well": "A11", - "labware": "working plate", - "slot": 6 - }, - { - "well": "A12", - "labware": "working plate", - "slot": 6 - } - ], - "tip_racks": [ - { - "well": "A1", - "type": "Opentrons OT-2 96 Tip Rack 300 \u00b5L", - "slot": 11 - } - ], - "use_channels": null, - "asp_vols": [ - 70.0, - 70.0, - 70.0, - 70.0, - 70.0, - 70.0, - 70.0, - 70.0, - 70.0, - 70.0, - 70.0, - 70.0 - ], - "asp_flow_rates": [ - 282.0, - 282.0, - 282.0, - 282.0, - 282.0, - 282.0, - 282.0, - 282.0, - 282.0, - 282.0, - 282.0, - 282.0 - ], - "disp_vols": [ - 70.0, - 70.0, - 70.0, - 70.0, - 70.0, - 70.0, - 70.0, - 70.0, - 70.0, - 70.0, - 70.0, - 70.0 - ], - "dis_flow_rates": [ - 28.2, - 28.2, - 28.2, - 28.2, - 28.2, - 28.2, - 28.2, - 28.2, - 28.2, - 28.2, - 28.2, - 28.2 - ], - "offsets": null, - "touch_tip": true, - "liquid_height": null, - "blow_out_air_volume": [ - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0 - ], - "is_96_well": false, - "mix_stage": "none", - "mix_times": 0, - "mix_vol": null, - "mix_rate": null, - "mix_liquid_height": null, - "delays": [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - "top": [ - null, - -2, - null, - -2, - null, - -2, - null, - -2, - null, - -2, - null, - -2, - null, - -2, - null, - -2, - null, - -2, - null, - -2, - null, - -2, - null, - -2 - ], - "bottom": [ - 0.5, - null, - 0.5, - null, - 0.5, - null, - 0.5, - null, - 0.5, - null, - 0.5, - null, - 0.5, - null, - 0.5, - null, - 0.5, - null, - 0.5, - null, - 0.5, - null, - 0.5, - null - ], - "move": [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - "center": [ - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false - ], - "move_to": [ - { - "top": [], - "bottom": [], - "move": [], - "center": [] - }, - { - "top": [], - "bottom": [], - "move": [], - "center": [] - }, - { - "top": [], - "bottom": [], - "move": [], - "center": [] - }, - { - "top": [], - "bottom": [], - "move": [], - "center": [] - }, - { - "top": [], - "bottom": [], - "move": [], - "center": [] - }, - { - "top": [], - "bottom": [], - "move": [], - "center": [] - }, - { - "top": [], - "bottom": [], - "move": [], - "center": [] - }, - { - "top": [], - "bottom": [], - "move": [], - "center": [] - }, - { - "top": [], - "bottom": [], - "move": [], - "center": [] - }, - { - "top": [], - "bottom": [], - "move": [], - "center": [] - }, - { - "top": [], - "bottom": [], - "move": [], - "center": [] - }, - { - "top": [], - "bottom": [], - "move": [], - "center": [] - }, - { - "top": [], - "bottom": [], - "move": [], - "center": [] - }, - { - "top": [], - "bottom": [], - "move": [], - "center": [] - }, - { - "top": [], - "bottom": [], - "move": [], - "center": [] - }, - { - "top": [], - "bottom": [], - "move": [], - "center": [] - }, - { - "top": [], - "bottom": [], - "move": [], - "center": [] - }, - { - "top": [], - "bottom": [], - "move": [], - "center": [] - }, - { - "top": [], - "bottom": [], - "move": [], - "center": [] - }, - { - "top": [], - "bottom": [], - "move": [], - "center": [] - }, - { - "top": [], - "bottom": [], - "move": [], - "center": [] - }, - { - "top": [], - "bottom": [], - "move": [], - "center": [] - }, - { - "top": [], - "bottom": [], - "move": [], - "center": [] - }, - { - "top": [], - "bottom": [], - "move": [], - "center": [] - } - ], - "mix_detail": [ - { - "top": [], - "bottom": [], - "move": [], - "center": [] - }, - { - "top": [], - "bottom": [], - "move": [], - "center": [] - }, - { - "top": [], - "bottom": [], - "move": [], - "center": [] - }, - { - "top": [], - "bottom": [], - "move": [], - "center": [] - }, - { - "top": [], - "bottom": [], - "move": [], - "center": [] - }, - { - "top": [], - "bottom": [], - "move": [], - "center": [] - }, - { - "top": [], - "bottom": [], - "move": [], - "center": [] - }, - { - "top": [], - "bottom": [], - "move": [], - "center": [] - }, - { - "top": [], - "bottom": [], - "move": [], - "center": [] - }, - { - "top": [], - "bottom": [], - "move": [], - "center": [] - }, - { - "top": [], - "bottom": [], - "move": [], - "center": [] - }, - { - "top": [], - "bottom": [], - "move": [], - "center": [] - }, - { - "top": [], - "bottom": [], - "move": [], - "center": [] - }, - { - "top": [], - "bottom": [], - "move": [], - "center": [] - }, - { - "top": [], - "bottom": [], - "move": [], - "center": [] - }, - { - "top": [], - "bottom": [], - "move": [], - "center": [] - }, - { - "top": [], - "bottom": [], - "move": [], - "center": [] - }, - { - "top": [], - "bottom": [], - "move": [], - "center": [] - }, - { - "top": [], - "bottom": [], - "move": [], - "center": [] - }, - { - "top": [], - "bottom": [], - "move": [], - "center": [] - }, - { - "top": [], - "bottom": [], - "move": [], - "center": [] - }, - { - "top": [], - "bottom": [], - "move": [], - "center": [] - }, - { - "top": [], - "bottom": [], - "move": [], - "center": [] - }, - { - "top": [], - "bottom": [], - "move": [], - "center": [] - } - ] - }, - { - "template": "transfer", - "sources": [ - { - "well": "A1", - "labware": "working plate", - "slot": 6 - }, - { - "well": "A2", - "labware": "working plate", - "slot": 6 - }, - { - "well": "A3", - "labware": "working plate", - "slot": 6 - }, - { - "well": "A4", - "labware": "working plate", - "slot": 6 - }, - { - "well": "A5", - "labware": "working plate", - "slot": 6 - }, - { - "well": "A6", - "labware": "working plate", - "slot": 6 - }, - { - "well": "A7", - "labware": "working plate", - "slot": 6 - }, - { - "well": "A8", - "labware": "working plate", - "slot": 6 - }, - { - "well": "A9", - "labware": "working plate", - "slot": 6 - }, - { - "well": "A10", - "labware": "working plate", - "slot": 6 - }, - { - "well": "A11", - "labware": "working plate", - "slot": 6 - }, - { - "well": "A12", - "labware": "working plate", - "slot": 6 - } - ], - "targets": [ - { - "well": "A1", - "labware": "waste", - "slot": 9 - }, - { - "well": "A1", - "labware": "waste", - "slot": 9 - }, - { - "well": "A1", - "labware": "waste", - "slot": 9 - }, - { - "well": "A1", - "labware": "waste", - "slot": 9 - }, - { - "well": "A1", - "labware": "waste", - "slot": 9 - }, - { - "well": "A1", - "labware": "waste", - "slot": 9 - }, - { - "well": "A1", - "labware": "waste", - "slot": 9 - }, - { - "well": "A1", - "labware": "waste", - "slot": 9 - }, - { - "well": "A1", - "labware": "waste", - "slot": 9 - }, - { - "well": "A1", - "labware": "waste", - "slot": 9 - }, - { - "well": "A1", - "labware": "waste", - "slot": 9 - }, - { - "well": "A1", - "labware": "waste", - "slot": 9 - } - ], - "tip_racks": [ - { - "well": "A2", - "type": "Opentrons OT-2 96 Tip Rack 300 \u00b5L", - "slot": 11 - }, - { - "well": "A3", - "type": "Opentrons OT-2 96 Tip Rack 300 \u00b5L", - "slot": 11 - }, - { - "well": "A4", - "type": "Opentrons OT-2 96 Tip Rack 300 \u00b5L", - "slot": 11 - }, - { - "well": "A5", - "type": "Opentrons OT-2 96 Tip Rack 300 \u00b5L", - "slot": 11 - }, - { - "well": "A6", - "type": "Opentrons OT-2 96 Tip Rack 300 \u00b5L", - "slot": 11 - }, - { - "well": "A7", - "type": "Opentrons OT-2 96 Tip Rack 300 \u00b5L", - "slot": 11 - }, - { - "well": "A8", - "type": "Opentrons OT-2 96 Tip Rack 300 \u00b5L", - "slot": 11 - }, - { - "well": "A9", - "type": "Opentrons OT-2 96 Tip Rack 300 \u00b5L", - "slot": 11 - }, - { - "well": "A10", - "type": "Opentrons OT-2 96 Tip Rack 300 \u00b5L", - "slot": 11 - }, - { - "well": "A11", - "type": "Opentrons OT-2 96 Tip Rack 300 \u00b5L", - "slot": 11 - }, - { - "well": "A12", - "type": "Opentrons OT-2 96 Tip Rack 300 \u00b5L", - "slot": 11 - }, - { - "well": "A1", - "type": "Opentrons OT-2 96 Tip Rack 300 \u00b5L", - "slot": 1 - } - ], - "use_channels": null, - "asp_vols": [ - 75.0, - 75.0, - 75.0, - 75.0, - 75.0, - 75.0, - 75.0, - 75.0, - 75.0, - 75.0, - 75.0, - 75.0 - ], - "asp_flow_rates": [ - 18.8, - 18.8, - 18.8, - 18.8, - 18.8, - 18.8, - 18.8, - 18.8, - 18.8, - 18.8, - 18.8, - 18.8 - ], - "disp_vols": [ - 75.0, - 75.0, - 75.0, - 75.0, - 75.0, - 75.0, - 75.0, - 75.0, - 75.0, - 75.0, - 75.0, - 75.0 - ], - "dis_flow_rates": [ - 282.0, - 282.0, - 282.0, - 282.0, - 282.0, - 282.0, - 282.0, - 282.0, - 282.0, - 282.0, - 282.0, - 282.0 - ], - "offsets": null, - "touch_tip": false, - "liquid_height": null, - "blow_out_air_volume": [ - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0 - ], - "is_96_well": false, - "mix_stage": "none", - "mix_times": 0, - "mix_vol": null, - "mix_rate": null, - "mix_liquid_height": null, - "delays": [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - "top": [ - null, - -5, - null, - -5, - null, - -5, - null, - -5, - null, - -5, - null, - -5, - null, - -5, - null, - -5, - null, - -5, - null, - -5, - null, - -5, - null, - -5 - ], - "bottom": [ - 0.2, - null, - 0.2, - null, - 0.2, - null, - 0.2, - null, - 0.2, - null, - 0.2, - null, - 0.2, - null, - 0.2, - null, - 0.2, - null, - 0.2, - null, - 0.2, - null, - 0.2, - null - ], - "move": [ - [ - -2.5, - 0.0, - 0.0 - ], - null, - [ - -2.5, - 0.0, - 0.0 - ], - null, - [ - -2.5, - 0.0, - 0.0 - ], - null, - [ - -2.5, - 0.0, - 0.0 - ], - null, - [ - -2.5, - 0.0, - 0.0 - ], - null, - [ - -2.5, - 0.0, - 0.0 - ], - null, - [ - -2.5, - 0.0, - 0.0 - ], - null, - [ - -2.5, - 0.0, - 0.0 - ], - null, - [ - -2.5, - 0.0, - 0.0 - ], - null, - [ - -2.5, - 0.0, - 0.0 - ], - null, - [ - -2.5, - 0.0, - 0.0 - ], - null, - [ - -2.5, - 0.0, - 0.0 - ], - null - ], - "center": [ - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false - ], - "move_to": [ - { - "top": [ - -0.2 - ], - "bottom": [ - null - ], - "move": [ - null - ], - "center": [ - false - ] - }, - { - "top": [], - "bottom": [], - "move": [], - "center": [] - }, - { - "top": [ - -0.2 - ], - "bottom": [ - null - ], - "move": [ - null - ], - "center": [ - false - ] - }, - { - "top": [], - "bottom": [], - "move": [], - "center": [] - }, - { - "top": [ - -0.2 - ], - "bottom": [ - null - ], - "move": [ - null - ], - "center": [ - false - ] - }, - { - "top": [], - "bottom": [], - "move": [], - "center": [] - }, - { - "top": [ - -0.2 - ], - "bottom": [ - null - ], - "move": [ - null - ], - "center": [ - false - ] - }, - { - "top": [], - "bottom": [], - "move": [], - "center": [] - }, - { - "top": [ - -0.2 - ], - "bottom": [ - null - ], - "move": [ - null - ], - "center": [ - false - ] - }, - { - "top": [], - "bottom": [], - "move": [], - "center": [] - }, - { - "top": [ - -0.2 - ], - "bottom": [ - null - ], - "move": [ - null - ], - "center": [ - false - ] - }, - { - "top": [], - "bottom": [], - "move": [], - "center": [] - }, - { - "top": [ - -0.2 - ], - "bottom": [ - null - ], - "move": [ - null - ], - "center": [ - false - ] - }, - { - "top": [], - "bottom": [], - "move": [], - "center": [] - }, - { - "top": [ - -0.2 - ], - "bottom": [ - null - ], - "move": [ - null - ], - "center": [ - false - ] - }, - { - "top": [], - "bottom": [], - "move": [], - "center": [] - }, - { - "top": [ - -0.2 - ], - "bottom": [ - null - ], - "move": [ - null - ], - "center": [ - false - ] - }, - { - "top": [], - "bottom": [], - "move": [], - "center": [] - }, - { - "top": [ - -0.2 - ], - "bottom": [ - null - ], - "move": [ - null - ], - "center": [ - false - ] - }, - { - "top": [], - "bottom": [], - "move": [], - "center": [] - }, - { - "top": [ - -0.2 - ], - "bottom": [ - null - ], - "move": [ - null - ], - "center": [ - false - ] - }, - { - "top": [], - "bottom": [], - "move": [], - "center": [] - }, - { - "top": [ - -0.2 - ], - "bottom": [ - null - ], - "move": [ - null - ], - "center": [ - false - ] - }, - { - "top": [], - "bottom": [], - "move": [], - "center": [] - } - ], - "mix_detail": [ - { - "top": [], - "bottom": [], - "move": [], - "center": [] - }, - { - "top": [], - "bottom": [], - "move": [], - "center": [] - }, - { - "top": [], - "bottom": [], - "move": [], - "center": [] - }, - { - "top": [], - "bottom": [], - "move": [], - "center": [] - }, - { - "top": [], - "bottom": [], - "move": [], - "center": [] - }, - { - "top": [], - "bottom": [], - "move": [], - "center": [] - }, - { - "top": [], - "bottom": [], - "move": [], - "center": [] - }, - { - "top": [], - "bottom": [], - "move": [], - "center": [] - }, - { - "top": [], - "bottom": [], - "move": [], - "center": [] - }, - { - "top": [], - "bottom": [], - "move": [], - "center": [] - }, - { - "top": [], - "bottom": [], - "move": [], - "center": [] - }, - { - "top": [], - "bottom": [], - "move": [], - "center": [] - }, - { - "top": [], - "bottom": [], - "move": [], - "center": [] - }, - { - "top": [], - "bottom": [], - "move": [], - "center": [] - }, - { - "top": [], - "bottom": [], - "move": [], - "center": [] - }, - { - "top": [], - "bottom": [], - "move": [], - "center": [] - }, - { - "top": [], - "bottom": [], - "move": [], - "center": [] - }, - { - "top": [], - "bottom": [], - "move": [], - "center": [] - }, - { - "top": [], - "bottom": [], - "move": [], - "center": [] - }, - { - "top": [], - "bottom": [], - "move": [], - "center": [] - }, - { - "top": [], - "bottom": [], - "move": [], - "center": [] - }, - { - "top": [], - "bottom": [], - "move": [], - "center": [] - }, - { - "top": [], - "bottom": [], - "move": [], - "center": [] - }, - { - "top": [], - "bottom": [], - "move": [], - "center": [] - } - ] - }, - { - "template": "transfer", - "sources": [ - { - "well": "A2", - "labware": "reagent stock", - "slot": 3 - }, - { - "well": "A2", - "labware": "reagent stock", - "slot": 3 - }, - { - "well": "A2", - "labware": "reagent stock", - "slot": 3 - }, - { - "well": "A2", - "labware": "reagent stock", - "slot": 3 - }, - { - "well": "A2", - "labware": "reagent stock", - "slot": 3 - }, - { - "well": "A2", - "labware": "reagent stock", - "slot": 3 - }, - { - "well": "A2", - "labware": "reagent stock", - "slot": 3 - }, - { - "well": "A2", - "labware": "reagent stock", - "slot": 3 - }, - { - "well": "A2", - "labware": "reagent stock", - "slot": 3 - }, - { - "well": "A2", - "labware": "reagent stock", - "slot": 3 - }, - { - "well": "A2", - "labware": "reagent stock", - "slot": 3 - }, - { - "well": "A2", - "labware": "reagent stock", - "slot": 3 - } - ], - "targets": [ - { - "well": "A1", - "labware": "working plate", - "slot": 6 - }, - { - "well": "A2", - "labware": "working plate", - "slot": 6 - }, - { - "well": "A3", - "labware": "working plate", - "slot": 6 - }, - { - "well": "A4", - "labware": "working plate", - "slot": 6 - }, - { - "well": "A5", - "labware": "working plate", - "slot": 6 - }, - { - "well": "A6", - "labware": "working plate", - "slot": 6 - }, - { - "well": "A7", - "labware": "working plate", - "slot": 6 - }, - { - "well": "A8", - "labware": "working plate", - "slot": 6 - }, - { - "well": "A9", - "labware": "working plate", - "slot": 6 - }, - { - "well": "A10", - "labware": "working plate", - "slot": 6 - }, - { - "well": "A11", - "labware": "working plate", - "slot": 6 - }, - { - "well": "A12", - "labware": "working plate", - "slot": 6 - } - ], - "tip_racks": [ - { - "well": "A2", - "type": "Opentrons OT-2 96 Tip Rack 300 \u00b5L", - "slot": 1 - } - ], - "use_channels": null, - "asp_vols": [ - 30.0, - 30.0, - 30.0, - 30.0, - 30.0, - 30.0, - 30.0, - 30.0, - 30.0, - 30.0, - 30.0, - 30.0 - ], - "asp_flow_rates": [ - 47.0, - 47.0, - 47.0, - 47.0, - 47.0, - 47.0, - 47.0, - 47.0, - 47.0, - 47.0, - 47.0, - 47.0 - ], - "disp_vols": [ - 30.0, - 30.0, - 30.0, - 30.0, - 30.0, - 30.0, - 30.0, - 30.0, - 30.0, - 30.0, - 30.0, - 30.0 - ], - "dis_flow_rates": [ - 28.2, - 28.2, - 28.2, - 28.2, - 28.2, - 28.2, - 28.2, - 28.2, - 28.2, - 28.2, - 28.2, - 28.2 - ], - "offsets": null, - "touch_tip": true, - "liquid_height": null, - "blow_out_air_volume": [ - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0 - ], - "is_96_well": false, - "mix_stage": "none", - "mix_times": 0, - "mix_vol": null, - "mix_rate": null, - "mix_liquid_height": null, - "delays": [ - 2, - 2, - 2, - 2, - 2, - 2, - 2, - 2, - 2, - 2, - 2, - 0 - ], - "top": [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - "bottom": [ - 0.5, - 5, - 0.5, - 5, - 0.5, - 5, - 0.5, - 5, - 0.5, - 5, - 0.5, - 5, - 0.5, - 5, - 0.5, - 5, - 0.5, - 5, - 0.5, - 5, - 0.5, - 5, - 0.5, - 5 - ], - "move": [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - "center": [ - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false - ], - "move_to": [ - { - "top": [], - "bottom": [], - "move": [], - "center": [] - }, - { - "top": [], - "bottom": [], - "move": [], - "center": [] - }, - { - "top": [], - "bottom": [], - "move": [], - "center": [] - }, - { - "top": [], - "bottom": [], - "move": [], - "center": [] - }, - { - "top": [], - "bottom": [], - "move": [], - "center": [] - }, - { - "top": [], - "bottom": [], - "move": [], - "center": [] - }, - { - "top": [], - "bottom": [], - "move": [], - "center": [] - }, - { - "top": [], - "bottom": [], - "move": [], - "center": [] - }, - { - "top": [], - "bottom": [], - "move": [], - "center": [] - }, - { - "top": [], - "bottom": [], - "move": [], - "center": [] - }, - { - "top": [], - "bottom": [], - "move": [], - "center": [] - }, - { - "top": [], - "bottom": [], - "move": [], - "center": [] - }, - { - "top": [], - "bottom": [], - "move": [], - "center": [] - }, - { - "top": [], - "bottom": [], - "move": [], - "center": [] - }, - { - "top": [], - "bottom": [], - "move": [], - "center": [] - }, - { - "top": [], - "bottom": [], - "move": [], - "center": [] - }, - { - "top": [], - "bottom": [], - "move": [], - "center": [] - }, - { - "top": [], - "bottom": [], - "move": [], - "center": [] - }, - { - "top": [], - "bottom": [], - "move": [], - "center": [] - }, - { - "top": [], - "bottom": [], - "move": [], - "center": [] - }, - { - "top": [], - "bottom": [], - "move": [], - "center": [] - }, - { - "top": [], - "bottom": [], - "move": [], - "center": [] - }, - { - "top": [], - "bottom": [], - "move": [], - "center": [] - }, - { - "top": [], - "bottom": [], - "move": [], - "center": [] - } - ], - "mix_detail": [ - { - "top": [], - "bottom": [], - "move": [], - "center": [] - }, - { - "top": [], - "bottom": [], - "move": [], - "center": [] - }, - { - "top": [], - "bottom": [], - "move": [], - "center": [] - }, - { - "top": [], - "bottom": [], - "move": [], - "center": [] - }, - { - "top": [], - "bottom": [], - "move": [], - "center": [] - }, - { - "top": [], - "bottom": [], - "move": [], - "center": [] - }, - { - "top": [], - "bottom": [], - "move": [], - "center": [] - }, - { - "top": [], - "bottom": [], - "move": [], - "center": [] - }, - { - "top": [], - "bottom": [], - "move": [], - "center": [] - }, - { - "top": [], - "bottom": [], - "move": [], - "center": [] - }, - { - "top": [], - "bottom": [], - "move": [], - "center": [] - }, - { - "top": [], - "bottom": [], - "move": [], - "center": [] - }, - { - "top": [], - "bottom": [], - "move": [], - "center": [] - }, - { - "top": [], - "bottom": [], - "move": [], - "center": [] - }, - { - "top": [], - "bottom": [], - "move": [], - "center": [] - }, - { - "top": [], - "bottom": [], - "move": [], - "center": [] - }, - { - "top": [], - "bottom": [], - "move": [], - "center": [] - }, - { - "top": [], - "bottom": [], - "move": [], - "center": [] - }, - { - "top": [], - "bottom": [], - "move": [], - "center": [] - }, - { - "top": [], - "bottom": [], - "move": [], - "center": [] - }, - { - "top": [], - "bottom": [], - "move": [], - "center": [] - }, - { - "top": [], - "bottom": [], - "move": [], - "center": [] - }, - { - "top": [], - "bottom": [], - "move": [], - "center": [] - }, - { - "top": [], - "bottom": [], - "move": [], - "center": [] - } - ] - }, - { - "template": "transfer", - "sources": [ - { - "well": "A3", - "labware": "reagent stock", - "slot": 3 - }, - { - "well": "A1", - "labware": "working plate", - "slot": 6 - }, - { - "well": "A1", - "labware": "working plate", - "slot": 6 - }, - { - "well": "A1", - "labware": "working plate", - "slot": 6 - }, - { - "well": "A3", - "labware": "reagent stock", - "slot": 3 - }, - { - "well": "A2", - "labware": "working plate", - "slot": 6 - }, - { - "well": "A2", - "labware": "working plate", - "slot": 6 - }, - { - "well": "A2", - "labware": "working plate", - "slot": 6 - }, - { - "well": "A3", - "labware": "reagent stock", - "slot": 3 - }, - { - "well": "A3", - "labware": "working plate", - "slot": 6 - }, - { - "well": "A3", - "labware": "working plate", - "slot": 6 - }, - { - "well": "A3", - "labware": "working plate", - "slot": 6 - }, - { - "well": "A3", - "labware": "reagent stock", - "slot": 3 - }, - { - "well": "A4", - "labware": "working plate", - "slot": 6 - }, - { - "well": "A4", - "labware": "working plate", - "slot": 6 - }, - { - "well": "A4", - "labware": "working plate", - "slot": 6 - }, - { - "well": "A3", - "labware": "reagent stock", - "slot": 3 - }, - { - "well": "A5", - "labware": "working plate", - "slot": 6 - }, - { - "well": "A5", - "labware": "working plate", - "slot": 6 - }, - { - "well": "A5", - "labware": "working plate", - "slot": 6 - }, - { - "well": "A3", - "labware": "reagent stock", - "slot": 3 - }, - { - "well": "A6", - "labware": "working plate", - "slot": 6 - }, - { - "well": "A6", - "labware": "working plate", - "slot": 6 - }, - { - "well": "A6", - "labware": "working plate", - "slot": 6 - }, - { - "well": "A3", - "labware": "reagent stock", - "slot": 3 - }, - { - "well": "A7", - "labware": "working plate", - "slot": 6 - }, - { - "well": "A7", - "labware": "working plate", - "slot": 6 - }, - { - "well": "A7", - "labware": "working plate", - "slot": 6 - }, - { - "well": "A3", - "labware": "reagent stock", - "slot": 3 - }, - { - "well": "A8", - "labware": "working plate", - "slot": 6 - }, - { - "well": "A8", - "labware": "working plate", - "slot": 6 - }, - { - "well": "A8", - "labware": "working plate", - "slot": 6 - }, - { - "well": "A3", - "labware": "reagent stock", - "slot": 3 - }, - { - "well": "A9", - "labware": "working plate", - "slot": 6 - }, - { - "well": "A9", - "labware": "working plate", - "slot": 6 - }, - { - "well": "A9", - "labware": "working plate", - "slot": 6 - }, - { - "well": "A3", - "labware": "reagent stock", - "slot": 3 - }, - { - "well": "A10", - "labware": "working plate", - "slot": 6 - }, - { - "well": "A10", - "labware": "working plate", - "slot": 6 - }, - { - "well": "A10", - "labware": "working plate", - "slot": 6 - }, - { - "well": "A3", - "labware": "reagent stock", - "slot": 3 - }, - { - "well": "A11", - "labware": "working plate", - "slot": 6 - }, - { - "well": "A11", - "labware": "working plate", - "slot": 6 - }, - { - "well": "A11", - "labware": "working plate", - "slot": 6 - }, - { - "well": "A3", - "labware": "reagent stock", - "slot": 3 - }, - { - "well": "A12", - "labware": "working plate", - "slot": 6 - }, - { - "well": "A12", - "labware": "working plate", - "slot": 6 - }, - { - "well": "A12", - "labware": "working plate", - "slot": 6 - } - ], - "targets": [ - { - "well": "A1", - "labware": "working plate", - "slot": 6 - }, - { - "well": "A1", - "labware": "working plate", - "slot": 6 - }, - { - "well": "A1", - "labware": "working plate", - "slot": 6 - }, - { - "well": "A1", - "labware": "working plate", - "slot": 6 - }, - { - "well": "A2", - "labware": "working plate", - "slot": 6 - }, - { - "well": "A2", - "labware": "working plate", - "slot": 6 - }, - { - "well": "A2", - "labware": "working plate", - "slot": 6 - }, - { - "well": "A2", - "labware": "working plate", - "slot": 6 - }, - { - "well": "A3", - "labware": "working plate", - "slot": 6 - }, - { - "well": "A3", - "labware": "working plate", - "slot": 6 - }, - { - "well": "A3", - "labware": "working plate", - "slot": 6 - }, - { - "well": "A3", - "labware": "working plate", - "slot": 6 - }, - { - "well": "A4", - "labware": "working plate", - "slot": 6 - }, - { - "well": "A4", - "labware": "working plate", - "slot": 6 - }, - { - "well": "A4", - "labware": "working plate", - "slot": 6 - }, - { - "well": "A4", - "labware": "working plate", - "slot": 6 - }, - { - "well": "A5", - "labware": "working plate", - "slot": 6 - }, - { - "well": "A5", - "labware": "working plate", - "slot": 6 - }, - { - "well": "A5", - "labware": "working plate", - "slot": 6 - }, - { - "well": "A5", - "labware": "working plate", - "slot": 6 - }, - { - "well": "A6", - "labware": "working plate", - "slot": 6 - }, - { - "well": "A6", - "labware": "working plate", - "slot": 6 - }, - { - "well": "A6", - "labware": "working plate", - "slot": 6 - }, - { - "well": "A6", - "labware": "working plate", - "slot": 6 - }, - { - "well": "A7", - "labware": "working plate", - "slot": 6 - }, - { - "well": "A7", - "labware": "working plate", - "slot": 6 - }, - { - "well": "A7", - "labware": "working plate", - "slot": 6 - }, - { - "well": "A7", - "labware": "working plate", - "slot": 6 - }, - { - "well": "A8", - "labware": "working plate", - "slot": 6 - }, - { - "well": "A8", - "labware": "working plate", - "slot": 6 - }, - { - "well": "A8", - "labware": "working plate", - "slot": 6 - }, - { - "well": "A8", - "labware": "working plate", - "slot": 6 - }, - { - "well": "A9", - "labware": "working plate", - "slot": 6 - }, - { - "well": "A9", - "labware": "working plate", - "slot": 6 - }, - { - "well": "A9", - "labware": "working plate", - "slot": 6 - }, - { - "well": "A9", - "labware": "working plate", - "slot": 6 - }, - { - "well": "A10", - "labware": "working plate", - "slot": 6 - }, - { - "well": "A10", - "labware": "working plate", - "slot": 6 - }, - { - "well": "A10", - "labware": "working plate", - "slot": 6 - }, - { - "well": "A10", - "labware": "working plate", - "slot": 6 - }, - { - "well": "A11", - "labware": "working plate", - "slot": 6 - }, - { - "well": "A11", - "labware": "working plate", - "slot": 6 - }, - { - "well": "A11", - "labware": "working plate", - "slot": 6 - }, - { - "well": "A11", - "labware": "working plate", - "slot": 6 - }, - { - "well": "A12", - "labware": "working plate", - "slot": 6 - }, - { - "well": "A12", - "labware": "working plate", - "slot": 6 - }, - { - "well": "A12", - "labware": "working plate", - "slot": 6 - }, - { - "well": "A12", - "labware": "working plate", - "slot": 6 - } - ], - "tip_racks": [ - { - "well": "A3", - "type": "Opentrons OT-2 96 Tip Rack 300 \u00b5L", - "slot": 1 - }, - { - "well": "A4", - "type": "Opentrons OT-2 96 Tip Rack 300 \u00b5L", - "slot": 1 - }, - { - "well": "A5", - "type": "Opentrons OT-2 96 Tip Rack 300 \u00b5L", - "slot": 1 - }, - { - "well": "A6", - "type": "Opentrons OT-2 96 Tip Rack 300 \u00b5L", - "slot": 1 - }, - { - "well": "A7", - "type": "Opentrons OT-2 96 Tip Rack 300 \u00b5L", - "slot": 1 - }, - { - "well": "A8", - "type": "Opentrons OT-2 96 Tip Rack 300 \u00b5L", - "slot": 1 - }, - { - "well": "A9", - "type": "Opentrons OT-2 96 Tip Rack 300 \u00b5L", - "slot": 1 - }, - { - "well": "A10", - "type": "Opentrons OT-2 96 Tip Rack 300 \u00b5L", - "slot": 1 - }, - { - "well": "A11", - "type": "Opentrons OT-2 96 Tip Rack 300 \u00b5L", - "slot": 1 - }, - { - "well": "A12", - "type": "Opentrons OT-2 96 Tip Rack 300 \u00b5L", - "slot": 1 - }, - { - "well": "A1", - "type": "Opentrons OT-2 96 Tip Rack 300 \u00b5L", - "slot": 4 - }, - { - "well": "A2", - "type": "Opentrons OT-2 96 Tip Rack 300 \u00b5L", - "slot": 4 - } - ], - "use_channels": null, - "asp_vols": [ - 75.0, - 75.0, - 75.0, - 75.0, - 75.0, - 75.0, - 75.0, - 75.0, - 75.0, - 75.0, - 75.0, - 75.0 - ], - "asp_flow_rates": [ - 282.0, - 282.0, - 282.0, - 282.0, - 282.0, - 282.0, - 282.0, - 282.0, - 282.0, - 282.0, - 282.0, - 282.0 - ], - "disp_vols": [ - 75.0, - 75.0, - 75.0, - 75.0, - 75.0, - 75.0, - 75.0, - 75.0, - 75.0, - 75.0, - 75.0, - 75.0 - ], - "dis_flow_rates": [ - 282.0, - 282.0, - 282.0, - 282.0, - 282.0, - 282.0, - 282.0, - 282.0, - 282.0, - 282.0, - 282.0, - 282.0 - ], - "offsets": null, - "touch_tip": true, - "liquid_height": null, - "blow_out_air_volume": [ - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0 - ], - "is_96_well": false, - "mix_stage": "after", - "mix_times": [ - 3 - ], - "mix_vol": 75.0, - "mix_rate": null, - "mix_liquid_height": null, - "delays": [ - 2, - 2, - 2, - 2, - 2, - 2, - 2, - 2, - 2, - 2, - 2, - 2 - ], - "top": [ - null, - -0.5, - null, - -0.5, - null, - -0.5, - null, - -0.5, - null, - -0.5, - null, - -0.5, - null, - -0.5, - null, - -0.5, - null, - -0.5, - null, - -0.5, - null, - -0.5, - null, - -0.5 - ], - "bottom": [ - 0.5, - null, - 0.5, - null, - 0.5, - null, - 0.5, - null, - 0.5, - null, - 0.5, - null, - 0.5, - null, - 0.5, - null, - 0.5, - null, - 0.5, - null, - 0.5, - null, - 0.5, - null - ], - "move": [ - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null - ], - "center": [ - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false, - false - ], - "move_to": [ - { - "top": [], - "bottom": [], - "move": [], - "center": [] - }, - { - "top": [], - "bottom": [], - "move": [], - "center": [] - }, - { - "top": [], - "bottom": [], - "move": [], - "center": [] - }, - { - "top": [], - "bottom": [], - "move": [], - "center": [] - }, - { - "top": [], - "bottom": [], - "move": [], - "center": [] - }, - { - "top": [], - "bottom": [], - "move": [], - "center": [] - }, - { - "top": [], - "bottom": [], - "move": [], - "center": [] - }, - { - "top": [], - "bottom": [], - "move": [], - "center": [] - }, - { - "top": [], - "bottom": [], - "move": [], - "center": [] - }, - { - "top": [], - "bottom": [], - "move": [], - "center": [] - }, - { - "top": [], - "bottom": [], - "move": [], - "center": [] - }, - { - "top": [], - "bottom": [], - "move": [], - "center": [] - }, - { - "top": [], - "bottom": [], - "move": [], - "center": [] - }, - { - "top": [], - "bottom": [], - "move": [], - "center": [] - }, - { - "top": [], - "bottom": [], - "move": [], - "center": [] - }, - { - "top": [], - "bottom": [], - "move": [], - "center": [] - }, - { - "top": [], - "bottom": [], - "move": [], - "center": [] - }, - { - "top": [], - "bottom": [], - "move": [], - "center": [] - }, - { - "top": [], - "bottom": [], - "move": [], - "center": [] - }, - { - "top": [], - "bottom": [], - "move": [], - "center": [] - }, - { - "top": [], - "bottom": [], - "move": [], - "center": [] - }, - { - "top": [], - "bottom": [], - "move": [], - "center": [] - }, - { - "top": [], - "bottom": [], - "move": [], - "center": [] - }, - { - "top": [], - "bottom": [], - "move": [], - "center": [] - } - ], - "mix_detail": [ - { - "top": [], - "bottom": [], - "move": [], - "center": [] - }, - { - "top": [ - null - ], - "bottom": [ - 0.5 - ], - "move": [ - null - ], - "center": [ - false - ] - }, - { - "top": [], - "bottom": [], - "move": [], - "center": [] - }, - { - "top": [ - null - ], - "bottom": [ - 0.5 - ], - "move": [ - null - ], - "center": [ - false - ] - }, - { - "top": [], - "bottom": [], - "move": [], - "center": [] - }, - { - "top": [ - null - ], - "bottom": [ - 0.5 - ], - "move": [ - null - ], - "center": [ - false - ] - }, - { - "top": [], - "bottom": [], - "move": [], - "center": [] - }, - { - "top": [ - null - ], - "bottom": [ - 0.5 - ], - "move": [ - null - ], - "center": [ - false - ] - }, - { - "top": [], - "bottom": [], - "move": [], - "center": [] - }, - { - "top": [ - null - ], - "bottom": [ - 0.5 - ], - "move": [ - null - ], - "center": [ - false - ] - }, - { - "top": [], - "bottom": [], - "move": [], - "center": [] - }, - { - "top": [ - null - ], - "bottom": [ - 0.5 - ], - "move": [ - null - ], - "center": [ - false - ] - }, - { - "top": [], - "bottom": [], - "move": [], - "center": [] - }, - { - "top": [ - null - ], - "bottom": [ - 0.5 - ], - "move": [ - null - ], - "center": [ - false - ] - }, - { - "top": [], - "bottom": [], - "move": [], - "center": [] - }, - { - "top": [ - null - ], - "bottom": [ - 0.5 - ], - "move": [ - null - ], - "center": [ - false - ] - }, - { - "top": [], - "bottom": [], - "move": [], - "center": [] - }, - { - "top": [ - null - ], - "bottom": [ - 0.5 - ], - "move": [ - null - ], - "center": [ - false - ] - }, - { - "top": [], - "bottom": [], - "move": [], - "center": [] - }, - { - "top": [ - null - ], - "bottom": [ - 0.5 - ], - "move": [ - null - ], - "center": [ - false - ] - }, - { - "top": [], - "bottom": [], - "move": [], - "center": [] - }, - { - "top": [ - null - ], - "bottom": [ - 0.5 - ], - "move": [ - null - ], - "center": [ - false - ] - }, - { - "top": [], - "bottom": [], - "move": [], - "center": [] - }, - { - "top": [ - null - ], - "bottom": [ - 0.5 - ], - "move": [ - null - ], - "center": [ - false - ] - } - ] - } -] \ No newline at end of file diff --git a/unilabos/devices/liquid_handling/test_transfer_liquid.py b/unilabos/devices/liquid_handling/test_transfer_liquid.py deleted file mode 100644 index f13980f0..00000000 --- a/unilabos/devices/liquid_handling/test_transfer_liquid.py +++ /dev/null @@ -1,13 +0,0 @@ -""" -说明: -这里放一个“入口文件”,方便在 `unilabos/devices/liquid_handling` 目录下直接找到 -`transfer_liquid` 的测试。 - -实际测试用例实现放在仓库标准测试目录: -`tests/devices/liquid_handling/test_transfer_liquid.py` -""" - -# 让 pytest 能从这里发现同一套测试(避免复制两份测试代码)。 -from tests.devices.liquid_handling.test_transfer_liquid import * # noqa: F401,F403 - - diff --git a/unilabos/devices/motor/Consts.py b/unilabos/devices/motor/Consts.py deleted file mode 100644 index f3603fab..00000000 --- a/unilabos/devices/motor/Consts.py +++ /dev/null @@ -1,4 +0,0 @@ -class Config(object): - DEBUG_MODE = True - OPEN_DEVICE = True - DEVICE_ADDRESS = 0x01 \ No newline at end of file diff --git a/unilabos/devices/motor/FakeSerial.py b/unilabos/devices/motor/FakeSerial.py deleted file mode 100644 index bcf897e7..00000000 --- a/unilabos/devices/motor/FakeSerial.py +++ /dev/null @@ -1,21 +0,0 @@ -class FakeSerial: - def __init__(self): - self.data = b'' - - def write(self, data): - print("发送数据: ", end="") - for i in data: - print(f"{i:02x}", end=" ") - print() # 换行 - # 这里可模拟把假数据写到某个内部缓存 - # self.data = ... - - def setRTS(self, b): - pass - - def read(self, n): - # 这里可返回预设的响应,例如 b'\x01\x03\x02\x00\x19\x79\x8E' - return b'\x01\x03\x02\x00\x19\x79\x8E' - - def close(self): - pass \ No newline at end of file diff --git a/unilabos/devices/motor/Grasp.py b/unilabos/devices/motor/Grasp.py deleted file mode 100644 index 08c8611e..00000000 --- a/unilabos/devices/motor/Grasp.py +++ /dev/null @@ -1,153 +0,0 @@ -import time -from serial import Serial -from threading import Thread - -from unilabos.device_comms.universal_driver import UniversalDriver - -class EleGripper(UniversalDriver): - @property - def status(self) -> str: - return f"spin_pos: {self.rot_data[0]}, grasp_pos: {self.gri_data[0]}, spin_v: {self.rot_data[1]}, grasp_v: {self.gri_data[1]}, spin_F: {self.rot_data[2]}, grasp_F: {self.gri_data[2]}" - - def __init__(self,port,baudrate=115200, pos_error=-11, id = 9): - self.ser = Serial(port,baudrate) - self.pos_error = pos_error - - self.success = False - - # [pos, speed, force] - self.gri_data = [0,0,0] - self.rot_data = [0,0,0] - - self.id = id - - self.init_gripper() - self.wait_for_gripper_init() - - t = Thread(target=self.data_loop) - t.start() - - self.gripper_move(0,255,255) - self.rotate_move_abs(0,255,255) - - def modbus_crc(self, data: bytes) -> bytes: - crc = 0xFFFF - for pos in data: - crc ^= pos - for _ in range(8): - if (crc & 0x0001) != 0: - crc >>= 1 - crc ^= 0xA001 - else: - crc >>= 1 - return crc.to_bytes(2, byteorder='little') - - def send_cmd(self, id, fun, address, data:str): - data_len = len(bytes.fromhex(data)) - data_ = f"{id:02X} {fun} {address} {data_len//2:04X} {data_len:02X} {data}" - data_bytes = bytes.fromhex(data_) - data_with_checksum = data_bytes + self.modbus_crc(data_bytes) - self.ser.write(data_with_checksum) - time.sleep(0.01) - self.ser.read(8) - - def read_address(self, id , address, data_len): - data = f"{id:02X} 03 {address} {data_len:04X}" - data_bytes = bytes.fromhex(data) - data_with_checksum = data_bytes + self.modbus_crc(data_bytes) - self.ser.write(data_with_checksum) - time.sleep(0.01) - res_len = 5+data_len*2 - res = self.ser.read(res_len) - return res - - def init_gripper(self): - self.send_cmd(self.id,'10','03 E8','00 01') - self.send_cmd(self.id,'10','03 E9','00 01') - - def gripper_move(self, pos, speed, force): - self.send_cmd(self.id,'10', '03 EA', f"{speed:02x} {pos:02x} {force:02x} 01") - - def rotate_move_abs(self, pos, speed, force): - pos += self.pos_error - if pos < 0: - pos = (1 << 16) + pos - self.send_cmd(self.id,'10', '03 EC', f"{(pos):04x} {force:02x} {speed:02x} 0000 00 01") - - # def rotate_move_rel(self, pos, speed, force): - # if pos < 0: - # pos = (1 << 16) + pos - # print(f'{pos:04x}') - # self.send_cmd(self.id,'10', '03 EC', f"0000 {force:02x} {speed:02x} {pos:04x} 00 02") - - def wait_for_gripper_init(self): - res = self.read_address(self.id, "07 D0", 1) - res_r = self.read_address(self.id, "07 D1", 1) - while res[4] == 0x08 or res_r[4] == 0x08: - res = self.read_address(self.id, "07 D0", 1) - res_r = self.read_address(self.id, "07 D1", 1) - time.sleep(0.1) - - def wait_for_gripper(self): - while self.gri_data[1] != 0: - time.sleep(0.1) - - def wait_for_rotate(self): - while self.rot_data[1] != 0: - time.sleep(0.1) - - def data_reader(self): - res_g = self.read_address(self.id, "07 D2", 2) - res_r = self.read_address(self.id, "07 D4", 4) - int32_value = (res_r[3] << 8) | res_r[4] - if int32_value > 0x7FFF: - int32_value -= 0x10000 - self.gri_data = (int(res_g[4]), int(res_g[3]), int(res_g[5])) - self.rot_data = (int32_value, int(res_r[5]), int(res_r[6])) - - def data_loop(self): - while True: - self.data_reader() - time.sleep(0.1) - - - def node_gripper_move(self, cmd:str): - self.success = False - - try: - cmd_list = [int(x) for x in cmd.replace(' ','').split(',')] - self.gripper_move(*cmd_list) - self.wait_for_gripper() - except Exception as e: - raise e - - self.success = True - - def node_rotate_move(self, cmd:str): - self.success = False - - try: - cmd_list = [int(x) for x in cmd.replace(' ','').split(',')] - self.rotate_move_abs(*cmd_list) - self.wait_for_rotate() - except Exception as e: - raise e - - self.success = True - - def move_and_rotate(self, spin_pos, grasp_pos, spin_v, grasp_v, spin_F, grasp_F): - self.gripper_move(grasp_pos, grasp_v, grasp_F) - self.wait_for_gripper() - self.rotate_move_abs(spin_pos, spin_v, spin_F) - self.wait_for_rotate() - -if __name__ == "__main__": - gripper = EleGripper("COM12") - gripper.init_gripper() - gripper.wait_for_gripper_init() - gripper.gripper_move(210,127,255) - gripper.wait_for_gripper() - gripper.rotate_move_abs(135,10,255) - gripper.data_reader() - print(gripper.rot_data) - diff --git a/unilabos/devices/motor/Utils.py b/unilabos/devices/motor/Utils.py deleted file mode 100644 index 20c44ad7..00000000 --- a/unilabos/devices/motor/Utils.py +++ /dev/null @@ -1,87 +0,0 @@ -import struct -import time -from typing import Union - -from .Consts import Config - -def calculate_modbus_crc16(data: bytes) -> tuple[int, int]: - """ - 计算 Modbus RTU 的 CRC16 校验码,返回 (low_byte, high_byte)。 - data 可以是 bytes 或者 bytearray - """ - crc = 0xFFFF - for byte in data: - crc ^= byte - for _ in range(8): - if (crc & 0x0001): - crc = (crc >> 1) ^ 0xA001 - else: - crc >>= 1 - - # 低字节在前、高字节在后 - low_byte = crc & 0xFF - high_byte = (crc >> 8) & 0xFF - return low_byte, high_byte - - -def create_command(slave_id, func_code, address, data): - """ - 生成完整的 Modbus 通信指令: - - 第1字节: 从站地址 - - 第2字节: 功能码 - - 第3~4字节: 寄存器地址 (大端) - - 第5~6字节: 数据(或读寄存器个数) (大端) - - 第7~8字节: CRC校验, 先低后高 - """ - # 按照大端格式打包:B(1字节), B(1字节), H(2字节), H(2字节) - # 例如: 0x03, 0x03, 0x0191, 0x0001 - # 生成的命令将是: 03 03 01 91 00 01 (不含 CRC) - command = struct.pack(">B B H H", slave_id, func_code, address, data) - - # 计算CRC,并将低字节、后高字节拼到末尾 - low_byte, high_byte = calculate_modbus_crc16(command) - return command + bytes([low_byte, high_byte]) - - -def send_command(ser, command) -> Union[bytes, str]: - """通过串口发送指令并打印响应""" - # Modbus RTU 半双工,发送前拉高 RTS - ser.setRTS(True) - time.sleep(0.02) - ser.write(command) # 发送指令 - if Config.OPEN_DEVICE: - # 如果是实际串口,就打印16进制的发送内容 - print(f"发送的数据: ", end="") - for ind, c in enumerate(command.hex().upper()): - if ind % 2 == 0 and ind != 0: - print(" ", end="") - print(c, end="") - - # 发送完成后,切换到接收模式 - ser.setRTS(False) - - # 读取响应,具体长度要看从站返回,有时多字节 - response = ser.read(8) # 假设响应是8字节 - print(f"接收到的数据: ", end="") - for ind, c in enumerate(response.hex().upper()): - if ind % 2 == 0 and ind != 0: - print(" ", end="") - print(c, end="") - print() - return response - -def get_result_byte_int(data: bytes, byte_start: int = 6, byte_end: int = 10) -> int: - return int(data.hex()[byte_start:byte_end], 16) - -def get_result_byte_str(data: bytes, byte_start: int = 6, byte_end: int = 10) -> str: - return data.hex()[byte_start:byte_end] - -def run_commands(ser, duration=0.1, *commands): - for cmd in commands: - if isinstance(cmd, list): - for c in cmd: - send_command(ser, c) - time.sleep(duration) - else: - send_command(ser, cmd) - time.sleep(duration) diff --git a/unilabos/devices/motor/__init__.py b/unilabos/devices/motor/__init__.py deleted file mode 100644 index e69de29b..00000000 diff --git a/unilabos/devices/motor/base_types/PrPath.py b/unilabos/devices/motor/base_types/PrPath.py deleted file mode 100644 index 86b3bfe4..00000000 --- a/unilabos/devices/motor/base_types/PrPath.py +++ /dev/null @@ -1,37 +0,0 @@ -from enum import Enum - -class PR_PATH(Enum): - # TYPE (Bit0-3) - TYPE_NO_ACTION = 0x0000 # 无动作 - TYPE_POSITIONING = 0x0001 # 位置定位 - TYPE_VELOCITY = 0x0002 # 速度运行 - TYPE_HOME = 0x0003 # 回零 - - # INS (Bit4) - 默认都是插断模式 - INS_INTERRUPT = 0x0010 # 插断 - - # OVLP (Bit5) - 默认都是不重叠 - OVLP_NO_OVERLAP = 0x0000 # 不重叠 - - # POSITION MODE (Bit6) - POS_ABSOLUTE = 0x0000 # 绝对位置 - POS_RELATIVE = 0x0040 # 相对位置 - - # MOTOR MODE (Bit7) - MOTOR_ABSOLUTE = 0x0000 # 绝对电机 - MOTOR_RELATIVE = 0x0080 # 相对电机 - - # 常用组合(默认都是插断且不重叠) - # 位置定位相关 - ABS_POS = TYPE_POSITIONING | INS_INTERRUPT | OVLP_NO_OVERLAP | POS_ABSOLUTE # 绝对定位 - REL_POS = TYPE_POSITIONING | INS_INTERRUPT | OVLP_NO_OVERLAP | POS_RELATIVE # 相对定位 - - # 速度运行相关 - VELOCITY = TYPE_VELOCITY | INS_INTERRUPT | OVLP_NO_OVERLAP # 速度模式 - - # 回零相关 - HOME = TYPE_HOME | INS_INTERRUPT | OVLP_NO_OVERLAP # 回零模式 - - # 电机模式组合 - ABS_POS_REL_MOTOR = ABS_POS | MOTOR_RELATIVE # 绝对定位+相对电机 - REL_POS_REL_MOTOR = REL_POS | MOTOR_RELATIVE # 相对定位+相对电机 diff --git a/unilabos/devices/motor/base_types/__init__.py b/unilabos/devices/motor/base_types/__init__.py deleted file mode 100644 index e69de29b..00000000 diff --git a/unilabos/devices/motor/commands/PositionControl.py b/unilabos/devices/motor/commands/PositionControl.py deleted file mode 100644 index b3cabbf8..00000000 --- a/unilabos/devices/motor/commands/PositionControl.py +++ /dev/null @@ -1,92 +0,0 @@ - -from ..base_types.PrPath import PR_PATH -from ..Utils import create_command, get_result_byte_int, get_result_byte_str, send_command - - -def create_position_commands(slave_id: int, which: int, how: PR_PATH, - position: float, velocity: int = 300, - acc_time: int = 50, dec_time: int = 50, - special: int = 0) -> list[list[bytes]]: - """ - 创建位置相关的Modbus命令列表 - - Args: - slave_id: 从站地址 - which: PR路径号(0-7) - how: PR_PATH枚举,定义运动方式 - position: 目标位置(Pulse) - velocity: 运行速度(rpm) - acc_time: 加速时间(ms/Krpm),默认50 - dec_time: 减速时间(ms/Krpm),默认50 - special: 特殊参数,默认0 - - Returns: - 包含所有设置命令的列表 - """ - if not 0 <= which <= 7: - raise ValueError("which必须在0到7之间") - - base_addr = 0x6200 + which * 8 - - # 位置值保持原样(Pulse) - position = int(position) - print(f"路径方式 {' '.join(bin(how.value)[2:])} 位置 {position} 速度 {velocity}") - position_high = (position >> 16) & 0xFFFF # 获取高16位 - position_low = position & 0xFFFF # 获取低16位 - - # 速度值(rpm)转换为0x0000格式 - velocity_value = 0x0000 + velocity - - # 加减速时间(ms/Krpm)转换为0x0000格式 - acc_time_value = 0x0000 + int(acc_time) - dec_time_value = 0x0000 + int(dec_time) - - # 特殊参数转换为0x0000格式 - special_value = 0x0000 + special - return [ - create_command(slave_id, 0x06, base_addr + 0, how.value), # 路径方式 - create_command(slave_id, 0x06, base_addr + 1, position_high), # 位置高16位 - create_command(slave_id, 0x06, base_addr + 2, position_low), # 位置低16位 - create_command(slave_id, 0x06, base_addr + 3, velocity_value), # 运行速度 - create_command(slave_id, 0x06, base_addr + 4, acc_time_value), # 加速时间 - create_command(slave_id, 0x06, base_addr + 5, dec_time_value), # 减速时间 - create_command(slave_id, 0x06, base_addr + 6, special_value), # 特殊参数 - ] - -def create_position_run_command(slave_id: int, which: int) -> list[list[bytes]]: - print(f"运行路径 PR{which}") - return [create_command(slave_id, 0x06, 0x6002, 0x0010 + which)] - -def run_set_position_zero(ser, DEVICE_ADDRESS) -> list[list[bytes]]: - print(f"手动回零") - send_command(ser, create_command(DEVICE_ADDRESS, 0x06, 0x6002, 0x0021)) - -def run_stop(ser, DEVICE_ADDRESS) -> list[list[bytes]]: - print(f"急停") - send_command(ser, create_command(DEVICE_ADDRESS, 0x06, 0x6002, 0x0040)) - -def run_set_forward_run(ser, DEVICE_ADDRESS) -> list[list[bytes]]: - print(f"设定正方向运动") - send_command(ser, create_command(DEVICE_ADDRESS, 0x06, 0x0007, 0x0000)) - -def run_set_backward_run(ser, DEVICE_ADDRESS) -> list[list[bytes]]: - print(f"设定反方向运动") - send_command(ser, create_command(DEVICE_ADDRESS, 0x06, 0x0007, 0x0001)) - -def run_get_command_position(ser, DEVICE_ADDRESS, print_pos=True) -> int: - retH = send_command(ser, create_command(DEVICE_ADDRESS, 0x03, 0x602A, 0x0001)) # 命令位置H - retL = send_command(ser, create_command(DEVICE_ADDRESS, 0x03, 0x602B, 0x0001)) # 命令位置L - value = get_result_byte_str(retH) + get_result_byte_str(retL) - value = int(value, 16) - if print_pos: - print(f"命令位置: {value}") - return value - -def run_get_motor_position(ser, DEVICE_ADDRESS, print_pos=True) -> int: - retH = send_command(ser, create_command(DEVICE_ADDRESS, 0x03, 0x602C, 0x0001)) # 电机位置H - retL = send_command(ser, create_command(DEVICE_ADDRESS, 0x03, 0x602D, 0x0001)) # 电机位置L - value = get_result_byte_str(retH) + get_result_byte_str(retL) - value = int(value, 16) - if print_pos: - print(f"电机位置: {value}") - return value diff --git a/unilabos/devices/motor/commands/Status.py b/unilabos/devices/motor/commands/Status.py deleted file mode 100644 index c9d954c7..00000000 --- a/unilabos/devices/motor/commands/Status.py +++ /dev/null @@ -1,44 +0,0 @@ -import time -from ..Utils import create_command, send_command -from .PositionControl import run_get_motor_position - - -def run_get_status(ser, DEVICE_ADDRESS, print_status=True) -> list[list[bytes]]: - # Bit0 故障 - # Bit1 使能 - # Bit2 运行 - # Bit4 指令完成 - # Bit5 路径完成 - # Bit6 回零完成 - ret = send_command(ser, create_command(DEVICE_ADDRESS, 0x03, 0x1003, 0x0001)) - status = bin(int(ret.hex()[6:10], 16))[2:] - # 用0左位补齐 - status = status.zfill(8) - status_info_list = [] - if status[-1] == "1": - status_info_list.append("故障") - if status[-2] == "1": - status_info_list.append("使能") - if status[-3] == "1": - status_info_list.append("运行") - if status[-5] == "1": - status_info_list.append("指令完成") - if status[-6] == "1": - status_info_list.append("路径完成") - if status[-7] == "1": - status_info_list.append("回零完成") - if print_status: - print(f"获取状态: {' '.join(status_info_list)}") - return status_info_list - -def run_until_status(ser, DEVICE_ADDRESS, status_info: str, max_time=10): - start_time = time.time() - while True: - ret = run_get_status(ser, DEVICE_ADDRESS) - if status_info in ret: - break - if time.time() - start_time > max_time: - print(f"状态未达到 {status_info} 超时") - return False - time.sleep(0.05) - return True diff --git a/unilabos/devices/motor/commands/Warning.py b/unilabos/devices/motor/commands/Warning.py deleted file mode 100644 index 6744e072..00000000 --- a/unilabos/devices/motor/commands/Warning.py +++ /dev/null @@ -1,12 +0,0 @@ -from serial import Serial -from ..Consts import Config -from ..Utils import create_command, send_command - - -def create_elimate_warning_command(DEVICE_ADDRESS): - return create_command(DEVICE_ADDRESS, 0x06, 0x0145, 0x0087) - - -def run_elimate_warning(ser: Serial, DEVICE_ADDRESS): - send_command(ser, create_elimate_warning_command(DEVICE_ADDRESS)) - print("清除警报") diff --git a/unilabos/devices/motor/commands/__init__.py b/unilabos/devices/motor/commands/__init__.py deleted file mode 100644 index e69de29b..00000000 diff --git a/unilabos/devices/motor/iCL42.py b/unilabos/devices/motor/iCL42.py deleted file mode 100644 index 57bc4678..00000000 --- a/unilabos/devices/motor/iCL42.py +++ /dev/null @@ -1,126 +0,0 @@ -import os -import sys -from abc import abstractmethod -from typing import Optional - -import serial - -from .Consts import Config -from .FakeSerial import FakeSerial -from .Utils import run_commands -from .base_types.PrPath import PR_PATH -from .commands.PositionControl import run_get_command_position, run_set_forward_run, create_position_commands, \ - create_position_run_command -from .commands.Warning import run_elimate_warning - -try: - from unilabos.utils.pywinauto_util import connect_application, get_process_pid_by_name, get_ui_path_with_window_specification, print_wrapper_identifiers - from unilabos.device_comms.universal_driver import UniversalDriver, SingleRunningExecutor - from unilabos.device_comms import universal_driver as ud -except Exception as e: - sys.path.insert(0, os.path.abspath(os.path.join(os.path.dirname(__file__), "..", "..", ".."))) - from unilabos.utils.pywinauto_util import connect_application, get_process_pid_by_name, get_ui_path_with_window_specification, print_wrapper_identifiers - from unilabos.device_comms.universal_driver import UniversalDriver, SingleRunningExecutor - from unilabos.device_comms import universal_driver as ud - print(f"使用文件DEBUG运行: {e}") - - -class iCL42Driver(UniversalDriver): - _ser: Optional[serial.Serial | FakeSerial] = None - _motor_position: Optional[int] = None - _DEVICE_COM: Optional[str] = None - _DEVICE_ADDRESS: Optional[int] = None - # 运行状态 - _is_executing_run: bool = False - _success: bool = False - - @property - def motor_position(self) -> int: - return self._motor_position - - @property - def is_executing_run(self) -> bool: - return self._is_executing_run - - @property - def success(self) -> bool: - return self._success - - def init_device(self): - # 配置串口参数 - if Config.OPEN_DEVICE: - self._ser = serial.Serial( - port=self._DEVICE_COM, # 串口号 - baudrate=38400, # 波特率 - bytesize=serial.EIGHTBITS, # 数据位 - parity=serial.PARITY_NONE, # 校验位 N-无校验 - stopbits=serial.STOPBITS_TWO, # 停止位 - timeout=1 # 超时时间 - ) - else: - self._ser = FakeSerial() - - def run_motor(self, mode: str, position: float, velocity: int): - if self._ser is None: - print("Device is not initialized") - self._success = False - return False - def post_func(res, _): - self._success = res - if not res: - self._is_executing_run = False - ins: SingleRunningExecutor = SingleRunningExecutor.get_instance( - self.execute_run_motor, post_func - ) - # if not ins.is_ended and ins.is_started: - # print("Function is running") - # self._success = False - # return False - # elif not ins.is_started: - # print("Function started") - # ins.start() # 开始执行 - # else: - # print("Function reset and started") - ins.reset() - ins.start(mode=mode, position=position, velocity=velocity) - - def execute_run_motor(self, mode: str, position: float, velocity: int): - position = int(position * 1000) - PR = 0 - run_elimate_warning(self._ser, self._DEVICE_ADDRESS) - run_set_forward_run(self._ser, self._DEVICE_ADDRESS) - run_commands( - self._ser, 0.1, - create_position_commands(self._DEVICE_ADDRESS, PR, PR_PATH[mode], position, velocity), # 41.8cm 21.8cm - create_position_run_command(self._DEVICE_ADDRESS, PR), - ) - # if run_until_status(self._ser, self._DEVICE_ADDRESS, "路径完成"): - # pass - - - def __init__(self, device_com: str = "COM9", device_address: int = 0x01): - self._DEVICE_COM = device_com - self._DEVICE_ADDRESS = device_address - self.init_device() - # 启动所有监控器 - self.checkers = [ - # PositionChecker(self, 1), - ] - for checker in self.checkers: - checker.start_monitoring() - -@abstractmethod -class DriverChecker(ud.DriverChecker): - driver: iCL42Driver - -class PositionChecker(DriverChecker): - def check(self): - # noinspection PyProtectedMember - if self.driver._ser is not None: - # noinspection PyProtectedMember - self.driver._motor_position = run_get_command_position(self.driver._ser, self.driver._DEVICE_ADDRESS) - -# 示例用法 -if __name__ == "__main__": - driver = iCL42Driver("COM3") - driver._is_executing_run = True diff --git a/unilabos/devices/motor/test.py b/unilabos/devices/motor/test.py deleted file mode 100644 index dea221ba..00000000 --- a/unilabos/devices/motor/test.py +++ /dev/null @@ -1,79 +0,0 @@ -# 使用pyserial进行485的协议通信,端口指定为COM4 -import serial -from serial.rs485 import RS485Settings -import traceback - - -from Consts import Config -from FakeSerial import FakeSerial -from base_types.PrPath import PR_PATH -from Utils import run_commands -from commands.PositionControl import create_position_commands, create_position_run_command, run_get_command_position, run_get_motor_position, run_set_forward_run -from commands.Status import run_get_status, run_until_status -from commands.Warning import run_elimate_warning -from Grasp import EleGripper - - -DEVICE_ADDRESS = Config.DEVICE_ADDRESS - -# 配置串口参数 -if Config.OPEN_DEVICE: - ser = serial.Serial( - port='COM11', # 串口号 - baudrate=38400, # 波特率 - bytesize=serial.EIGHTBITS, # 数据位 - parity=serial.PARITY_NONE, # 校验位 N-无校验 - stopbits=serial.STOPBITS_TWO, # 停止位 - timeout=1 # 超时时间 - ) -else: - ser = FakeSerial() - -# RS485模式支持(如果需要) -try: - ser.rs485_mode = RS485Settings( - rts_level_for_tx=True, - rts_level_for_rx=False, - # delay_before_tx=0.01, - # delay_before_rx=0.01 - ) -except AttributeError: - traceback.print_exc() - print("RS485模式需要支持的硬件和pyserial版本") - -# run_set_position_zero(ser, DEVICE_ADDRESS) - -# api.get_running_state(ser, DEVICE_ADDRESS) -gripper = EleGripper("COM12") -gripper.init_gripper() -gripper.wait_for_gripper_init() -PR = 0 -run_get_status(ser, DEVICE_ADDRESS) -run_elimate_warning(ser, DEVICE_ADDRESS) -run_set_forward_run(ser, DEVICE_ADDRESS) -run_commands( - ser, 0.1, - create_position_commands(DEVICE_ADDRESS, PR, PR_PATH.ABS_POS, 20 * 1000, 300), # 41.8cm 21.8cm - create_position_run_command(DEVICE_ADDRESS, PR), -) -if run_until_status(ser, DEVICE_ADDRESS, "路径完成"): - pass -gripper.gripper_move(210,127,255) -gripper.wait_for_gripper() -gripper.rotate_move_abs(135,10,255) -gripper.data_reader() -print(gripper.rot_data) -run_commands( - ser, 0.1, - create_position_commands(DEVICE_ADDRESS, PR, PR_PATH.ABS_POS, 30 * 1000, 300), # 41.8cm 21.8cm - create_position_run_command(DEVICE_ADDRESS, PR), -) -gripper.gripper_move(210,127,255) -gripper.wait_for_gripper() -gripper.rotate_move_abs(135,10,255) -gripper.data_reader() - -# run_get_command_position(ser, DEVICE_ADDRESS) -# run_get_motor_position(ser, DEVICE_ADDRESS) - -# ser.close() diff --git a/unilabos/devices/neware_battery_test_system/OSS_UPLOAD_README_CN.md b/unilabos/devices/neware_battery_test_system/OSS_UPLOAD_README_CN.md deleted file mode 100644 index 21826dff..00000000 --- a/unilabos/devices/neware_battery_test_system/OSS_UPLOAD_README_CN.md +++ /dev/null @@ -1,560 +0,0 @@ -# 新威电池测试系统 - OSS 上传功能说明 - -## 功能概述 - -本次更新为新威电池测试系统添加了**阿里云 OSS 文件上传功能**,采用统一的 API 方式,允许将测试数据备份文件上传到云端存储。 - -## 版本更新说明 - -### ⚠️ 重大变更(2025-12-17) - -本次更新将 OSS 上传方式从 **`oss2` 库** 改为 **统一 API 方式**,实现与团队其他系统的统一。 - -**主要变化**: -- ✅ 用 `requests` 库 -- ✅ 通过统一 API 获取预签名 URL 进行上传 -- ✅ 简化环境变量配置(仅需要 JWT Token) -- ✅ 返回文件访问 URL - -## 主要改动 - -### 1. OSS 上传工具函数重构(第30-200行) - -#### 新增函数 - -- **`get_upload_token(base_url, auth_token, scene, filename)`** - 从统一 API 获取文件上传的预签名 URL - -- **`upload_file_with_presigned_url(upload_info, file_path)`** - 使用预签名 URL 上传文件到 OSS - -#### 更新的函数 - -- **`upload_file_to_oss(local_file_path, oss_object_name)`** - 上传单个文件到阿里云 OSS(使用统一 API 方式) - - 返回值变更:成功时返回文件访问 URL,失败时返回 `False` - -- **`upload_files_to_oss(file_paths, oss_prefix)`** - 批量上传文件列表 - - `oss_prefix` 参数保留但暂不使用(接口兼容性) - -- **`upload_directory_to_oss(local_dir, oss_prefix)`** - 上传整个目录 - - 简化实现,直接使用文件名上传 - -### 2. 环境变量配置简化 - -#### 新方式(推荐) -```bash -# ✅ 必需 -UNI_LAB_AUTH_TOKEN # API Key 格式: "Api xxxxxx" - -# ✅ 可选(有默认值) -UNI_LAB_BASE_URL (默认: https://uni-lab.test.bohrium.com) -UNI_LAB_UPLOAD_SCENE (默认: job,其他值会被改成 default) -``` - -### 3. 初始化方法(保持不变) - -`__init__` 方法中的 OSS 相关配置参数: - -```python -# OSS 上传配置 -self.oss_upload_enabled = False # 默认不启用 OSS 上传 -self.oss_prefix = "neware_backup" # OSS 对象路径前缀 -self._last_backup_dir = None # 记录最近一次的 backup_dir -``` - -**默认行为**:OSS 上传功能默认关闭(`oss_upload_enabled=False`),不影响现有系统。 - -### 4. upload_backup_to_oss 方法(保持不变) - -```python -def upload_backup_to_oss( - self, - backup_dir: str = None, - file_pattern: str = "*", - oss_prefix: str = None -) -> dict -``` - -## 使用说明 - -### 前置条件 - -#### 1. 安装依赖 - -```bash -# requests 库(通常已安装) -pip install requests -``` - -#### 2. 配置环境变量 - -根据您使用的终端类型配置环境变量: - -##### PowerShell(推荐) - -```powershell -# 必需:设置认证 Token(API Key 格式) -$env:UNI_LAB_AUTH_TOKEN = "Api xxxx" - -# 可选:自定义服务器地址(默认为 test 环境) -$env:UNI_LAB_BASE_URL = "https://uni-lab.test.bohrium.com" - -# 可选:自定义上传场景(默认为 job) -$env:UNI_LAB_UPLOAD_SCENE = "job" - -# 验证是否设置成功 -echo $env:UNI_LAB_AUTH_TOKEN -``` - -##### CMD / 命令提示符 - -```cmd -REM 必需:设置认证 Token(API Key 格式) -set UNI_LAB_AUTH_TOKEN=Api xxxx - -REM 可选:自定义配置 -set UNI_LAB_BASE_URL=https://uni-lab.test.bohrium.com -set UNI_LAB_UPLOAD_SCENE=job - -REM 验证是否设置成功 -echo %UNI_LAB_AUTH_TOKEN% -``` - -##### Linux/Mac - -```bash -# 必需:设置认证 Token(API Key 格式) -export UNI_LAB_AUTH_TOKEN="Api xxxx" - -# 可选:自定义配置 -export UNI_LAB_BASE_URL="https://uni-lab.test.bohrium.com" -export UNI_LAB_UPLOAD_SCENE="job" - -# 验证是否设置成功 -echo $UNI_LAB_AUTH_TOKEN -``` - -#### 3. 获取认证 Token - -> **重要**:从 Uni-Lab 主页 → 账号安全 中获取 API Key。 - -**获取步骤**: -1. 登录 Uni-Lab 系统 -2. 进入主页 → 账号安全 -3. 复制 API Key - -Token 格式示例: -``` -Api 48ccxx336fba44f39e1e37db93xxxxx -``` - -> **提示**: -> - 如果 Token 已经包含 `Api ` 前缀,直接使用 -> - 如果没有前缀,代码会自动添加 `Api ` 前缀 -> - 旧版 `Bearer` JWT Token 格式仍然兼容 - -#### 4. 持久化配置(可选) - -**临时配置**:上述命令设置的环境变量只在当前终端会话中有效。 - -**持久化方式 1:PowerShell 配置文件** -```powershell -# 编辑 PowerShell 配置文件 -notepad $PROFILE - -# 在打开的文件中添加: -$env:UNI_LAB_AUTH_TOKEN = "Api 你的API_Key" -``` - -**持久化方式 2:Windows 系统环境变量** -- 右键"此电脑" → "属性" → "高级系统设置" → "环境变量" -- 添加用户变量或系统变量: - - 变量名:`UNI_LAB_AUTH_TOKEN` - - 变量值:`Api 你的API_Key` - -### 使用流程 - -#### 步骤 1:启用 OSS 上传功能 - -**推荐方式:在 `device.json` 中配置** - -编辑设备配置文件 `unilabos/devices/neware_battery_test_system/device.json`,在 `config` 中添加: - -```json -{ - "nodes": [ - { - "id": "NEWARE_BATTERY_TEST_SYSTEM", - "config": { - "ip": "127.0.0.1", - "port": 502, - "machine_id": 1, - "oss_upload_enabled": true, - "oss_prefix": "neware_backup/2025-12" - } - } - ] -} -``` - -**参数说明**: -- `oss_upload_enabled`: 设置为 `true` 启用 OSS 上传 -- `oss_prefix`: OSS 文件路径前缀,建议按日期或项目组织(暂时未使用,保留接口兼容性) - -**其他方式:通过初始化参数** - -```python -device = NewareBatteryTestSystem( - ip="127.0.0.1", - port=502, - oss_upload_enabled=True, # 启用 OSS 上传 - oss_prefix="neware_backup/2025-12" # 可选:自定义路径前缀 -) -``` - -**配置完成后,重启 ROS 节点使配置生效。** - -#### 步骤 2:提交测试任务 - -使用 `submit_from_csv` 提交测试任务: - -```python -result = device.submit_from_csv( - csv_path="test_data.csv", - output_dir="D:/neware_output" -) -``` - -此时会创建以下目录结构: -``` -D:/neware_output/ -├── xml_dir/ # XML 配置文件 -└── backup_dir/ # 测试数据备份(由新威设备生成) -``` - -#### 步骤 3:等待测试完成 - -等待新威设备完成测试,备份文件会生成到 `backup_dir` 中。 - -#### 步骤 4:上传备份文件到 OSS - -**方法 A:使用默认设置(推荐)** -```python -# 自动使用最近一次的 backup_dir,上传所有文件 -result = device.upload_backup_to_oss() -``` - -**方法 B:指定备份目录** -```python -# 手动指定备份目录 -result = device.upload_backup_to_oss( - backup_dir="D:/neware_output/backup_dir" -) -``` - -**方法 C:筛选特定文件** -```python -# 仅上传 CSV 文件 -result = device.upload_backup_to_oss( - backup_dir="D:/neware_output/backup_dir", - file_pattern="*.csv" -) - -# 仅上传特定电池编号的文件 -result = device.upload_backup_to_oss( - file_pattern="Battery_A001_*.nda" -) -``` - -### 返回结果示例 - -**成功上传所有文件**: -```python -{ - "return_info": "全部上传成功: 15/15 个文件", - "success": True, - "uploaded_count": 15, - "total_count": 15, - "failed_files": [], - "uploaded_files": [ - { - "filename": "Battery_A001.ndax", - "url": "https://uni-lab-test.oss-cn-zhangjiakou.aliyuncs.com/job/abc123.../Battery_A001.ndax" - }, - { - "filename": "Battery_A002.ndax", - "url": "https://uni-lab-test.oss-cn-zhangjiakou.aliyuncs.com/job/abc123.../Battery_A002.ndax" - } - # ... 其他 13 个文件 - ] -} -``` - -**部分上传成功**: -```python -{ - "return_info": "部分上传成功: 12/15 个文件,失败 3 个", - "success": True, - "uploaded_count": 12, - "total_count": 15, - "failed_files": ["Battery_A003.csv", "Battery_A007.csv", "test.log"], - "uploaded_files": [ - { - "filename": "Battery_A001.ndax", - "url": "https://uni-lab-test.oss-cn-zhangjiakou.aliyuncs.com/job/abc123.../Battery_A001.ndax" - }, - { - "filename": "Battery_A002.ndax", - "url": "https://uni-lab-test.oss-cn-zhangjiakou.aliyuncs.com/job/abc123.../Battery_A002.ndax" - } - # ... 其他 10 个成功上传的文件 - ] -} -``` - -> **说明**:`uploaded_files` 字段包含所有成功上传文件的详细信息: -> - `filename`: 文件名(不含路径) -> - `url`: 文件在 OSS 上的完整访问 URL - -## 错误处理 - -### OSS 上传未启用 - -如果 `oss_upload_enabled=False`,调用 `upload_backup_to_oss` 会返回: -```python -{ - "return_info": "OSS 上传未启用 (oss_upload_enabled=False),跳过上传。备份目录: ...", - "success": False, - "uploaded_count": 0, - "total_count": 0, - "failed_files": [] -} -``` - -**解决方法**:设置 `device.oss_upload_enabled = True` - -### 环境变量未配置 - -如果缺少 `UNI_LAB_AUTH_TOKEN`,会返回: -```python -{ - "return_info": "OSS 环境变量配置错误: 请设置环境变量: UNI_LAB_AUTH_TOKEN", - "success": False, - ... -} -``` - -**解决方法**:按照前置条件配置环境变量 - -### 备份目录不存在 - -如果指定的备份目录不存在,会返回: -```python -{ - "return_info": "备份目录不存在: D:/neware_output/backup_dir", - "success": False, - ... -} -``` - -**解决方法**:检查目录路径是否正确,或等待测试生成备份文件 - -### API 认证失败 - -如果 Token 无效或过期,会返回: -```python -{ - "return_info": "获取凭证失败: 认证失败", - "success": False, - ... -} -``` - -**解决方法**:检查 Token 是否正确,或联系开发团队获取新 Token - -## 技术细节 - -### OSS 上传流程(新方式) - -```mermaid -flowchart TD - A[开始上传] --> B[验证配置和环境变量] - B --> C[扫描备份目录] - C --> D[筛选符合 pattern 的文件] - D --> E[遍历每个文件] - E --> F[调用 API 获取预签名 URL] - F --> G{获取成功?} - G -->|是| H[使用预签名 URL 上传文件] - G -->|否| I[记录失败] - H --> J{上传成功?} - J -->|是| K[记录成功 + 文件 URL] - J -->|否| I - I --> L{还有文件?} - K --> L - L -->|是| E - L -->|否| M[返回统计结果] -``` - -### 上传 API 流程 - -1. **获取预签名 URL** - - 请求:`GET /api/v1/applications/token?scene={scene}&filename={filename}` - - 认证:`Authorization: Bearer {token}` - - 响应:`{code: 0, data: {url: "预签名URL", path: "文件路径"}}` - -2. **上传文件** - - 请求:`PUT {预签名URL}` - - 内容:文件二进制数据 - - 响应:HTTP 200 表示成功 - -3. **生成访问 URL** - - 格式:`https://{OSS_PUBLIC_HOST}/{path}` - - 示例:`https://uni-lab-test.oss-cn-zhangjiakou.aliyuncs.com/job/20251217/battery_data.csv` - -### 日志记录 - -所有上传操作都会通过 ROS 日志系统记录: -- `INFO` 级别:上传进度和成功信息 -- `WARNING` 级别:空目录、未启用等警告 -- `ERROR` 级别:上传失败、配置错误 - -## 注意事项 - -1. **上传时机**:`backup_dir` 中的文件是在新威设备执行测试过程中实时生成的,请确保测试已完成再上传。 - -2. **文件命名**:上传到 OSS 的文件会保留原始文件名,路径由统一 API 分配。 - -3. **网络要求**:上传需要稳定的网络连接到阿里云 OSS 服务。 - -4. **Token 有效期**:JWT Token 有过期时间,过期后需要重新获取。 - -5. **成本考虑**:OSS 存储和流量会产生费用,请根据需要合理设置文件筛选规则。 - -6. **并发上传**:当前实现为串行上传,大量文件上传可能需要较长时间。 - -7. **文件大小限制**:请注意单个文件大小是否有上传限制(由统一 API 控制)。 - -## 兼容性 - -- ✅ **向后兼容**:默认 `oss_upload_enabled=False`,不影响现有系统 -- ✅ **可选功能**:仅在需要时启用 -- ✅ **独立操作**:上传失败不会影响测试任务的提交和执行 -- ⚠️ **环境变量变更**:需要更新环境变量配置(从 OSS AK/SK 改为 JWT Token) - -## 迁移指南 - -如果您之前使用 `oss2` 库方式,请按以下步骤迁移: - -### 1. 卸载旧依赖(可选) -```bash -pip uninstall oss2 -``` - -### 2. 删除旧环境变量 -```powershell -# PowerShell -Remove-Item Env:\OSS_ACCESS_KEY_ID -Remove-Item Env:\OSS_ACCESS_KEY_SECRET -Remove-Item Env:\OSS_BUCKET_NAME -Remove-Item Env:\OSS_ENDPOINT -``` - -### 3. 设置新环境变量 -```powershell -# PowerShell -$env:UNI_LAB_AUTH_TOKEN = "Bearer 你的token..." -``` - -### 4. 测试上传功能 -```python -# 验证上传是否正常工作 -result = device.upload_backup_to_oss(backup_dir="测试目录") -print(result) -``` - -## 常见问题 - -**Q: 为什么要从 `oss2` 改为统一 API?** -A: 为了与团队其他系统保持一致,简化配置,并统一认证方式。 - -**Q: Token 在哪里获取?** -A: 请联系开发团队获取有效的 JWT Token。 - -**Q: Token 过期了怎么办?** -A: 重新获取新的 Token 并更新环境变量 `UNI_LAB_AUTH_TOKEN`。 - -**Q: 可以自定义上传路径吗?** -A: 当前版本路径由统一 API 自动分配,`oss_prefix` 参数暂不使用(保留接口兼容性)。 - -**Q: 为什么不在 `submit_from_csv` 中自动上传?** -A: 因为备份文件在测试进行中逐步生成,方法返回时可能文件尚未完全生成,因此提供独立的上传方法更灵活。 - -**Q: 上传后如何访问文件?** -A: 上传成功后会返回文件访问 URL,格式为 `https://uni-lab-test.oss-cn-zhangjiakou.aliyuncs.com/{path}` - -**Q: 如何删除已上传的文件?** -A: 需要通过 OSS 控制台或 API 操作,本功能仅负责上传。 - -## 验证上传结果 - -### 方法1:通过阿里云控制台查看 - -1. 登录 [阿里云 OSS 控制台](https://oss.console.aliyun.com/) -2. 点击左侧 **Bucket列表** -3. 选择 `uni-lab-test` Bucket -4. 点击 **文件管理** -5. 查看上传的文件列表 - -### 方法2:使用返回的文件 URL - -上传成功后,`upload_file_to_oss()` 会返回文件访问 URL: -```python -url = upload_file_to_oss("local_file.csv") -print(f"文件访问 URL: {url}") -# 输出示例:https://uni-lab-test.oss-cn-zhangjiakou.aliyuncs.com/job/20251217/local_file.csv -``` - -> **注意**:OSS 文件默认为私有访问,直接访问 URL 可能需要签名认证。 - -### 方法3:使用 ossutil 命令行工具 - -安装 [ossutil](https://help.aliyun.com/document_detail/120075.html) 后: - -```bash -# 列出文件 -ossutil ls oss://uni-lab-test/job/ - -# 下载文件到本地 -ossutil cp oss://uni-lab-test/job/20251217/文件名 ./本地路径 - -# 生成签名URL(有效期1小时) -ossutil sign oss://uni-lab-test/job/20251217/文件名 --timeout 3600 -``` - -## 更新日志 - -- **2025-12-17**: v2.0(重大更新) - - ⚠️ 从 `oss2` 库改为统一 API 方式 - - 简化环境变量配置(仅需 JWT Token) - - 新增 `get_upload_token()` 和 `upload_file_with_presigned_url()` 函数 - - `upload_file_to_oss()` 返回值改为文件访问 URL - - 更新文档和迁移指南 - -- **2025-12-15**: v1.1 - - 添加初始化参数 `oss_upload_enabled` 和 `oss_prefix` - - 支持在 `device.json` 中配置 OSS 上传 - - 更新使用说明,添加验证方法 - -- **2025-12-13**: v1.0 初始版本 - - 添加 OSS 上传工具函数(基于 `oss2` 库) - - 创建 `upload_backup_to_oss` 动作方法 - - 支持文件筛选和自定义 OSS 路径 - -## 参考资料 - -- [Uni-Lab 统一文件上传 API 文档](https://uni-lab.test.bohrium.com/api/docs)(如有) -- [阿里云 OSS 控制台](https://oss.console.aliyun.com/) -- [ossutil 工具文档](https://help.aliyun.com/document_detail/120075.html) diff --git a/unilabos/devices/neware_battery_test_system/OSS_UPLOAD_README_EN.md b/unilabos/devices/neware_battery_test_system/OSS_UPLOAD_README_EN.md deleted file mode 100644 index e989c64a..00000000 --- a/unilabos/devices/neware_battery_test_system/OSS_UPLOAD_README_EN.md +++ /dev/null @@ -1,574 +0,0 @@ -# Neware Battery Test System - OSS Upload Feature - -## Overview - -This update adds **Aliyun OSS file upload functionality** to the Neware Battery Test System using a unified API approach, allowing test data backup files to be uploaded to cloud storage. - -## Version Updates - -### ⚠️ Breaking Changes (2025-12-17) - -This update changes the OSS upload method from **`oss2` library** to **unified API approach** to align with other team systems. - -**Main Changes**: -- ✅ Use `requests` library -- ✅ Upload via presigned URLs obtained through unified API -- ✅ Simplified environment variable configuration (only API Key required) -- ✅ Returns file access URLs - -## Main Changes - -### 1. OSS Upload Functions Refactored (Lines 30-200) - -#### New Functions - -- **`get_upload_token(base_url, auth_token, scene, filename)`** - Obtain presigned URL for file upload from unified API - -- **`upload_file_with_presigned_url(upload_info, file_path)`** - Upload file to OSS using presigned URL - -#### Updated Functions - -- **`upload_file_to_oss(local_file_path, oss_object_name)`** - Upload single file to Aliyun OSS (using unified API approach) - - Return value changed: returns file access URL on success, `False` on failure - -- **`upload_files_to_oss(file_paths, oss_prefix)`** - Batch upload file list - - `oss_prefix` parameter retained but not used (interface compatibility) - -- **`upload_directory_to_oss(local_dir, oss_prefix)`** - Upload entire directory - - Simplified implementation, uploads using filenames directly - -### 2. Simplified Environment Variable Configuration - -#### Old Method (Deprecated) -```bash -# ❌ No longer used -OSS_ACCESS_KEY_ID -OSS_ACCESS_KEY_SECRET -OSS_BUCKET_NAME -OSS_ENDPOINT -``` - -#### New Method (Recommended) -```bash -# ✅ Required -UNI_LAB_AUTH_TOKEN # API Key format: "Api xxxxxx" - -# ✅ Optional (with defaults) -UNI_LAB_BASE_URL (default: https://uni-lab.test.bohrium.com) -UNI_LAB_UPLOAD_SCENE (default: job, other values will be changed to default) -``` - -### 3. Initialization Method (Unchanged) - -OSS-related configuration parameters in `__init__` method: - -```python -# OSS upload configuration -self.oss_upload_enabled = False # OSS upload disabled by default -self.oss_prefix = "neware_backup" # OSS object path prefix -self._last_backup_dir = None # Record last backup_dir -``` - -**Default Behavior**: OSS upload is disabled by default (`oss_upload_enabled=False`), does not affect existing systems. - -### 4. upload_backup_to_oss Method (Unchanged) - -```python -def upload_backup_to_oss( - self, - backup_dir: str = None, - file_pattern: str = "*", - oss_prefix: str = None -) -> dict -``` - -## Usage Guide - -### Prerequisites - -#### 1. Install Dependencies - -```bash -# requests library (usually pre-installed) -pip install requests -``` - -> **Note**: No longer need to install `oss2` library - -#### 2. Configure Environment Variables - -Configure environment variables based on your terminal type: - -##### PowerShell (Recommended) - -```powershell -# Required: Set authentication Token (API Key format) -$env:UNI_LAB_AUTH_TOKEN = "Api xxxx" - -# Optional: Custom server URL (defaults to test environment) -$env:UNI_LAB_BASE_URL = "https://uni-lab.test.bohrium.com" - -# Optional: Custom upload scene (defaults to job) -$env:UNI_LAB_UPLOAD_SCENE = "job" - -# Verify if set successfully -echo $env:UNI_LAB_AUTH_TOKEN -``` - -##### CMD / Command Prompt - -```cmd -REM Required: Set authentication Token (API Key format) -set UNI_LAB_AUTH_TOKEN=Api xxxx - -REM Optional: Custom configuration -set UNI_LAB_BASE_URL=https://uni-lab.test.bohrium.com -set UNI_LAB_UPLOAD_SCENE=job - -REM Verify if set successfully -echo %UNI_LAB_AUTH_TOKEN% -``` - -##### Linux/Mac - -```bash -# Required: Set authentication Token (API Key format) -export UNI_LAB_AUTH_TOKEN="Api xxxx" - -# Optional: Custom configuration -export UNI_LAB_BASE_URL="https://uni-lab.test.bohrium.com" -export UNI_LAB_UPLOAD_SCENE="job" - -# Verify if set successfully -echo $UNI_LAB_AUTH_TOKEN -``` - -#### 3. Obtain Authentication Token - -> **Important**: Obtain API Key from Uni-Lab Homepage → Account Security. - -**Steps to Obtain**: -1. Login to Uni-Lab system -2. Go to Homepage → Account Security -3. Copy your API Key - -Token format example: -``` -Api 48ccxx336fba44f39e1e37db93xxxxx -``` - -> **Tips**: -> - If Token already includes `Api ` prefix, use directly -> - If no prefix, code will automatically add `Api ` prefix -> - Old `Bearer` JWT Token format is still compatible - -#### 4. Persistent Configuration (Optional) - -**Temporary Configuration**: Environment variables set with the above commands are only valid for the current terminal session. - -**Persistence Method 1: PowerShell Profile** -```powershell -# Edit PowerShell profile -notepad $PROFILE - -# Add to the opened file: -$env:UNI_LAB_AUTH_TOKEN = "Api your_API_Key" -``` - -**Persistence Method 2: Windows System Environment Variables** -- Right-click "This PC" → "Properties" → "Advanced system settings" → "Environment Variables" -- Add user or system variable: - - Variable name: `UNI_LAB_AUTH_TOKEN` - - Variable value: `Api your_API_Key` - -### Usage Workflow - -#### Step 1: Enable OSS Upload Feature - -**Recommended: Configure in `device.json`** - -Edit device configuration file `unilabos/devices/neware_battery_test_system/device.json`, add to `config`: - -```json -{ - "nodes": [ - { - "id": "NEWARE_BATTERY_TEST_SYSTEM", - "config": { - "ip": "127.0.0.1", - "port": 502, - "machine_id": 1, - "oss_upload_enabled": true, - "oss_prefix": "neware_backup/2025-12" - } - } - ] -} -``` - -**Parameter Description**: -- `oss_upload_enabled`: Set to `true` to enable OSS upload -- `oss_prefix`: OSS file path prefix, recommended to organize by date or project (currently unused, retained for interface compatibility) - -**Alternative: Via Initialization Parameters** - -```python -device = NewareBatteryTestSystem( - ip="127.0.0.1", - port=502, - oss_upload_enabled=True, # Enable OSS upload - oss_prefix="neware_backup/2025-12" # Optional: custom path prefix -) -``` - -**After configuration, restart the ROS node for changes to take effect.** - -#### Step 2: Submit Test Tasks - -Use `submit_from_csv` to submit test tasks: - -```python -result = device.submit_from_csv( - csv_path="test_data.csv", - output_dir="D:/neware_output" -) -``` - -This creates the following directory structure: -``` -D:/neware_output/ -├── xml_dir/ # XML configuration files -└── backup_dir/ # Test data backup (generated by Neware device) -``` - -#### Step 3: Wait for Test Completion - -Wait for the Neware device to complete testing. Backup files will be generated in the `backup_dir`. - -#### Step 4: Upload Backup Files to OSS - -**Method A: Use Default Settings (Recommended)** -```python -# Automatically uses the last backup_dir, uploads all files -result = device.upload_backup_to_oss() -``` - -**Method B: Specify Backup Directory** -```python -# Manually specify backup directory -result = device.upload_backup_to_oss( - backup_dir="D:/neware_output/backup_dir" -) -``` - -**Method C: Filter Specific Files** -```python -# Upload only CSV files -result = device.upload_backup_to_oss( - backup_dir="D:/neware_output/backup_dir", - file_pattern="*.csv" -) - -# Upload files for specific battery IDs -result = device.upload_backup_to_oss( - file_pattern="Battery_A001_*.nda" -) -``` - -### Return Result Examples - -**All Files Uploaded Successfully**: -```python -{ - "return_info": "All uploads successful: 15/15 files", - "success": True, - "uploaded_count": 15, - "total_count": 15, - "failed_files": [], - "uploaded_files": [ - { - "filename": "Battery_A001.ndax", - "url": "https://uni-lab-test.oss-cn-zhangjiakou.aliyuncs.com/job/abc123.../Battery_A001.ndax" - }, - { - "filename": "Battery_A002.ndax", - "url": "https://uni-lab-test.oss-cn-zhangjiakou.aliyuncs.com/job/abc123.../Battery_A002.ndax" - } - # ... other 13 files - ] -} -``` - -**Partial Upload Success**: -```python -{ - "return_info": "Partial upload success: 12/15 files, 3 failed", - "success": True, - "uploaded_count": 12, - "total_count": 15, - "failed_files": ["Battery_A003.csv", "Battery_A007.csv", "test.log"], - "uploaded_files": [ - { - "filename": "Battery_A001.ndax", - "url": "https://uni-lab-test.oss-cn-zhangjiakou.aliyuncs.com/job/abc123.../Battery_A001.ndax" - }, - { - "filename": "Battery_A002.ndax", - "url": "https://uni-lab-test.oss-cn-zhangjiakou.aliyuncs.com/job/abc123.../Battery_A002.ndax" - } - # ... other 10 successfully uploaded files - ] -} -``` - -> **Note**: The `uploaded_files` field contains detailed information for all successfully uploaded files: -> - `filename`: Filename (without path) -> - `url`: Complete OSS access URL for the file - -## Error Handling - -### OSS Upload Not Enabled - -If `oss_upload_enabled=False`, calling `upload_backup_to_oss` returns: -```python -{ - "return_info": "OSS upload not enabled (oss_upload_enabled=False), skipping upload. Backup directory: ...", - "success": False, - "uploaded_count": 0, - "total_count": 0, - "failed_files": [] -} -``` - -**Solution**: Set `device.oss_upload_enabled = True` - -### Environment Variables Not Configured - -If `UNI_LAB_AUTH_TOKEN` is missing, returns: -```python -{ - "return_info": "OSS environment variable configuration error: Please set environment variable: UNI_LAB_AUTH_TOKEN", - "success": False, - ... -} -``` - -**Solution**: Configure environment variables as per prerequisites - -### Backup Directory Does Not Exist - -If specified backup directory doesn't exist, returns: -```python -{ - "return_info": "Backup directory does not exist: D:/neware_output/backup_dir", - "success": False, - ... -} -``` - -**Solution**: Check if directory path is correct, or wait for test to generate backup files - -### API Authentication Failed - -If Token is invalid or expired, returns: -```python -{ - "return_info": "Failed to get credentials: Authentication failed", - "success": False, - ... -} -``` - -**Solution**: Check if Token is correct, or contact development team for new Token - -## Technical Details - -### OSS Upload Process (New Method) - -```mermaid -flowchart TD - A[Start Upload] --> B[Verify Configuration and Environment Variables] - B --> C[Scan Backup Directory] - C --> D[Filter Files Matching Pattern] - D --> E[Iterate Each File] - E --> F[Call API to Get Presigned URL] - F --> G{Success?} - G -->|Yes| H[Upload File Using Presigned URL] - G -->|No| I[Record Failure] - H --> J{Upload Success?} - J -->|Yes| K[Record Success + File URL] - J -->|No| I - I --> L{More Files?} - K --> L - L -->|Yes| E - L -->|No| M[Return Statistics] -``` - -### Upload API Flow - -1. **Get Presigned URL** - - Request: `GET /api/v1/lab/storage/token?scene={scene}&filename={filename}&path={path}` - - Authentication: `Authorization: Api {api_key}` or `Authorization: Bearer {token}` - - Response: `{code: 0, data: {url: "presigned_url", path: "file_path"}}` - -2. **Upload File** - - Request: `PUT {presigned_url}` - - Content: File binary data - - Response: HTTP 200 indicates success - -3. **Generate Access URL** - - Format: `https://{OSS_PUBLIC_HOST}/{path}` - - Example: `https://uni-lab-test.oss-cn-zhangjiakou.aliyuncs.com/job/20251217/battery_data.csv` - -### Logging - -All upload operations are logged through ROS logging system: -- `INFO` level: Upload progress and success information -- `WARNING` level: Empty directory, not enabled warnings -- `ERROR` level: Upload failures, configuration errors - -## Important Notes - -1. **Upload Timing**: Files in `backup_dir` are generated in real-time during test execution. Ensure testing is complete before uploading. - -2. **File Naming**: Files uploaded to OSS retain original filenames. Paths are assigned by unified API. - -3. **Network Requirements**: Upload requires stable network connection to Aliyun OSS service. - -4. **Token Expiration**: JWT Tokens have expiration time. Need to obtain new token after expiration. - -5. **Cost Considerations**: OSS storage and traffic incur costs. Set file filtering rules appropriately. - -6. **Concurrent Upload**: Current implementation uses serial upload. Large number of files may take considerable time. - -7. **File Size Limits**: Note single file size upload limits (controlled by unified API). - -## Compatibility - -- ✅ **Backward Compatible**: Default `oss_upload_enabled=False`, does not affect existing systems -- ✅ **Optional Feature**: Enable only when needed -- ✅ **Independent Operation**: Upload failures do not affect test task submission and execution -- ⚠️ **Environment Variable Changes**: Need to update environment variable configuration (from OSS AK/SK to API Key) - -## Migration Guide - -If you previously used the `oss2` library method, follow these steps to migrate: - -### 1. Uninstall Old Dependencies (Optional) -```bash -pip uninstall oss2 -``` - -### 2. Remove Old Environment Variables -```powershell -# PowerShell -Remove-Item Env:\OSS_ACCESS_KEY_ID -Remove-Item Env:\OSS_ACCESS_KEY_SECRET -Remove-Item Env:\OSS_BUCKET_NAME -Remove-Item Env:\OSS_ENDPOINT -``` - -### 3. Set New Environment Variables -```powershell -# PowerShell -$env:UNI_LAB_AUTH_TOKEN = "Api your_API_Key" -``` - -### 4. Test Upload Functionality -```python -# Verify upload works correctly -result = device.upload_backup_to_oss(backup_dir="test_directory") -print(result) -``` - -## FAQ - -**Q: Why change from `oss2` to unified API?** -A: To maintain consistency with other team systems, simplify configuration, and unify authentication methods. - -**Q: Where to get the Token?** -A: Obtain API Key from Uni-Lab Homepage → Account Security. - -**Q: What if Token expires?** -A: Obtain a new API Key and update the `UNI_LAB_AUTH_TOKEN` environment variable. - -**Q: Can I customize upload paths?** -A: Current version has paths automatically assigned by unified API. `oss_prefix` parameter is currently unused (retained for interface compatibility). - -**Q: Why not auto-upload in `submit_from_csv`?** -A: Because backup files are generated progressively during testing, they may not be fully generated when the method returns. A separate upload method provides more flexibility. - -**Q: How to access files after upload?** -A: Upload success returns file access URL in format `https://uni-lab-test.oss-cn-zhangjiakou.aliyuncs.com/{path}` - -**Q: How to delete uploaded files?** -A: Need to operate through OSS console or API. This feature only handles uploads. - -## Verifying Upload Results - -### Method 1: Via Aliyun Console - -1. Login to [Aliyun OSS Console](https://oss.console.aliyun.com/) -2. Click **Bucket List** on the left -3. Select the `uni-lab-test` Bucket -4. Click **File Management** -5. View uploaded file list - -### Method 2: Using Returned File URL - -After successful upload, `upload_file_to_oss()` returns file access URL: -```python -url = upload_file_to_oss("local_file.csv") -print(f"File access URL: {url}") -# Example output: https://uni-lab-test.oss-cn-zhangjiakou.aliyuncs.com/job/20251217/local_file.csv -``` - -> **Note**: OSS files are private by default, direct URL access may require signature authentication. - -### Method 3: Using ossutil CLI Tool - -After installing [ossutil](https://help.aliyun.com/document_detail/120075.html): - -```bash -# List files -ossutil ls oss://uni-lab-test/job/ - -# Download file to local -ossutil cp oss://uni-lab-test/job/20251217/filename ./local_path - -# Generate signed URL (valid for 1 hour) -ossutil sign oss://uni-lab-test/job/20251217/filename --timeout 3600 -``` - -## Changelog - -- **2025-12-17**: v2.0 (Major Update) - - ⚠️ Changed from `oss2` library to unified API approach - - Simplified environment variable configuration (only API Key required) - - Added `get_upload_token()` and `upload_file_with_presigned_url()` functions - - `upload_file_to_oss()` return value changed to file access URL - - Updated documentation and migration guide - - Token format: Support both `Api Key` and `Bearer JWT` - - API endpoint: `/api/v1/lab/storage/token` - - Scene parameter: Fixed to `job` (other values changed to `default`) - -- **2025-12-15**: v1.1 - - Added initialization parameters `oss_upload_enabled` and `oss_prefix` - - Support OSS upload configuration in `device.json` - - Updated usage guide, added verification methods - -- **2025-12-13**: v1.0 Initial Version - - Added OSS upload utility functions (based on `oss2` library) - - Created `upload_backup_to_oss` action method - - Support file filtering and custom OSS paths - -## References - -- [Uni-Lab Unified File Upload API Documentation](https://uni-lab.test.bohrium.com/api/docs) (if available) -- [Aliyun OSS Console](https://oss.console.aliyun.com/) -- [ossutil Tool Documentation](https://help.aliyun.com/document_detail/120075.html) diff --git a/unilabos/devices/neware_battery_test_system/device.json b/unilabos/devices/neware_battery_test_system/device.json deleted file mode 100644 index 696112de..00000000 --- a/unilabos/devices/neware_battery_test_system/device.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "nodes": [ - { - "id": "NEWARE_BATTERY_TEST_SYSTEM", - "name": "Neware Battery Test System", - "parent": null, - "type": "device", - "class": "neware_battery_test_system", - "position": { - "x": 620.0, - "y": 200.0, - "z": 0 - }, - "config": { - "ip": "127.0.0.1", - "port": 502, - "machine_id": 1, - "devtype": "27", - "timeout": 20, - "size_x": 500.0, - "size_y": 500.0, - "size_z": 2000.0, - "oss_upload_enabled": true, - "oss_prefix": "neware_backup/2025-12" - }, - "data": { - "功能说明": "新威电池测试系统,提供720通道监控和CSV批量提交功能", - "监控功能": "支持720个通道的实时状态监控、2盘电池物料管理、状态导出等", - "提交功能": "通过submit_from_csv action从CSV文件批量提交测试任务。CSV必须包含: Battery_Code, Pole_Weight, 集流体质量, 活性物质含量, 克容量mah/g, 电池体系, 设备号, 排号, 通道号" - }, - "children": [] - } - ], - "links": [] -} \ No newline at end of file diff --git a/unilabos/devices/neware_battery_test_system/neware_battery_test_system.py b/unilabos/devices/neware_battery_test_system/neware_battery_test_system.py deleted file mode 100644 index 0a811458..00000000 --- a/unilabos/devices/neware_battery_test_system/neware_battery_test_system.py +++ /dev/null @@ -1,1838 +0,0 @@ -#!/usr/bin/env python3 -# -*- coding: utf-8 -*- - -""" -新威电池测试系统设备类 -- 提供TCP通信接口查询电池通道状态 -- 支持720个通道(devid 1-7, 8, 86) -- 兼容BTSAPI getchlstatus协议 - -设备特点: -- TCP连接: 默认127.0.0.1:502 -- 通道映射: devid->subdevid->chlid 三级结构 -- 状态类型: working/stop/finish/protect/pause/false/unknown -""" - -import os -import sys -import socket -import xml.etree.ElementTree as ET -import json -import time -from dataclasses import dataclass -from typing import Any, Dict, List, Optional, TypedDict - -from pylabrobot.resources import ResourceHolder, Coordinate, create_ordered_items_2d, Deck, Plate -from unilabos.ros.nodes.base_device_node import ROS2DeviceNode -from unilabos.ros.nodes.presets.workstation import ROS2WorkstationNode - -# ======================== -# OSS 上传工具函数 -# ======================== - -import requests - -# 服务器地址和OSS配置 -OSS_PUBLIC_HOST = "uni-lab-test.oss-cn-zhangjiakou.aliyuncs.com" - -def get_upload_token(base_url, auth_token, scene, filename): - """ - 获取文件上传的预签名URL - - Args: - base_url: API服务器地址 - auth_token: 认证Token (JWT),需要包含 "Bearer " 前缀 - scene: 上传场景 (例如: "job") - filename: 文件名 - - Returns: - dict: 包含上传URL和路径的字典,失败返回None - """ - url = f"{base_url}/api/v1/lab/storage/token" - params = { - "scene": scene, - "filename": filename, - "path": "neware_backup", # 添加 path 参数 - } - headers = { - "Authorization": auth_token, - } - - print(f"正在从 {url} 获取上传凭证...") - try: - response = requests.get(url, params=params, headers=headers) - response.raise_for_status() - - data = response.json() - if data.get("code") == 0 and "data" in data and "url" in data["data"]: - print("成功获取上传凭证!") - return data["data"] - else: - print(f"获取凭证失败: {data.get('msg', '未知错误')}") - return None - - except requests.exceptions.RequestException as e: - print(f"请求上传凭证时发生错误: {e}") - return None - - -def upload_file_with_presigned_url(upload_info, file_path): - """ - 使用预签名URL上传文件到OSS - - Args: - upload_info: 包含上传URL的字典 - file_path: 本地文件路径 - - Returns: - bool: 上传是否成功 - """ - upload_url = upload_info['url'] - - print(f"开始上传文件: {file_path} 到 {upload_url}") - try: - with open(file_path, 'rb') as f: - file_data = f.read() - response = requests.put(upload_url, data=file_data) - response.raise_for_status() - - print("文件上传成功!") - return True - - except FileNotFoundError: - print(f"错误: 文件未找到 {file_path}") - return False - except requests.exceptions.RequestException as e: - print(f"文件上传失败: {e}") - print(f"服务器响应: {e.response.text if e.response else '无响应'}") - return False - - -def upload_file_to_oss(local_file_path, oss_object_name=None): - """ - 上传文件到阿里云OSS (使用统一API方式) - - Args: - local_file_path: 本地文件路径 - oss_object_name: OSS对象名称 (暂时未使用,保留接口兼容性) - - Returns: - bool or str: 上传成功返回文件访问URL,失败返回False - """ - # 从环境变量获取配置 - base_url = os.getenv('UNI_LAB_BASE_URL', 'https://uni-lab.test.bohrium.com') - auth_token = os.getenv('UNI_LAB_AUTH_TOKEN') - upload_scene = os.getenv('UNI_LAB_UPLOAD_SCENE', 'job') # 必须使用 job,其他值会被改成 default - - # 检查环境变量是否设置 - if not auth_token: - raise ValueError("请设置环境变量: UNI_LAB_AUTH_TOKEN") - - # 确保 auth_token 包含正确的前缀 - # 支持两种格式: "Bearer xxx" (JWT) 或 "Api xxx" (API Key) - if not auth_token.startswith("Bearer ") and not auth_token.startswith("Api "): - # 默认使用 Api 格式 - auth_token = f"Api {auth_token}" - - # 检查文件是否存在 - if not os.path.exists(local_file_path): - print(f"错误: 无法找到要上传的文件 '{local_file_path}'") - return False - - filename = os.path.basename(local_file_path) - - # 1. 获取上传信息 - upload_info = get_upload_token(base_url, auth_token, upload_scene, filename) - - if not upload_info: - print("无法继续上传,因为没有获取到有效的上传信息。") - return False - - # 2. 上传文件 - success = upload_file_with_presigned_url(upload_info, local_file_path) - - if success: - access_url = f"https://{OSS_PUBLIC_HOST}/{upload_info['path']}" - print(f"文件访问URL: {access_url}") - return access_url - else: - return False - - -def upload_files_to_oss(file_paths, oss_prefix=""): - """ - 批量上传文件到OSS - - Args: - file_paths: 本地文件路径列表 - oss_prefix: OSS对象前缀 (暂时未使用,保留接口兼容性) - - Returns: - int: 成功上传的文件数量 - """ - success_count = 0 - print(f"开始批量上传 {len(file_paths)} 个文件到OSS...") - for i, fp in enumerate(file_paths, 1): - print(f"[{i}/{len(file_paths)}] 上传文件: {fp}") - try: - result = upload_file_to_oss(fp) - if result: - success_count += 1 - print(f"[{i}/{len(file_paths)}] 上传成功") - else: - print(f"[{i}/{len(file_paths)}] 上传失败") - except ValueError as e: - print(f"[{i}/{len(file_paths)}] 环境变量错误: {e}") - break - except Exception as e: - print(f"[{i}/{len(file_paths)}] 上传异常: {e}") - print(f"批量上传完成: {success_count}/{len(file_paths)} 个文件成功") - return success_count - - -def upload_directory_to_oss(local_dir, oss_prefix=""): - """ - 上传整个目录到OSS - - Args: - local_dir: 本地目录路径 - oss_prefix: OSS对象前缀 (暂时未使用,保留接口兼容性) - """ - for root, dirs, files in os.walk(local_dir): - for file in files: - local_file_path = os.path.join(root, file) - upload_file_to_oss(local_file_path) - - -# ======================== -# 内部数据类和结构 -# ======================== - -@dataclass(frozen=True) -class ChannelKey: - devid: int - subdevid: int - chlid: int - - -@dataclass -class ChannelStatus: - state: str # working/stop/finish/protect/pause/false/unknown - color: str # 状态对应颜色 - current_A: float # 电流 (A) - voltage_V: float # 电压 (V) - totaltime_s: float # 总时间 (s) - - -class BatteryTestPositionState(TypedDict): - voltage: float # 电压 (V) - current: float # 电流 (A) - time: float # 时间 (s) - 使用totaltime - capacity: float # 容量 (Ah) - energy: float # 能量 (Wh) - - status: str # 通道状态 - color: str # 状态对应颜色 - - - -class BatteryTestPosition(ResourceHolder): - def __init__( - self, - name, - size_x=60, - size_y=60, - size_z=60, - rotation=None, - category="resource_holder", - model=None, - child_location: Coordinate = Coordinate.zero(), - ): - super().__init__(name, size_x, size_y, size_z, rotation, category, model, child_location=child_location) - self._unilabos_state: Dict[str, Any] = {} - - def load_state(self, state: Dict[str, Any]) -> None: - """格式不变""" - super().load_state(state) - self._unilabos_state = state - - def serialize_state(self) -> Dict[str, Dict[str, Any]]: - """格式不变""" - data = super().serialize_state() - data.update(self._unilabos_state) - return data - - -class NewareBatteryTestSystem: - """ - 新威电池测试系统设备类 - - 提供电池测试通道状态查询、控制等功能。 - 支持720个通道的状态监控和数据导出。 - 包含完整的物料管理系统,支持2盘电池的状态映射。 - - Attributes: - ip (str): TCP服务器IP地址,默认127.0.0.1 - port (int): TCP端口,默认502 - devtype (str): 设备类型,默认"27" - timeout (int): 通信超时时间(秒),默认20 - """ - - # ======================== - # 基本通信与协议参数 - # ======================== - BTS_IP = "127.0.0.1" - BTS_PORT = 502 - DEVTYPE = "27" - TIMEOUT = 20 # 秒 - REQ_END = b"#\r\n" # 常见实现以 "#\\r\\n" 作为报文结束 - - # ======================== - # 状态与颜色映射(前端可直接使用) - # ======================== - STATUS_SET = {"working", "stop", "finish", "protect", "pause", "false"} - STATUS_COLOR = { - "working": "#22c55e", # 绿 - "stop": "#6b7280", # 灰 - "finish": "#3b82f6", # 蓝 - "protect": "#ef4444", # 红 - "pause": "#f59e0b", # 橙 - "false": "#9ca3af", # 不存在/无效 - "unknown": "#a855f7", # 未知 - } - - # 字母常量 - ascii_lowercase = 'abcdefghijklmnopqrstuvwxyz' - ascii_uppercase = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' - LETTERS = ascii_uppercase + ascii_lowercase - - def __init__(self, - ip: str = None, - port: int = None, - machine_id: int = 1, - devtype: str = None, - timeout: int = None, - - size_x: float = 50, - size_y: float = 50, - size_z: float = 20, - - oss_upload_enabled: bool = False, - oss_prefix: str = "neware_backup", - ): - """ - 初始化新威电池测试系统 - - Args: - ip: TCP服务器IP地址 - port: TCP端口 - devtype: 设备类型标识 - timeout: 通信超时时间(秒) - machine_id: 机器ID - size_x, size_y, size_z: 设备物理尺寸 - oss_upload_enabled: 是否启用OSS上传功能,默认False - oss_prefix: OSS对象路径前缀,默认"neware_backup" - """ - self.ip = ip or self.BTS_IP - self.port = port or self.BTS_PORT - self.machine_id = machine_id - self.devtype = devtype or self.DEVTYPE - self.timeout = timeout or self.TIMEOUT - - # 存储设备物理尺寸 - self.size_x = size_x - self.size_y = size_y - self.size_z = size_z - - # OSS 上传配置 - self.oss_upload_enabled = oss_upload_enabled - self.oss_prefix = oss_prefix - - self._last_status_update = None - self._cached_status = {} - self._last_backup_dir = None # 记录最近一次的 backup_dir,供上传使用 - self._ros_node: Optional[ROS2WorkstationNode] = None # ROS节点引用,由框架设置 - - - def post_init(self, ros_node): - """ - ROS节点初始化后的回调方法,用于建立设备连接 - - Args: - ros_node: ROS节点实例 - """ - self._ros_node = ros_node - # 创建2盘电池的物料管理系统 - self._setup_material_management() - # 初始化通道映射 - self._channels = self._build_channel_map() - try: - # 测试设备连接 - if self.test_connection(): - ros_node.lab_logger().info(f"新威电池测试系统连接成功: {self.ip}:{self.port}") - else: - ros_node.lab_logger().warning(f"新威电池测试系统连接失败: {self.ip}:{self.port}") - except Exception as e: - ros_node.lab_logger().error(f"新威电池测试系统初始化失败: {e}") - # 不抛出异常,允许节点继续运行,后续可以重试连接 - - def _setup_material_management(self): - """设置物料管理系统""" - # 第1盘:5行8列网格 (A1-E8) - 5行对应subdevid 1-5,8列对应chlid 1-8 - # 先给物料设置一个最大的Deck,并设置其在空间中的位置 - - deck_main = Deck("ADeckName", 2000, 1800, 100, origin=Coordinate(2000,2000,0)) - - plate1_resources: Dict[str, BatteryTestPosition] = create_ordered_items_2d( - BatteryTestPosition, - num_items_x=8, # 8列(对应chlid 1-8) - num_items_y=5, # 5行(对应subdevid 1-5,即A-E) - dx=10, - dy=10, - dz=0, - item_dx=65, - item_dy=65 - ) - plate1 = Plate("P1", 400, 300, 50, ordered_items=plate1_resources) - deck_main.assign_child_resource(plate1, location=Coordinate(0, 0, 0)) - - # 只有在真实ROS环境下才调用update_resource - if hasattr(self._ros_node, 'update_resource') and callable(getattr(self._ros_node, 'update_resource')): - try: - ROS2DeviceNode.run_async_func(self._ros_node.update_resource, True, **{ - "resources": [deck_main] - }) - except Exception as e: - if hasattr(self._ros_node, 'lab_logger'): - self._ros_node.lab_logger().warning(f"更新资源失败: {e}") - # 在非ROS环境下忽略此错误 - - # 为第1盘资源添加P1_前缀 - self.station_resources_plate1 = {} - for name, resource in plate1_resources.items(): - new_name = f"P1_{name}" - self.station_resources_plate1[new_name] = resource - - # 第2盘:5行8列网格 (A1-E8),在Z轴上偏移 - 5行对应subdevid 6-10,8列对应chlid 1-8 - plate2_resources = create_ordered_items_2d( - BatteryTestPosition, - num_items_x=8, # 8列(对应chlid 1-8) - num_items_y=5, # 5行(对应subdevid 6-10,即A-E) - dx=10, - dy=10, - dz=0, - item_dx=65, - item_dy=65 - ) - - plate2 = Plate("P2", 400, 300, 50, ordered_items=plate2_resources) - deck_main.assign_child_resource(plate2, location=Coordinate(0, 350, 0)) - - - # 为第2盘资源添加P2_前缀 - self.station_resources_plate2 = {} - for name, resource in plate2_resources.items(): - new_name = f"P2_{name}" - self.station_resources_plate2[new_name] = resource - - # 合并两盘资源为统一的station_resources - self.station_resources = {} - self.station_resources.update(self.station_resources_plate1) - self.station_resources.update(self.station_resources_plate2) - - # ======================== - # 核心属性(Uni-Lab标准) - # ======================== - - @property - def status(self) -> str: - """设备状态属性 - 会被自动识别并定时广播""" - try: - if self.test_connection(): - return "Connected" - else: - return "Disconnected" - except: - return "Error" - - @property - def channel_status(self) -> Dict[int, Dict]: - """ - 获取所有通道状态(按设备ID分组) - - 这个属性会执行实际的TCP查询并返回格式化的状态数据。 - 结果按设备ID分组,包含统计信息和详细状态。 - - Returns: - Dict[int, Dict]: 按设备ID分组的通道状态统计 - """ - status_map = self._query_all_channels() - status_processed = {} if not status_map else self._group_by_devid(status_map) - - # 修复数据过滤逻辑:如果machine_id对应的数据不存在,尝试使用第一个可用的设备数据 - status_current_machine = status_processed.get(self.machine_id, {}) - - if not status_current_machine and status_processed: - # 如果machine_id没有匹配到数据,使用第一个可用的设备数据 - first_devid = next(iter(status_processed.keys())) - status_current_machine = status_processed[first_devid] - if self._ros_node: - self._ros_node.lab_logger().warning( - f"machine_id {self.machine_id} 没有匹配到数据,使用设备ID {first_devid} 的数据" - ) - - # 确保有默认的数据结构 - if not status_current_machine: - status_current_machine = { - "stats": {s: 0 for s in self.STATUS_SET | {"unknown"}}, - "subunits": {} - } - - # 确保subunits存在 - subunits = status_current_machine.get("subunits", {}) - - # 处理2盘电池的状态映射 - self._update_plate_resources(subunits) - - return status_current_machine - - def _update_plate_resources(self, subunits: Dict): - """更新两盘电池资源的状态""" - # 第1盘:subdevid 1-5 映射到 8列5行网格 (列0-7, 行0-4) - for subdev_id in range(1, 6): # subdevid 1-5 - status_row = subunits.get(subdev_id, {}) - - for chl_id in range(1, 9): # chlid 1-8 - try: - # 根据用户描述:第一个是(0,0),最后一个是(7,4) - # 说明是8列5行,列从0开始,行从0开始 - col_idx = (chl_id - 1) # 0-7 (chlid 1-8 -> 列0-7) - row_idx = (subdev_id - 1) # 0-4 (subdevid 1-5 -> 行0-4) - - # 尝试多种可能的资源命名格式 - possible_names = [ - f"P1_batterytestposition_{col_idx}_{row_idx}", # 用户提到的格式 - f"P1_{self.LETTERS[row_idx]}{col_idx + 1}", # 原有的A1-E8格式 - f"P1_{self.LETTERS[row_idx].lower()}{col_idx + 1}", # 小写字母格式 - ] - - r = None - resource_name = None - for name in possible_names: - if name in self.station_resources: - r = self.station_resources[name] - resource_name = name - break - - if r: - status_channel = status_row.get(chl_id, {}) - metrics = status_channel.get("metrics", {}) - # 构建BatteryTestPosition状态数据(移除capacity和energy) - channel_state = { - # 基本测量数据 - "voltage": metrics.get("voltage_V", 0.0), - "current": metrics.get("current_A", 0.0), - "time": metrics.get("totaltime_s", 0.0), - - # 状态信息 - "status": status_channel.get("state", "unknown"), - "color": status_channel.get("color", self.STATUS_COLOR["unknown"]), - - # 通道名称标识 - "Channel_Name": f"{self.machine_id}-{subdev_id}-{chl_id}", - - } - r.load_state(channel_state) - - # 调试信息 - if self._ros_node and hasattr(self._ros_node, 'lab_logger'): - self._ros_node.lab_logger().debug( - f"更新P1资源状态: {resource_name} <- subdev{subdev_id}/chl{chl_id} " - f"状态:{channel_state['status']}" - ) - else: - # 如果找不到资源,记录调试信息 - if self._ros_node and hasattr(self._ros_node, 'lab_logger'): - self._ros_node.lab_logger().debug( - f"P1未找到资源: subdev{subdev_id}/chl{chl_id} -> 尝试的名称: {possible_names}" - ) - except (KeyError, IndexError) as e: - if self._ros_node and hasattr(self._ros_node, 'lab_logger'): - self._ros_node.lab_logger().debug(f"P1映射错误: subdev{subdev_id}/chl{chl_id} - {e}") - continue - - # 第2盘:subdevid 6-10 映射到 8列5行网格 (列0-7, 行0-4) - for subdev_id in range(6, 11): # subdevid 6-10 - status_row = subunits.get(subdev_id, {}) - - for chl_id in range(1, 9): # chlid 1-8 - try: - col_idx = (chl_id - 1) # 0-7 (chlid 1-8 -> 列0-7) - row_idx = (subdev_id - 6) # 0-4 (subdevid 6-10 -> 行0-4) - - # 尝试多种可能的资源命名格式 - possible_names = [ - f"P2_batterytestposition_{col_idx}_{row_idx}", # 用户提到的格式 - f"P2_{self.LETTERS[row_idx]}{col_idx + 1}", # 原有的A1-E8格式 - f"P2_{self.LETTERS[row_idx].lower()}{col_idx + 1}", # 小写字母格式 - ] - - r = None - resource_name = None - for name in possible_names: - if name in self.station_resources: - r = self.station_resources[name] - resource_name = name - break - - if r: - status_channel = status_row.get(chl_id, {}) - metrics = status_channel.get("metrics", {}) - # 构建BatteryTestPosition状态数据(移除capacity和energy) - channel_state = { - # 基本测量数据 - "voltage": metrics.get("voltage_V", 0.0), - "current": metrics.get("current_A", 0.0), - "time": metrics.get("totaltime_s", 0.0), - - # 状态信息 - "status": status_channel.get("state", "unknown"), - "color": status_channel.get("color", self.STATUS_COLOR["unknown"]), - - # 通道名称标识 - "Channel_Name": f"{self.machine_id}-{subdev_id}-{chl_id}", - - } - r.load_state(channel_state) - - # 调试信息 - if self._ros_node and hasattr(self._ros_node, 'lab_logger'): - self._ros_node.lab_logger().debug( - f"更新P2资源状态: {resource_name} <- subdev{subdev_id}/chl{chl_id} " - f"状态:{channel_state['status']}" - ) - else: - # 如果找不到资源,记录调试信息 - if self._ros_node and hasattr(self._ros_node, 'lab_logger'): - self._ros_node.lab_logger().debug( - f"P2未找到资源: subdev{subdev_id}/chl{chl_id} -> 尝试的名称: {possible_names}" - ) - except (KeyError, IndexError) as e: - if self._ros_node and hasattr(self._ros_node, 'lab_logger'): - self._ros_node.lab_logger().debug(f"P2映射错误: subdev{subdev_id}/chl{chl_id} - {e}") - continue - ROS2DeviceNode.run_async_func(self._ros_node.update_resource, True, **{ - "resources": list(self.station_resources.values()) - }) - - @property - def connection_info(self) -> Dict[str, str]: - """获取连接信息""" - return { - "ip": self.ip, - "port": str(self.port), - "devtype": self.devtype, - "timeout": f"{self.timeout}s" - } - - @property - def total_channels(self) -> int: - """获取总通道数""" - return len(self._channels) - - # ======================== - # 设备动作方法(Uni-Lab标准) - # ======================== - - def export_status_json(self, filepath: str = "bts_status.json") -> dict: - """ - 导出当前状态到JSON文件(ROS2动作) - - Args: - filepath: 输出文件路径 - - Returns: - dict: ROS2动作结果格式 {"return_info": str, "success": bool} - """ - try: - grouped_status = self.channel_status - payload = { - "timestamp": time.time(), - "device_info": { - "ip": self.ip, - "port": self.port, - "devtype": self.devtype, - "total_channels": self.total_channels - }, - "data": grouped_status, - "color_mapping": self.STATUS_COLOR - } - - with open(filepath, "w", encoding="utf-8") as f: - json.dump(payload, f, ensure_ascii=False, indent=2) - - success_msg = f"状态数据已成功导出到: {filepath}" - if self._ros_node: - self._ros_node.lab_logger().info(success_msg) - return {"return_info": success_msg, "success": True} - - except Exception as e: - error_msg = f"导出JSON失败: {str(e)}" - if self._ros_node: - self._ros_node.lab_logger().error(error_msg) - return {"return_info": error_msg, "success": False} - - def _plate_status(self) -> Dict[str, Any]: - """ - 获取所有盘的状态信息(内部方法) - - Returns: - 包含所有盘状态信息的字典 - """ - try: - # 确保先更新所有资源的状态数据 - _ = self.channel_status # 这会触发状态更新并调用load_state - - # 手动计算两盘的状态 - plate1_stats = {s: 0 for s in self.STATUS_SET | {"unknown"}} - plate1_active = [] - - for name, resource in self.station_resources_plate1.items(): - state = getattr(resource, '_unilabos_state', {}) - status = state.get('status', 'unknown') - plate1_stats[status] += 1 - - if status != 'unknown': - plate1_active.append({ - 'name': name, - 'status': status, - 'color': state.get('color', self.STATUS_COLOR['unknown']), - 'voltage': state.get('voltage', 0.0), - 'current': state.get('current', 0.0), - }) - - plate2_stats = {s: 0 for s in self.STATUS_SET | {"unknown"}} - plate2_active = [] - - for name, resource in self.station_resources_plate2.items(): - state = getattr(resource, '_unilabos_state', {}) - status = state.get('status', 'unknown') - plate2_stats[status] += 1 - - if status != 'unknown': - plate2_active.append({ - 'name': name, - 'status': status, - 'color': state.get('color', self.STATUS_COLOR['unknown']), - 'voltage': state.get('voltage', 0.0), - 'current': state.get('current', 0.0), - }) - - return { - "plate1": { - 'plate_num': 1, - 'stats': plate1_stats, - 'total_positions': len(self.station_resources_plate1), - 'active_positions': len(plate1_active), - 'resources': plate1_active - }, - "plate2": { - 'plate_num': 2, - 'stats': plate2_stats, - 'total_positions': len(self.station_resources_plate2), - 'active_positions': len(plate2_active), - 'resources': plate2_active - }, - "total_plates": 2 - } - except Exception as e: - if self._ros_node: - self._ros_node.lab_logger().error(f"获取盘状态失败: {e}") - return { - "plate1": {"error": str(e)}, - "plate2": {"error": str(e)}, - "total_plates": 2 - } - - - - - - - def debug_resource_names(self) -> dict: - """ - 调试方法:显示所有资源的实际名称(ROS2动作) - - Returns: - dict: ROS2动作结果格式,包含所有资源名称信息 - """ - try: - debug_info = { - "total_resources": len(self.station_resources), - "plate1_resources": len(self.station_resources_plate1), - "plate2_resources": len(self.station_resources_plate2), - "plate1_names": list(self.station_resources_plate1.keys())[:10], # 显示前10个 - "plate2_names": list(self.station_resources_plate2.keys())[:10], # 显示前10个 - "all_resource_names": list(self.station_resources.keys())[:20], # 显示前20个 - } - - # 检查是否有用户提到的命名格式 - batterytestposition_names = [name for name in self.station_resources.keys() - if "batterytestposition" in name] - debug_info["batterytestposition_names"] = batterytestposition_names[:10] - - success_msg = f"资源调试信息获取成功,共{debug_info['total_resources']}个资源" - if self._ros_node: - self._ros_node.lab_logger().info(success_msg) - self._ros_node.lab_logger().info(f"调试信息: {debug_info}") - - return { - "return_info": success_msg, - "success": True, - "debug_data": debug_info - } - - except Exception as e: - error_msg = f"获取资源调试信息失败: {str(e)}" - if self._ros_node: - self._ros_node.lab_logger().error(error_msg) - return {"return_info": error_msg, "success": False} - - def get_plate_status(self, plate_num: int = None) -> dict: - """ - 获取指定盘或所有盘的状态信息(ROS2动作) - - Args: - plate_num: 盘号 (1 或 2),如果为None则返回所有盘的状态 - - Returns: - dict: ROS2动作结果格式 {"return_info": str, "success": bool, "plate_data": dict} - """ - try: - # 获取所有盘的状态 - all_plates_data = self._plate_status() - - # 如果指定了盘号,只返回该盘的数据 - if plate_num is not None: - if plate_num not in [1, 2]: - error_msg = f"无效的盘号: {plate_num},必须是 1 或 2" - if self._ros_node: - self._ros_node.lab_logger().error(error_msg) - return { - "return_info": error_msg, - "success": False, - "plate_data": {} - } - - plate_key = f"plate{plate_num}" - plate_data = all_plates_data.get(plate_key, {}) - - success_msg = f"成功获取盘 {plate_num} 的状态信息" - if self._ros_node: - self._ros_node.lab_logger().info(success_msg) - - return { - "return_info": success_msg, - "success": True, - "plate_data": plate_data - } - else: - # 返回所有盘的状态 - success_msg = "成功获取所有盘的状态信息" - if self._ros_node: - self._ros_node.lab_logger().info(success_msg) - - return { - "return_info": success_msg, - "success": True, - "plate_data": all_plates_data - } - - except Exception as e: - error_msg = f"获取盘状态失败: {str(e)}" - if self._ros_node: - self._ros_node.lab_logger().error(error_msg) - return { - "return_info": error_msg, - "success": False, - "plate_data": {} - } - - # ======================== - # 辅助方法 - # ======================== - - def test_connection(self) -> bool: - """ - 测试TCP连接是否正常 - - Returns: - bool: 连接是否成功 - """ - try: - with socket.create_connection((self.ip, self.port), timeout=5) as sock: - return True - except Exception as e: - if self._ros_node: - self._ros_node.lab_logger().debug(f"连接测试失败: {e}") - return False - - def print_status_summary(self) -> None: - """ - 打印通道状态摘要信息(支持2盘电池) - """ - try: - status_data = self.channel_status - if not status_data: - print(" 未获取到状态数据") - return - - print(f" 状态统计:") - total_channels = 0 - - # 从channel_status获取stats字段 - stats = status_data.get("stats", {}) - for state, count in stats.items(): - if isinstance(count, int) and count > 0: - color = self.STATUS_COLOR.get(state, "#000000") - print(f" {state}: {count} 个通道 ({color})") - total_channels += count - - print(f" 总计: {total_channels} 个通道") - print(f" 第1盘资源数: {len(self.station_resources_plate1)}") - print(f" 第2盘资源数: {len(self.station_resources_plate2)}") - print(f" 总资源数: {len(self.station_resources)}") - - except Exception as e: - print(f" 获取状态失败: {e}") - - # ======================== - # CSV批量提交功能(新增) - # ======================== - - def _ensure_local_import_path(self): - """确保本地模块导入路径""" - base_dir = os.path.dirname(__file__) - if base_dir not in sys.path: - sys.path.insert(0, base_dir) - - def _canon(self, bs: str) -> str: - """规范化电池体系名称""" - return str(bs).strip().replace('-', '_').upper() - - def _compute_values(self, row): - """ - 计算活性物质质量和容量 - - Args: - row: DataFrame行数据 - - Returns: - tuple: (活性物质质量mg, 容量mAh) - """ - pw = float(row['Pole_Weight']) - cm = float(row['集流体质量']) - am = row['活性物质含量'] - if isinstance(am, str) and am.endswith('%'): - amv = float(am.rstrip('%')) / 100.0 - else: - amv = float(am) - act_mass = (pw - cm) * amv - sc = float(row['克容量mah/g']) - cap = act_mass * sc / 1000.0 - return round(act_mass, 2), round(cap, 3) - - def _get_xml_builder(self, gen_mod, key: str): - """ - 获取对应电池体系的XML生成函数 - - Args: - gen_mod: generate_xml_content模块 - key: 电池体系标识 - - Returns: - callable: XML生成函数 - """ - fmap = { - 'LB6': gen_mod.xml_LB6, - 'GR_LI': gen_mod.xml_Gr_Li, - 'LFP_LI': gen_mod.xml_LFP_Li, - 'LFP_GR': gen_mod.xml_LFP_Gr, - '811_LI_002': gen_mod.xml_811_Li_002, - '811_LI_005': gen_mod.xml_811_Li_005, - 'SIGR_LI_STEP': gen_mod.xml_SiGr_Li_Step, - 'SIGR_LI': gen_mod.xml_SiGr_Li_Step, - '811_SIGR': gen_mod.xml_811_SiGr, - '811_CU_AGING': gen_mod.xml_811_Cu_aging, - } - if key not in fmap: - raise ValueError(f"未定义电池体系映射: {key}") - return fmap[key] - - def _save_xml(self, xml: str, path: str): - """ - 保存XML文件 - - Args: - xml: XML内容 - path: 文件路径 - """ - with open(path, 'w', encoding='utf-8') as f: - f.write(xml) - - def submit_from_csv(self, csv_path: str, output_dir: str = ".") -> dict: - """ - 从CSV文件批量提交Neware测试任务(设备动作) - - Args: - csv_path (str): 输入CSV文件路径 - output_dir (str): 输出目录,用于存储XML文件和备份,默认当前目录 - - Returns: - dict: 执行结果 {"return_info": str, "success": bool, "submitted_count": int} - """ - try: - # 确保可以导入本地模块 - self._ensure_local_import_path() - import pandas as pd - import generate_xml_content as gen_mod - from neware_driver import start_test - - if self._ros_node: - self._ros_node.lab_logger().info(f"开始从CSV文件提交任务: {csv_path}") - - # 读取CSV文件 - if not os.path.exists(csv_path): - error_msg = f"CSV文件不存在: {csv_path}" - if self._ros_node: - self._ros_node.lab_logger().error(error_msg) - return {"return_info": error_msg, "success": False, "submitted_count": 0, "total_count": 0} - - df = pd.read_csv(csv_path, encoding='gbk') - - # 验证必需列 - required = [ - 'Battery_Code', 'Electrolyte_Code', 'Pole_Weight', '集流体质量', '活性物质含量', - '克容量mah/g', '电池体系', '设备号', '排号', '通道号' - ] - missing = [c for c in required if c not in df.columns] - if missing: - error_msg = f"CSV缺少必需列: {missing}" - if self._ros_node: - self._ros_node.lab_logger().error(error_msg) - return {"return_info": error_msg, "success": False, "submitted_count": 0, "total_count": 0} - - # 创建输出目录 - xml_dir = os.path.join(output_dir, 'xml_dir') - backup_dir = os.path.join(output_dir, 'backup_dir') - os.makedirs(xml_dir, exist_ok=True) - os.makedirs(backup_dir, exist_ok=True) - - # 记录备份目录供后续 OSS 上传使用 - self._last_backup_dir = backup_dir - - if self._ros_node: - self._ros_node.lab_logger().info( - f"输出目录: XML={xml_dir}, 备份={backup_dir}" - ) - - # 逐行处理CSV数据 - submitted_count = 0 - results = [] - - for idx, row in df.iterrows(): - try: - coin_id = f"{row['Battery_Code']}-{row['Electrolyte_Code']}" - - # 计算活性物质质量和容量 - act_mass, cap_mAh = self._compute_values(row) - - if cap_mAh < 0: - error_msg = ( - f"容量为负数: Battery_Code={coin_id}, " - f"活性物质质量mg={act_mass}, 容量mah={cap_mAh}" - ) - if self._ros_node: - self._ros_node.lab_logger().warning(error_msg) - results.append(f"行{idx+1} 失败: {error_msg}") - continue - - # 获取电池体系对应的XML生成函数 - key = self._canon(row['电池体系']) - builder = self._get_xml_builder(gen_mod, key) - - # 生成XML内容 - xml_content = builder(act_mass, cap_mAh) - - # 获取设备信息 - devid = int(row['设备号']) - subdevid = int(row['排号']) - chlid = int(row['通道号']) - - # 保存XML文件 - recipe_path = os.path.join( - xml_dir, - f"{coin_id}_{devid}_{subdevid}_{chlid}.xml" - ) - self._save_xml(xml_content, recipe_path) - - # 提交测试任务 - resp = start_test( - ip=self.ip, - port=self.port, - devid=devid, - subdevid=subdevid, - chlid=chlid, - CoinID=coin_id, - recipe_path=recipe_path, - backup_dir=backup_dir - ) - - submitted_count += 1 - results.append(f"行{idx+1} {coin_id}: {resp}") - - if self._ros_node: - self._ros_node.lab_logger().info( - f"已提交 {coin_id} (设备{devid}-{subdevid}-{chlid}): {resp}" - ) - - except Exception as e: - error_msg = f"行{idx+1} 处理失败: {str(e)}" - results.append(error_msg) - if self._ros_node: - self._ros_node.lab_logger().error(error_msg) - - # 汇总结果 - success_msg = ( - f"批量提交完成: 成功{submitted_count}个,共{len(df)}行。" - f"\n详细结果:\n" + "\n".join(results) - ) - - if self._ros_node: - self._ros_node.lab_logger().info( - f"批量提交完成: 成功{submitted_count}/{len(df)}" - ) - - return { - "return_info": success_msg, - "success": True, - "submitted_count": submitted_count, - "total_count": len(df), - "results": results - } - - except Exception as e: - error_msg = f"批量提交失败: {str(e)}" - if self._ros_node: - self._ros_node.lab_logger().error(error_msg) - return { - "return_info": error_msg, - "success": False, - "submitted_count": 0, - "total_count": 0 - } - - - def get_device_summary(self) -> dict: - """ - 获取设备级别的摘要统计(设备动作) - - Returns: - dict: ROS2动作结果格式 {"return_info": str, "success": bool} - """ - try: - # 确保_channels已初始化 - if not hasattr(self, '_channels') or not self._channels: - self._channels = self._build_channel_map() - - summary = {} - for channel in self._channels: - devid = channel.devid - summary[devid] = summary.get(devid, 0) + 1 - - result_info = json.dumps(summary, ensure_ascii=False) - success_msg = f"设备摘要统计: {result_info}" - if self._ros_node: - self._ros_node.lab_logger().info(success_msg) - return {"return_info": result_info, "success": True} - - except Exception as e: - error_msg = f"获取设备摘要失败: {str(e)}" - if self._ros_node: - self._ros_node.lab_logger().error(error_msg) - return {"return_info": error_msg, "success": False} - - def test_connection_action(self) -> dict: - """ - 测试TCP连接(设备动作) - - Returns: - dict: ROS2动作结果格式 {"return_info": str, "success": bool} - """ - try: - is_connected = self.test_connection() - if is_connected: - success_msg = f"TCP连接测试成功: {self.ip}:{self.port}" - if self._ros_node: - self._ros_node.lab_logger().info(success_msg) - return {"return_info": success_msg, "success": True} - else: - error_msg = f"TCP连接测试失败: {self.ip}:{self.port}" - if self._ros_node: - self._ros_node.lab_logger().warning(error_msg) - return {"return_info": error_msg, "success": False} - - except Exception as e: - error_msg = f"连接测试异常: {str(e)}" - if self._ros_node: - self._ros_node.lab_logger().error(error_msg) - return {"return_info": error_msg, "success": False} - - def print_status_summary_action(self) -> dict: - """ - 打印状态摘要(设备动作) - - Returns: - dict: ROS2动作结果格式 {"return_info": str, "success": bool} - """ - try: - self.print_status_summary() - success_msg = "状态摘要已打印到控制台" - if self._ros_node: - self._ros_node.lab_logger().info(success_msg) - return {"return_info": success_msg, "success": True} - - except Exception as e: - error_msg = f"打印状态摘要失败: {str(e)}" - if self._ros_node: - self._ros_node.lab_logger().error(error_msg) - return {"return_info": error_msg, "success": False} - - def upload_backup_to_oss( - self, - backup_dir: str = None, - file_pattern: str = "*", - oss_prefix: str = None - ) -> dict: - """ - 上传备份目录中的文件到 OSS(ROS2 动作) - - Args: - backup_dir: 备份目录路径,默认使用最近一次 submit_from_csv 的 backup_dir - file_pattern: 文件通配符模式,默认 "*" 上传所有文件(例如 "*.csv" 仅上传 CSV 文件) - oss_prefix: OSS 对象前缀,默认使用类初始化时的配置 - - Returns: - dict: { - "return_info": str, - "success": bool, - "uploaded_count": int, - "total_count": int, - "failed_files": List[str] - } - """ - try: - # 确定备份目录 - target_backup_dir = backup_dir if backup_dir else self._last_backup_dir - - if not target_backup_dir: - error_msg = "未指定 backup_dir 且没有可用的最近备份目录" - if self._ros_node: - self._ros_node.lab_logger().error(error_msg) - return { - "return_info": error_msg, - "success": False, - "uploaded_count": 0, - "total_count": 0, - "failed_files": [], - "uploaded_files": [] - } - - # 检查目录是否存在 - if not os.path.exists(target_backup_dir): - error_msg = f"备份目录不存在: {target_backup_dir}" - if self._ros_node: - self._ros_node.lab_logger().error(error_msg) - return { - "return_info": error_msg, - "success": False, - "uploaded_count": 0, - "total_count": 0, - "failed_files": [], - "uploaded_files": [] - } - - # 检查是否启用 OSS 上传 - if not self.oss_upload_enabled: - warning_msg = f"OSS 上传未启用 (oss_upload_enabled=False),跳过上传。备份目录: {target_backup_dir}" - if self._ros_node: - self._ros_node.lab_logger().warning(warning_msg) - return { "return_info": warning_msg, - "success": False, - "uploaded_count": 0, - "total_count": 0, - "failed_files": [], - "uploaded_files": [] - } - - # 确定 OSS 前缀 - target_oss_prefix = oss_prefix if oss_prefix else self.oss_prefix - - if self._ros_node: - self._ros_node.lab_logger().info( - f"开始上传备份文件到 OSS: {target_backup_dir} -> {target_oss_prefix}" - ) - - # 扫描匹配的文件 - import glob - pattern_path = os.path.join(target_backup_dir, file_pattern) - matched_files = glob.glob(pattern_path) - - if not matched_files: - warning_msg = f"备份目录中没有匹配 '{file_pattern}' 的文件: {target_backup_dir}" - if self._ros_node: - self._ros_node.lab_logger().warning(warning_msg) - return { - "return_info": warning_msg, - "success": True, # 没有文件也算成功 - "uploaded_count": 0, - "total_count": 0, - "failed_files": [], - "uploaded_files": [] - } - - total_count = len(matched_files) - if self._ros_node: - self._ros_node.lab_logger().info( - f"找到 {total_count} 个匹配文件,开始上传..." - ) - - # 批量上传文件 - uploaded_count = 0 - failed_files = [] - uploaded_files = [] # 记录成功上传的文件信息(文件名和URL) - - for i, file_path in enumerate(matched_files, 1): - try: - basename = os.path.basename(file_path) - oss_object_name = f"{target_oss_prefix}/{basename}" if target_oss_prefix else basename - oss_object_name = oss_object_name.replace('\\', '/') - - if self._ros_node: - self._ros_node.lab_logger().info( - f"[{i}/{total_count}] 上传: {file_path} -> {oss_object_name}" - ) - - # upload_file_to_oss 成功时返回 URL - result = upload_file_to_oss(file_path, oss_object_name) - if result: - uploaded_count += 1 - # 解析文件名获取 Battery_Code 和 Electrolyte_Code - name_without_ext = os.path.splitext(basename)[0] - parts = name_without_ext.split('-', 1) - battery_code = parts[0] - electrolyte_code = parts[1] if len(parts) > 1 else "" - - # 记录成功上传的文件信息 - uploaded_files.append({ - "filename": basename, - "url": result if isinstance(result, str) else f"https://uni-lab-test.oss-cn-zhangjiakou.aliyuncs.com/{oss_object_name}", - "Battery_Code": battery_code, - "Electrolyte_Code": electrolyte_code - }) - if self._ros_node: - self._ros_node.lab_logger().info( - f"[{i}/{total_count}] 上传成功: {result if isinstance(result, str) else oss_object_name}" - ) - else: - failed_files.append(basename) - if self._ros_node: - self._ros_node.lab_logger().error( - f"[{i}/{total_count}] 上传失败: {basename}" - ) - - except ValueError as e: - # OSS 环境变量错误,停止上传 - error_msg = f"OSS 环境变量配置错误: {e}" - if self._ros_node: - self._ros_node.lab_logger().error(error_msg) - return { - "return_info": error_msg, - "success": False, - "uploaded_count": uploaded_count, - "total_count": total_count, - "failed_files": failed_files, - "uploaded_files": uploaded_files - } - - except Exception as e: - failed_files.append(os.path.basename(file_path)) - if self._ros_node: - self._ros_node.lab_logger().error( - f"[{i}/{total_count}] 上传异常: {e}" - ) - - # 汇总结果 - if uploaded_count == total_count: - success_msg = f"全部上传成功: {uploaded_count}/{total_count} 个文件" - success = True - elif uploaded_count > 0: - success_msg = f"部分上传成功: {uploaded_count}/{total_count} 个文件,失败 {len(failed_files)} 个" - success = True # 部分成功也算成功 - else: - success_msg = f"全部上传失败: 0/{total_count} 个文件" - success = False - - if self._ros_node: - self._ros_node.lab_logger().info(success_msg) - - return { - "return_info": success_msg, - "success": success, - "uploaded_count": uploaded_count, - "total_count": total_count, - "failed_files": failed_files, - "uploaded_files": uploaded_files # 添加成功上传的文件 URL 列表 - } - - except Exception as e: - error_msg = f"上传备份文件到 OSS 失败: {str(e)}" - if self._ros_node: - self._ros_node.lab_logger().error(error_msg) - return { - "return_info": error_msg, - "success": False, - "uploaded_count": 0, - "total_count": 0, - "failed_files": [], - "uploaded_files": [] - } - - - def query_plate_action(self, plate_id: str = "P1") -> dict: - """ - 查询指定盘的详细信息(设备动作) - - Args: - plate_id: 盘号标识,如"P1"或"P2" - - Returns: - dict: ROS2动作结果格式,包含指定盘的详细通道信息 - """ - try: - # 解析盘号 - if plate_id.upper() == "P1": - plate_num = 1 - elif plate_id.upper() == "P2": - plate_num = 2 - else: - error_msg = f"无效的盘号: {plate_id},仅支持P1或P2" - if self._ros_node: - self._ros_node.lab_logger().warning(error_msg) - return {"return_info": error_msg, "success": False} - - # 获取指定盘的详细信息 - plate_detail = self._get_plate_detail_info(plate_num) - - success_msg = f"成功获取{plate_id}盘详细信息,包含{len(plate_detail['channels'])}个通道" - if self._ros_node: - self._ros_node.lab_logger().info(success_msg) - - return { - "return_info": success_msg, - "success": True, - "plate_data": plate_detail - } - - except Exception as e: - error_msg = f"查询盘{plate_id}详细信息失败: {str(e)}" - if self._ros_node: - self._ros_node.lab_logger().error(error_msg) - return {"return_info": error_msg, "success": False} - - def _get_plate_detail_info(self, plate_num: int) -> dict: - """ - 获取指定盘的详细信息,包含设备ID、子设备ID、通道ID映射 - - Args: - plate_num: 盘号 (1 或 2) - - Returns: - dict: 包含详细通道信息的字典 - """ - # 获取最新的通道状态数据 - channel_status_data = self.channel_status - subunits = channel_status_data.get('subunits', {}) - - if plate_num == 1: - devid = 1 - subdevid_range = range(1, 6) # 子设备ID 1-5 - elif plate_num == 2: - devid = 1 - subdevid_range = range(6, 11) # 子设备ID 6-10 - else: - raise ValueError("盘号必须是1或2") - - channels = [] - - # 直接从subunits数据构建通道信息,而不依赖资源状态 - for subdev_id in subdevid_range: - status_row = subunits.get(subdev_id, {}) - - for chl_id in range(1, 9): # chlid 1-8 - try: - # 计算在5×8网格中的位置 - if plate_num == 1: - row_idx = (subdev_id - 1) # 0-4 (对应A-E) - else: # plate_num == 2 - row_idx = (subdev_id - 6) # 0-4 (subdevid 6->0, 7->1, ..., 10->4) (对应A-E) - - col_idx = (chl_id - 1) # 0-7 (对应1-8) - position = f"{self.LETTERS[row_idx]}{col_idx + 1}" - name = f"P{plate_num}_{position}" - - # 从subunits直接获取通道状态数据 - status_channel = status_row.get(chl_id, {}) - - # 提取metrics数据(如果存在) - metrics = status_channel.get('metrics', {}) - - channel_info = { - 'name': name, - 'devid': devid, - 'subdevid': subdev_id, - 'chlid': chl_id, - 'position': position, - 'status': status_channel.get('state', 'unknown'), - 'color': status_channel.get('color', self.STATUS_COLOR['unknown']), - 'voltage': metrics.get('voltage_V', 0.0), - 'current': metrics.get('current_A', 0.0), - 'time': metrics.get('totaltime_s', 0.0) - } - - channels.append(channel_info) - - except (ValueError, IndexError, KeyError): - # 如果解析失败,跳过该通道 - continue - - # 按位置排序(先按行,再按列) - channels.sort(key=lambda x: (x['subdevid'], x['chlid'])) - - # 统计状态 - stats = {s: 0 for s in self.STATUS_SET | {"unknown"}} - for channel in channels: - stats[channel['status']] += 1 - - return { - 'plate_id': f"P{plate_num}", - 'plate_num': plate_num, - 'devid': devid, - 'subdevid_range': list(subdevid_range), - 'total_channels': len(channels), - 'stats': stats, - 'channels': channels - } - - # ======================== - # TCP通信和协议处理 - # ======================== - - def _build_channel_map(self) -> List['ChannelKey']: - """构建全量通道映射(720个通道)""" - channels = [] - - # devid 1-7: subdevid 1-10, chlid 1-8 - for devid in range(1, 8): - for sub in range(1, 11): - for ch in range(1, 9): - channels.append(ChannelKey(devid, sub, ch)) - - # devid 8: subdevid 11-20, chlid 1-8 - for sub in range(11, 21): - for ch in range(1, 9): - channels.append(ChannelKey(8, sub, ch)) - - # devid 86: subdevid 1-10, chlid 1-8 - for sub in range(1, 11): - for ch in range(1, 9): - channels.append(ChannelKey(86, sub, ch)) - - return channels - - def _query_all_channels(self) -> Dict['ChannelKey', dict]: - """执行TCP查询获取所有通道状态""" - try: - req_xml = self._build_inquire_xml() - - with socket.create_connection((self.ip, self.port), timeout=self.timeout) as sock: - sock.settimeout(self.timeout) - sock.sendall(req_xml) - response = self._recv_until(sock) - - return self._parse_inquire_resp(response) - except Exception as e: - if self._ros_node: - self._ros_node.lab_logger().error(f"查询通道状态失败: {e}") - else: - print(f"查询通道状态失败: {e}") - return {} - - def _build_inquire_xml(self) -> bytes: - """构造inquire请求XML""" - lines = [ - '', - '', - 'inquire', - f'' - ] - - for c in self._channels: - lines.append( - f'true' - ) - - lines.extend(['', '']) - xml_text = "\n".join(lines) - return xml_text.encode("utf-8") + self.REQ_END - - def _recv_until(self, sock: socket.socket, end_token: bytes = None, - alt_close_tag: bytes = b"") -> bytes: - """接收TCP响应数据""" - if end_token is None: - end_token = self.REQ_END - - buf = bytearray() - while True: - chunk = sock.recv(8192) - if not chunk: - break - buf.extend(chunk) - if end_token in buf: - cut = buf.rfind(end_token) - return bytes(buf[:cut]) - if alt_close_tag in buf: - cut = buf.rfind(alt_close_tag) + len(alt_close_tag) - return bytes(buf[:cut]) - return bytes(buf) - - def _parse_inquire_resp(self, xml_bytes: bytes) -> Dict['ChannelKey', dict]: - """解析inquire_resp响应XML""" - mapping = {} - - try: - xml_text = xml_bytes.decode("utf-8", errors="ignore").strip() - if not xml_text: - return mapping - - root = ET.fromstring(xml_text) - cmd = root.findtext("cmd", default="").strip() - - if cmd != "inquire_resp": - return mapping - - list_node = root.find("list") - if list_node is None: - return mapping - - for node in list_node.findall("inquire"): - # 解析 dev="27-1-1-1-0" - dev = node.get("dev", "") - parts = dev.split("-") - # 容错:至少需要 5 段 - if len(parts) < 5: - continue - try: - devtype = int(parts[0]) # 未使用,但解析以校验正确性 - devid = int(parts[1]) - subdevid = int(parts[2]) - chlid = int(parts[3]) - aux = int(parts[4]) - except ValueError: - continue - - key = ChannelKey(devid, subdevid, chlid) - - # 提取属性,带类型转换与缺省值 - def fget(name: str, cast, default): - v = node.get(name) - if v is None or v == "": - return default - try: - return cast(v) - except Exception: - return default - - workstatus = (node.get("workstatus", "") or "").lower() - if workstatus not in self.STATUS_SET: - workstatus = "unknown" - - current = fget("current", float, 0.0) - voltage = fget("voltage", float, 0.0) - capacity = fget("capacity", float, 0.0) - energy = fget("energy", float, 0.0) - totaltime = fget("totaltime", float, 0.0) - relativetime = fget("relativetime", float, 0.0) - open_close = fget("open_or_close", int, 0) - cycle_id = fget("cycle_id", int, 0) - step_id = fget("step_id", int, 0) - step_type = node.get("step_type", "") or "" - log_code = node.get("log_code", "") or "" - barcode = node.get("barcode") - - mapping[key] = { - "state": workstatus, - "color": self.STATUS_COLOR.get(workstatus, self.STATUS_COLOR["unknown"]), - "current_A": current, - "voltage_V": voltage, - "capacity_Ah": capacity, - "energy_Wh": energy, - "totaltime_s": totaltime, - "relativetime_s": relativetime, - "open_or_close": open_close, - "step_type": step_type, - "cycle_id": cycle_id, - "step_id": step_id, - "log_code": log_code, - **({"barcode": barcode} if barcode is not None else {}), - } - - except Exception as e: - if self._ros_node: - self._ros_node.lab_logger().error(f"解析XML响应失败: {e}") - else: - print(f"解析XML响应失败: {e}") - - return mapping - - def _group_by_devid(self, status_map: Dict['ChannelKey', dict]) -> Dict[int, Dict]: - """按设备ID分组状态数据""" - result = {} - - for key, val in status_map.items(): - if key.devid not in result: - result[key.devid] = { - "stats": {s: 0 for s in self.STATUS_SET | {"unknown"}}, - "subunits": {} - } - - dev = result[key.devid] - state = val.get("state", "unknown") - dev["stats"][state] = dev["stats"].get(state, 0) + 1 - - subunits = dev["subunits"] - if key.subdevid not in subunits: - subunits[key.subdevid] = {} - - subunits[key.subdevid][key.chlid] = { - "state": state, - "color": val.get("color", self.STATUS_COLOR["unknown"]), - "open_or_close": val.get("open_or_close", 0), - "metrics": { - "voltage_V": val.get("voltage_V", 0.0), - "current_A": val.get("current_A", 0.0), - "capacity_Ah": val.get("capacity_Ah", 0.0), - "energy_Wh": val.get("energy_Wh", 0.0), - "totaltime_s": val.get("totaltime_s", 0.0), - "relativetime_s": val.get("relativetime_s", 0.0) - }, - "meta": { - "step_type": val.get("step_type", ""), - "cycle_id": val.get("cycle_id", 0), - "step_id": val.get("step_id", 0), - "log_code": val.get("log_code", "") - } - } - - return result - - -# ======================== -# 示例和测试代码 -# ======================== -def main(): - """测试和演示设备类的使用(支持2盘80颗电池)""" - print("=== 新威电池测试系统设备类演示(2盘80颗电池) ===") - - # 创建设备实例 - bts = NewareBatteryTestSystem() - - # 创建一个模拟的ROS节点用于初始化 - class MockRosNode: - def lab_logger(self): - import logging - return logging.getLogger(__name__) - - def update_resource(self, *args, **kwargs): - pass # 空实现,避免ROS调用错误 - - # 调用post_init进行正确的初始化 - mock_ros_node = MockRosNode() - bts.post_init(mock_ros_node) - - # 测试连接 - print(f"\n1. 连接测试:") - print(f" 连接信息: {bts.connection_info}") - if bts.test_connection(): - print(" ✓ TCP连接正常") - else: - print(" ✗ TCP连接失败") - return - - # 获取设备摘要 - print(f"\n2. 设备摘要:") - print(f" 总通道数: {bts.total_channels}") - summary_result = bts.get_device_summary() - if summary_result["success"]: - # 直接解析return_info,因为它就是JSON字符串 - summary = json.loads(summary_result["return_info"]) - for devid, count in summary.items(): - print(f" 设备ID {devid}: {count} 个通道") - else: - print(f" 获取设备摘要失败: {summary_result['return_info']}") - - # 显示物料管理系统信息 - print(f"\n3. 物料管理系统:") - print(f" 第1盘资源数: {len(bts.station_resources_plate1)}") - print(f" 第2盘资源数: {len(bts.station_resources_plate2)}") - print(f" 总资源数: {len(bts.station_resources)}") - - # 获取实时状态 - print(f"\n4. 获取通道状态:") - try: - bts.print_status_summary() - except Exception as e: - print(f" 获取状态失败: {e}") - - # 分别获取两盘的状态 - print(f"\n5. 分盘状态统计:") - try: - plate_status_data = bts.plate_status - for plate_num in [1, 2]: - plate_key = f"plate{plate_num}" # 修正键名格式:plate1, plate2 - if plate_key in plate_status_data: - plate_info = plate_status_data[plate_key] - print(f" 第{plate_num}盘:") - print(f" 总位置数: {plate_info['total_positions']}") - print(f" 活跃位置数: {plate_info['active_positions']}") - for state, count in plate_info['stats'].items(): - if count > 0: - print(f" {state}: {count} 个位置") - else: - print(f" 第{plate_num}盘: 无数据") - except Exception as e: - print(f" 获取分盘状态失败: {e}") - - # 导出JSON - print(f"\n6. 导出状态数据:") - result = bts.export_status_json("demo_2plate_status.json") - if result["success"]: - print(" ✓ 状态数据已导出到 demo_2plate_status.json") - else: - print(" ✗ 导出失败") - - -if __name__ == "__main__": - main() diff --git a/unilabos/devices/opsky_Raman/devices.json b/unilabos/devices/opsky_Raman/devices.json deleted file mode 100644 index 1ab5398c..00000000 --- a/unilabos/devices/opsky_Raman/devices.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "nodes": [ - { - "id": "opsky_ATR30007", - "name": "opsky_ATR30007", - "parent": null, - "type": "device", - "class": "opsky_ATR30007", - "position": { - "x": 620.6111111111111, - "y": 171, - "z": 0 - }, - "config": {}, - "data": {}, - "children": [] - } - ], - "links": [] -} \ No newline at end of file diff --git a/unilabos/devices/opsky_Raman/dmqfengzhuang.py b/unilabos/devices/opsky_Raman/dmqfengzhuang.py deleted file mode 100644 index fce22c71..00000000 --- a/unilabos/devices/opsky_Raman/dmqfengzhuang.py +++ /dev/null @@ -1,71 +0,0 @@ -import socket -import time -import csv -from datetime import datetime -import threading - -csv_lock = threading.Lock() # 防止多线程写CSV冲突 - -def scan_once(ip="192.168.1.50", port_in=2001, port_out=2002, - csv_file="scan_results.csv", timeout=5, retries=3): - """ - 改进版扫码函数: - - 自动重试 - - 全程超时保护 - - 更安全的socket关闭 - - 文件写入加锁 - """ - def save_result(qrcode): - timestamp = datetime.now().strftime("%Y-%m-%d %H:%M:%S") - with csv_lock: - with open(csv_file, mode="a", newline="") as f: - writer = csv.writer(f) - writer.writerow([timestamp, qrcode]) - print(f"✅ 已保存结果: {timestamp}, {qrcode}") - - result = None - - for attempt in range(1, retries + 1): - print(f"\n🟡 扫码尝试 {attempt}/{retries} ...") - - try: - # -------- Step 1: 触发拍照 -------- - with socket.create_connection((ip, port_in), timeout=2) as client_in: - cmd = "start" - client_in.sendall(cmd.encode("ascii")) #把字符串转为byte字节流规则是ascii码 - print(f"→ 已发送触发指令: {cmd}") - - # -------- Step 2: 等待识别结果 -------- - with socket.create_connection((ip, port_out), timeout=timeout) as client_out: - print(f" 已连接相机输出端口 {port_out},等待结果...") - - # recv最多阻塞timeout秒 - client_out.settimeout(timeout) - data = client_out.recv(2048).decode("ascii", errors="ignore").strip() #结果输出为ascii字符串,遇到无法解析的字节则忽略 - # .strip():去掉字符串头尾的空白字符(包括 \n, \r, 空格等),便于后续判断是否为空或写入 CSV。 - if data: - print(f"📷 识别结果: {data}") - save_result(data) #调用 save_result(data) 把时间戳 + 识别字符串写入 CSV(线程安全)。 - result = data #把局部变量 result 设为 data,用于函数返回值 - break #如果读取成功跳出重试循环(for attempt in ...),不再进行后续重试。 - else: - print("⚠️ 相机返回空数据,重试中...") - - except socket.timeout: - print("⏰ 超时未收到识别结果,重试中...") - except ConnectionRefusedError: - print("❌ 无法连接到扫码器端口,请检查设备是否在线。") - except OSError as e: - print(f"⚠️ 网络错误: {e}") - except Exception as e: - print(f"❌ 未知异常: {e}") - - time.sleep(0.5) # 两次扫描之间稍作延时 - - # -------- Step 3: 返回最终结果 -------- - if result: - print(f"✅ 扫码成功:{result}") - else: - print("❌ 多次尝试后仍未获取二维码结果") - - return result diff --git a/unilabos/devices/opsky_Raman/opsky_ATR30007.py b/unilabos/devices/opsky_Raman/opsky_ATR30007.py deleted file mode 100644 index 8eee2bab..00000000 --- a/unilabos/devices/opsky_Raman/opsky_ATR30007.py +++ /dev/null @@ -1,398 +0,0 @@ -# opsky_atr30007.py -import logging -import time as time_mod -import csv -from datetime import datetime -from typing import Optional, Dict, Any - -# 兼容 pymodbus 在不同版本中的位置与 API -try: - from pymodbus.client import ModbusTcpClient -except Exception: - ModbusTcpClient = None - -# 导入 run_raman_test(假定与本文件同目录) -# 如果你的项目是包结构且原先使用相对导入,请改回 `from .raman_module import run_raman_test` -try: - from .raman_module import run_raman_test -except Exception: - # 延迟导入失败不会阻止主流程(在 run 时会再尝试) - run_raman_test = None - -logger = logging.getLogger("opsky") -logger.setLevel(logging.INFO) -ch = logging.StreamHandler() -formatter = logging.Formatter("%(asctime)s [%(levelname)s] %(message)s", "%y-%m-%d %H:%M:%S") -ch.setFormatter(formatter) -logger.addHandler(ch) - - -class opsky_ATR30007: - """ - 封装 UniLabOS 设备动作逻辑,兼容 pymodbus 2.x / 3.x。 - 放在独立文件中:opsky_atr30007.py - """ - - def __init__( - self, - plc_ip: str = "192.168.1.88", - plc_port: int = 502, - robot_ip: str = "192.168.1.200", - robot_port: int = 502, - scan_csv_file: str = "scan_results.csv", - ): - self.plc_ip = plc_ip - self.plc_port = plc_port - self.robot_ip = robot_ip - self.robot_port = robot_port - self.scan_csv_file = scan_csv_file - - # ----------------- 参数字符串转换 helpers ----------------- - @staticmethod - def _str_to_int(s, default): - try: - return int(float(str(s).strip())) - except Exception: - return int(default) - - @staticmethod - def _str_to_float(s, default): - try: - return float(str(s).strip()) - except Exception: - return float(default) - - @staticmethod - def _str_to_bool(s, default): - try: - v = str(s).strip().lower() - if v in ("true", "1", "yes", "y", "t"): - return True - if v in ("false", "0", "no", "n", "f"): - return False - return default - except Exception: - return default - - # ----------------- Modbus / 安全读写 ----------------- - @staticmethod - def _adapt_req_kwargs_for_read(func_name: str, args: tuple, kwargs: dict): - # 如果调用方传的是 (address, count) positional,在新版接口可能是 address=..., count=... - if len(args) == 2 and func_name.startswith("read_"): - address, count = args - args = () - kwargs.setdefault("address", address) - kwargs.setdefault("count", count) - return args, kwargs - - @staticmethod - def _adapt_req_kwargs_for_write(func_name: str, args: tuple, kwargs: dict): - if len(args) == 2 and func_name.startswith("write_"): - address, value = args - args = () - kwargs.setdefault("address", address) - kwargs.setdefault("value", value) - return args, kwargs - - def ensure_connected(self, client, name, ip, port): - """确保连接存在,失败则尝试重连并返回新的 client 或 None""" - if client is None: - return None - try: - # 不同 pymodbus 版本可能有不同方法检测 socket - is_open = False - try: - is_open = bool(client.is_socket_open()) - except Exception: - # fallback: try to read nothing or attempt connection test - try: - # 轻试一次 - is_open = client.connected if hasattr(client, "connected") else False - except Exception: - is_open = False - - if not is_open: - logger.warning("%s 掉线,尝试重连...", name) - try: - client.close() - except Exception: - pass - time_mod.sleep(0.5) - if ModbusTcpClient: - new_client = ModbusTcpClient(ip, port=port) - try: - if new_client.connect(): - logger.info("%s 重新连接成功 (%s:%s)", name, ip, port) - return new_client - except Exception: - pass - logger.warning("%s 重连失败", name) - time_mod.sleep(1) - return None - return client - except Exception as e: - logger.exception("%s 连接检查异常: %s", name, e) - return None - - def safe_read(self, client, name, func, *args, retries=3, delay=0.3, **kwargs): - """兼容 pymodbus 2.x/3.x 的读函数,返回 response 或 None""" - if client is None: - return None - for attempt in range(1, retries + 1): - try: - # adapt args/kwargs for different API styles - args, kwargs = self._adapt_req_kwargs_for_read(func.__name__, args, kwargs) - # unit->slave compatibility - if "unit" in kwargs: - kwargs["slave"] = kwargs.pop("unit") - res = func(*args, **kwargs) - # pymodbus Response 在不同版本表现不同,尽量检测错误 - if res is None: - raise RuntimeError("返回 None") - if hasattr(res, "isError") and res.isError(): - raise RuntimeError("Modbus 返回 isError()") - return res - except Exception as e: - logger.warning("%s 读异常 (尝试 %d/%d): %s", name, attempt, retries, e) - time_mod.sleep(delay) - logger.error("%s 连续读取失败 %d 次", name, retries) - return None - - def safe_write(self, client, name, func, *args, retries=3, delay=0.3, **kwargs): - """兼容 pymodbus 2.x/3.x 的写函数,返回 True/False""" - if client is None: - return False - for attempt in range(1, retries + 1): - try: - args, kwargs = self._adapt_req_kwargs_for_write(func.__name__, args, kwargs) - if "unit" in kwargs: - kwargs["slave"] = kwargs.pop("unit") - res = func(*args, **kwargs) - if res is None: - raise RuntimeError("返回 None") - if hasattr(res, "isError") and res.isError(): - raise RuntimeError("Modbus 返回 isError()") - return True - except Exception as e: - logger.warning("%s 写异常 (尝试 %d/%d): %s", name, attempt, retries, e) - time_mod.sleep(delay) - logger.error("%s 连续写入失败 %d 次", name, retries) - return False - - def wait_with_quit_check(self, robot, seconds, addr_quit=270): - """等待指定时间,同时每 0.2s 检查 R270 是否为 1(立即退出)""" - if robot is None: - time_mod.sleep(seconds) - return False - checks = max(1, int(seconds / 0.2)) - for _ in range(checks): - rr = self.safe_read(robot, "机器人", robot.read_holding_registers, address=addr_quit, count=1) - if rr and getattr(rr, "registers", [None])[0] == 1: - logger.info("检测到 R270=1,立即退出等待") - return True - time_mod.sleep(0.2) - return False - - # ----------------- 主流程 run_once ----------------- - def run_once( - self, - integration_time: str = "5000", - laser_power: str = "200", - save_csv: str = "true", - save_plot: str = "true", - normalize: str = "true", - norm_max: str = "1.0", - **_: Any, - ) -> Dict[str, Any]: - result: Dict[str, Any] = {"success": False, "event": "none", "details": {}} - - integration_time_v = self._str_to_int(integration_time, 5000) - laser_power_v = self._str_to_int(laser_power, 200) - save_csv_v = self._str_to_bool(save_csv, True) - save_plot_v = self._str_to_bool(save_plot, True) - normalize_v = self._str_to_bool(normalize, True) - norm_max_v = None if norm_max in (None, "", "none", "null") else self._str_to_float(norm_max, 1.0) - - if ModbusTcpClient is None: - result["details"]["error"] = "未安装 pymodbus,无法执行连接" - logger.error(result["details"]["error"]) - return result - - # 建立连接 - plc = ModbusTcpClient(self.plc_ip, port=self.plc_port) - robot = ModbusTcpClient(self.robot_ip, port=self.robot_port) - try: - if not plc.connect(): - result["details"]["error"] = "无法连接 PLC" - logger.error(result["details"]["error"]) - return result - if not robot.connect(): - plc.close() - result["details"]["error"] = "无法连接 机器人" - logger.error(result["details"]["error"]) - return result - - logger.info("✅ PLC 与 机器人连接成功") - time_mod.sleep(0.2) - - # 伺服使能 (coil 写示例) - if self.safe_write(plc, "PLC", plc.write_coil, 10, True): - logger.info("✅ 伺服使能成功 (M10=True)") - else: - logger.warning("⚠️ 伺服使能失败") - - # 初始化 CSV 文件 - try: - with open(self.scan_csv_file, "w", newline="", encoding="utf-8") as f: - csv.writer(f).writerow(["Bottle_No", "Scan_Result", "Time"]) - except Exception as e: - logger.warning("⚠️ 初始化CSV失败: %s", e) - - bottle_count = 0 - logger.info("🟢 等待机器人触发信号... (R260=1扫码 / R256=1拉曼 / R270=1退出)") - - # 主循环:仅响应事件(每次循环后短暂 sleep) - while True: - plc = self.ensure_connected(plc, "PLC", self.plc_ip, self.plc_port) or plc - robot = self.ensure_connected(robot, "机器人", self.robot_ip, self.robot_port) or robot - - # 检查退出寄存器 - quit_signal = self.safe_read(robot, "机器人", robot.read_holding_registers, 270, 1) - if quit_signal and getattr(quit_signal, "registers", [None])[0] == 1: - logger.info("🟥 检测到 R270=1,准备退出...") - result["event"] = "quit" - result["success"] = True - break - - # 读取关键寄存器(256..260) - rr = self.safe_read(robot, "机器人", robot.read_holding_registers, 256, 5) - if not rr or not hasattr(rr, "registers"): - time_mod.sleep(0.3) - continue - - r256, r257, r258, r259, r260 = (rr.registers + [0, 0, 0, 0, 0])[:5] - - # ---------- 扫码逻辑 ---------- - if r260 == 1: - bottle_count += 1 - logger.info("📸 第 %d 瓶触发扫码 (R260=1)", bottle_count) - try: - # 调用外部扫码函数(用户实现) - from .dmqfengzhuang import scan_once as scan_once_local - scan_result = scan_once_local(ip="192.168.1.50", port_in=2001, port_out=2002) - if scan_result: - logger.info("✅ 扫码成功: %s", scan_result) - timestamp = datetime.now().strftime("%Y-%m-%d %H:%M:%S") - with open(self.scan_csv_file, "a", newline="", encoding="utf-8") as f: - csv.writer(f).writerow([bottle_count, scan_result, timestamp]) - else: - logger.warning("⚠️ 扫码失败或无返回") - except Exception as e: - logger.exception("❌ 扫码异常: %s", e) - - # 写 R260->0, R261->1 - self.safe_write(robot, "机器人", robot.write_register, 260, 0) - time_mod.sleep(0.15) - self.safe_write(robot, "机器人", robot.write_register, 261, 1) - logger.info("➡️ 扫码完成 (R260→0, R261→1)") - result["event"] = "scan" - result["success"] = True - - # ---------- 拉曼逻辑 ---------- - if r256 == 1: - logger.info("⚙️ 检测到 R256=1(放瓶完成)") - # PLC 电机右转指令 - self.safe_write(plc, "PLC", plc.write_register, 1199, 1) - self.safe_write(plc, "PLC", plc.write_register, 1200, 1) - logger.info("➡️ 电机右转中...") - if self.wait_with_quit_check(robot, 3): - result["event"] = "quit" - break - self.safe_write(plc, "PLC", plc.write_register, 1199, 0) - logger.info("✅ 电机右转完成") - - # 调用拉曼测试(尽量捕获异常并记录) - logger.info("🧪 开始拉曼测试...") - try: - # 尝试使用模块导入好的 run_raman_test,否则再动态导入 - rr_func = run_raman_test - if rr_func is None: - from raman_module import run_raman_test as rr_func - success, file_prefix, df = rr_func( - integration_time=integration_time_v, - laser_power=laser_power_v, - save_csv=save_csv_v, - save_plot=save_plot_v, - normalize=normalize_v, - norm_max=norm_max_v, - ) - if success: - logger.info("✅ 拉曼测试完成: %s", file_prefix) - result["event"] = "raman" - result["success"] = True - else: - logger.warning("⚠️ 拉曼测试失败") - except Exception as e: - logger.exception("❌ 拉曼模块异常: %s", e) - - # 电机左转回位 - self.safe_write(plc, "PLC", plc.write_register, address=1299, value=1) - self.safe_write(plc, "PLC", plc.write_register, address=1300, value=1) - logger.info("⬅️ 电机左转中...") - if self.wait_with_quit_check(robot, 3): - result["event"] = "quit" - break - self.safe_write(plc, "PLC", plc.write_register, address=1299, value=0) - logger.info("✅ 电机左转完成") - - # 通知机器人拉曼完成 R257=1 - self.safe_write(robot, "机器人", robot.write_register, address=257, value=1) - logger.info("✅ 已写入 R257=1(拉曼完成)") - - # 延迟后清零 R256 - logger.info("⏳ 延迟4秒后清零 R256") - if self.wait_with_quit_check(robot, 4): - result["event"] = "quit" - break - self.safe_write(robot, "机器人", robot.write_register, address=256, value=0) - logger.info("✅ 已清零 R256") - - # 等待机器人清 R257 - logger.info("等待 R257 清零中...") - while True: - rr2 = self.safe_read(robot, "机器人", robot.read_holding_registers, address=257, count=1) - if rr2 and getattr(rr2, "registers", [None])[0] == 0: - logger.info("✅ 检测到 R257=0,准备下一循环") - break - if self.wait_with_quit_check(robot, 1): - result["event"] = "quit" - break - time_mod.sleep(0.2) - - time_mod.sleep(0.25) - - finally: - logger.info("🧹 开始清理...") - try: - self.safe_write(plc, "PLC", plc.write_coil, address=10, value=False) - except Exception: - pass - for addr in [256, 257, 260, 261, 270]: - try: - self.safe_write(robot, "机器人", robot.write_register, address=addr, value=0) - except Exception: - pass - - try: - if plc: - plc.close() - except Exception: - pass - try: - if robot: - robot.close() - except Exception: - pass - logger.info("🔚 已关闭所有连接") - - return result diff --git a/unilabos/devices/opsky_Raman/raman_module.py b/unilabos/devices/opsky_Raman/raman_module.py deleted file mode 100644 index 2bf76d27..00000000 --- a/unilabos/devices/opsky_Raman/raman_module.py +++ /dev/null @@ -1,180 +0,0 @@ -# raman_module.py -import os -import time as time_mod -import numpy as np -import pandas as pd - -# clr / ATRWrapper 依赖:在真实环境中使用 Windows + .NET wrapper -# 本模块对缺少 clr 或 Wrapper 的情况提供“仿真”回退,方便离线/调试运行。 -try: - import clr - has_clr = True -except Exception: - clr = None - has_clr = False - -# 本函数返回 (success: bool, file_prefix: str|None, df: pandas.DataFrame|None) -def run_raman_test(integration_time=5000, laser_power=200, - save_csv=True, save_plot=True, - normalize=False, norm_max=None, - max_wavenum=1300): - """ - 拉曼测试流程(更稳健的实现): - - 若能加载 ATRWrapper 则使用之 - - 否则生成模拟光谱(方便调试) - 返回 (success, file_prefix, df) - """ - timestamp = time_mod.strftime("%Y%m%d_%H%M%S") - file_prefix = f"raman_{timestamp}" - - wrapper = None - used_real_device = False - - try: - if has_clr: - try: - # 请根据你的 DLL 路径调整 - dll_path = r"D:\Raman\Raman_RS\ATRWrapper\ATRWrapper.dll" - if os.path.exists(dll_path): - clr.AddReference(dll_path) - else: - # 试图直接 AddReference 名称(若已在 PATH) - try: - clr.AddReference("ATRWrapper") - except Exception: - pass - - from Optosky.Wrapper import ATRWrapper # May raise - wrapper = ATRWrapper() - used_real_device = True - except Exception as e: - # 无法加载真实 wrapper -> fallback - print("⚠️ 未能加载 ATRWrapper,使用模拟数据。详细:", e) - wrapper = None - - if wrapper is None: - # 生成模拟光谱(方便调试) - # 模拟波数轴 50..1300 - WaveNum = np.linspace(50, max_wavenum, 1024) - # 合成几条高斯峰 + 噪声 - def gauss(x, mu, sig, A): - return A * np.exp(-0.5 * ((x - mu) / sig) ** 2) - Spect_data = (gauss(WaveNum, 200, 8, 1000) + - gauss(WaveNum, 520, 12, 600) + - gauss(WaveNum, 810, 20, 400) + - 50 * np.random.normal(scale=1.0, size=WaveNum.shape)) - Spect_bLC = Spect_data - np.min(Spect_data) * 0.05 # 简单 baseline - Spect_smooth = np.convolve(Spect_bLC, np.ones(3) / 3, mode="same") - df = pd.DataFrame({ - "WaveNum": WaveNum, - "Raw_Spect": Spect_data, - "BaseLineCorrected": Spect_bLC, - "Smooth_Spect": Spect_smooth - }) - success = True - file_prefix = f"raman_sim_{timestamp}" - # 保存 CSV / 绘图 等同真实设备 - else: - # 使用真实设备 API(根据你提供的 wrapper 调用) - On_flag = wrapper.OpenDevice() - print("通讯连接状态:", On_flag) - if not On_flag: - wrapper.CloseDevice() - return False, None, None - - wrapper.SetIntegrationTime(int(integration_time)) - wrapper.SetLdPower(int(laser_power), 1) - # 可能的冷却设置(如果 wrapper 支持) - try: - wrapper.SetCool(-5) - except Exception: - pass - - Spect = wrapper.AcquireSpectrum() - Spect_data = np.array(Spect.get_Data()) - if not Spect.get_Success(): - print("光谱采集失败") - try: - wrapper.CloseDevice() - except Exception: - pass - return False, None, None - WaveNum = np.array(wrapper.GetWaveNum()) - Spect_bLC = np.array(wrapper.BaseLineCorrect(Spect_data)) - Spect_smooth = np.array(wrapper.SmoothBoxcar(Spect_bLC, 3)) - df = pd.DataFrame({ - "WaveNum": WaveNum, - "Raw_Spect": Spect_data, - "BaseLineCorrected": Spect_bLC, - "Smooth_Spect": Spect_smooth - }) - wrapper.CloseDevice() - success = True - - # 如果需要限定波数范围 - mask = df["WaveNum"] <= max_wavenum - df = df[mask].reset_index(drop=True) - - # 可选归一化 - if normalize: - arr = df["Smooth_Spect"].values - mn, mx = arr.min(), arr.max() - if mx == mn: - df["Smooth_Spect"] = 0.0 - else: - scale = 1.0 if norm_max is None else float(norm_max) - df["Smooth_Spect"] = (arr - mn) / (mx - mn) * scale - # 同时处理其它列(可选) - arr_raw = df["Raw_Spect"].values - mn_r, mx_r = arr_raw.min(), arr_raw.max() - if mx_r == mn_r: - df["Raw_Spect"] = 0.0 - else: - scale = 1.0 if norm_max is None else float(norm_max) - df["Raw_Spect"] = (arr_raw - mn_r) / (mx_r - mn_r) * scale - - # 保存 CSV - if save_csv: - csv_filename = f"{file_prefix}.csv" - df.to_csv(csv_filename, index=False) - print("✅ CSV 文件已生成:", csv_filename) - - # 绘图(使用 matplotlib),注意:不要启用 GUI 后台 - if save_plot: - try: - import matplotlib - matplotlib.use("Agg") - import matplotlib.pyplot as plt - - plt.figure(figsize=(8, 5)) - plt.plot(df["WaveNum"], df["Raw_Spect"], linestyle='-', alpha=0.6, label="原始") - plt.plot(df["WaveNum"], df["BaseLineCorrected"], linestyle='--', alpha=0.8, label="基线校正") - plt.plot(df["WaveNum"], df["Smooth_Spect"], linewidth=1.2, label="平滑") - plt.xlabel("WaveNum (cm^-1)") - plt.ylabel("Intensity (a.u.)") - plt.title(f"Raman {file_prefix}") - plt.grid(True) - plt.legend() - plt.tight_layout() - plot_filename = f"{file_prefix}.png" - plt.savefig(plot_filename, dpi=300, bbox_inches="tight") - plt.close() - # 小短暂等待以确保文件系统刷新 - time_mod.sleep(0.2) - print("✅ 图像已生成:", plot_filename) - except Exception as e: - print("⚠️ 绘图失败:", e) - - return success, file_prefix, df - - except Exception as e: - print("拉曼测试异常:", e) - try: - if wrapper is not None: - try: - wrapper.CloseDevice() - except Exception: - pass - except Exception: - pass - return False, None, None diff --git a/unilabos/devices/opsky_Raman/test2.py b/unilabos/devices/opsky_Raman/test2.py deleted file mode 100644 index 7646439b..00000000 --- a/unilabos/devices/opsky_Raman/test2.py +++ /dev/null @@ -1,209 +0,0 @@ -import time -import csv -from datetime import datetime -from pymodbus.client import ModbusTcpClient -from dmqfengzhuang import scan_once -from raman_module import run_raman_test - -# =================== 配置 =================== -PLC_IP = "192.168.1.88" -PLC_PORT = 502 -ROBOT_IP = "192.168.1.200" -ROBOT_PORT = 502 -SCAN_CSV_FILE = "scan_results.csv" - -# =================== 通用函数 =================== -def ensure_connected(client, name, ip, port): - if not client.is_socket_open(): - print(f"{name} 掉线,正在重连...") - client.close() - time.sleep(1) - - new_client = ModbusTcpClient(ip, port=port) - if new_client.connect(): - print(f"{name} 重新连接成功 ({ip}:{port})") - return new_client - else: - print(f"{name} 重连失败,稍后重试...") - time.sleep(3) - return None - return client - -def safe_read(client, name, func, *args, retries=3, delay=0.3, **kwargs): - for _ in range(retries): - try: - res = func(*args, **kwargs) - if res and not (hasattr(res, "isError") and res.isError()): - return res - except Exception as e: - print(f"{name} 读异常: {e}") - time.sleep(delay) - print(f"{name} 连续读取失败 {retries} 次") - return None - -def safe_write(client, name, func, *args, retries=3, delay=0.3, **kwargs): - for _ in range(retries): - try: - res = func(*args, **kwargs) - if res and not (hasattr(res, "isError") and res.isError()): - return True - except Exception as e: - print(f"{name} 写异常: {e}") - time.sleep(delay) - print(f"{name} 连续写入失败 {retries} 次") - return False - -def wait_with_quit_check(robot, seconds, addr_quit=270): - for _ in range(int(seconds / 0.2)): - rr = safe_read(robot, "机器人", robot.read_holding_registers, - address=addr_quit, count=1) - if rr and rr.registers[0] == 1: - print("检测到 R270=1,立即退出循环") - return True - time.sleep(0.2) - return False - -# =================== 初始化 =================== -plc = ModbusTcpClient(PLC_IP, port=PLC_PORT) -robot = ModbusTcpClient(ROBOT_IP, port=ROBOT_PORT) - -if not plc.connect(): - print("无法连接 PLC") - exit() -if not robot.connect(): - print("无法连接 机器人") - plc.close() - exit() - -print("✅ PLC 与 机器人连接成功") -time.sleep(0.5) - -# 伺服使能 -if safe_write(plc, "PLC", plc.write_coil, address=10, value=True): - print("✅ 伺服使能成功 (M10=True)") -else: - print("⚠️ 伺服使能失败") - -# 初始化扫码 CSV -with open(SCAN_CSV_FILE, "w", newline="", encoding="utf-8") as f: - csv.writer(f).writerow(["Bottle_No", "Scan_Result", "Time"]) - -bottle_count = 0 -print("🟢 等待机器人触发信号... (R260=1扫码 / R256=1拉曼 / R270=1退出)") - -# =================== 主监听循环 =================== -while True: - plc = ensure_connected(plc, "PLC", PLC_IP, PLC_PORT) or plc - robot = ensure_connected(robot, "机器人", ROBOT_IP, ROBOT_PORT) or robot - - # 退出命令检测 - quit_signal = safe_read(robot, "机器人", robot.read_holding_registers, - address=270, count=1) - if quit_signal and quit_signal.registers[0] == 1: - print("🟥 检测到 R270=1,准备退出程序...") - break - - # 读取关键寄存器 - rr = safe_read(robot, "机器人", robot.read_holding_registers, - address=256, count=5) - if not rr: - time.sleep(0.3) - continue - - r256, _, r258, r259, r260 = rr.registers[:5] - - # ----------- 扫码部分 (R260=1) ----------- - if r260 == 1: - bottle_count += 1 - print(f"📸 第 {bottle_count} 瓶触发扫码 (R260=1)") - - try: - result = scan_once(ip="192.168.1.50", port_in=2001, port_out=2002) - if result: - print(f"✅ 扫码成功: {result}") - timestamp = datetime.now().strftime("%Y-%m-%d %H:%M:%S") - with open(SCAN_CSV_FILE, "a", newline="", encoding="utf-8") as f: - csv.writer(f).writerow([bottle_count, result, timestamp]) - else: - print("⚠️ 扫码失败或无返回") - except Exception as e: - print(f"❌ 扫码异常: {e}") - - safe_write(robot, "机器人", robot.write_register, address=260, value=0) - time.sleep(0.2) - safe_write(robot, "机器人", robot.write_register, address=261, value=1) - print("➡️ 扫码完成 (R260→0, R261→1)") - - # ----------- 拉曼 + 电机部分 (R256=1) ----------- - if r256 == 1: - print("⚙️ 检测到 R256=1(放瓶完成)") - - # 电机右转 - safe_write(plc, "PLC", plc.write_register, address=1199, value=1) - safe_write(plc, "PLC", plc.write_register, address=1200, value=1) - print("➡️ 电机右转中...") - if wait_with_quit_check(robot, 3): - break - safe_write(plc, "PLC", plc.write_register, address=1199, value=0) - print("✅ 电机右转完成") - - # 拉曼测试 - print("🧪 开始拉曼测试...") - try: - success, file_prefix, df = run_raman_test( - integration_time=5000, - laser_power=200, - save_csv=True, - save_plot=True, - normalize=True, - norm_max=1.0 - ) - if success: - print(f"✅ 拉曼完成:{file_prefix}.csv / .png") - else: - print("⚠️ 拉曼失败") - except Exception as e: - print(f"❌ 拉曼测试异常: {e}") - - # 电机左转 - safe_write(plc, "PLC", plc.write_register, address=1299, value=1) - safe_write(plc, "PLC", plc.write_register, address=1300, value=1) - print("⬅️ 电机左转中...") - if wait_with_quit_check(robot, 3): - break - safe_write(plc, "PLC", plc.write_register, address=1299, value=0) - print("✅ 电机左转完成") - - # 写入拉曼完成信号 - safe_write(robot, "机器人", robot.write_register, address=257, value=1) - print("✅ 已写入 R257=1(拉曼完成)") - - # 延迟清零 R256 - print("⏳ 延迟4秒后清零 R256") - if wait_with_quit_check(robot, 4): - break - safe_write(robot, "机器人", robot.write_register, address=256, value=0) - print("✅ 已清零 R256") - - # 等待机器人清零 R257 - print("等待 R257 清零中...") - while True: - rr2 = safe_read(robot, "机器人", robot.read_holding_registers, address=257, count=1) - if rr2 and rr2.registers[0] == 0: - print("✅ 检测到 R257=0,准备下一循环") - break - if wait_with_quit_check(robot, 1): - break - time.sleep(0.2) - - time.sleep(0.2) - -# =================== 程序退出清理 =================== -print("🧹 开始清理...") -safe_write(plc, "PLC", plc.write_coil, address=10, value=False) -for addr in [256, 257, 260, 261, 270]: - safe_write(robot, "机器人", robot.write_register, address=addr, value=0) - -plc.close() -robot.close() -print("✅ 程序已退出,设备全部复位。") diff --git a/unilabos/devices/platereader/NivoDriver.py b/unilabos/devices/platereader/NivoDriver.py deleted file mode 100644 index d9896579..00000000 --- a/unilabos/devices/platereader/NivoDriver.py +++ /dev/null @@ -1,295 +0,0 @@ -import time -import traceback -from typing import Optional - -import requests -from pywinauto.application import WindowSpecification -from pywinauto.controls.uiawrapper import UIAWrapper -from pywinauto_recorder import UIApplication -from pywinauto_recorder.player import UIPath, click, focus_on_application, exists, find, FailedSearch - -from unilabos.device_comms import universal_driver as ud -from unilabos.device_comms.universal_driver import UniversalDriver, SingleRunningExecutor -from unilabos.utils.pywinauto_util import connect_application, get_process_pid_by_name, \ - get_ui_path_with_window_specification - - -class NivoDriver(UniversalDriver): - # 初始指定 - _device_ip: str = None - # 软件状态检测 - _software_enabled: bool = False - _software_pid: int = None - _http_service_available: bool = False - - # 初始化状态 - _is_initialized: bool = False - - # 任务是否成功 - _success: bool = False - - # 运行状态 - _is_executing_run: bool = False - _executing_ui_path: Optional[UIPath] = None - _executing_index: Optional[int] = None - _executing_status: Optional[str] = None - _total_tasks: Optional[list[str]] = None - _guide_app: Optional[UIApplication] = None - - @property - def executing_status(self) -> str: - if self._total_tasks is None: - return f"无任务" - if self._executing_index is None: - return f"等待任务开始,总计{len(self._total_tasks)}个".encode('utf-8').decode('utf-8') - else: - return f"正在执行第{self._executing_index + 1}/{len(self._total_tasks)}个任务,当前状态:{self._executing_status}".encode('utf-8').decode('utf-8') - - @property - def device_ip(self) -> str: - return self._device_ip - - @property - def success(self) -> bool: - return self._success - - @property - def status(self) -> str: - return f"Software: {self._software_enabled}, HTTP: {self._http_service_available} Initialized: {self._is_initialized} Executing: {self._is_executing_run}" - - def set_device_addr(self, device_ip_str): - self._device_ip = device_ip_str - print(f"Set device IP to: {self.device_ip}") - - def run_instrument(self): - if not self._is_initialized: - print("Instrument is not initialized") - self._success = False - return False - def post_func(res, _): - self._success = res - if not res: - self._is_executing_run = False - ins: SingleRunningExecutor = SingleRunningExecutor.get_instance(self.execute_run_instrument, post_func) - if not ins.is_ended and ins.is_started: - print("Function is running") - self._success = False - return False - elif not ins.is_started: - print("Function started") - ins.start() # 开始执行 - else: - print("Function reset and started") - ins.reset() - ins.start() - - def execute_run_instrument(self): - process_found, process_pid = get_process_pid_by_name("Guide.exe", min_memory_mb=20) - if not process_found: - uiapp = connect_application(process=self._software_pid) - focus_on_application(uiapp) - ui_window: WindowSpecification = uiapp.app.top_window() - button: WindowSpecification = ui_window.child_window(title="xtpBarTop", class_name="XTPDockBar").child_window( - title="Standard", class_name="XTPToolBar").child_window(title="Protocol", control_type="Button") - click(button.wrapper_object()) - for _ in range(5): - time.sleep(1) - process_found, process_pid = get_process_pid_by_name("Guide.exe", min_memory_mb=20) - if process_found: - break - if not process_found: - print("Guide.exe not found") - self._success = False - return False - uiapp = connect_application(process=process_pid) - self._guide_app = uiapp - focus_on_application(uiapp) - wrapper_object = uiapp.app.top_window().wrapper_object() - ui_path = get_ui_path_with_window_specification(wrapper_object) - self._executing_ui_path = ui_path - with ui_path: - try: - click(u"||Custom->||RadioButton-> Run||Text-> Run||Text") - except FailedSearch as e: - print(f"未找到Run按钮,可能已经在执行了") - with UIPath(u"WAA.Guide.Guide.RunControlViewModel||Custom->||Custom"): - click(u"Start||Button") - with UIPath(u"WAA.Guide.Guide.RunControlViewModel||Custom->||Custom->||Group->WAA.Guide.Guide.StartupControlViewModel||Custom->||Custom->Ok||Button"): - while self._executing_index is None or self._executing_index == 0: - if exists(None, timeout=2): - click(u"Ok||Text") - print("Run Init Success!") - self._is_executing_run = True - return True - else: - print("Wait for Ok button") - - def check_execute_run_status(self): - if not self._is_executing_run: - return False - if self._executing_ui_path is None: - return False - total_tasks = [] - executing_index = 0 - executing_status = "" - procedure_name_found = False - with self._executing_ui_path: - with UIPath(u"WAA.Guide.Guide.RunControlViewModel||Custom->||Custom"): - with UIPath("Progress||Group->||DataGrid"): - wrappered_object: UIAWrapper = find(timeout=0.5) # BUG: 在查找的时候会触发全局锁,建议还是使用Process来检测 - for custom_wrapper in wrappered_object.children(): - if len(custom_wrapper.children()) == 1: - each_custom_wrapper = custom_wrapper.children()[0] - if len(each_custom_wrapper.children()) == 2: - if not procedure_name_found: - procedure_name_found = True - continue - task_wrapper = each_custom_wrapper.children()[0] - total_tasks.append(task_wrapper.window_text()) - status_wrapper = each_custom_wrapper.children()[1] - status = status_wrapper.window_text() - if len(status) > 0: - executing_index = len(total_tasks) - 1 - executing_status = status - try: - if self._guide_app is not None: - wrapper_object = self._guide_app.app.top_window().wrapper_object() - ui_path = get_ui_path_with_window_specification(wrapper_object) - with ui_path: - with UIPath("OK||Button"): - btn = find(timeout=1) - if btn is not None: - btn.set_focus() - click(btn, timeout=1) - self._is_executing_run = False - print("运行完成!") - except: - pass - self._executing_index = executing_index - self._executing_status = executing_status - self._total_tasks = total_tasks - return True - - def initialize_instrument(self, force=False): - if not self._software_enabled: - print("Software is not opened") - self._success = False - return - if not self._http_service_available: - print("HTTP Server Not Available") - self._success = False - return - if self._is_initialized and not force: - print("Already Initialized") - self._success = True - return True - ins: SingleRunningExecutor = SingleRunningExecutor.get_instance(self.execute_initialize, lambda res, _: setattr(self, '_success', res)) - if not ins.is_ended and ins.is_started: - print("Initialize is running") - self._success = False - return False - elif not ins.is_started: - print("Initialize started") - ins.start() - else: # 可能外面is_initialized被设置为False,又进来重新初始化了 - print("Initialize reset and started") - ins.reset() - ins.start() - return True - - def execute_initialize(self, process=None) -> bool: - if process is None: - process = self._software_pid - try: - uiapp = connect_application(process=process) - ui_window: WindowSpecification = uiapp.app.top_window() - - button = ui_window.child_window(title="xtpBarTop", class_name="XTPDockBar").child_window( - title="Standard", class_name="XTPToolBar").child_window(title="Initialize Instrument", control_type="Button") - focus_on_application(uiapp) - click(button.wrapper_object()) - with get_ui_path_with_window_specification(ui_window): - with UIPath("Regex: (Initializing|Resetting|Perking).*||Window"): - # 检测窗口是否存在 - for i in range(3): - try: - initializing_windows = exists(None, timeout=2) - break - except: - pass - print("window has recovered", initializing_windows) - time.sleep(5) # another wait - self._is_initialized = True - return True - except Exception as e: - print("An error occurred during initialization:") - traceback.print_exc() - return False - - def __init__(self): - self._device_ip = "192.168.0.2" - # 启动所有监控器 - self.checkers = [ - ProcessChecker(self, 1), - HttpServiceChecker(self, 3), - RunStatusChecker(self, 1), - OkButtonChecker(self, 2) # 添加新的Checker - ] - for checker in self.checkers: - checker.start_monitoring() - - -class DriverChecker(ud.DriverChecker): - driver: NivoDriver - -class ProcessChecker(DriverChecker): - def check(self): - process_found, process_pid = get_process_pid_by_name("JANUS.exe", min_memory_mb=20) - self.driver._software_pid = process_pid - self.driver._software_enabled = process_found - if not process_found: - self.driver._is_initialized = False - - -class HttpServiceChecker(DriverChecker): - def check(self): - http_service_available = False - if self.driver.device_ip: - try: - response = requests.get(f"http://{self.driver.device_ip}", timeout=5) - http_service_available = response.status_code == 200 - except requests.RequestException: - pass - self.driver._http_service_available = http_service_available - - -class RunStatusChecker(DriverChecker): - def check(self): - process_found, process_pid = get_process_pid_by_name("Guide.exe", min_memory_mb=20) - if not process_found: - self.driver._is_executing_run = False - return - self.driver.check_execute_run_status() - -class OkButtonChecker(DriverChecker): - def check(self): - if not self.driver._is_executing_run or self.driver._guide_app is None: - return - # uiapp = connect_application(process=11276) - # self.driver._guide_app = uiapp - try: - ui_window: UIAWrapper = self.driver._guide_app.app.top_window() - btn: WindowSpecification = ui_window.child_window(title="OK", auto_id="2", control_type="Button") - if btn.exists(2): - click(btn.wrapper_object()) - self.driver._is_executing_run = False - print("运行完成!") - except Exception as e: - # traceback.print_exc() - pass - -# 示例用法 -if __name__ == "__main__": - driver = NivoDriver() - driver.set_device_addr("192.168.0.2") # 设置设备 IP 地址 - driver._is_executing_run = True diff --git a/unilabos/devices/platereader/PlayerUtil.py b/unilabos/devices/platereader/PlayerUtil.py deleted file mode 100644 index 07244131..00000000 --- a/unilabos/devices/platereader/PlayerUtil.py +++ /dev/null @@ -1,166 +0,0 @@ -import psutil -import pywinauto -from pywinauto_recorder import UIApplication -from pywinauto_recorder.player import UIPath, click, focus_on_application, exists, find, get_wrapper_path -from pywinauto.controls.uiawrapper import UIAWrapper -from pywinauto.application import WindowSpecification -from pywinauto import findbestmatch -import sys -import codecs -import os -import locale -import six - - -def connect_application(backend="uia", **kwargs): - app = pywinauto.Application(backend=backend) - app.connect(**kwargs) - top_window = app.top_window().wrapper_object() - native_window_handle = top_window.handle - return UIApplication(app, native_window_handle) - -def get_ui_path_with_window_specification(obj): - return UIPath(get_wrapper_path(obj)) - -def get_process_pid_by_name(process_name: str, min_memory_mb: float = 0) -> tuple[bool, int]: - """ - 通过进程名称和最小内存要求获取进程PID - - Args: - process_name: 进程名称 - min_memory_mb: 最小内存要求(MB),默认为0表示不检查内存 - - Returns: - tuple[bool, int]: (是否找到进程, 进程PID) - """ - process_found = False - process_pid = None - min_memory_bytes = min_memory_mb * 1024 * 1024 # 转换为字节 - - try: - for proc in psutil.process_iter(['name', 'pid', 'memory_info']): - try: - # 获取进程信息 - proc_info = proc.info - if proc_info['name'] == process_name: - # 如果设置了内存限制,则检查内存 - if min_memory_mb > 0: - memory_info = proc_info.get('memory_info') - if memory_info and memory_info.rss > min_memory_bytes: - process_found = True - process_pid = proc_info['pid'] - break - else: - # 不检查内存,直接返回找到的进程 - process_found = True - process_pid = proc_info['pid'] - break - - except (psutil.NoSuchProcess, psutil.AccessDenied, psutil.ZombieProcess): - continue - - except Exception as e: - print(f"获取进程信息时发生错误: {str(e)}") - - return process_found, process_pid - -def print_wrapper_identifiers(wrapper_object, depth=None, filename=None): - """ - 打印控件及其子控件的标识信息 - - Args: - wrapper_object: UIAWrapper对象 - depth: 打印的最大深度,None表示打印全部 - filename: 输出文件名,None表示打印到控制台 - """ - if depth is None: - depth = sys.maxsize - - # 创建所有控件的列表(当前控件及其所有子代) - all_ctrls = [wrapper_object, ] + wrapper_object.descendants() - - # 创建所有可见文本控件的列表 - txt_ctrls = [ctrl for ctrl in all_ctrls if ctrl.can_be_label and ctrl.is_visible() and ctrl.window_text()] - - # 构建唯一的控件名称字典 - name_ctrl_id_map = findbestmatch.UniqueDict() - for index, ctrl in enumerate(all_ctrls): - ctrl_names = findbestmatch.get_control_names(ctrl, all_ctrls, txt_ctrls) - for name in ctrl_names: - name_ctrl_id_map[name] = index - - # 反转映射关系(控件索引到名称列表) - ctrl_id_name_map = {} - for name, index in name_ctrl_id_map.items(): - ctrl_id_name_map.setdefault(index, []).append(name) - - def print_identifiers(ctrls, current_depth=1, log_func=print): - """递归打印控件及其子代的标识信息""" - if len(ctrls) == 0 or current_depth > depth: - return - - indent = (current_depth - 1) * u" | " - for ctrl in ctrls: - try: - ctrl_id = all_ctrls.index(ctrl) - except ValueError: - continue - - ctrl_text = ctrl.window_text() - if ctrl_text: - # 将多行文本转换为单行 - ctrl_text = ctrl_text.replace('\n', r'\n').replace('\r', r'\r') - - output = indent + u'\n' - output += indent + u"{class_name} - '{text}' {rect}\n"\ - "".format(class_name=ctrl.friendly_class_name(), - text=ctrl_text, - rect=ctrl.rectangle()) - output += indent + u'{}'.format(ctrl_id_name_map[ctrl_id]) - - title = ctrl_text - class_name = ctrl.class_name() - auto_id = None - control_type = None - if hasattr(ctrl.element_info, 'automation_id'): - auto_id = ctrl.element_info.automation_id - if hasattr(ctrl.element_info, 'control_type'): - control_type = ctrl.element_info.control_type - if control_type: - class_name = None # 如果有control_type就不需要class_name - else: - control_type = None # 如果control_type为空,仍使用class_name - - criteria_texts = [] - recorder_texts = [] - if title: - criteria_texts.append(u'title="{}"'.format(title)) - recorder_texts.append(f"{title}") - if class_name: - criteria_texts.append(u'class_name="{}"'.format(class_name)) - if auto_id: - criteria_texts.append(u'auto_id="{}"'.format(auto_id)) - if control_type: - criteria_texts.append(u'control_type="{}"'.format(control_type)) - recorder_texts.append(f"||{control_type}") - if title or class_name or auto_id: - output += u'\n' + indent + u'child_window(' + u', '.join(criteria_texts) + u')' + " / " + "".join(recorder_texts) - - if six.PY3: - log_func(output) - else: - log_func(output.encode(locale.getpreferredencoding(), errors='backslashreplace')) - - print_identifiers(ctrl.children(), current_depth + 1, log_func) - - if filename is None: - print("Control Identifiers:") - print_identifiers([wrapper_object, ]) - else: - log_file = codecs.open(filename, "w", locale.getpreferredencoding()) - def log_func(msg): - log_file.write(str(msg) + os.linesep) - log_func("Control Identifiers:") - print_identifiers([wrapper_object, ], log_func=log_func) - log_file.close() - diff --git a/unilabos/devices/platereader/__init__.py b/unilabos/devices/platereader/__init__.py deleted file mode 100644 index e69de29b..00000000 diff --git a/unilabos/devices/powder_dispense/__init__.py b/unilabos/devices/powder_dispense/__init__.py deleted file mode 100644 index e69de29b..00000000 diff --git a/unilabos/devices/powder_dispense/laiyu.py b/unilabos/devices/powder_dispense/laiyu.py deleted file mode 100644 index b1cc04ad..00000000 --- a/unilabos/devices/powder_dispense/laiyu.py +++ /dev/null @@ -1,304 +0,0 @@ -import serial -import time -import pandas as pd - - -class Laiyu: - @property - def status(self) -> str: - return "" - - - def __init__(self, port, baudrate=115200, timeout=0.5): - """ - 初始化串口参数,默认波特率115200,8位数据位、1位停止位、无校验 - """ - self.ser = serial.Serial(port, baudrate=baudrate, timeout=timeout) - - def calculate_crc(self, data: bytes) -> bytes: - """ - 计算Modbus CRC-16,返回低字节和高字节(little-endian) - """ - crc = 0xFFFF - for pos in data: - crc ^= pos - for _ in range(8): - if crc & 0x0001: - crc = (crc >> 1) ^ 0xA001 - else: - crc >>= 1 - return crc.to_bytes(2, byteorder='little') - - def send_command(self, command: bytes) -> bytes: - """ - 构造完整指令帧(加上CRC校验),发送指令后一直等待设备响应,直至响应结束或超时(最大3分钟) - """ - crc = self.calculate_crc(command) - full_command = command + crc - # 清空接收缓存 - self.ser.reset_input_buffer() - self.ser.write(full_command) - print("发送指令:", full_command.hex().upper()) # 打印发送的指令帧 - - # 持续等待响应,直到连续0.5秒没有新数据或超时(3分钟) - start_time = time.time() - last_data_time = time.time() - response = bytearray() - while True: - if self.ser.in_waiting > 0: - new_data = self.ser.read(self.ser.in_waiting) - response.extend(new_data) - last_data_time = time.time() - # 如果已有数据,并且0.5秒内无新数据,则认为响应结束 - if response and (time.time() - last_data_time) > 0.5: - break - # 超过最大等待时间,退出循环 - if time.time() - start_time > 180: - break - time.sleep(0.1) - return bytes(response) - - def pick_powder_tube(self, int_input: int) -> bytes: - """ - 拿取粉筒指令: - - 功能码06 - - 寄存器地址0x0037(取粉筒) - - 数据:粉筒编号(如1代表A,2代表B,以此类推) - 示例:拿取A粉筒指令帧:01 06 00 37 00 01 + CRC - """ - slave_addr = 0x01 - function_code = 0x06 - register_addr = 0x0037 - # 数据部分:粉筒编号转换为2字节大端 - data = int_input.to_bytes(2, byteorder='big') - command = bytes([slave_addr, function_code]) + register_addr.to_bytes(2, byteorder='big') + data - return self.send_command(command) - - def put_powder_tube(self, int_input: int) -> bytes: - """ - 放回粉筒指令: - - 功能码06 - - 寄存器地址0x0038(放回粉筒) - - 数据:粉筒编号 - 示例:放回A粉筒指令帧:01 06 00 38 00 01 + CRC - """ - slave_addr = 0x01 - function_code = 0x06 - register_addr = 0x0038 - data = int_input.to_bytes(2, byteorder='big') - command = bytes([slave_addr, function_code]) + register_addr.to_bytes(2, byteorder='big') + data - return self.send_command(command) - - def reset(self) -> bytes: - """ - 重置指令: - - 功能码 0x06 - - 寄存器地址 0x0042 (示例中用了 00 42) - - 数据 0x0001 - 示例发送:01 06 00 42 00 01 E8 1E - """ - slave_addr = 0x01 - function_code = 0x06 - register_addr = 0x0042 # 对应示例中的 00 42 - payload = (0x0001).to_bytes(2, 'big') # 重置命令 - - cmd = ( - bytes([slave_addr, function_code]) - + register_addr.to_bytes(2, 'big') - + payload - ) - return self.send_command(cmd) - - - def move_to_xyz(self, x: float, y: float, z: float) -> bytes: - """ - 移动到指定位置指令: - - 功能码10(写多个寄存器) - - 寄存器起始地址0x0030 - - 寄存器数量:3个(x,y,z) - - 字节计数:6 - - 数据:x,y,z各2字节,单位为0.1mm(例如1mm对应数值10) - 示例帧:01 10 00 30 00 03 06 00C8 02BC 02EE + CRC - """ - slave_addr = 0x01 - function_code = 0x10 - register_addr = 0x0030 - num_registers = 3 - byte_count = num_registers * 2 # 6字节 - - # 将mm转换为0.1mm单位(乘以10),转换为2字节大端表示 - x_val = int(x * 10) - y_val = int(y * 10) - z_val = int(z * 10) - data = x_val.to_bytes(2, 'big') + y_val.to_bytes(2, 'big') + z_val.to_bytes(2, 'big') - - command = (bytes([slave_addr, function_code]) + - register_addr.to_bytes(2, 'big') + - num_registers.to_bytes(2, 'big') + - byte_count.to_bytes(1, 'big') + - data) - return self.send_command(command) - - def discharge(self, float_in: float) -> bytes: - """ - 出料指令: - - 使用写多个寄存器命令(功能码 0x10) - - 寄存器起始地址设为 0x0039 - - 寄存器数量为 0x0002(两个寄存器:出料质量和误差范围) - - 字节计数为 0x04(每个寄存器2字节,共4字节) - - 数据:出料质量(单位0.1mg,例如10mg对应100,即0x0064)、误差范围固定为0x0005 - 示例发送帧:01 10 00 39 0002 04 00640005 + CRC - """ - mass = float_in - slave_addr = 0x01 - function_code = 0x10 # 修改为写多个寄存器的功能码 - start_register = 0x0039 # 寄存器起始地址 - quantity = 0x0002 # 寄存器数量 - byte_count = 0x04 # 字节数:2寄存器*2字节=4 - mass_val = int(mass * 10) # 质量转换,单位0.1mg - error_margin = 5 # 固定误差范围,0x0005 - - command = (bytes([slave_addr, function_code]) + - start_register.to_bytes(2, 'big') + - quantity.to_bytes(2, 'big') + - byte_count.to_bytes(1, 'big') + - mass_val.to_bytes(2, 'big') + - error_margin.to_bytes(2, 'big')) - return self.send_command(command) - - - ''' - 示例:这个是标智96孔板的坐标转换,但是不同96孔板的坐标可能不同 - 所以需要根据实际情况进行修改 - ''' - - def move_to_plate(self, string): - #只接受两位数的str,比如a1,a2,b1,b2 - # 解析位置字符串 - if len(string) != 2 and len(string) != 3: - raise ValueError("Invalid plate position") - if not string[0].isalpha() or not string[1:].isdigit(): - raise ValueError("Invalid plate position") - a = string[0] # 字母部分s - b = string[1:] # 数字部分 - - if a.isalpha(): - a = ord(a.lower()) - ord('a') + 1 - else: - print('1') - raise ValueError("Invalid plate position") - a = int(a) - b = int(b) - # max a = 8, max b = 12, 否则报错 - if a > 8 or b > 12: - print('2') - raise ValueError("Invalid plate position") - # 计算移动到指定位置的坐标 - # a=1, x=3.0; a=12, x=220.0 - # b=1, y=62.0; b=8, y=201.0 - # z = 110.0 - x = float((b-1) * (220-4.0)/11 + 4.0) - y = float((a-1) * (201.0-62.0)/7 + 62.0) - z = 110.0 - # 移动到指定位置 - resp_move = self.move_to_xyz(x, y, z) - print("移动位置响应:", resp_move.hex().upper()) - # 打印移动到指定位置的坐标 - print(f"移动到位置:{string},坐标:x={x:.2f}, y={y:.2f}, z={z:.2f}") - return resp_move - - def add_powder_tube(self, powder_tube_number, target_tube_position, compound_mass): - # 拿取粉筒 - resp_pick = self.pick_powder_tube(powder_tube_number) - print("拿取粉筒响应:", resp_pick.hex().upper()) - time.sleep(1) - # 移动到指定位置 - self.move_to_plate(target_tube_position) - time.sleep(1) - # 出料,设定质量 - resp_discharge = self.discharge(compound_mass) - print("出料响应:", resp_discharge.hex().upper()) - # 使用modbus协议读取实际出料质量 - # 样例 01 06 00 40 00 64 89 F5,其中 00 64 是实际出料质量,换算为十进制为100,代表10 mg - # 从resp_discharge读取实际出料质量 - # 提取字节4和字节5的两个字节 - actual_mass_raw = int.from_bytes(resp_discharge[4:6], byteorder='big') - # 根据说明,将读取到的数据转换为实际出料质量(mg),这里除以10,例如:0x0064 = 100,转换后为10 mg - actual_mass_mg = actual_mass_raw / 10 - print(f"孔位{target_tube_position},实际出料质量:{actual_mass_mg}mg") - time.sleep(1) - # 放回粉筒 - resp_put = self.put_powder_tube(powder_tube_number) - print("放回粉筒响应:", resp_put.hex().upper()) - print(f"放回粉筒{powder_tube_number}") - resp_reset = self.reset() - return actual_mass_mg - -if __name__ == "__main__": - - ''' - 样例:对单个粉筒进行称量 - ''' - - modbus = Laiyu(port="COM25") - - mass_test = modbus.add_powder_tube(1, 'h12', 6.0) - print(f"实际出料质量:{mass_test}mg") - - - ''' - 样例: 对一份excel文件记录的化合物进行称量 - ''' - - excel_file = r"C:\auto\laiyu\test1.xlsx" - # 定义输出文件路径,用于记录实际加样多少 - output_file = r"C:\auto\laiyu\test_output.xlsx" - - # 定义物料名称和料筒位置关系 - compound_positions = { - 'XPhos': '1', - 'Cu(OTf)2': '2', - 'CuSO4': '3', - 'PPh3': '4', - } - - # read excel file - # excel_file = r"C:\auto\laiyu\test.xlsx" - df = pd.read_excel(excel_file, sheet_name='Sheet1') - # 读取Excel文件中的数据 - # 遍历每一行数据 - for index, row in df.iterrows(): - # 获取物料名称和质量 - copper_name = row['copper'] - copper_mass = row['copper_mass'] - ligand_name = row['ligand'] - ligand_mass = row['ligand_mass'] - target_tube_position = row['position'] - # 获取物料位置 from compound_positions - copper_position = compound_positions.get(copper_name) - ligand_position = compound_positions.get(ligand_name) - # 判断物料位置是否存在 - if copper_position is None: - print(f"物料位置不存在:{copper_name}") - continue - if ligand_position is None: - print(f"物料位置不存在:{ligand_name}") - continue - # 加铜 - copper_actual_mass = modbus.add_powder_tube(int(copper_position), target_tube_position, copper_mass) - time.sleep(1) - # 加配体 - ligand_actual_mass = modbus.add_powder_tube(int(ligand_position), target_tube_position, ligand_mass) - time.sleep(1) - # 保存至df - df.at[index, 'copper_actual_mass'] = copper_actual_mass - df.at[index, 'ligand_actual_mass'] = ligand_actual_mass - - # 保存修改后的数据到新的Excel文件 - df.to_excel(output_file, index=False) - print(f"已保存到文件:{output_file}") - - # 关闭串口 - modbus.ser.close() - print("串口已关闭") - diff --git a/unilabos/devices/pump_and_valve/__init__.py b/unilabos/devices/pump_and_valve/__init__.py deleted file mode 100644 index e69de29b..00000000 diff --git a/unilabos/devices/pump_and_valve/runze_async.py b/unilabos/devices/pump_and_valve/runze_async.py deleted file mode 100644 index 7bc11155..00000000 --- a/unilabos/devices/pump_and_valve/runze_async.py +++ /dev/null @@ -1,401 +0,0 @@ -import asyncio -from asyncio import Event, Future, Lock, Task -from enum import Enum -from dataclasses import dataclass -from typing import Any, Union, Optional, overload - -import serial.tools.list_ports -from serial import Serial -from serial.serialutil import SerialException - -from unilabos.ros.nodes.base_device_node import BaseROS2DeviceNode - - -class RunzeSyringePumpMode(Enum): - Normal = 0 - AccuratePos = 1 - AccuratePosVel = 2 - - -pulse_freq_grades = { - 6000: "0" , - 5600: "1" , - 5000: "2" , - 4400: "3" , - 3800: "4" , - 3200: "5" , - 2600: "6" , - 2200: "7" , - 2000: "8" , - 1800: "9" , - 1600: "10", - 1400: "11", - 1200: "12", - 1000: "13", - 800 : "14", - 600 : "15", - 400 : "16", - 200 : "17", - 190 : "18", - 180 : "19", - 170 : "20", - 160 : "21", - 150 : "22", - 140 : "23", - 130 : "24", - 120 : "25", - 110 : "26", - 100 : "27", - 90 : "28", - 80 : "29", - 70 : "30", - 60 : "31", - 50 : "32", - 40 : "33", - 30 : "34", - 20 : "35", - 18 : "36", - 16 : "37", - 14 : "38", - 12 : "39", - 10 : "40", -} - - -class RunzeSyringePumpConnectionError(Exception): - pass - - -@dataclass(frozen=True, kw_only=True) -class RunzeSyringePumpInfo: - port: str - address: str = "1" - - volume: float = 25000 - mode: RunzeSyringePumpMode = RunzeSyringePumpMode.Normal - - def create(self): - return RunzeSyringePumpAsync(self.port, self.address, self.volume, self.mode) - - -class RunzeSyringePumpAsync: - _ros_node: BaseROS2DeviceNode - - def __init__(self, port: str, address: str = "1", volume: float = 25000, mode: RunzeSyringePumpMode = None): - self.port = port - self.address = address - - self.volume = volume - self.mode = mode - self.total_steps = self.total_steps_vel = 6000 - - try: - self._serial = Serial( - baudrate=9600, - port=port - ) - except (OSError, SerialException) as e: - raise RunzeSyringePumpConnectionError from e - - self._busy = False - self._closing = False - self._error_event = Event() - self._query_future = Future[Any]() - self._query_lock = Lock() - self._read_task: Optional[Task[None]] = None - self._run_future: Optional[Future[Any]] = None - self._run_lock = Lock() - - def post_init(self, ros_node: BaseROS2DeviceNode): - self._ros_node = ros_node - - def _adjust_total_steps(self): - self.total_steps = 6000 if self.mode == RunzeSyringePumpMode.Normal else 48000 - self.total_steps_vel = 48000 if self.mode == RunzeSyringePumpMode.AccuratePosVel else 6000 - - async def _read_loop(self): - try: - while True: - self._receive((await asyncio.to_thread(lambda: self._serial.read_until(b"\n")))[3:-3]) - except SerialException as e: - raise RunzeSyringePumpConnectionError from e - finally: - if not self._closing: - self._error_event.set() - - if self._query_future and not self._query_future.done(): - self._query_future.set_exception(RunzeSyringePumpConnectionError()) - if self._run_future and not self._run_future.done(): - self._run_future.set_exception(RunzeSyringePumpConnectionError()) - - @overload - async def _query(self, command: str, dtype: type[bool]) -> bool: - pass - - @overload - async def _query(self, command: str, dtype: type[int]) -> int: - pass - - @overload - async def _query(self, command: str, dtype = None) -> str: - pass - - async def _query(self, command: str, dtype: Optional[type] = None): - async with self._query_lock: - if self._closing or self._error_event.is_set(): - raise RunzeSyringePumpConnectionError - - self._query_future = Future[Any]() - - run = 'R' if not command.startswith("?") else '' - full_command = f"/{self.address}{command}{run}\r\n" - full_command_data = bytearray(full_command, 'ascii') - - try: - await asyncio.to_thread(lambda: self._serial.write(full_command_data)) - return self._parse(await asyncio.wait_for(asyncio.shield(self._query_future), timeout=2.0), dtype=dtype) - except (SerialException, asyncio.TimeoutError) as e: - self._error_event.set() - raise RunzeSyringePumpConnectionError from e - finally: - self._query_future = None - - def _parse(self, data: bytes, dtype: Optional[type] = None): - response = data.decode() - - if dtype == bool: - return response == "1" - elif dtype == int: - return int(response) - else: - return response - - def _receive(self, data: bytes): - ascii_string = "".join(chr(byte) for byte in data) - was_busy = self._busy - self._busy = ((data[0] & (1 << 5)) < 1) or ascii_string.startswith("@") - - if self._run_future and was_busy and not self._busy: - self._run_future.set_result(data) - if self._query_future: - self._query_future.set_result(data) - else: - raise Exception("Dropping data") - - async def _run(self, command: str): - async with self._run_lock: - self._run_future = Future[Any]() - - try: - await self._query(command) - while True: - await self._ros_node.sleep(0.5) # Wait for 0.5 seconds before polling again - - status = await self.query_device_status() - if status == '`': - break - await asyncio.shield(self._run_future) - finally: - self._run_future = None - - async def initialize(self): - response = await self._run("Z") - if self.mode: - self.set_step_mode(self.mode) - else: - # self.mode = RunzeSyringePumpMode.Normal - # # self.set_step_mode(self.mode) - self.mode = await self.query_step_mode() - return response - - # Settings - - async def set_baudrate(self, baudrate): - if baudrate == 9600: - return await self._run("U41") - elif baudrate == 38400: - return await self._run("U47") - else: - raise ValueError("Unsupported baudrate") - - # Mode Settings and Queries - - async def set_step_mode(self, mode: RunzeSyringePumpMode): - self.mode = mode - self._adjust_total_steps() - command = f"N{mode.value}" - return await self._run(command) - - async def query_step_mode(self): - response = await self._query("?28") - status, mode = response[0], int(response[1]) - self.mode = RunzeSyringePumpMode._value2member_map_[mode] - self._adjust_total_steps() - return self.mode - - # Speed Settings and Queries - - async def set_speed_grade(self, speed: Union[int, str]): - return await self._run(f"S{speed}") - - async def set_speed_max(self, speed: float): - pulse_freq = int(speed / self.volume * self.total_steps_vel) - pulse_freq = min(6000, pulse_freq) - return await self._run(f"V{speed}") - - async def query_speed_grade(self): - pulse_freq, speed = await self.query_speed_max() - g = "-1" - for freq, grade in pulse_freq_grades.items(): - if pulse_freq >= freq: - g = grade - break - return g - - async def query_speed_init(self): - response = await self._query("?1") - status, pulse_freq = response[0], int(response[1:]) - speed = pulse_freq / self.total_steps_vel * self.volume - return pulse_freq, speed - - async def query_speed_max(self): - response = await self._query("?2") - status, pulse_freq = response[0], int(response[1:]) - speed = pulse_freq / self.total_steps_vel * self.volume - return pulse_freq, speed - - async def query_speed_end(self): - response = await self._query("?3") - status, pulse_freq = response[0], int(response[1:]) - speed = pulse_freq / self.total_steps_vel * self.volume - return pulse_freq, speed - - # Operations - - # Valve Setpoint and Queries - - async def set_valve_position(self, position: Union[int, str]): - command = f"I{position}" if type(position) == int or ord(position) <= 57 else position.upper() - return await self._run(command) - - async def query_valve_position(self): - response = await self._query("?6") - status, pos_valve = response[0], response[1].upper() - return pos_valve - - # Plunger Setpoint and Queries - - async def move_plunger_to(self, volume: float): - """ - Move to absolute volume (unit: μL) - - Args: - volume (float): absolute position of the plunger, unit: μL - - Returns: - None - """ - pos_step = int(volume / self.volume * self.total_steps) - return await self._run(f"A{pos_step}") - - async def pull_plunger(self, volume: float): - """ - Pull a fixed volume (unit: μL) - - Args: - volume (float): absolute position of the plunger, unit: μL - - Returns: - None - """ - pos_step = int(volume / self.volume * self.total_steps) - return await self._run(f"P{pos_step}") - - async def push_plunger(self, volume: float): - """ - Push a fixed volume (unit: μL) - - Args: - volume (float): absolute position of the plunger, unit: μL - - Returns: - None - """ - pos_step = int(volume / self.volume * self.total_steps) - return await self._run(f"D{pos_step}") - - async def report_position(self): - response = await self._query("?0") - status, pos_step = response[0], int(response[1:]) - return pos_step / self.total_steps * self.volume - - async def query_plunger_position(self): - response = await self._query("?4") - status, pos_step = response[0], int(response[1:]) - return pos_step / self.total_steps * self.volume - - async def stop_operation(self): - return await self._run("T") - - # Queries - - async def query_device_status(self): - return await self._query("Q") - - async def query_command_buffer_status(self): - return await self._query("?10") - - async def query_backlash_position(self): - return await self._query("?12") - - async def query_aux_input_status_1(self): - return await self._query("?13") - - async def query_aux_input_status_2(self): - return await self._query("?14") - - async def query_software_version(self): - return await self._query("?23") - - async def wait_error(self): - await self._error_event.wait() - - async def __aenter__(self): - await self.open() - return self - - async def __aexit__(self, exc_type, exc, tb): - await self.close() - - async def open(self): - if self._read_task: - raise RunzeSyringePumpConnectionError - - self._read_task = self._ros_node.create_task(self._read_loop()) - - try: - await self.query_device_status() - except Exception: - await self.close() - raise - - async def close(self): - if self._closing or not self._read_task: - raise RunzeSyringePumpConnectionError - - self._closing = True - self._read_task.cancel() - - try: - await self._read_task - except asyncio.CancelledError: - pass - finally: - del self._read_task - - self._serial.close() - - @staticmethod - def list(): - for item in serial.tools.list_ports.comports(): - yield RunzeSyringePumpInfo(port=item.device) diff --git a/unilabos/devices/pump_and_valve/runze_backbone.py b/unilabos/devices/pump_and_valve/runze_backbone.py deleted file mode 100644 index ce6d834c..00000000 --- a/unilabos/devices/pump_and_valve/runze_backbone.py +++ /dev/null @@ -1,390 +0,0 @@ -from threading import Lock, Event -import time -from dataclasses import dataclass -from enum import Enum -from threading import Lock, Event -from typing import Union, Optional - -import serial.tools.list_ports -from serial import Serial -from serial.serialutil import SerialException - - -class RunzeSyringePumpMode(Enum): - Normal = 0 - AccuratePos = 1 - AccuratePosVel = 2 - - -pulse_freq_grades = { - 6000: "0", - 5600: "1", - 5000: "2", - 4400: "3", - 3800: "4", - 3200: "5", - 2600: "6", - 2200: "7", - 2000: "8", - 1800: "9", - 1600: "10", - 1400: "11", - 1200: "12", - 1000: "13", - 800: "14", - 600: "15", - 400: "16", - 200: "17", - 190: "18", - 180: "19", - 170: "20", - 160: "21", - 150: "22", - 140: "23", - 130: "24", - 120: "25", - 110: "26", - 100: "27", - 90: "28", - 80: "29", - 70: "30", - 60: "31", - 50: "32", - 40: "33", - 30: "34", - 20: "35", - 18: "36", - 16: "37", - 14: "38", - 12: "39", - 10: "40", -} - - -class RunzeSyringePumpConnectionError(Exception): - pass - - -@dataclass(frozen=True, kw_only=True) -class RunzeSyringePumpInfo: - port: str - address: str = "1" - - max_volume: float = 25.0 - mode: RunzeSyringePumpMode = RunzeSyringePumpMode.Normal - - def create(self): - return RunzeSyringePump(self.port, self.address, self.max_volume, self.mode) - - -class RunzeSyringePump: - def __init__(self, port: str, address: str = "1", max_volume: float = 25.0, mode: RunzeSyringePumpMode = None): - self.port = port - self.address = address - - self.max_volume = max_volume - self.total_steps = self.total_steps_vel = 6000 - - self._status = "Idle" - self._mode = mode - self._max_velocity = 0 - self._valve_position = "I" - self._position = 0 - - try: - # if port in serial_ports and serial_ports[port].is_open: - # self.hardware_interface = serial_ports[port] - # else: - # serial_ports[port] = self.hardware_interface = Serial( - # baudrate=9600, - # port=port - # ) - self.hardware_interface = Serial(baudrate=9600, port=port) - - except (OSError, SerialException) as e: - # raise RunzeSyringePumpConnectionError from e - self.hardware_interface = port - - self._busy = False - self._closing = False - self._error_event = Event() - self._query_lock = Lock() - self._run_lock = Lock() - - def _adjust_total_steps(self): - self.total_steps = 6000 if self.mode == RunzeSyringePumpMode.Normal else 48000 - self.total_steps_vel = 48000 if self.mode == RunzeSyringePumpMode.AccuratePosVel else 6000 - - def send_command(self, full_command: str): - full_command_data = bytearray(full_command, "ascii") - response = self.hardware_interface.write(full_command_data) - time.sleep(0.05) - output = self._receive(self.hardware_interface.read_until(b"\n")) - return output - - def _query(self, command: str): - with self._query_lock: - if self._closing: - raise RunzeSyringePumpConnectionError - - run = "R" if "?" not in command else "" - full_command = f"/{self.address}{command}{run}\r\n" - - output = self.send_command(full_command)[3:-3] - return output - - def _parse(self, data: bytes, dtype: Optional[type] = None): - response = data.decode() - - if dtype == bool: - return response == "1" - elif dtype == int: - return int(response) - else: - return response - - def _receive(self, data: bytes): - ascii_string = "".join(chr(byte) for byte in data) - was_busy = self._busy - self._busy = ((data[0] & (1 << 5)) < 1) or ascii_string.startswith("@") - return ascii_string - - def _run(self, command: str): - with self._run_lock: - try: - response = self._query(command) - while True: - time.sleep(0.5) # Wait for 0.5 seconds before polling again - - status = self.get_status() - if status == "Idle": - break - finally: - pass - return response - - def initialize(self): - print("Initializing Runze Syringe Pump") - response = self._run("Z") - # if self.mode: - # self.set_mode(self.mode) - # else: - # # self.mode = RunzeSyringePumpMode.Normal - # # self.set_mode(self.mode) - # self.mode = self.get_mode() - return response - - # Settings - - def set_baudrate(self, baudrate): - if baudrate == 9600: - return self._run("U41") - elif baudrate == 38400: - return self._run("U47") - else: - raise ValueError("Unsupported baudrate") - - # Device Status - @property - def status(self) -> str: - return self._status - - def _standardize_status(self, status_raw): - return "Idle" if status_raw == "`" else "Busy" - - def get_status(self): - status_raw = self._query("Q") - self._status = self._standardize_status(status_raw) - return self._status - - # Mode Settings and Queries - - @property - def mode(self) -> int: - return self._mode - - # def set_mode(self, mode: RunzeSyringePumpMode): - # self.mode = mode - # self._adjust_total_steps() - # command = f"N{mode.value}" - # return self._run(command) - - # def get_mode(self): - # response = self._query("?28") - # status_raw, mode = response[0], int(response[1]) - # self.mode = RunzeSyringePumpMode._value2member_map_[mode] - # self._adjust_total_steps() - # return self.mode - - # Speed Settings and Queries - - @property - def max_velocity(self) -> float: - return self._max_velocity - - def set_max_velocity(self, velocity: float): - self._max_velocity = velocity - pulse_freq = int(velocity / self.max_volume * self.total_steps_vel) - pulse_freq = min(6000, pulse_freq) - return self._run(f"V{pulse_freq}") - - def get_max_velocity(self): - response = self._query("?2") - status_raw, pulse_freq = response[0], int(response[1:]) - self._status = self._standardize_status(status_raw) - self._max_velocity = pulse_freq / self.total_steps_vel * self.max_volume - return self._max_velocity - - def set_velocity_grade(self, velocity: Union[int, str]): - return self._run(f"S{velocity}") - - def get_velocity_grade(self): - response = self._query("?2") - status_raw, pulse_freq = response[0], int(response[1:]) - g = "-1" - for freq, grade in pulse_freq_grades.items(): - if pulse_freq >= freq: - g = grade - break - return g - - def get_velocity_init(self): - response = self._query("?1") - status_raw, pulse_freq = response[0], int(response[1:]) - self._status = self._standardize_status(status_raw) - velocity = pulse_freq / self.total_steps_vel * self.max_volume - return pulse_freq, velocity - - def get_velocity_end(self): - response = self._query("?3") - status_raw, pulse_freq = response[0], int(response[1:]) - self._status = self._standardize_status(status_raw) - velocity = pulse_freq / self.total_steps_vel * self.max_volume - return pulse_freq, velocity - - # Operations - - # Valve Setpoint and Queries - - @property - def valve_position(self) -> str: - return self._valve_position - - def set_valve_position(self, position: Union[int, str, float]): - if isinstance(position, float): - position = round(position / 120) - command = f"I{position}" if isinstance(position, int) or ord(position) <= 57 else position.upper() - response = self._run(command) - self._valve_position = f"{position}" if isinstance(position, int) or ord(position) <= 57 else position.upper() - return response - - def get_valve_position(self) -> str: - response = self._query("?6") - status_raw, pos_valve = response[0], response[1].upper() - self._valve_position = pos_valve - self._status = self._standardize_status(status_raw) - return pos_valve - - # Plunger Setpoint and Queries - - @property - def position(self) -> float: - return self._position - - def get_position(self): - response = self._query("?0") - status_raw, pos_step = response[0], int(response[1:]) - self._status = self._standardize_status(status_raw) - return pos_step / self.total_steps * self.max_volume - - def set_position(self, position: float, max_velocity: float = None): - """ - Move to absolute volume (unit: ml) - - Args: - position (float): absolute position of the plunger, unit: ml - max_velocity (float): maximum velocity of the plunger, unit: ml/s - - Returns: - None - """ - if max_velocity is not None: - self.set_max_velocity(max_velocity) - pulse_freq = int(max_velocity / self.max_volume * self.total_steps_vel) - pulse_freq = min(6000, pulse_freq) - velocity_cmd = f"V{pulse_freq}" - else: - velocity_cmd = "" - pos_step = int(position / self.max_volume * self.total_steps) - return self._run(f"{velocity_cmd}A{pos_step}") - - def pull_plunger(self, volume: float): - """ - Pull a fixed volume (unit: ml) - - Args: - volume (float): absolute position of the plunger, unit: mL - - Returns: - None - """ - pos_step = int(volume / self.max_volume * self.total_steps) - return self._run(f"P{pos_step}") - - def push_plunger(self, volume: float): - """ - Push a fixed volume (unit: ml) - - Args: - volume (float): absolute position of the plunger, unit: mL - - Returns: - None - """ - pos_step = int(volume / self.max_volume * self.total_steps) - return self._run(f"D{pos_step}") - - def get_plunger_position(self): - response = self._query("?4") - status, pos_step = response[0], int(response[1:]) - return pos_step / self.total_steps * self.max_volume - - def stop_operation(self): - return self._run("T") - - # Queries - - def query_command_buffer_status(self): - return self._query("?10") - - def query_backlash_position(self): - return self._query("?12") - - def query_aux_input_status_1(self): - return self._query("?13") - - def query_aux_input_status_2(self): - return self._query("?14") - - def query_software_version(self): - return self._query("?23") - - def wait_error(self): - self._error_event.wait() - - def close(self): - if self._closing: - raise RunzeSyringePumpConnectionError - - self._closing = True - self.hardware_interface.close() - - @staticmethod - def list(): - for item in serial.tools.list_ports.comports(): - yield RunzeSyringePumpInfo(port=item.device) - - -if __name__ == "__main__": - r = RunzeSyringePump("/dev/tty.usbserial-D30JUGG5", "1", 25.0) - r.initialize() diff --git a/unilabos/devices/pump_and_valve/runze_multiple_backbone.py b/unilabos/devices/pump_and_valve/runze_multiple_backbone.py deleted file mode 100644 index fd20f258..00000000 --- a/unilabos/devices/pump_and_valve/runze_multiple_backbone.py +++ /dev/null @@ -1,391 +0,0 @@ -""" -Runze Syringe Pump Controller (SY-03B-T08) - -本模块用于控制润泽注射泵 SY-03B-T08 型号的多泵系统。 -支持通过串口同时控制多个具有不同地址的泵。 -泵每次连接前要先进行初始化。 - -基础用法: - # 创建控制器实例 - pump_controller = RunzeMultiplePump("COM3") # 或 "/dev/ttyUSB0" (Linux) - - # 初始化特定地址的泵 - pump_controller.initialize("1") - - # 设置阀门位置 - pump_controller.set_valve_position("1", 1) # 设置到位置1 - - # 移动到绝对位置 - pump_controller.set_position("1", 10.0) # 移动到10ml位置 - - # 推拉柱塞操作 - pump_controller.pull_plunger("1", 5.0) # 吸取5ml - pump_controller.push_plunger("1", 5.0) # 推出5ml - - # 关闭连接 - pump_controller.close() - -支持的泵地址: 1-8 (字符串格式,如 "1", "2", "3" 等) -默认最大容量: 25.0 ml -通信协议: RS485, 9600波特率 -""" - -from threading import Lock, Event -import time -from dataclasses import dataclass -from enum import Enum -from typing import Union, Optional, List, Dict - -import serial.tools.list_ports -from serial import Serial -from serial.serialutil import SerialException - - -class RunzeSyringePumpMode(Enum): - Normal = 0 - AccuratePos = 1 - AccuratePosVel = 2 - - -pulse_freq_grades = { - 6000: "0", - 5600: "1", - 5000: "2", - 4400: "3", - 3800: "4", - 3200: "5", - 2600: "6", - 2200: "7", - 2000: "8", - 1800: "9", - 1600: "10", - 1400: "11", - 1200: "12", - 1000: "13", - 800: "14", - 600: "15", - 400: "16", - 200: "17", - 190: "18", - 180: "19", - 170: "20", - 160: "21", - 150: "22", - 140: "23", - 130: "24", - 120: "25", - 110: "26", - 100: "27", - 90: "28", - 80: "29", - 70: "30", - 60: "31", - 50: "32", - 40: "33", - 30: "34", - 20: "35", - 18: "36", - 16: "37", - 14: "38", - 12: "39", - 10: "40", -} - - -class RunzeSyringePumpConnectionError(Exception): - pass - - -@dataclass -class PumpConfig: - address: str - max_volume: float = 25.0 - mode: RunzeSyringePumpMode = RunzeSyringePumpMode.Normal - - -class RunzeMultiplePump: - """ - Multi-address Runze Syringe Pump Controller - - Supports controlling multiple pumps on the same serial port with different addresses. - """ - - def __init__(self, port: str): - """ - Initialize multiple pump controller - - Args: - port (str): Serial port path - """ - self.port = port - - # Default pump parameters - self.max_volume = 25.0 - self.total_steps = 6000 - self.total_steps_vel = 6000 - - # Connection management - try: - self.hardware_interface = Serial(baudrate=9600, port=port, timeout=1.0) - print(f"✓ 成功连接到串口: {port}") - except (OSError, SerialException) as e: - print(f"✗ 串口连接失败: {e}") - raise RunzeSyringePumpConnectionError(f"无法连接到串口 {port}: {e}") from e - - # Thread safety - self._query_lock = Lock() - self._run_lock = Lock() - self._closing = False - - # Pump status tracking - self._pump_status: Dict[str, str] = {} # address -> status - - def _adjust_total_steps(self, mode: RunzeSyringePumpMode): - total_steps = 6000 if mode == RunzeSyringePumpMode.Normal else 48000 - total_steps_vel = 48000 if mode == RunzeSyringePumpMode.AccuratePosVel else 6000 - return total_steps, total_steps_vel - - def _receive(self, data: bytes) -> str: - """ - Keep this method as original. Always use chr to decode, avoid "/0" - """ - if not data: - return "" - # **Do not use decode method - ascii_string = "".join(chr(byte) for byte in data) - return ascii_string - - def send_command(self, full_command: str) -> str: - """Send command to hardware and get response""" - full_command_data = bytearray(full_command, "ascii") - self.hardware_interface.write(full_command_data) - time.sleep(0.05) - response = self.hardware_interface.read_until(b"\n") # \n should direct use, not \\n - output = self._receive(response) - return output - - def _query(self, address: str, command: str) -> str: - """ - Send query command to specific pump - - Args: - address (str): Pump address (e.g., "1", "2", "3") - command (str): Command to send - - Returns: - str: Response from pump - """ - with self._query_lock: - if self._closing: - raise RunzeSyringePumpConnectionError("Connection is closing") - - run = "R" if "?" not in command else "" - full_command = f"/{address}{command}{run}\r\n" # \r\n should direct use, not \\r\\n - - output = self.send_command(full_command)[3:-3] - return output - - - def _run(self, address: str, command: str) -> str: - """ - Run command and wait for completion - - Args: - address (str): Pump address - command (str): Command to execute - - Returns: - str: Command response - """ - with self._run_lock: - try: - print(f"[泵 {address}] 执行命令: {command}") - response = self._query(address, command) - - # Wait for operation completion - while True: - time.sleep(0.5) - status = self.get_status(address) - if status == "Idle": - break - - except Exception as e: - print(f"[泵 {address}] 命令执行错误: {e}") - response = "" - - return response - - def _standardize_status(self, status_raw: str) -> str: - """Convert raw status to standard format""" - return "Idle" if status_raw == "`" else "Busy" - - # === Core Operations === - - def initialize(self, address: str) -> str: - """Initialize specific pump""" - print(f"[泵 {address}] 正在初始化...") - response = self._run(address, "Z") - print(f"[泵 {address}] 初始化完成") - return response - - # === Status Queries === - - def get_status(self, address: str) -> str: - """Get pump status""" - try: - status_raw = self._query(address, "Q") - status = self._standardize_status(status_raw) - self._pump_status[address] = status - return status - except Exception: - return "Error" - - # === Velocity Control === - - def set_max_velocity(self, address: str, velocity: float, max_volume: float = None) -> str: - """Set maximum velocity for pump""" - if max_volume is None: - max_volume = self.max_volume - - pulse_freq = int(velocity / max_volume * self.total_steps_vel) - pulse_freq = min(6000, pulse_freq) - return self._run(address, f"V{pulse_freq}") - - def get_max_velocity(self, address: str, max_volume: float = None) -> float: - """Get maximum velocity of pump""" - if max_volume is None: - max_volume = self.max_volume - - response = self._query(address, "?2") - status_raw, pulse_freq = response[0], int(response[1:]) - velocity = pulse_freq / self.total_steps_vel * max_volume - return velocity - - def set_velocity_grade(self, address: str, velocity: Union[int, str]) -> str: - """Set velocity grade""" - return self._run(address, f"S{velocity}") - - # === Position Control === - - def get_position(self, address: str, max_volume: float = None) -> float: - """Get current plunger position in ml""" - if max_volume is None: - max_volume = self.max_volume - - response = self._query(address, "?0") - status_raw, pos_step = response[0], int(response[1:]) - position = pos_step / self.total_steps * max_volume - return position - - def set_position(self, address: str, position: float, max_velocity: float = None, max_volume: float = None) -> str: - """ - Move to absolute volume position - - Args: - address (str): Pump address - position (float): Target position in ml - max_velocity (float): Maximum velocity in ml/s - max_volume (float): Maximum syringe volume in ml - """ - if max_volume is None: - max_volume = self.max_volume - - velocity_cmd = "" - if max_velocity is not None: - pulse_freq = int(max_velocity / max_volume * self.total_steps_vel) - pulse_freq = min(6000, pulse_freq) - velocity_cmd = f"V{pulse_freq}" - - pos_step = int(position / max_volume * self.total_steps) - return self._run(address, f"{velocity_cmd}A{pos_step}") - - def pull_plunger(self, address: str, volume: float, max_volume: float = None) -> str: - """Pull plunger by specified volume""" - if max_volume is None: - max_volume = self.max_volume - - pos_step = int(volume / max_volume * self.total_steps) - return self._run(address, f"P{pos_step}") - - def push_plunger(self, address: str, volume: float, max_volume: float = None) -> str: - """Push plunger by specified volume""" - if max_volume is None: - max_volume = self.max_volume - - pos_step = int(volume / max_volume * self.total_steps) - return self._run(address, f"D{pos_step}") - - # === Valve Control === - - def set_valve_position(self, address: str, position: Union[int, str, float]) -> str: - """Set valve position""" - if isinstance(position, float): - position = round(position / 120) - command = f"I{position}" if isinstance(position, int) or ord(str(position)) <= 57 else str(position).upper() - return self._run(address, command) - - def get_valve_position(self, address: str) -> str: - """Get current valve position""" - response = self._query(address, "?6") - status_raw, pos_valve = response[0], response[1].upper() - return pos_valve - - # === Utility Functions === - - def stop_operation(self, address: str) -> str: - """Stop current operation""" - return self._run(address, "T") - - def close(self): - """Close connection""" - if self._closing: - raise RunzeSyringePumpConnectionError("Already closing") - - self._closing = True - self.hardware_interface.close() - print("✓ 串口连接已关闭") - - -if __name__ == "__main__": - """ - 示例:初始化3个泵(地址1、2、3),然后断开连接 - """ - try: - # 请根据实际串口修改端口号 - # Windows: "COM3", "COM4", 等 - # Linux/Mac: "/dev/ttyUSB0", "/dev/ttyACM0", 等 - port = "/dev/cn." # 修改为实际使用的串口 - - print("正在创建泵控制器...") - pump_controller = RunzeMultiplePump(port) - - # 初始化3个泵 (地址: 1, 2, 3) - pump_addresses = ["1", "2", "3"] - - for address in pump_addresses: - try: - print(f"\n正在初始化泵 {address}...") - pump_controller.initialize(address) - - # 检查泵状态 - status = pump_controller.get_status(address) - print(f"泵 {address} 状态: {status}") - except Exception as e: - print(f"泵 {address} 初始化失败: {e}") - - print("\n所有泵初始化完成!") - - # 断开连接 - print("\n正在断开连接...") - pump_controller.close() - print("程序结束") - - except RunzeSyringePumpConnectionError as e: - print(f"连接错误: {e}") - print("请检查:") - print("1. 串口是否正确") - print("2. 设备是否已连接") - print("3. 串口是否被其他程序占用") - - except Exception as e: - print(f"未知错误: {e}") diff --git a/unilabos/devices/pump_and_valve/solenoid_valve.py b/unilabos/devices/pump_and_valve/solenoid_valve.py deleted file mode 100644 index e068d502..00000000 --- a/unilabos/devices/pump_and_valve/solenoid_valve.py +++ /dev/null @@ -1,51 +0,0 @@ -import time -import serial - - -class SolenoidValve: - def __init__(self, io_device_port: str): - self._status = "Idle" - self._valve_position = "OPEN" - self.io_device_port = io_device_port - - try: - self.hardware_interface = serial.Serial(str(io_device_port), 9600, timeout=1) - except serial.SerialException: - # raise Exception(f"Failed to connect to the device at {io_device_port}") - self.hardware_interface = str(io_device_port) - - @property - def status(self) -> str: - return self._status - - @property - def valve_position(self) -> str: - return self._valve_position - - def send_command(self, command): - self.hardware_interface.write(command) - - def read_data(self): - return self.hardware_interface.read() - - def get_valve_position(self) -> str: - self._valve_position = "OPEN" if self.read_data() else "CLOSED" - return self._valve_position - - def set_valve_position(self, position): - self._status = "Busy" - self.send_command(1 if position == "OPEN" else 0) - time.sleep(5) - self._status = "Idle" - - def open(self): - self._valve_position = "OPEN" - - def close(self): - self._valve_position = "CLOSED" - - def is_open(self): - return self._valve_position - - def is_closed(self): - return not self._valve_position diff --git a/unilabos/devices/pump_and_valve/solenoid_valve_mock.py b/unilabos/devices/pump_and_valve/solenoid_valve_mock.py deleted file mode 100644 index b6735a3f..00000000 --- a/unilabos/devices/pump_and_valve/solenoid_valve_mock.py +++ /dev/null @@ -1,38 +0,0 @@ -import time - - -class SolenoidValveMock: - def __init__(self, port: str = "COM6"): - self._status = "Idle" - self._valve_position = "OPEN" - - @property - def status(self) -> str: - return self._status - - @property - def valve_position(self) -> str: - return self._valve_position - - def get_valve_position(self) -> str: - return self._valve_position - - def set_valve_position(self, position): - self._status = "Busy" - time.sleep(5) - - self._valve_position = position - time.sleep(5) - self._status = "Idle" - - def open(self): - self._valve_position = "OPEN" - - def close(self): - self._valve_position = "CLOSED" - - def is_open(self): - return self._valve_position - - def is_closed(self): - return not self._valve_position diff --git a/unilabos/devices/pump_and_valve/vacuum_pump_mock.py b/unilabos/devices/pump_and_valve/vacuum_pump_mock.py deleted file mode 100644 index 35655122..00000000 --- a/unilabos/devices/pump_and_valve/vacuum_pump_mock.py +++ /dev/null @@ -1,29 +0,0 @@ -import time - - -class VacuumPumpMock: - def __init__(self, port: str = "COM6"): - self._status = "OPEN" - - @property - def status(self) -> str: - return self._status - - def get_status(self) -> str: - return self._status - - def set_status(self, string): - self._status = string - time.sleep(5) - - def open(self): - self._status = "OPEN" - - def close(self): - self._status = "CLOSED" - - def is_open(self): - return self._status - - def is_closed(self): - return not self._status diff --git a/unilabos/devices/raman_uv/__init__.py b/unilabos/devices/raman_uv/__init__.py deleted file mode 100644 index e69de29b..00000000 diff --git a/unilabos/devices/raman_uv/home_made_raman.py b/unilabos/devices/raman_uv/home_made_raman.py deleted file mode 100644 index 64d83196..00000000 --- a/unilabos/devices/raman_uv/home_made_raman.py +++ /dev/null @@ -1,198 +0,0 @@ -import json -import serial -import struct -import crcmod -import tkinter as tk -from tkinter import messagebox -import matplotlib.pyplot as plt -from matplotlib.backends.backend_tkagg import FigureCanvasTkAgg -import time - -class RamanObj: - def __init__(self, port_laser, port_ccd, baudrate_laser=9600, baudrate_ccd=921600): - self.port_laser = port_laser - self.port_ccd = port_ccd - - self.baudrate_laser = baudrate_laser - self.baudrate_ccd = baudrate_ccd - self.success = False - self.status = "None" - self.ser_laser = serial.Serial( self.port_laser, - self.baudrate_laser, - bytesize=serial.EIGHTBITS, - parity=serial.PARITY_NONE, - stopbits=serial.STOPBITS_ONE, - timeout=1) - - self.ser_ccd = serial.Serial( self.port_ccd, - self.baudrate_ccd, - bytesize=serial.EIGHTBITS, - parity=serial.PARITY_NONE, - stopbits=serial.STOPBITS_ONE, - timeout=1) - - def laser_on_power(self, output_voltage_laser): - - def calculate_crc(data): - """ - 计算Modbus CRC校验码 - """ - crc16 = crcmod.predefined.mkCrcFun('modbus') - return crc16(data) - - - device_id = 0x01 # 从机地址 - register_address = 0x0298 # 寄存器地址 - output_voltage = int(output_voltage_laser) # 输出值 - - # 将输出值转换为需要发送的格式 - output_value = int(output_voltage) # 确保是整数 - high_byte = (output_value >> 8) & 0xFF - low_byte = output_value & 0xFF - - # 构造Modbus RTU数据包 - function_code = 0x06 # 写单个寄存器 - message = struct.pack('>BBHH', device_id, function_code, register_address, output_value) - crc = calculate_crc(message) - crc_bytes = struct.pack('= 5: - response_crc = calculate_crc(response[:-2]) - received_crc = struct.unpack('H", data[i:i + 2])[0] for i in range(0, len(data), 2)] - return values - - try: - ser = self.ser_ccd - values = read_and_plot(ser, int_time) # 修正传递serial对象 - print(f"\u8fd4\u56de\u503c: {values}") - return values - except Exception as e: - messagebox.showerror("\u9519\u8bef", f"\u4e32\u53e3\u521d\u59cb\u5316\u5931\u8d25: {e}") - return None - - def raman_without_background(self,int_time, laser_power): - self.laser_on_power(0) - time.sleep(0.1) - ccd_data_background = self.ccd_time(int_time) - time.sleep(0.1) - self.laser_on_power(laser_power) - time.sleep(0.2) - ccd_data_total = self.ccd_time(int_time) - self.laser_on_power(0) - ccd_data = [x - y for x, y in zip(ccd_data_total, ccd_data_background)] - return ccd_data - - def raman_without_background_average(self, sample_name , int_time, laser_power, average): - ccd_data = [0] * 4136 - for i in range(average): - ccd_data_temp = self.raman_without_background(int_time, laser_power) - ccd_data = [x + y for x, y in zip(ccd_data, ccd_data_temp)] - ccd_data = [x / average for x in ccd_data] - #保存数据 用时间命名 - t = time.strftime("%Y-%m-%d-%H-%M-%S-%MS", time.localtime()) - folder_path = r"C:\auto\raman_data" - with open(f'{folder_path}/{sample_name}_{t}.txt', 'w') as f: - for i in ccd_data: - f.write(str(i) + '\n') - return ccd_data - - def raman_cmd(self, command:str): - self.success = False - try: - cmd_dict = json.loads(command) - ccd_data = self.raman_without_background_average(**cmd_dict) - self.success = True - - # return ccd_data - except Exception as e: - # return None - raise f"error: {e}" - -if __name__ == "__main__": - raman = RamanObj(port_laser='COM20', port_ccd='COM2') - ccd_data = raman.raman_without_background_average('test44',0.5,3000,1) - - plt.plot(ccd_data) - plt.xlabel("Pixel") - plt.ylabel("Intensity") - plt.title("Raman Spectrum") - plt.show() - - - - - - diff --git a/unilabos/devices/resource_container/__init__.py b/unilabos/devices/resource_container/__init__.py deleted file mode 100644 index e69de29b..00000000 diff --git a/unilabos/devices/resource_container/container.py b/unilabos/devices/resource_container/container.py deleted file mode 100644 index 04e1442b..00000000 --- a/unilabos/devices/resource_container/container.py +++ /dev/null @@ -1,50 +0,0 @@ - -class HotelContainer: - def __init__(self, rotation: dict, device_config: dict ,**kwargs): - self.rotation = rotation - self.device_config = device_config - self.status = 'idle' - - def get_rotation(self): - return self.rotation - - -class DeckContainer: - def __init__(self, rotation: dict, **kwargs): - self.rotation = rotation - self.status = 'idle' - - def get_rotation(self): - return self.rotation - -class TipRackContainer: - def __init__(self, rotation: dict, **kwargs): - self.rotation = rotation - self.status = 'idle' - - def get_rotation(self): - return self.rotation - -class PlateContainer: - def __init__(self, rotation: dict, **kwargs): - self.rotation = rotation - self.status = 'idle' - - def get_rotation(self): - return self.rotation - -class TubeRackContainer: - def __init__(self, rotation: dict, **kwargs): - self.rotation = rotation - self.status = 'idle' - - def get_rotation(self): - return self.rotation - -class BottleRackContainer: - def __init__(self, rotation: dict, **kwargs): - self.rotation = rotation - self.status = 'idle' - - def get_rotation(self): - return self.rotation \ No newline at end of file diff --git a/unilabos/devices/ros_dev/__init__.py b/unilabos/devices/ros_dev/__init__.py deleted file mode 100644 index e69de29b..00000000 diff --git a/unilabos/devices/ros_dev/lh_joint_config.json b/unilabos/devices/ros_dev/lh_joint_config.json deleted file mode 100644 index 8f09c299..00000000 --- a/unilabos/devices/ros_dev/lh_joint_config.json +++ /dev/null @@ -1,68 +0,0 @@ -{ - "OTDeck":{ - "joint_names":[ - "first_joint", - "second_joint", - "third_joint", - "fourth_joint" - ], - "link_names":[ - "first_link", - "second_link", - "third_link", - "fourth_link" - ], - "y":{ - "first_joint":{ - "factor":-0.001, - "offset":0.166 - } - }, - "x":{ - "second_joint":{ - "factor":-0.001, - "offset":0.1775 - } - }, - "z":{ - "third_joint":{ - "factor":0.001, - "offset":0.0 - }, - "fourth_joint":{ - "factor":0.001, - "offset":0.0 - } - } - }, - "TransformXYZDeck":{ - "joint_names":[ - "x_joint", - "y_joint", - "z_joint" - ], - "link_names":[ - "x_link", - "y_link", - "z_link" - ], - "x":{ - "y_joint":{ - "factor":-0.001, - "offset":0.145 - } - }, - "y":{ - "x_joint":{ - "factor":0.001, - "offset":-0.21415 - } - }, - "z":{ - "z_joint":{ - "factor":-0.001, - "offset":0.0 - } - } - } -} \ No newline at end of file diff --git a/unilabos/devices/ros_dev/liquid_handler_joint_publisher.py b/unilabos/devices/ros_dev/liquid_handler_joint_publisher.py deleted file mode 100644 index 2ec7afe5..00000000 --- a/unilabos/devices/ros_dev/liquid_handler_joint_publisher.py +++ /dev/null @@ -1,403 +0,0 @@ -import asyncio -import copy -from pathlib import Path -import threading -import uuid -import rclpy -import json -import time -from rclpy.executors import MultiThreadedExecutor -from rclpy.action import ActionServer,ActionClient -from sensor_msgs.msg import JointState -from unilabos_msgs.action import SendCmd -from rclpy.action.server import ServerGoalHandle -from unilabos.ros.nodes.base_device_node import BaseROS2DeviceNode -from tf_transformations import quaternion_from_euler -from tf2_ros import TransformBroadcaster, Buffer, TransformListener - -from rclpy.node import Node -import re - -class LiquidHandlerJointPublisher(BaseROS2DeviceNode): - def __init__(self,resources_config:list, resource_tracker, rate=50, device_id:str = "lh_joint_publisher", **kwargs): - super().__init__( - driver_instance=self, - device_id=device_id, - status_types={}, - action_value_mappings={}, - hardware_interface={}, - print_publish=False, - resource_tracker=resource_tracker, - device_uuid=kwargs.get("uuid", str(uuid.uuid4())), - ) - - # 初始化参数 - self.j_msg = JointState() - joint_config = json.load(open(f"{Path(__file__).parent.absolute()}/lh_joint_config.json", encoding="utf-8")) - self.resources_config = {x['id']:x for x in resources_config} - self.rate = rate - self.tf_buffer = Buffer() - self.tf_listener = TransformListener(self.tf_buffer, self) - self.j_pub = self.create_publisher(JointState,'/joint_states',10) - self.create_timer(1,self.lh_joint_pub_callback) - - - self.resource_action = None - - while self.resource_action is None: - self.resource_action = self.check_tf_update_actions() - time.sleep(1) - - self.resource_action_client = ActionClient(self, SendCmd, self.resource_action) - while not self.resource_action_client.wait_for_server(timeout_sec=1.0): - self.get_logger().info('等待 TfUpdate 服务器...') - - self.deck_list = [] - self.lh_devices = {} - # 初始化设备ID与config信息 - for resource in resources_config: - if resource['class'] == 'liquid_handler': - deck_id = resource['config']['deck']['_resource_child_name'] - deck_class = resource['config']['deck']['_resource_type'].split(':')[-1] - key = f'{deck_id}' - # key = f'{resource["id"]}_{deck_id}' - self.lh_devices[key] = { - 'joint_msg':JointState( - name=[f'{key}_{x}' for x in joint_config[deck_class]['joint_names']], - position=[0.0 for _ in joint_config[deck_class]['joint_names']] - ), - 'joint_config':joint_config[deck_class] - } - self.deck_list.append(deck_id) - - - self.j_action = ActionServer( - self, - SendCmd, - "hl_joint_action", - self.lh_joint_action_callback, - result_timeout=5000 - ) - - - def check_tf_update_actions(self): - topics = self.get_topic_names_and_types() - - - for topic_item in topics: - - topic_name, topic_types = topic_item - - if 'action_msgs/msg/GoalStatusArray' in topic_types: - # 删除 /_action/status 部分 - - base_name = topic_name.replace('/_action/status', '') - # 检查最后一个部分是否为 tf_update - parts = base_name.split('/') - if parts and parts[-1] == 'tf_update': - return base_name - - return None - - - def find_resource_parent(self, resource_id:str): - # 遍历父辈,找到父辈的父辈,直到找到设备ID - parent_id = self.resources_config[resource_id]['parent'] - try: - if parent_id in self.deck_list: - p_ = self.resources_config[parent_id]['parent'] - str_ = f'{parent_id}' - return str(str_) - else: - return self.find_resource_parent(parent_id) - except Exception as e: - return None - - - def send_resource_action(self, resource_id_list:list[str], link_name:str): - goal_msg = SendCmd.Goal() - str_dict = {} - for resource in resource_id_list: - str_dict[resource] = link_name - - goal_msg.command = json.dumps(str_dict) - self.resource_action_client.send_goal(goal_msg) - - def resource_move(self, resource_id:str, link_name:str, channels:list[int]): - resource = resource_id.rsplit("_",1) - - channel_list = ['A','B','C','D','E','F','G','H'] - - resource_list = [] - match = re.match(r'([a-zA-Z_]+)(\d+)', resource[1]) - if match: - number = match.group(2) - for channel in channels: - resource_list.append(f"{resource[0]}_{channel_list[channel]}{number}") - - if len(resource_list) > 0: - self.send_resource_action(resource_list, link_name) - - - - def lh_joint_action_callback(self,goal_handle: ServerGoalHandle): - """Move a single joint - - Args: - command: A JSON-formatted string that includes joint_name, speed, position - - joint_name (str): The name of the joint to move - speed (float): The speed of the movement, speed > 0 - position (float): The position to move to - - Returns: - None - """ - result = SendCmd.Result() - cmd_str = str(goal_handle.request.command).replace('\'','\"') - # goal_handle.execute() - - try: - cmd_dict = json.loads(cmd_str) - self.move_joints(**cmd_dict) - result.success = True - goal_handle.succeed() - - except Exception as e: - print(f'Liquid handler action error: \n{e}') - goal_handle.abort() - result.success = False - - return result - def inverse_kinematics(self, x, y, z, - parent_id, - x_joint:dict, - y_joint:dict, - z_joint:dict ): - """ - 将x、y、z坐标转换为对应关节的位置 - - Args: - x (float): x坐标 - y (float): y坐标 - z (float): z坐标 - x_joint (dict): x轴关节配置,包含factor和offset - y_joint (dict): y轴关节配置,包含factor和offset - z_joint (dict): z轴关节配置,包含factor和offset - - Returns: - dict: 关节名称和对应位置的字典 - """ - joint_positions = copy.deepcopy(self.lh_devices[parent_id]['joint_msg'].position) - - z_index = 0 - # 处理x轴关节 - for joint_name, config in x_joint.items(): - index = self.lh_devices[parent_id]['joint_msg'].name.index(f"{parent_id}_{joint_name}") - joint_positions[index] = x * config["factor"] + config["offset"] - - # 处理y轴关节 - for joint_name, config in y_joint.items(): - index = self.lh_devices[parent_id]['joint_msg'].name.index(f"{parent_id}_{joint_name}") - joint_positions[index] = y * config["factor"] + config["offset"] - - # 处理z轴关节 - for joint_name, config in z_joint.items(): - index = self.lh_devices[parent_id]['joint_msg'].name.index(f"{parent_id}_{joint_name}") - joint_positions[index] = z * config["factor"] + config["offset"] - z_index = index - - return joint_positions ,z_index - - - def move_joints(self, resource_names, x, y, z, option, speed = 0.1 ,x_joint=None, y_joint=None, z_joint=None,channels=[0,1,2,3,4,5,6,7]): - if isinstance(resource_names, list): - resource_name_ = resource_names[0] - else: - resource_name_ = resource_names - - parent_id = self.find_resource_parent(resource_name_) - - - # print('!'*20) - # print(parent_id) - # print('!'*20) - if x_joint is None: - xa,xb = next(iter(self.lh_devices[parent_id]['joint_config']['x'].items())) - x_joint_config = {xa:xb} - elif x_joint in self.lh_devices[parent_id]['joint_config']['x']: - x_joint_config = self.lh_devices[parent_id]['joint_config']['x'][x_joint] - else: - raise ValueError(f"x_joint {x_joint} not in joint_config['x']") - if y_joint is None: - ya,yb = next(iter(self.lh_devices[parent_id]['joint_config']['y'].items())) - y_joint_config = {ya:yb} - elif y_joint in self.lh_devices[parent_id]['joint_config']['y']: - y_joint_config = self.lh_devices[parent_id]['joint_config']['y'][y_joint] - else: - raise ValueError(f"y_joint {y_joint} not in joint_config['y']") - if z_joint is None: - za, zb = next(iter(self.lh_devices[parent_id]['joint_config']['z'].items())) - z_joint_config = {za :zb} - elif z_joint in self.lh_devices[parent_id]['joint_config']['z']: - z_joint_config = self.lh_devices[parent_id]['joint_config']['z'][z_joint] - else: - raise ValueError(f"z_joint {z_joint} not in joint_config['z']") - - joint_positions_target, z_index = self.inverse_kinematics(x,y,z,parent_id,x_joint_config,y_joint_config,z_joint_config) - joint_positions_target_zero = copy.deepcopy(joint_positions_target) - joint_positions_target_zero[z_index] = 0 - - self.move_to(joint_positions_target_zero, speed, parent_id) - self.move_to(joint_positions_target, speed, parent_id) - time.sleep(1) - if option == "pick": - link_name = self.lh_devices[parent_id]['joint_config']['link_names'][z_index] - link_name = f'{parent_id}_{link_name}' - self.resource_move(resource_name_, link_name, channels) - elif option == "drop_trash": - self.resource_move(resource_name_, "__trash", channels) - elif option == "drop": - self.resource_move(resource_name_, "world", channels) - self.move_to(joint_positions_target_zero, speed, parent_id) - - - def move_to(self, joint_positions ,speed, parent_id): - loop_flag = 0 - - while loop_flag < len(joint_positions): - loop_flag = 0 - for i in range(len(joint_positions)): - distance = joint_positions[i] - self.lh_devices[parent_id]['joint_msg'].position[i] - if distance == 0: - loop_flag += 1 - continue - minus_flag = distance/abs(distance) - if abs(distance) > speed/self.rate: - self.lh_devices[parent_id]['joint_msg'].position[i] += minus_flag * speed/self.rate - else : - self.lh_devices[parent_id]['joint_msg'].position[i] = joint_positions[i] - loop_flag += 1 - - - # 发布关节状态 - self.lh_joint_pub_callback() - time.sleep(1/self.rate) - - def lh_joint_pub_callback(self): - for id, config in self.lh_devices.items(): - config['joint_msg'].header.stamp = self.get_clock().now().to_msg() - self.j_pub.publish(config['joint_msg']) - - - - -class JointStatePublisher(Node): - def __init__(self): - super().__init__('joint_state_publisher') - - self.lh_action = None - - while self.lh_action is None: - self.lh_action = self.check_hl_joint_actions() - time.sleep(1) - - self.lh_action_client = ActionClient(self, SendCmd, self.lh_action) - while not self.lh_action_client.wait_for_server(timeout_sec=1.0): - self.get_logger().info('等待 TfUpdate 服务器...') - - - - def check_hl_joint_actions(self): - topics = self.get_topic_names_and_types() - - - for topic_item in topics: - - topic_name, topic_types = topic_item - - if 'action_msgs/msg/GoalStatusArray' in topic_types: - # 删除 /_action/status 部分 - - base_name = topic_name.replace('/_action/status', '') - # 检查最后一个部分是否为 tf_update - parts = base_name.split('/') - if parts and parts[-1] == 'hl_joint_action': - return base_name - - return None - - def send_resource_action(self, resource_name, x,y,z,option, speed = 0.1,x_joint=None, y_joint=None, z_joint=None,channels=[0,1,2,3,4,5,6,7]): - goal_msg = SendCmd.Goal() - - # Convert numpy arrays or other non-serializable objects to lists - def to_serializable(obj): - if hasattr(obj, 'tolist'): # numpy array - return obj.tolist() - elif isinstance(obj, list): - return [to_serializable(item) for item in obj] - elif isinstance(obj, dict): - return {k: to_serializable(v) for k, v in obj.items()} - else: - return obj - - str_dict = { - 'resource_names':resource_name, - 'x':x, - 'y':y, - 'z':z, - 'option':option, - 'speed':speed, - 'x_joint':to_serializable(x_joint), - 'y_joint':to_serializable(y_joint), - 'z_joint':to_serializable(z_joint), - 'channels':to_serializable(channels) - } - - - goal_msg.command = json.dumps(str_dict) - - if not self.lh_action_client.wait_for_server(timeout_sec=5.0): - self.get_logger().error('Action server not available') - return None - - try: - # 创建新的executor - executor = rclpy.executors.MultiThreadedExecutor() - executor.add_node(self) - - # 发送目标 - future = self.lh_action_client.send_goal_async(goal_msg) - - # 使用executor等待结果 - while not future.done(): - executor.spin_once(timeout_sec=0.1) - - handle = future.result() - - if not handle.accepted: - self.get_logger().error('Goal was rejected') - return None - - # 等待最终结果 - result_future = handle.get_result_async() - while not result_future.done(): - executor.spin_once(timeout_sec=0.1) - - result = result_future.result() - return result - - except Exception as e: - self.get_logger().error(f'Error during action execution: {str(e)}') - return None - finally: - # 清理executor - executor.remove_node(self) - - -def main(): - - pass - -if __name__ == '__main__': - main() \ No newline at end of file diff --git a/unilabos/devices/ros_dev/liquid_handler_joint_publisher_node.py b/unilabos/devices/ros_dev/liquid_handler_joint_publisher_node.py deleted file mode 100644 index 5b7c7252..00000000 --- a/unilabos/devices/ros_dev/liquid_handler_joint_publisher_node.py +++ /dev/null @@ -1,374 +0,0 @@ -import asyncio -import copy -from pathlib import Path -import threading -import uuid -import rclpy -import json -import time -from rclpy.executors import MultiThreadedExecutor -from rclpy.action import ActionServer,ActionClient -from sensor_msgs.msg import JointState -from unilabos_msgs.action import SendCmd -from rclpy.action.server import ServerGoalHandle - - -from rclpy.node import Node -import re - -class LiquidHandlerJointPublisher(Node): - def __init__(self, joint_config:str = None, lh_device_id: str = 'lh_joint_publisher', rate=50, **kwargs): - super().__init__(lh_device_id) - # 初始化参数 - self.lh_device_id = lh_device_id - # INSERT_YOUR_CODE - # 如果未传 joint_config,则自动读取同级的 lh_joint_config.json 文件 - - config_path = Path(__file__).parent / 'lh_joint_config.json' - with open(config_path, 'r', encoding='utf-8') as f: - config_json = json.load(f) - self.joint_config = config_json[joint_config] - self.simulate_rviz = kwargs.get("simulate_rviz", False) - - - self.rate = rate - self.j_pub = self.create_publisher(JointState,'/joint_states',10) - self.timer = self.create_timer(1, self.lh_joint_pub_callback) - - - self.resource_action = None - - if self.simulate_rviz: - while self.resource_action is None: - self.resource_action = self.check_tf_update_actions() - time.sleep(1) - - self.resource_action_client = ActionClient(self, SendCmd, self.resource_action) - while not self.resource_action_client.wait_for_server(timeout_sec=1.0): - self.get_logger().info('等待 TfUpdate 服务器...') - - self.deck_list = [] - self.lh_devices = {} - - self.j_msg = JointState( - name=[f'{self.lh_device_id}_{x}' for x in self.joint_config['joint_names']], - position=[0.0 for _ in self.joint_config['joint_names']], - velocity=[0.0 for _ in self.joint_config['joint_names']], - effort=[0.0 for _ in self.joint_config['joint_names']] - ) - - # self.j_action = ActionServer( - # self, - # SendCmd, - # "hl_joint_action", - # self.lh_joint_action_callback, - # result_timeout=5000 - # ) - - def check_tf_update_actions(self): - topics = self.get_topic_names_and_types() - - for topic_item in topics: - - topic_name, topic_types = topic_item - - if 'action_msgs/msg/GoalStatusArray' in topic_types: - # 删除 /_action/status 部分 - - base_name = topic_name.replace('/_action/status', '') - # 检查最后一个部分是否为 tf_update - parts = base_name.split('/') - if parts and parts[-1] == 'tf_update': - return base_name - - return None - - def send_resource_action(self, resource_id_list:list[str], link_name:str): - if self.simulate_rviz: - goal_msg = SendCmd.Goal() - str_dict = {} - for resource in resource_id_list: - str_dict[resource] = link_name - - goal_msg.command = json.dumps(str_dict) - - self.resource_action_client.send_goal(goal_msg) - else: - pass - - - def resource_move(self, resource_id:str, link_name:str, channels:list[int]): - resource = resource_id.rsplit("_",1) - - channel_list = ['A','B','C','D','E','F','G','H'] - - resource_list = [] - match = re.match(r'([a-zA-Z_]+)(\d+)', resource[1]) - if match: - number = match.group(2) - for channel in channels: - resource_list.append(f"{resource[0]}_{channel_list[channel]}{number}") - - if len(resource_list) > 0: - self.send_resource_action(resource_list, link_name) - - - - def lh_joint_action_callback(self,goal_handle: ServerGoalHandle): - """Move a single joint - - Args: - command: A JSON-formatted string that includes joint_name, speed, position - - joint_name (str): The name of the joint to move - speed (float): The speed of the movement, speed > 0 - position (float): The position to move to - - Returns: - None - """ - result = SendCmd.Result() - cmd_str = str(goal_handle.request.command).replace('\'','\"') - # goal_handle.execute() - - try: - cmd_dict = json.loads(cmd_str) - self.move_joints(**cmd_dict) - result.success = True - goal_handle.succeed() - - except Exception as e: - print(f'Liquid handler action error: \n{e}') - goal_handle.abort() - result.success = False - - return result - def inverse_kinematics(self, x, y, z, - parent_id, - x_joint:dict, - y_joint:dict, - z_joint:dict ): - """ - 将x、y、z坐标转换为对应关节的位置 - - Args: - x (float): x坐标 - y (float): y坐标 - z (float): z坐标 - x_joint (dict): x轴关节配置,包含factor和offset - y_joint (dict): y轴关节配置,包含factor和offset - z_joint (dict): z轴关节配置,包含factor和offset - - Returns: - dict: 关节名称和对应位置的字典 - """ - joint_positions = copy.deepcopy(self.j_msg.position) - - z_index = 0 - # 处理x轴关节 - for joint_name, config in x_joint.items(): - index = self.j_msg.name.index(f"{parent_id}_{joint_name}") - joint_positions[index] = x * config["factor"] + config["offset"] - - # 处理y轴关节 - for joint_name, config in y_joint.items(): - index = self.j_msg.name.index(f"{parent_id}_{joint_name}") - joint_positions[index] = y * config["factor"] + config["offset"] - - # 处理z轴关节 - for joint_name, config in z_joint.items(): - index = self.j_msg.name.index(f"{parent_id}_{joint_name}") - joint_positions[index] = z * config["factor"] + config["offset"] - z_index = index - - return joint_positions ,z_index - - - def move_joints(self, resource_names, x, y, z, option, speed = 0.1 ,x_joint=None, y_joint=None, z_joint=None,channels=[0,1,2,3,4,5,6,7]): - if isinstance(resource_names, list): - resource_name_ = resource_names[0] - else: - resource_name_ = resource_names - - lh_device_id = self.lh_device_id - - - # print('!'*20) - # print(parent_id) - # print('!'*20) - if x_joint is None: - xa,xb = next(iter(self.joint_config['x'].items())) - x_joint_config = {xa:xb} - elif x_joint in self.joint_config['x']: - x_joint_config = self.joint_config['x'][x_joint] - else: - raise ValueError(f"x_joint {x_joint} not in joint_config['x']") - if y_joint is None: - ya,yb = next(iter(self.joint_config['y'].items())) - y_joint_config = {ya:yb} - elif y_joint in self.joint_config['y']: - y_joint_config = self.joint_config['y'][y_joint] - else: - raise ValueError(f"y_joint {y_joint} not in joint_config['y']") - if z_joint is None: - za, zb = next(iter(self.joint_config['z'].items())) - z_joint_config = {za :zb} - elif z_joint in self.joint_config['z']: - z_joint_config = self.joint_config['z'][z_joint] - else: - raise ValueError(f"z_joint {z_joint} not in joint_config['z']") - - joint_positions_target, z_index = self.inverse_kinematics(x,y,z,lh_device_id,x_joint_config,y_joint_config,z_joint_config) - joint_positions_target_zero = copy.deepcopy(joint_positions_target) - joint_positions_target_zero[z_index] = 0 - - self.move_to(joint_positions_target_zero, speed) - self.move_to(joint_positions_target, speed) - time.sleep(1) - if option == "pick": - link_name = self.joint_config['link_names'][z_index] - link_name = f'{lh_device_id}_{link_name}' - self.resource_move(resource_name_, link_name, channels) - elif option == "drop_trash": - self.resource_move(resource_name_, "__trash", channels) - elif option == "drop": - self.resource_move(resource_name_, "world", channels) - self.move_to(joint_positions_target_zero, speed) - - - def move_to(self, joint_positions ,speed): - loop_flag = 0 - - while loop_flag < len(joint_positions): - loop_flag = 0 - for i in range(len(joint_positions)): - distance = joint_positions[i] - self.j_msg.position[i] - if distance == 0: - loop_flag += 1 - continue - minus_flag = distance/abs(distance) - if abs(distance) > speed/self.rate: - self.j_msg.position[i] += minus_flag * speed/self.rate - else : - self.j_msg.position[i] = joint_positions[i] - loop_flag += 1 - - - # 发布关节状态 - self.lh_joint_pub_callback() - time.sleep(1/self.rate) - - def lh_joint_pub_callback(self): - self.j_msg.header.stamp = self.get_clock().now().to_msg() - self.j_pub.publish(self.j_msg) - - -class JointStatePublisher(Node): - def __init__(self): - super().__init__('joint_state_publisher') - - self.lh_action = None - - while self.lh_action is None: - self.lh_action = self.check_hl_joint_actions() - time.sleep(1) - - self.lh_action_client = ActionClient(self, SendCmd, self.lh_action) - while not self.lh_action_client.wait_for_server(timeout_sec=1.0): - self.get_logger().info('等待 TfUpdate 服务器...') - - - - def check_hl_joint_actions(self): - topics = self.get_topic_names_and_types() - - - for topic_item in topics: - - topic_name, topic_types = topic_item - - if 'action_msgs/msg/GoalStatusArray' in topic_types: - # 删除 /_action/status 部分 - - base_name = topic_name.replace('/_action/status', '') - # 检查最后一个部分是否为 tf_update - parts = base_name.split('/') - if parts and parts[-1] == 'hl_joint_action': - return base_name - - return None - - def send_resource_action(self, resource_name, x,y,z,option, speed = 0.1,x_joint=None, y_joint=None, z_joint=None,channels=[0,1,2,3,4,5,6,7]): - goal_msg = SendCmd.Goal() - - # Convert numpy arrays or other non-serializable objects to lists - def to_serializable(obj): - if hasattr(obj, 'tolist'): # numpy array - return obj.tolist() - elif isinstance(obj, list): - return [to_serializable(item) for item in obj] - elif isinstance(obj, dict): - return {k: to_serializable(v) for k, v in obj.items()} - else: - return obj - - str_dict = { - 'resource_names':resource_name, - 'x':x, - 'y':y, - 'z':z, - 'option':option, - 'speed':speed, - 'x_joint':to_serializable(x_joint), - 'y_joint':to_serializable(y_joint), - 'z_joint':to_serializable(z_joint), - 'channels':to_serializable(channels) - } - - - goal_msg.command = json.dumps(str_dict) - - if not self.lh_action_client.wait_for_server(timeout_sec=5.0): - self.get_logger().error('Action server not available') - return None - - try: - # 创建新的executor - executor = rclpy.executors.MultiThreadedExecutor() - executor.add_node(self) - - # 发送目标 - future = self.lh_action_client.send_goal_async(goal_msg) - - # 使用executor等待结果 - while not future.done(): - executor.spin_once(timeout_sec=0.1) - - handle = future.result() - - if not handle.accepted: - self.get_logger().error('Goal was rejected') - return None - - # 等待最终结果 - result_future = handle.get_result_async() - while not result_future.done(): - executor.spin_once(timeout_sec=0.1) - - result = result_future.result() - return result - - except Exception as e: - self.get_logger().error(f'Error during action execution: {str(e)}') - return None - finally: - # 清理executor - executor.remove_node(self) - - -def main(): - - pass - -if __name__ == '__main__': - main() \ No newline at end of file diff --git a/unilabos/devices/ros_dev/moveit2.py b/unilabos/devices/ros_dev/moveit2.py deleted file mode 100644 index 80bea9da..00000000 --- a/unilabos/devices/ros_dev/moveit2.py +++ /dev/null @@ -1,2442 +0,0 @@ -import copy -import threading -from enum import Enum -from typing import Any, List, Optional, Tuple, Union - -import numpy as np -from action_msgs.msg import GoalStatus -from geometry_msgs.msg import Point, Pose, PoseStamped, Quaternion -from moveit_msgs.action import ExecuteTrajectory, MoveGroup -from moveit_msgs.msg import ( - AllowedCollisionEntry, - AttachedCollisionObject, - CollisionObject, - Constraints, - JointConstraint, - MoveItErrorCodes, - OrientationConstraint, - PlanningScene, - PositionConstraint, -) -from moveit_msgs.srv import ( - ApplyPlanningScene, - GetCartesianPath, - GetMotionPlan, - GetPlanningScene, - GetPositionFK, - GetPositionIK, -) -from rclpy.action import ActionClient -from rclpy.callback_groups import CallbackGroup -from rclpy.node import Node -from rclpy.qos import ( - QoSDurabilityPolicy, - QoSHistoryPolicy, - QoSProfile, - QoSReliabilityPolicy, -) -from rclpy.task import Future -from sensor_msgs.msg import JointState -from shape_msgs.msg import Mesh, MeshTriangle, SolidPrimitive -from std_msgs.msg import Header, String -from trajectory_msgs.msg import JointTrajectory, JointTrajectoryPoint - - -class MoveIt2State(Enum): - """ - An enum the represents the current execution state of the MoveIt2 interface. - - IDLE: No motion is being requested or executed - - REQUESTING: Execution has been requested, but the request has not yet been - accepted. - - EXECUTING: Execution has been requested and accepted, and has not yet been - completed. - """ - - IDLE = 0 - REQUESTING = 1 - EXECUTING = 2 - - -class MoveIt2: - """ - Python interface for MoveIt 2 that enables planning and execution of trajectories. - For execution, this interface requires that robot utilises JointTrajectoryController. - """ - - def __init__( - self, - node: Node, - joint_names: List[str], - base_link_name: str, - end_effector_name: str, - group_name: str = "arm", - execute_via_moveit: bool = False, - ignore_new_calls_while_executing: bool = False, - callback_group: Optional[CallbackGroup] = None, - follow_joint_trajectory_action_name: str = "DEPRECATED", - use_move_group_action: bool = False, - ): - """ - Construct an instance of `MoveIt2` interface. - - `node` - ROS 2 node that this interface is attached to - - `joint_names` - List of joint names of the robot (can be extracted from URDF) - - `base_link_name` - Name of the robot base link - - `end_effector_name` - Name of the robot end effector - - `group_name` - Name of the planning group for robot arm - - [DEPRECATED] `execute_via_moveit` - Flag that enables execution via MoveGroup action (MoveIt 2) - FollowJointTrajectory action (controller) is employed otherwise - together with a separate planning service client - - `ignore_new_calls_while_executing` - Flag to ignore requests to execute new trajectories - while previous is still being executed - - `callback_group` - Optional callback group to use for ROS 2 communication (topics/services/actions) - - [DEPRECATED] `follow_joint_trajectory_action_name` - Name of the action server for the controller - - `use_move_group_action` - Flag that enables execution via MoveGroup action (MoveIt 2) - ExecuteTrajectory action is employed otherwise - together with a separate planning service client - """ - - self._node = node - self._callback_group = callback_group - - # Check for deprecated parameters - if execute_via_moveit: - self._node.get_logger().warn( - "Parameter `execute_via_moveit` is deprecated. Please use `use_move_group_action` instead." - ) - use_move_group_action = True - if follow_joint_trajectory_action_name != "DEPRECATED": - self._node.get_logger().warn( - "Parameter `follow_joint_trajectory_action_name` is deprecated. `MoveIt2` uses the `execute_trajectory` action instead." - ) - - # Create subscriber for current joint states - self._node.create_subscription( - msg_type=JointState, - topic="/joint_states", - callback=self.__joint_state_callback, - qos_profile=QoSProfile( - durability=QoSDurabilityPolicy.VOLATILE, - reliability=QoSReliabilityPolicy.BEST_EFFORT, - history=QoSHistoryPolicy.KEEP_LAST, - depth=1, - ), - callback_group=self._callback_group, - ) - - # Create action client for move action - self.__move_action_client = ActionClient( - node=self._node, - action_type=MoveGroup, - action_name="/move_action", - goal_service_qos_profile=QoSProfile( - durability=QoSDurabilityPolicy.VOLATILE, - reliability=QoSReliabilityPolicy.RELIABLE, - history=QoSHistoryPolicy.KEEP_LAST, - depth=1, - ), - result_service_qos_profile=QoSProfile( - durability=QoSDurabilityPolicy.VOLATILE, - reliability=QoSReliabilityPolicy.RELIABLE, - history=QoSHistoryPolicy.KEEP_LAST, - depth=5, - ), - cancel_service_qos_profile=QoSProfile( - durability=QoSDurabilityPolicy.VOLATILE, - reliability=QoSReliabilityPolicy.RELIABLE, - history=QoSHistoryPolicy.KEEP_LAST, - depth=5, - ), - feedback_sub_qos_profile=QoSProfile( - durability=QoSDurabilityPolicy.VOLATILE, - reliability=QoSReliabilityPolicy.BEST_EFFORT, - history=QoSHistoryPolicy.KEEP_LAST, - depth=1, - ), - status_sub_qos_profile=QoSProfile( - durability=QoSDurabilityPolicy.VOLATILE, - reliability=QoSReliabilityPolicy.BEST_EFFORT, - history=QoSHistoryPolicy.KEEP_LAST, - depth=1, - ), - callback_group=self._callback_group, - ) - - # Also create a separate service client for planning - self._plan_kinematic_path_service = self._node.create_client( - srv_type=GetMotionPlan, - srv_name="/plan_kinematic_path", - qos_profile=QoSProfile( - durability=QoSDurabilityPolicy.VOLATILE, - reliability=QoSReliabilityPolicy.RELIABLE, - history=QoSHistoryPolicy.KEEP_LAST, - depth=1, - ), - callback_group=callback_group, - ) - self.__kinematic_path_request = GetMotionPlan.Request() - - # Create a separate service client for Cartesian planning - self._plan_cartesian_path_service = self._node.create_client( - srv_type=GetCartesianPath, - srv_name="/compute_cartesian_path", - qos_profile=QoSProfile( - durability=QoSDurabilityPolicy.VOLATILE, - reliability=QoSReliabilityPolicy.RELIABLE, - history=QoSHistoryPolicy.KEEP_LAST, - depth=1, - ), - callback_group=callback_group, - ) - self.__cartesian_path_request = GetCartesianPath.Request() - - # Create action client for trajectory execution - self._execute_trajectory_action_client = ActionClient( - node=self._node, - action_type=ExecuteTrajectory, - action_name="/execute_trajectory", - goal_service_qos_profile=QoSProfile( - durability=QoSDurabilityPolicy.VOLATILE, - reliability=QoSReliabilityPolicy.RELIABLE, - history=QoSHistoryPolicy.KEEP_LAST, - depth=1, - ), - result_service_qos_profile=QoSProfile( - durability=QoSDurabilityPolicy.VOLATILE, - reliability=QoSReliabilityPolicy.RELIABLE, - history=QoSHistoryPolicy.KEEP_LAST, - depth=5, - ), - cancel_service_qos_profile=QoSProfile( - durability=QoSDurabilityPolicy.VOLATILE, - reliability=QoSReliabilityPolicy.RELIABLE, - history=QoSHistoryPolicy.KEEP_LAST, - depth=5, - ), - feedback_sub_qos_profile=QoSProfile( - durability=QoSDurabilityPolicy.VOLATILE, - reliability=QoSReliabilityPolicy.BEST_EFFORT, - history=QoSHistoryPolicy.KEEP_LAST, - depth=1, - ), - status_sub_qos_profile=QoSProfile( - durability=QoSDurabilityPolicy.VOLATILE, - reliability=QoSReliabilityPolicy.BEST_EFFORT, - history=QoSHistoryPolicy.KEEP_LAST, - depth=1, - ), - callback_group=self._callback_group, - ) - - # Create a service for getting the planning scene - self._get_planning_scene_service = self._node.create_client( - srv_type=GetPlanningScene, - srv_name="/get_planning_scene", - qos_profile=QoSProfile( - durability=QoSDurabilityPolicy.VOLATILE, - reliability=QoSReliabilityPolicy.RELIABLE, - history=QoSHistoryPolicy.KEEP_LAST, - depth=1, - ), - callback_group=callback_group, - ) - self.__planning_scene = None - self.__old_planning_scene = None - self.__old_allowed_collision_matrix = None - - # Create a service for applying the planning scene - self._apply_planning_scene_service = self._node.create_client( - srv_type=ApplyPlanningScene, - srv_name="/apply_planning_scene", - qos_profile=QoSProfile( - durability=QoSDurabilityPolicy.VOLATILE, - reliability=QoSReliabilityPolicy.RELIABLE, - history=QoSHistoryPolicy.KEEP_LAST, - depth=1, - ), - callback_group=callback_group, - ) - - self.__collision_object_publisher = self._node.create_publisher( - CollisionObject, "/collision_object", 10 - ) - self.__attached_collision_object_publisher = self._node.create_publisher( - AttachedCollisionObject, "/attached_collision_object", 10 - ) - - self.__cancellation_pub = self._node.create_publisher( - String, "/trajectory_execution_event", 1 - ) - - self.__joint_state_mutex = threading.Lock() - self.__joint_state = None - self.__new_joint_state_available = False - self.__move_action_goal = self.__init_move_action_goal( - frame_id=base_link_name, - group_name=group_name, - end_effector=end_effector_name, - ) - - # Flag to determine whether to execute trajectories via Move Group Action, or rather by calling - # the separate ExecuteTrajectory action - # Applies to `move_to_pose()` and `move_to_configuration()` - self.__use_move_group_action = use_move_group_action - - # Flag that determines whether a new goal can be sent while the previous one is being executed - self.__ignore_new_calls_while_executing = ignore_new_calls_while_executing - - # Store additional variables for later use - self.__joint_names = joint_names - self.__base_link_name = base_link_name - self.__end_effector_name = end_effector_name - self.__group_name = group_name - - # Internal states that monitor the current motion requests and execution - self.__is_motion_requested = False - self.__is_executing = False - self.motion_suceeded = False - self.__execution_goal_handle = None - self.__last_error_code = None - self.__wait_until_executed_rate = self._node.create_rate(1000.0) - self.__execution_mutex = threading.Lock() - - # Event that enables waiting until async future is done - self.__future_done_event = threading.Event() - - #### Execution Polling Functions - def query_state(self) -> MoveIt2State: - with self.__execution_mutex: - if self.__is_motion_requested: - return MoveIt2State.REQUESTING - elif self.__is_executing: - return MoveIt2State.EXECUTING - else: - return MoveIt2State.IDLE - - def cancel_execution(self): - if self.query_state() != MoveIt2State.EXECUTING: - self._node.get_logger().warn("Attempted to cancel without active goal.") - return None - - cancel_string = String() - cancel_string.data = "stop" - self.__cancellation_pub.publish(cancel_string) - - def get_execution_future(self) -> Optional[Future]: - if self.query_state() != MoveIt2State.EXECUTING: - self._node.get_logger().warn("Need active goal for future.") - return None - - return self.__execution_goal_handle.get_result_async() - - def get_last_execution_error_code(self) -> Optional[MoveItErrorCodes]: - return self.__last_error_code - - #### - - def move_to_pose( - self, - pose: Optional[Union[PoseStamped, Pose]] = None, - position: Optional[Union[Point, Tuple[float, float, float]]] = None, - quat_xyzw: Optional[ - Union[Quaternion, Tuple[float, float, float, float]] - ] = None, - target_link: Optional[str] = None, - frame_id: Optional[str] = None, - tolerance_position: float = 0.001, - tolerance_orientation: float = 0.001, - weight_position: float = 1.0, - cartesian: bool = True, - weight_orientation: float = 1.0, - cartesian_max_step: float = 0.0025, - cartesian_fraction_threshold: float = 0.0, - ): - """ - Plan and execute motion based on previously set goals. Optional arguments can be - passed in to internally use `set_pose_goal()` to define a goal during the call. - """ - - if isinstance(pose, PoseStamped): - pose_stamped = pose - elif isinstance(pose, Pose): - pose_stamped = PoseStamped( - header=Header( - stamp=self._node.get_clock().now().to_msg(), - frame_id=( - frame_id if frame_id is not None else self.__base_link_name - ), - ), - pose=pose, - ) - else: - if not isinstance(position, Point): - position = Point( - x=float(position[0]), y=float(position[1]), z=float(position[2]) - ) - if not isinstance(quat_xyzw, Quaternion): - quat_xyzw = Quaternion( - x=float(quat_xyzw[0]), - y=float(quat_xyzw[1]), - z=float(quat_xyzw[2]), - w=float(quat_xyzw[3]), - ) - pose_stamped = PoseStamped( - header=Header( - stamp=self._node.get_clock().now().to_msg(), - frame_id=( - frame_id if frame_id is not None else self.__base_link_name - ), - ), - pose=Pose(position=position, orientation=quat_xyzw), - ) - - if self.__use_move_group_action and not cartesian: - if self.__ignore_new_calls_while_executing and ( - self.__is_motion_requested or self.__is_executing - ): - self._node.get_logger().warn( - "Controller is already following a trajectory. Skipping motion." - ) - return - - # Set goal - self.set_pose_goal( - position=pose_stamped.pose.position, - quat_xyzw=pose_stamped.pose.orientation, - frame_id=pose_stamped.header.frame_id, - target_link=target_link, - tolerance_position=tolerance_position, - tolerance_orientation=tolerance_orientation, - weight_position=weight_position, - weight_orientation=weight_orientation, - ) - # Define starting state as the current state - if self.joint_state is not None: - self.__move_action_goal.request.start_state.joint_state = ( - self.joint_state - ) - # Send to goal to the server (async) - both planning and execution - self._send_goal_async_move_action() - # Clear all previous goal constrains - self.clear_goal_constraints() - self.clear_path_constraints() - - else: - # Plan via MoveIt 2 and then execute directly with the controller - self.execute( - self.plan( - position=pose_stamped.pose.position, - quat_xyzw=pose_stamped.pose.orientation, - frame_id=pose_stamped.header.frame_id, - target_link=target_link, - tolerance_position=tolerance_position, - tolerance_orientation=tolerance_orientation, - weight_position=weight_position, - weight_orientation=weight_orientation, - cartesian=cartesian, - max_step=cartesian_max_step, - cartesian_fraction_threshold=cartesian_fraction_threshold, - ) - ) - - def move_to_configuration( - self, - joint_positions: List[float], - joint_names: Optional[List[str]] = None, - tolerance: float = 0.001, - weight: float = 1.0, - cartesian: bool = False, - ): - """ - Plan and execute motion based on previously set goals. Optional arguments can be - passed in to internally use `set_joint_goal()` to define a goal during the call. - """ - - if self.__use_move_group_action: - if self.__ignore_new_calls_while_executing and ( - self.__is_motion_requested or self.__is_executing - ): - self._node.get_logger().warn( - "Controller is already following a trajectory. Skipping motion." - ) - return - - # Set goal - self.set_joint_goal( - joint_positions=joint_positions, - joint_names=joint_names, - tolerance=tolerance, - weight=weight, - ) - # Define starting state as the current state - if self.joint_state is not None: - self.__move_action_goal.request.start_state.joint_state = ( - self.joint_state - ) - # Send to goal to the server (async) - both planning and execution - self._send_goal_async_move_action() - # Clear all previous goal constrains - self.clear_goal_constraints() - self.clear_path_constraints() - - else: - # Plan via MoveIt 2 and then execute directly with the controller - self.execute( - self.plan( - joint_positions=joint_positions, - joint_names=joint_names, - tolerance_joint_position=tolerance, - weight_joint_position=weight, - cartesian=cartesian, - ) - ) - - def plan( - self, - pose: Optional[Union[PoseStamped, Pose]] = None, - position: Optional[Union[Point, Tuple[float, float, float]]] = None, - quat_xyzw: Optional[ - Union[Quaternion, Tuple[float, float, float, float]] - ] = None, - joint_positions: Optional[List[float]] = None, - joint_names: Optional[List[str]] = None, - frame_id: Optional[str] = None, - target_link: Optional[str] = None, - tolerance_position: float = 0.001, - tolerance_orientation: Union[float, Tuple[float, float, float]] = 0.001, - tolerance_joint_position: float = 0.001, - weight_position: float = 1.0, - weight_orientation: float = 1.0, - weight_joint_position: float = 1.0, - start_joint_state: Optional[Union[JointState, List[float]]] = None, - cartesian: bool = False, - max_step: float = 0.0025, - cartesian_fraction_threshold: float = 0.0, - ) -> Optional[JointTrajectory]: - """ - Call plan_async and wait on future - """ - future = self.plan_async( - **{ - key: value - for key, value in locals().items() - if key not in ["self", "cartesian_fraction_threshold"] - } - ) - - if future is None: - return None - - # 100ms sleep - rate = self._node.create_rate(10) - while not future.done(): - rate.sleep() - - return self.get_trajectory( - future, - cartesian=cartesian, - cartesian_fraction_threshold=cartesian_fraction_threshold, - ) - - def plan_async( - self, - pose: Optional[Union[PoseStamped, Pose]] = None, - position: Optional[Union[Point, Tuple[float, float, float]]] = None, - quat_xyzw: Optional[ - Union[Quaternion, Tuple[float, float, float, float]] - ] = None, - joint_positions: Optional[List[float]] = None, - joint_names: Optional[List[str]] = None, - frame_id: Optional[str] = None, - target_link: Optional[str] = None, - tolerance_position: float = 0.001, - tolerance_orientation: Union[float, Tuple[float, float, float]] = 0.001, - tolerance_joint_position: float = 0.001, - weight_position: float = 1.0, - weight_orientation: float = 1.0, - weight_joint_position: float = 1.0, - start_joint_state: Optional[Union[JointState, List[float]]] = None, - cartesian: bool = False, - max_step: float = 0.0025, - ) -> Optional[Future]: - """ - Plan motion based on previously set goals. Optional arguments can be passed in to - internally use `set_position_goal()`, `set_orientation_goal()` or `set_joint_goal()` - to define a goal during the call. If no trajectory is found within the timeout - duration, `None` is returned. To plan from the different position than the current - one, optional argument `start_` can be defined. - """ - - pose_stamped = None - if pose is not None: - if isinstance(pose, PoseStamped): - pose_stamped = pose - elif isinstance(pose, Pose): - pose_stamped = PoseStamped( - header=Header( - stamp=self._node.get_clock().now().to_msg(), - frame_id=( - frame_id if frame_id is not None else self.__base_link_name - ), - ), - pose=pose, - ) - - self.set_position_goal( - position=pose_stamped.pose.position, - frame_id=pose_stamped.header.frame_id, - target_link=target_link, - tolerance=tolerance_position, - weight=weight_position, - ) - self.set_orientation_goal( - quat_xyzw=pose_stamped.pose.orientation, - frame_id=pose_stamped.header.frame_id, - target_link=target_link, - tolerance=tolerance_orientation, - weight=weight_orientation, - ) - else: - if position is not None: - if not isinstance(position, Point): - position = Point( - x=float(position[0]), y=float(position[1]), z=float(position[2]) - ) - - self.set_position_goal( - position=position, - frame_id=frame_id, - target_link=target_link, - tolerance=tolerance_position, - weight=weight_position, - ) - - if quat_xyzw is not None: - if not isinstance(quat_xyzw, Quaternion): - quat_xyzw = Quaternion( - x=float(quat_xyzw[0]), - y=float(quat_xyzw[1]), - z=float(quat_xyzw[2]), - w=float(quat_xyzw[3]), - ) - - self.set_orientation_goal( - quat_xyzw=quat_xyzw, - frame_id=frame_id, - target_link=target_link, - tolerance=tolerance_orientation, - weight=weight_orientation, - ) - - if joint_positions is not None: - self.set_joint_goal( - joint_positions=joint_positions, - joint_names=joint_names, - tolerance=tolerance_joint_position, - weight=weight_joint_position, - ) - - # Define starting state for the plan (default to the current state) - if start_joint_state is not None: - if isinstance(start_joint_state, JointState): - self.__move_action_goal.request.start_state.joint_state = ( - start_joint_state - ) - else: - self.__move_action_goal.request.start_state.joint_state = ( - init_joint_state( - joint_names=self.__joint_names, - joint_positions=start_joint_state, - ) - ) - elif self.joint_state is not None: - self.__move_action_goal.request.start_state.joint_state = self.joint_state - - # Plan trajectory asynchronously by service call - if cartesian: - future = self._plan_cartesian_path( - max_step=max_step, - frame_id=( - pose_stamped.header.frame_id - if pose_stamped is not None - else frame_id - ), - ) - else: - # Use service - future = self._plan_kinematic_path() - - - # Clear all previous goal constrains - self.clear_goal_constraints() - self.clear_path_constraints() - - return future - - def get_trajectory( - self, - future: Future, - cartesian: bool = False, - cartesian_fraction_threshold: float = 0.0, - ) -> Optional[JointTrajectory]: - """ - Takes in a future returned by plan_async and returns the trajectory if the future is done - and planning was successful, else None. - - For cartesian plans, the plan is rejected if the fraction of the path that was completed is - less than `cartesian_fraction_threshold`. - """ - if not future.done(): - self._node.get_logger().warn( - "Cannot get trajectory because future is not done." - ) - return None - - res = future.result() - - # Cartesian - if cartesian: - if MoveItErrorCodes.SUCCESS == res.error_code.val: - if res.fraction >= cartesian_fraction_threshold: - return res.solution.joint_trajectory - else: - self._node.get_logger().warn( - f"Planning failed! Cartesian planner completed {res.fraction} " - f"of the trajectory, less than the threshold {cartesian_fraction_threshold}." - ) - return None - else: - self._node.get_logger().warn( - f"Planning failed! Error code: {res.error_code.val}." - ) - return None - - # Else Kinematic - res = res.motion_plan_response - if MoveItErrorCodes.SUCCESS == res.error_code.val: - return res.trajectory.joint_trajectory - else: - self._node.get_logger().warn( - f"Planning failed! Error code: {res.error_code.val}." - ) - return None - - def execute(self, joint_trajectory: JointTrajectory): - """ - Execute joint_trajectory by communicating directly with the controller. - """ - - if self.__ignore_new_calls_while_executing and ( - self.__is_motion_requested or self.__is_executing - ): - self._node.get_logger().warn( - "Controller is already following a trajectory. Skipping motion." - ) - return - - execute_trajectory_goal = init_execute_trajectory_goal( - joint_trajectory=joint_trajectory - ) - - if execute_trajectory_goal is None: - self._node.get_logger().warn( - "Cannot execute motion because the provided/planned trajectory is invalid." - ) - return - - self._send_goal_async_execute_trajectory(goal=execute_trajectory_goal) - - def wait_until_executed(self) -> bool: - """ - Wait until the previously requested motion is finalised through either a success or failure. - """ - - if not self.__is_motion_requested: - self._node.get_logger().warn( - "Cannot wait until motion is executed (no motion is in progress)." - ) - return False - - while self.__is_motion_requested or self.__is_executing: - self.__wait_until_executed_rate.sleep() - - return self.motion_suceeded - - def reset_controller( - self, joint_state: Union[JointState, List[float]], sync: bool = True - ): - """ - Reset controller to a given `joint_state` by sending a dummy joint trajectory. - This is useful for simulated robots that allow instantaneous reset of joints. - """ - - if not isinstance(joint_state, JointState): - joint_state = init_joint_state( - joint_names=self.__joint_names, - joint_positions=joint_state, - ) - joint_trajectory = init_dummy_joint_trajectory_from_state(joint_state) - execute_trajectory_goal = init_execute_trajectory_goal( - joint_trajectory=joint_trajectory - ) - - self._send_goal_async_execute_trajectory( - goal=execute_trajectory_goal, - wait_until_response=sync, - ) - - def set_pose_goal( - self, - pose: Optional[Union[PoseStamped, Pose]] = None, - position: Optional[Union[Point, Tuple[float, float, float]]] = None, - quat_xyzw: Optional[ - Union[Quaternion, Tuple[float, float, float, float]] - ] = None, - frame_id: Optional[str] = None, - target_link: Optional[str] = None, - tolerance_position: float = 0.001, - tolerance_orientation: Union[float, Tuple[float, float, float]] = 0.001, - weight_position: float = 1.0, - weight_orientation: float = 1.0, - ): - """ - This is direct combination of `set_position_goal()` and `set_orientation_goal()`. - """ - - if (pose is None) and (position is None or quat_xyzw is None): - raise ValueError( - "Either `pose` or `position` and `quat_xyzw` must be specified!" - ) - - if isinstance(pose, PoseStamped): - pose_stamped = pose - elif isinstance(pose, Pose): - pose_stamped = PoseStamped( - header=Header( - stamp=self._node.get_clock().now().to_msg(), - frame_id=( - frame_id if frame_id is not None else self.__base_link_name - ), - ), - pose=pose, - ) - else: - if not isinstance(position, Point): - position = Point( - x=float(position[0]), y=float(position[1]), z=float(position[2]) - ) - if not isinstance(quat_xyzw, Quaternion): - quat_xyzw = Quaternion( - x=float(quat_xyzw[0]), - y=float(quat_xyzw[1]), - z=float(quat_xyzw[2]), - w=float(quat_xyzw[3]), - ) - pose_stamped = PoseStamped( - header=Header( - stamp=self._node.get_clock().now().to_msg(), - frame_id=( - frame_id if frame_id is not None else self.__base_link_name - ), - ), - pose=Pose(position=position, orientation=quat_xyzw), - ) - - self.set_position_goal( - position=pose_stamped.pose.position, - frame_id=pose_stamped.header.frame_id, - target_link=target_link, - tolerance=tolerance_position, - weight=weight_position, - ) - self.set_orientation_goal( - quat_xyzw=pose_stamped.pose.orientation, - frame_id=pose_stamped.header.frame_id, - target_link=target_link, - tolerance=tolerance_orientation, - weight=weight_orientation, - ) - - def create_position_constraint( - self, - position: Union[Point, Tuple[float, float, float]], - frame_id: Optional[str] = None, - target_link: Optional[str] = None, - tolerance: float = 0.001, - weight: float = 1.0, - ) -> PositionConstraint: - """ - Create Cartesian position constraint of `target_link` with respect to `frame_id`. - - `frame_id` defaults to the base link - - `target_link` defaults to end effector - """ - - # Create new position constraint - constraint = PositionConstraint() - - # Define reference frame and target link - constraint.header.frame_id = ( - frame_id if frame_id is not None else self.__base_link_name - ) - constraint.link_name = ( - target_link if target_link is not None else self.__end_effector_name - ) - - # Define target position - constraint.constraint_region.primitive_poses.append(Pose()) - if isinstance(position, Point): - constraint.constraint_region.primitive_poses[0].position = position - else: - constraint.constraint_region.primitive_poses[0].position.x = float( - position[0] - ) - constraint.constraint_region.primitive_poses[0].position.y = float( - position[1] - ) - constraint.constraint_region.primitive_poses[0].position.z = float( - position[2] - ) - - # Define goal region as a sphere with radius equal to the tolerance - constraint.constraint_region.primitives.append(SolidPrimitive()) - constraint.constraint_region.primitives[0].type = 2 # Sphere - constraint.constraint_region.primitives[0].dimensions = [tolerance] - - # Set weight of the constraint - constraint.weight = weight - - return constraint - - def set_position_goal( - self, - position: Union[Point, Tuple[float, float, float]], - frame_id: Optional[str] = None, - target_link: Optional[str] = None, - tolerance: float = 0.001, - weight: float = 1.0, - ): - """ - Set Cartesian position goal of `target_link` with respect to `frame_id`. - - `frame_id` defaults to the base link - - `target_link` defaults to end effector - """ - - constraint = self.create_position_constraint( - position=position, - frame_id=frame_id, - target_link=target_link, - tolerance=tolerance, - weight=weight, - ) - - # Append to other constraints - self.__move_action_goal.request.goal_constraints[ - -1 - ].position_constraints.append(constraint) - - def create_orientation_constraint( - self, - quat_xyzw: Union[Quaternion, Tuple[float, float, float, float]], - frame_id: Optional[str] = None, - target_link: Optional[str] = None, - tolerance: Union[float, Tuple[float, float, float]] = 0.001, - weight: float = 1.0, - parameterization: int = 0, # 0: Euler, 1: Rotation Vector - ) -> OrientationConstraint: - """ - Create a Cartesian orientation constraint of `target_link` with respect to `frame_id`. - - `frame_id` defaults to the base link - - `target_link` defaults to end effector - """ - - # Create new position constraint - constraint = OrientationConstraint() - - # Define reference frame and target link - constraint.header.frame_id = ( - frame_id if frame_id is not None else self.__base_link_name - ) - constraint.link_name = ( - target_link if target_link is not None else self.__end_effector_name - ) - - # Define target orientation - if isinstance(quat_xyzw, Quaternion): - constraint.orientation = quat_xyzw - else: - constraint.orientation.x = float(quat_xyzw[0]) - constraint.orientation.y = float(quat_xyzw[1]) - constraint.orientation.z = float(quat_xyzw[2]) - constraint.orientation.w = float(quat_xyzw[3]) - - # Define tolerances - if type(tolerance) == float: - tolerance_xyz = (tolerance, tolerance, tolerance) - else: - tolerance_xyz = tolerance - constraint.absolute_x_axis_tolerance = tolerance_xyz[0] - constraint.absolute_y_axis_tolerance = tolerance_xyz[1] - constraint.absolute_z_axis_tolerance = tolerance_xyz[2] - - # Define parameterization (how to interpret the tolerance) - constraint.parameterization = parameterization - - # Set weight of the constraint - constraint.weight = weight - - return constraint - - def set_orientation_goal( - self, - quat_xyzw: Union[Quaternion, Tuple[float, float, float, float]], - frame_id: Optional[str] = None, - target_link: Optional[str] = None, - tolerance: Union[float, Tuple[float, float, float]] = 0.001, - weight: float = 1.0, - parameterization: int = 0, # 0: Euler, 1: Rotation Vector - ): - """ - Set Cartesian orientation goal of `target_link` with respect to `frame_id`. - - `frame_id` defaults to the base link - - `target_link` defaults to end effector - """ - - constraint = self.create_orientation_constraint( - quat_xyzw=quat_xyzw, - frame_id=frame_id, - target_link=target_link, - tolerance=tolerance, - weight=weight, - parameterization=parameterization, - ) - - # Append to other constraints - self.__move_action_goal.request.goal_constraints[ - -1 - ].orientation_constraints.append(constraint) - - def create_joint_constraints( - self, - joint_positions: List[float], - joint_names: Optional[List[str]] = None, - tolerance: float = 0.001, - weight: float = 1.0, - ) -> List[JointConstraint]: - """ - Creates joint space constraints. With `joint_names` specified, `joint_positions` can be - defined for specific joints in an arbitrary order. Otherwise, first **n** joints - passed into the constructor is used, where **n** is the length of `joint_positions`. - """ - - constraints = [] - - # Use default joint names if not specified - if joint_names == None: - joint_names = self.__joint_names - - for i in range(len(joint_positions)): - # Create a new constraint for each joint - constraint = JointConstraint() - - # Define joint name - constraint.joint_name = joint_names[i] - - # Define the target joint position - constraint.position = joint_positions[i] - - # Define telerances - constraint.tolerance_above = tolerance - constraint.tolerance_below = tolerance - - # Set weight of the constraint - constraint.weight = weight - - constraints.append(constraint) - - return constraints - - def set_joint_goal( - self, - joint_positions: List[float], - joint_names: Optional[List[str]] = None, - tolerance: float = 0.001, - weight: float = 1.0, - ): - """ - Set joint space goal. With `joint_names` specified, `joint_positions` can be - defined for specific joints in an arbitrary order. Otherwise, first **n** joints - passed into the constructor is used, where **n** is the length of `joint_positions`. - """ - - constraints = self.create_joint_constraints( - joint_positions=joint_positions, - joint_names=joint_names, - tolerance=tolerance, - weight=weight, - ) - - # Append to other constraints - self.__move_action_goal.request.goal_constraints[-1].joint_constraints.extend( - constraints - ) - - def clear_goal_constraints(self): - """ - Clear all goal constraints that were previously set. - Note that this function is called automatically after each `plan_kinematic_path()`. - """ - - self.__move_action_goal.request.goal_constraints = [Constraints()] - - def create_new_goal_constraint(self): - """ - Create a new set of goal constraints that will be set together with the request. Each - subsequent setting of goals with `set_joint_goal()`, `set_pose_goal()` and others will be - added under this newly created set of constraints. - """ - - self.__move_action_goal.request.goal_constraints.append(Constraints()) - - def set_path_joint_constraint( - self, - joint_positions: List[float], - joint_names: Optional[List[str]] = None, - tolerance: float = 0.001, - weight: float = 1.0, - ): - """ - Set joint space path constraints. With `joint_names` specified, `joint_positions` can be - defined for specific joints in an arbitrary order. Otherwise, first **n** joints - passed into the constructor is used, where **n** is the length of `joint_positions`. - """ - - constraints = self.create_joint_constraints( - joint_positions=joint_positions, - joint_names=joint_names, - tolerance=tolerance, - weight=weight, - ) - - # Append to other constraints - self.__move_action_goal.request.path_constraints.joint_constraints.extend( - constraints - ) - - def set_path_position_constraint( - self, - position: Union[Point, Tuple[float, float, float]], - frame_id: Optional[str] = None, - target_link: Optional[str] = None, - tolerance: float = 0.001, - weight: float = 1.0, - ): - """ - Set Cartesian position path constraint of `target_link` with respect to `frame_id`. - - `frame_id` defaults to the base link - - `target_link` defaults to end effector - """ - - constraint = self.create_position_constraint( - position=position, - frame_id=frame_id, - target_link=target_link, - tolerance=tolerance, - weight=weight, - ) - - # Append to other constraints - self.__move_action_goal.request.path_constraints.position_constraints.append( - constraint - ) - - def set_path_orientation_constraint( - self, - quat_xyzw: Union[Quaternion, Tuple[float, float, float, float]], - frame_id: Optional[str] = None, - target_link: Optional[str] = None, - tolerance: Union[float, Tuple[float, float, float]] = 0.001, - weight: float = 1.0, - parameterization: int = 0, # 0: Euler Angles, 1: Rotation Vector - ): - """ - Set Cartesian orientation path constraint of `target_link` with respect to `frame_id`. - - `frame_id` defaults to the base link - - `target_link` defaults to end effector - """ - - constraint = self.create_orientation_constraint( - quat_xyzw=quat_xyzw, - frame_id=frame_id, - target_link=target_link, - tolerance=tolerance, - weight=weight, - parameterization=parameterization, - ) - - # Append to other constraints - self.__move_action_goal.request.path_constraints.orientation_constraints.append( - constraint - ) - - def clear_path_constraints(self): - """ - Clear all path constraints that were previously set. - Note that this function is called automatically after each `plan_kinematic_path()`. - """ - - self.__move_action_goal.request.path_constraints = Constraints() - - def compute_fk( - self, - joint_state: Optional[Union[JointState, List[float]]] = None, - fk_link_names: Optional[List[str]] = None, - ) -> Optional[Union[PoseStamped, List[PoseStamped]]]: - """ - Call compute_fk_async and wait on future - """ - future = self.compute_fk_async( - **{key: value for key, value in locals().items() if key != "self"} - ) - - if future is None: - return None - - # 100ms sleep - rate = self._node.create_rate(10) - while not future.done(): - rate.sleep() - - return self.get_compute_fk_result(future, fk_link_names=fk_link_names) - - def get_compute_fk_result( - self, - future: Future, - fk_link_names: Optional[List[str]] = None, - ) -> Optional[Union[PoseStamped, List[PoseStamped]]]: - """ - Takes in a future returned by compute_fk_async and returns the poses - if the future is done and successful, else None. - """ - if not future.done(): - self._node.get_logger().warn( - "Cannot get FK result because future is not done." - ) - return None - - res = future.result() - - if MoveItErrorCodes.SUCCESS == res.error_code.val: - if fk_link_names is None: - return res.pose_stamped[0] - else: - return res.pose_stamped - else: - self._node.get_logger().warn( - f"FK computation failed! Error code: {res.error_code.val}." - ) - return None - - def compute_fk_async( - self, - joint_state: Optional[Union[JointState, List[float]]] = None, - fk_link_names: Optional[List[str]] = None, - ) -> Optional[Future]: - """ - Compute forward kinematics for all `fk_link_names` in a given `joint_state`. - - `fk_link_names` defaults to end-effector - - `joint_state` defaults to the current joint state - """ - - if not hasattr(self, "__compute_fk_client"): - self.__init_compute_fk() - - if fk_link_names is None: - self.__compute_fk_req.fk_link_names = [self.__end_effector_name] - else: - self.__compute_fk_req.fk_link_names = fk_link_names - - if joint_state is not None: - if isinstance(joint_state, JointState): - self.__compute_fk_req.robot_state.joint_state = joint_state - else: - self.__compute_fk_req.robot_state.joint_state = init_joint_state( - joint_names=self.__joint_names, - joint_positions=joint_state, - ) - elif self.joint_state is not None: - self.__compute_fk_req.robot_state.joint_state = self.joint_state - - stamp = self._node.get_clock().now().to_msg() - self.__compute_fk_req.header.stamp = stamp - - if not self.__compute_fk_client.service_is_ready(): - self._node.get_logger().warn( - f"Service '{self.__compute_fk_client.srv_name}' is not yet available. Better luck next time!" - ) - return None - - return self.__compute_fk_client.call_async(self.__compute_fk_req) - - def compute_ik( - self, - position: Union[Point, Tuple[float, float, float]], - quat_xyzw: Union[Quaternion, Tuple[float, float, float, float]], - start_joint_state: Optional[Union[JointState, List[float]]] = None, - constraints: Optional[Constraints] = None, - wait_for_server_timeout_sec: Optional[float] = 1.0, - ) -> Optional[JointState]: - """ - Call compute_ik_async and wait on future - """ - future = self.compute_ik_async( - **{key: value for key, value in locals().items() if key != "self"} - ) - - if future is None: - return None - - # 10ms sleep - rate = self._node.create_rate(10) - while not future.done(): - rate.sleep() - - return self.get_compute_ik_result(future) - - def get_compute_ik_result( - self, - future: Future, - ) -> Optional[JointState]: - """ - Takes in a future returned by compute_ik_async and returns the joint states - if the future is done and successful, else None. - """ - if not future.done(): - self._node.get_logger().warn( - "Cannot get IK result because future is not done." - ) - return None - - res = future.result() - - if MoveItErrorCodes.SUCCESS == res.error_code.val: - return res.solution.joint_state - else: - self._node.get_logger().warn( - f"IK computation failed! Error code: {res.error_code.val}." - ) - return None - - def compute_ik_async( - self, - position: Union[Point, Tuple[float, float, float]], - quat_xyzw: Union[Quaternion, Tuple[float, float, float, float]], - start_joint_state: Optional[Union[JointState, List[float]]] = None, - constraints: Optional[Constraints] = None, - wait_for_server_timeout_sec: Optional[float] = 1.0, - ) -> Optional[Future]: - """ - Compute inverse kinematics for the given pose. To indicate beginning of the search space, - `start_joint_state` can be specified. Furthermore, `constraints` can be imposed on the - computed IK. - - `start_joint_state` defaults to current joint state. - - `constraints` defaults to None. - """ - - if not hasattr(self, "__compute_ik_client"): - self.__init_compute_ik() - - if isinstance(position, Point): - self.__compute_ik_req.ik_request.pose_stamped.pose.position = position - else: - self.__compute_ik_req.ik_request.pose_stamped.pose.position.x = float( - position[0] - ) - self.__compute_ik_req.ik_request.pose_stamped.pose.position.y = float( - position[1] - ) - self.__compute_ik_req.ik_request.pose_stamped.pose.position.z = float( - position[2] - ) - if isinstance(quat_xyzw, Quaternion): - self.__compute_ik_req.ik_request.pose_stamped.pose.orientation = quat_xyzw - else: - self.__compute_ik_req.ik_request.pose_stamped.pose.orientation.x = float( - quat_xyzw[0] - ) - self.__compute_ik_req.ik_request.pose_stamped.pose.orientation.y = float( - quat_xyzw[1] - ) - self.__compute_ik_req.ik_request.pose_stamped.pose.orientation.z = float( - quat_xyzw[2] - ) - self.__compute_ik_req.ik_request.pose_stamped.pose.orientation.w = float( - quat_xyzw[3] - ) - - if start_joint_state is not None: - if isinstance(start_joint_state, JointState): - self.__compute_ik_req.ik_request.robot_state.joint_state = ( - start_joint_state - ) - else: - self.__compute_ik_req.ik_request.robot_state.joint_state = ( - init_joint_state( - joint_names=self.__joint_names, - joint_positions=start_joint_state, - ) - ) - elif self.joint_state is not None: - self.__compute_ik_req.ik_request.robot_state.joint_state = self.joint_state - - if constraints is not None: - self.__compute_ik_req.ik_request.constraints = constraints - - stamp = self._node.get_clock().now().to_msg() - self.__compute_ik_req.ik_request.pose_stamped.header.stamp = stamp - - if not self.__compute_ik_client.wait_for_service( - timeout_sec=wait_for_server_timeout_sec - ): - self._node.get_logger().warn( - f"Service '{self.__compute_ik_client.srv_name}' is not yet available. Better luck next time!" - ) - return None - - return self.__compute_ik_client.call_async(self.__compute_ik_req) - - def reset_new_joint_state_checker(self): - """ - Reset checker of the new joint state. - """ - - self.__joint_state_mutex.acquire() - self.__new_joint_state_available = False - self.__joint_state_mutex.release() - - def force_reset_executing_state(self): - """ - Force reset of internal states that block execution while `ignore_new_calls_while_executing` is being - used. This function is applicable only in a very few edge-cases, so it should almost never be used. - """ - - self.__execution_mutex.acquire() - self.__is_motion_requested = False - self.__is_executing = False - self.__execution_mutex.release() - - def add_collision_primitive( - self, - id: str, - primitive_type: int, - dimensions: Tuple[float, float, float], - pose: Optional[Union[PoseStamped, Pose]] = None, - position: Optional[Union[Point, Tuple[float, float, float]]] = None, - quat_xyzw: Optional[ - Union[Quaternion, Tuple[float, float, float, float]] - ] = None, - frame_id: Optional[str] = None, - operation: int = CollisionObject.ADD, - ): - """ - Add collision object with a primitive geometry specified by its dimensions. - - `primitive_type` can be one of the following: - - `SolidPrimitive.BOX` - - `SolidPrimitive.SPHERE` - - `SolidPrimitive.CYLINDER` - - `SolidPrimitive.CONE` - """ - - if (pose is None) and (position is None or quat_xyzw is None): - raise ValueError( - "Either `pose` or `position` and `quat_xyzw` must be specified!" - ) - - if isinstance(pose, PoseStamped): - pose_stamped = pose - elif isinstance(pose, Pose): - pose_stamped = PoseStamped( - header=Header( - stamp=self._node.get_clock().now().to_msg(), - frame_id=( - frame_id if frame_id is not None else self.__base_link_name - ), - ), - pose=pose, - ) - else: - if not isinstance(position, Point): - position = Point( - x=float(position[0]), y=float(position[1]), z=float(position[2]) - ) - if not isinstance(quat_xyzw, Quaternion): - quat_xyzw = Quaternion( - x=float(quat_xyzw[0]), - y=float(quat_xyzw[1]), - z=float(quat_xyzw[2]), - w=float(quat_xyzw[3]), - ) - pose_stamped = PoseStamped( - header=Header( - stamp=self._node.get_clock().now().to_msg(), - frame_id=( - frame_id if frame_id is not None else self.__base_link_name - ), - ), - pose=Pose(position=position, orientation=quat_xyzw), - ) - - msg = CollisionObject( - header=pose_stamped.header, - id=id, - operation=operation, - pose=pose_stamped.pose, - ) - - msg.primitives.append( - SolidPrimitive(type=primitive_type, dimensions=dimensions) - ) - - self.__collision_object_publisher.publish(msg) - - def add_collision_box( - self, - id: str, - size: Tuple[float, float, float], - pose: Optional[Union[PoseStamped, Pose]] = None, - position: Optional[Union[Point, Tuple[float, float, float]]] = None, - quat_xyzw: Optional[ - Union[Quaternion, Tuple[float, float, float, float]] - ] = None, - frame_id: Optional[str] = None, - operation: int = CollisionObject.ADD, - ): - """ - Add collision object with a box geometry specified by its size. - """ - - assert len(size) == 3, "Invalid size of the box!" - - self.add_collision_primitive( - id=id, - primitive_type=SolidPrimitive.BOX, - dimensions=size, - pose=pose, - position=position, - quat_xyzw=quat_xyzw, - frame_id=frame_id, - operation=operation, - ) - - def add_collision_sphere( - self, - id: str, - radius: float, - pose: Optional[Union[PoseStamped, Pose]] = None, - position: Optional[Union[Point, Tuple[float, float, float]]] = None, - quat_xyzw: Optional[ - Union[Quaternion, Tuple[float, float, float, float]] - ] = None, - frame_id: Optional[str] = None, - operation: int = CollisionObject.ADD, - ): - """ - Add collision object with a sphere geometry specified by its radius. - """ - - if quat_xyzw is None: - quat_xyzw = Quaternion(x=0.0, y=0.0, z=0.0, w=1.0) - - self.add_collision_primitive( - id=id, - primitive_type=SolidPrimitive.SPHERE, - dimensions=[ - radius, - ], - pose=pose, - position=position, - quat_xyzw=quat_xyzw, - frame_id=frame_id, - operation=operation, - ) - - def add_collision_cylinder( - self, - id: str, - height: float, - radius: float, - pose: Optional[Union[PoseStamped, Pose]] = None, - position: Optional[Union[Point, Tuple[float, float, float]]] = None, - quat_xyzw: Optional[ - Union[Quaternion, Tuple[float, float, float, float]] - ] = None, - frame_id: Optional[str] = None, - operation: int = CollisionObject.ADD, - ): - """ - Add collision object with a cylinder geometry specified by its height and radius. - """ - - self.add_collision_primitive( - id=id, - primitive_type=SolidPrimitive.CYLINDER, - dimensions=[height, radius], - pose=pose, - position=position, - quat_xyzw=quat_xyzw, - frame_id=frame_id, - operation=operation, - ) - - def add_collision_cone( - self, - id: str, - height: float, - radius: float, - pose: Optional[Union[PoseStamped, Pose]] = None, - position: Optional[Union[Point, Tuple[float, float, float]]] = None, - quat_xyzw: Optional[ - Union[Quaternion, Tuple[float, float, float, float]] - ] = None, - frame_id: Optional[str] = None, - operation: int = CollisionObject.ADD, - ): - """ - Add collision object with a cone geometry specified by its height and radius. - """ - - self.add_collision_primitive( - id=id, - primitive_type=SolidPrimitive.CONE, - dimensions=[height, radius], - pose=pose, - position=position, - quat_xyzw=quat_xyzw, - frame_id=frame_id, - operation=operation, - ) - - def add_collision_mesh( - self, - filepath: Optional[str], - id: str, - pose: Optional[Union[PoseStamped, Pose]] = None, - position: Optional[Union[Point, Tuple[float, float, float]]] = None, - quat_xyzw: Optional[ - Union[Quaternion, Tuple[float, float, float, float]] - ] = None, - frame_id: Optional[str] = None, - operation: int = CollisionObject.ADD, - scale: Union[float, Tuple[float, float, float]] = 1.0, - mesh: Optional[Any] = None, - ): - """ - Add collision object with a mesh geometry. Either `filepath` must be - specified or `mesh` must be provided. - Note: This function required 'trimesh' Python module to be installed. - """ - - # Load the mesh - try: - import trimesh - except ImportError as err: - raise ImportError( - "Python module 'trimesh' not found! Please install it manually in order " - "to add collision objects into the MoveIt 2 planning scene." - ) from err - - # Check the parameters - if (pose is None) and (position is None or quat_xyzw is None): - raise ValueError( - "Either `pose` or `position` and `quat_xyzw` must be specified!" - ) - if (filepath is None and mesh is None) or ( - filepath is not None and mesh is not None - ): - raise ValueError("Exactly one of `filepath` or `mesh` must be specified!") - if mesh is not None and not isinstance(mesh, trimesh.Trimesh): - raise ValueError("`mesh` must be an instance of `trimesh.Trimesh`!") - - if isinstance(pose, PoseStamped): - pose_stamped = pose - elif isinstance(pose, Pose): - pose_stamped = PoseStamped( - header=Header( - stamp=self._node.get_clock().now().to_msg(), - frame_id=( - frame_id if frame_id is not None else self.__base_link_name - ), - ), - pose=pose, - ) - else: - if not isinstance(position, Point): - position = Point( - x=float(position[0]), y=float(position[1]), z=float(position[2]) - ) - if not isinstance(quat_xyzw, Quaternion): - quat_xyzw = Quaternion( - x=float(quat_xyzw[0]), - y=float(quat_xyzw[1]), - z=float(quat_xyzw[2]), - w=float(quat_xyzw[3]), - ) - pose_stamped = PoseStamped( - header=Header( - stamp=self._node.get_clock().now().to_msg(), - frame_id=( - frame_id if frame_id is not None else self.__base_link_name - ), - ), - pose=Pose(position=position, orientation=quat_xyzw), - ) - - msg = CollisionObject( - header=pose_stamped.header, - id=id, - operation=operation, - pose=pose_stamped.pose, - ) - - if filepath is not None: - mesh = trimesh.load(filepath) - - # Scale the mesh - if isinstance(scale, float): - scale = (scale, scale, scale) - if not (scale[0] == scale[1] == scale[2] == 1.0): - # If the mesh was passed in as a parameter, make a copy of it to - # avoid transforming the original. - if filepath is not None: - mesh = mesh.copy() - # Transform the mesh - transform = np.eye(4) - np.fill_diagonal(transform, scale) - mesh.apply_transform(transform) - - msg.meshes.append( - Mesh( - triangles=[MeshTriangle(vertex_indices=face) for face in mesh.faces], - vertices=[ - Point(x=vert[0], y=vert[1], z=vert[2]) for vert in mesh.vertices - ], - ) - ) - - self.__collision_object_publisher.publish(msg) - - def remove_collision_object(self, id: str): - """ - Remove collision object specified by its `id`. - """ - - msg = CollisionObject() - msg.id = id - msg.operation = CollisionObject.REMOVE - msg.header.stamp = self._node.get_clock().now().to_msg() - self.__collision_object_publisher.publish(msg) - - def remove_collision_mesh(self, id: str): - """ - Remove collision mesh specified by its `id`. - Identical to `remove_collision_object()`. - """ - - self.remove_collision_object(id) - - def attach_collision_object( - self, - id: str, - link_name: Optional[str] = None, - touch_links: List[str] = [], - weight: float = 0.0, - ): - """ - Attach collision object to the robot. - """ - - if link_name is None: - link_name = self.__end_effector_name - - msg = AttachedCollisionObject( - object=CollisionObject(id=id, operation=CollisionObject.ADD) - ) - msg.link_name = link_name - msg.touch_links = touch_links - msg.weight = weight - - self.__attached_collision_object_publisher.publish(msg) - - def detach_collision_object(self, id: int): - """ - Detach collision object from the robot. - """ - - msg = AttachedCollisionObject( - object=CollisionObject(id=id, operation=CollisionObject.REMOVE) - ) - self.__attached_collision_object_publisher.publish(msg) - - def detach_all_collision_objects(self): - """ - Detach collision object from the robot. - """ - - msg = AttachedCollisionObject( - object=CollisionObject(operation=CollisionObject.REMOVE) - ) - self.__attached_collision_object_publisher.publish(msg) - - def move_collision( - self, - id: str, - position: Union[Point, Tuple[float, float, float]], - quat_xyzw: Union[Quaternion, Tuple[float, float, float, float]], - frame_id: Optional[str] = None, - ): - """ - Move collision object specified by its `id`. - """ - - msg = CollisionObject() - - if not isinstance(position, Point): - position = Point( - x=float(position[0]), y=float(position[1]), z=float(position[2]) - ) - if not isinstance(quat_xyzw, Quaternion): - quat_xyzw = Quaternion( - x=float(quat_xyzw[0]), - y=float(quat_xyzw[1]), - z=float(quat_xyzw[2]), - w=float(quat_xyzw[3]), - ) - - pose = Pose() - pose.position = position - pose.orientation = quat_xyzw - msg.pose = pose - msg.id = id - msg.operation = CollisionObject.MOVE - msg.header.frame_id = ( - frame_id if frame_id is not None else self.__base_link_name - ) - msg.header.stamp = self._node.get_clock().now().to_msg() - - self.__collision_object_publisher.publish(msg) - - def update_planning_scene(self) -> bool: - """ - Gets the current planning scene. Returns whether the service call was - successful. - """ - - if not self._get_planning_scene_service.service_is_ready(): - self._node.get_logger().warn( - f"Service '{self._get_planning_scene_service.srv_name}' is not yet available. Better luck next time!" - ) - return False - self.__planning_scene = self._get_planning_scene_service.call( - GetPlanningScene.Request() - ).scene - return True - - def allow_collisions(self, id: str, allow: bool) -> Optional[Future]: - """ - Takes in the ID of an element in the planning scene. Modifies the allowed - collision matrix to (dis)allow collisions between that object and all other - object. - - If `allow` is True, a plan will succeed even if the robot collides with that object. - If `allow` is False, a plan will fail if the robot collides with that object. - Returns whether it successfully updated the allowed collision matrix. - - Returns the future of the service call. - """ - # Update the planning scene - if not self.update_planning_scene(): - return None - allowed_collision_matrix = self.__planning_scene.allowed_collision_matrix - self.__old_allowed_collision_matrix = copy.deepcopy(allowed_collision_matrix) - - # Get the location in the allowed collision matrix of the object - j = None - if id not in allowed_collision_matrix.entry_names: - allowed_collision_matrix.entry_names.append(id) - else: - j = allowed_collision_matrix.entry_names.index(id) - # For all other objects, (dis)allow collisions with the object with `id` - for i in range(len(allowed_collision_matrix.entry_values)): - if j is None: - allowed_collision_matrix.entry_values[i].enabled.append(allow) - elif i != j: - allowed_collision_matrix.entry_values[i].enabled[j] = allow - # For the object with `id`, (dis)allow collisions with all other objects - allowed_collision_entry = AllowedCollisionEntry( - enabled=[allow for _ in range(len(allowed_collision_matrix.entry_names))] - ) - if j is None: - allowed_collision_matrix.entry_values.append(allowed_collision_entry) - else: - allowed_collision_matrix.entry_values[j] = allowed_collision_entry - - # Apply the new planning scene - if not self._apply_planning_scene_service.service_is_ready(): - self._node.get_logger().warn( - f"Service '{self._apply_planning_scene_service.srv_name}' is not yet available. Better luck next time!" - ) - return None - return self._apply_planning_scene_service.call_async( - ApplyPlanningScene.Request(scene=self.__planning_scene) - ) - - def process_allow_collision_future(self, future: Future) -> bool: - """ - Return whether the allow collision service call is done and has succeeded - or not. If it failed, reset the allowed collision matrix to the old one. - """ - if not future.done(): - return False - - # Get response - resp = future.result() - - # If it failed, restore the old planning scene - if not resp.success: - self.__planning_scene.allowed_collision_matrix = ( - self.__old_allowed_collision_matrix - ) - - return resp.success - - def clear_all_collision_objects(self) -> Optional[Future]: - """ - Removes all attached and un-attached collision objects from the planning scene. - - Returns a future for the ApplyPlanningScene service call. - """ - # Update the planning scene - if not self.update_planning_scene(): - return None - self.__old_planning_scene = copy.deepcopy(self.__planning_scene) - - # Remove all collision objects from the planning scene - self.__planning_scene.world.collision_objects = [] - self.__planning_scene.robot_state.attached_collision_objects = [] - - # Apply the new planning scene - if not self._apply_planning_scene_service.service_is_ready(): - self._node.get_logger().warn( - f"Service '{self._apply_planning_scene_service.srv_name}' is not yet available. Better luck next time!" - ) - return None - return self._apply_planning_scene_service.call_async( - ApplyPlanningScene.Request(scene=self.__planning_scene) - ) - - def cancel_clear_all_collision_objects_future(self, future: Future): - """ - Cancel the clear all collision objects service call. - """ - self._apply_planning_scene_service.remove_pending_request(future) - - def process_clear_all_collision_objects_future(self, future: Future) -> bool: - """ - Return whether the clear all collision objects service call is done and has succeeded - or not. If it failed, restore the old planning scene. - """ - if not future.done(): - return False - - # Get response - resp = future.result() - - # If it failed, restore the old planning scene - if not resp.success: - self.__planning_scene = self.__old_planning_scene - - return resp.success - - def __joint_state_callback(self, msg: JointState): - # Update only if all relevant joints are included in the message - for joint_name in self.joint_names: - if not joint_name in msg.name: - return - - self.__joint_state_mutex.acquire() - self.__joint_state = msg - self.__new_joint_state_available = True - self.__joint_state_mutex.release() - - def _plan_kinematic_path(self) -> Optional[Future]: - # Reuse request from move action goal - self.__kinematic_path_request.motion_plan_request = ( - self.__move_action_goal.request - ) - - stamp = self._node.get_clock().now().to_msg() - self.__kinematic_path_request.motion_plan_request.workspace_parameters.header.stamp = ( - stamp - ) - for ( - constraints - ) in self.__kinematic_path_request.motion_plan_request.goal_constraints: - for position_constraint in constraints.position_constraints: - position_constraint.header.stamp = stamp - for orientation_constraint in constraints.orientation_constraints: - orientation_constraint.header.stamp = stamp - - if not self._plan_kinematic_path_service.service_is_ready(): - self._node.get_logger().warn( - f"Service '{self._plan_kinematic_path_service.srv_name}' is not yet available. Better luck next time!" - ) - return None - - return self._plan_kinematic_path_service.call_async( - self.__kinematic_path_request - ) - - def _plan_cartesian_path( - self, - max_step: float = 0.0025, - frame_id: Optional[str] = None, - ) -> Optional[Future]: - # Reuse request from move action goal - self.__cartesian_path_request.start_state = ( - self.__move_action_goal.request.start_state - ) - - # The below attributes were introduced in Iron and do not exist in Humble. - if hasattr(self.__cartesian_path_request, "max_velocity_scaling_factor"): - self.__cartesian_path_request.max_velocity_scaling_factor = ( - self.__move_action_goal.request.max_velocity_scaling_factor - ) - if hasattr(self.__cartesian_path_request, "max_acceleration_scaling_factor"): - self.__cartesian_path_request.max_acceleration_scaling_factor = ( - self.__move_action_goal.request.max_acceleration_scaling_factor - ) - - self.__cartesian_path_request.group_name = ( - self.__move_action_goal.request.group_name - ) - self.__cartesian_path_request.link_name = self.__end_effector_name - self.__cartesian_path_request.max_step = max_step - - self.__cartesian_path_request.header.frame_id = ( - frame_id if frame_id is not None else self.__base_link_name - ) - - stamp = self._node.get_clock().now().to_msg() - self.__cartesian_path_request.header.stamp = stamp - - self.__cartesian_path_request.path_constraints = ( - self.__move_action_goal.request.path_constraints - ) - for ( - position_constraint - ) in self.__cartesian_path_request.path_constraints.position_constraints: - position_constraint.header.stamp = stamp - for ( - orientation_constraint - ) in self.__cartesian_path_request.path_constraints.orientation_constraints: - orientation_constraint.header.stamp = stamp - # no header in joint_constraint message type - - target_pose = Pose() - target_pose.position = ( - self.__move_action_goal.request.goal_constraints[-1] - .position_constraints[-1] - .constraint_region.primitive_poses[0] - .position - ) - target_pose.orientation = ( - self.__move_action_goal.request.goal_constraints[-1] - .orientation_constraints[-1] - .orientation - ) - - self.__cartesian_path_request.waypoints = [target_pose] - - if not self._plan_cartesian_path_service.service_is_ready(): - self._node.get_logger().warn( - f"Service '{self._plan_cartesian_path_service.srv_name}' is not yet available. Better luck next time!" - ) - return None - - return self._plan_cartesian_path_service.call_async( - self.__cartesian_path_request - ) - - def _send_goal_async_move_action(self): - self.__execution_mutex.acquire() - stamp = self._node.get_clock().now().to_msg() - self.__move_action_goal.request.workspace_parameters.header.stamp = stamp - if not self.__move_action_client.server_is_ready(): - self._node.get_logger().warn( - f"Action server '{self.__move_action_client._action_name}' is not yet available. Better luck next time!" - ) - return - - self.__last_error_code = None - self.__is_motion_requested = True - self.__send_goal_future_move_action = self.__move_action_client.send_goal_async( - goal=self.__move_action_goal, - feedback_callback=None, - ) - - self.__send_goal_future_move_action.add_done_callback( - self.__response_callback_move_action - ) - - self.__execution_mutex.release() - - def __response_callback_move_action(self, response): - self.__execution_mutex.acquire() - goal_handle = response.result() - if not goal_handle.accepted: - self._node.get_logger().warn( - f"Action '{self.__move_action_client._action_name}' was rejected." - ) - self.__is_motion_requested = False - return - - self.__execution_goal_handle = goal_handle - self.__is_executing = True - self.__is_motion_requested = False - - self.__get_result_future_move_action = goal_handle.get_result_async() - self.__get_result_future_move_action.add_done_callback( - self.__result_callback_move_action - ) - self.__execution_mutex.release() - - def __result_callback_move_action(self, res): - self.__execution_mutex.acquire() - if res.result().status != GoalStatus.STATUS_SUCCEEDED: - self._node.get_logger().warn( - f"Action '{self.__move_action_client._action_name}' was unsuccessful: {res.result().status}." - ) - self.motion_suceeded = False - else: - self.motion_suceeded = True - - self.__last_error_code = res.result().result.error_code - - self.__execution_goal_handle = None - self.__is_executing = False - self.__execution_mutex.release() - - def _send_goal_async_execute_trajectory( - self, - goal: ExecuteTrajectory, - wait_until_response: bool = False, - ): - self.__execution_mutex.acquire() - - if not self._execute_trajectory_action_client.server_is_ready(): - self._node.get_logger().warn( - f"Action server '{self._execute_trajectory_action_client._action_name}' is not yet available. Better luck next time!" - ) - return - - self.__last_error_code = None - self.__is_motion_requested = True - self.__send_goal_future_execute_trajectory = ( - self._execute_trajectory_action_client.send_goal_async( - goal=goal, - feedback_callback=None, - ) - ) - - self.__send_goal_future_execute_trajectory.add_done_callback( - self.__response_callback_execute_trajectory - ) - self.__execution_mutex.release() - - def __response_callback_execute_trajectory(self, response): - self.__execution_mutex.acquire() - goal_handle = response.result() - if not goal_handle.accepted: - self._node.get_logger().warn( - f"Action '{self._execute_trajectory_action_client._action_name}' was rejected." - ) - self.__is_motion_requested = False - return - - self.__execution_goal_handle = goal_handle - self.__is_executing = True - self.__is_motion_requested = False - - self.__get_result_future_execute_trajectory = goal_handle.get_result_async() - self.__get_result_future_execute_trajectory.add_done_callback( - self.__result_callback_execute_trajectory - ) - self.__execution_mutex.release() - - def __response_callback_with_event_set_execute_trajectory(self, response): - self.__future_done_event.set() - - def __result_callback_execute_trajectory(self, res): - self.__execution_mutex.acquire() - if res.result().status != GoalStatus.STATUS_SUCCEEDED: - self._node.get_logger().warn( - f"Action '{self._execute_trajectory_action_client._action_name}' was unsuccessful: {res.result().status}." - ) - self.motion_suceeded = False - else: - self.motion_suceeded = True - - self.__last_error_code = res.result().result.error_code - - self.__execution_goal_handle = None - self.__is_executing = False - self.__execution_mutex.release() - - @classmethod - def __init_move_action_goal( - cls, frame_id: str, group_name: str, end_effector: str - ) -> MoveGroup.Goal: - move_action_goal = MoveGroup.Goal() - move_action_goal.request.workspace_parameters.header.frame_id = frame_id - # move_action_goal.request.workspace_parameters.header.stamp = "Set during request" - move_action_goal.request.workspace_parameters.min_corner.x = -1.0 - move_action_goal.request.workspace_parameters.min_corner.y = -1.0 - move_action_goal.request.workspace_parameters.min_corner.z = -1.0 - move_action_goal.request.workspace_parameters.max_corner.x = 1.0 - move_action_goal.request.workspace_parameters.max_corner.y = 1.0 - move_action_goal.request.workspace_parameters.max_corner.z = 1.0 - # move_action_goal.request.start_state = "Set during request" - move_action_goal.request.goal_constraints = [Constraints()] - move_action_goal.request.path_constraints = Constraints() - # move_action_goal.request.trajectory_constraints = "Ignored" - # move_action_goal.request.reference_trajectories = "Ignored" - move_action_goal.request.pipeline_id = "" - move_action_goal.request.planner_id = "" - move_action_goal.request.group_name = group_name - move_action_goal.request.num_planning_attempts = 3 - move_action_goal.request.allowed_planning_time = 0.5 - move_action_goal.request.max_velocity_scaling_factor = 0.0 - move_action_goal.request.max_acceleration_scaling_factor = 0.0 - # Note: Attribute was renamed in Iron (https://github.com/ros-planning/moveit_msgs/pull/130) - if hasattr(move_action_goal.request, "cartesian_speed_limited_link"): - move_action_goal.request.cartesian_speed_limited_link = end_effector - else: - move_action_goal.request.cartesian_speed_end_effector_link = end_effector - move_action_goal.request.max_cartesian_speed = 0.0 - - # move_action_goal.planning_options.planning_scene_diff = "Ignored" - move_action_goal.planning_options.plan_only = False - # move_action_goal.planning_options.look_around = "Ignored" - # move_action_goal.planning_options.look_around_attempts = "Ignored" - # move_action_goal.planning_options.max_safe_execution_cost = "Ignored" - # move_action_goal.planning_options.replan = "Ignored" - # move_action_goal.planning_options.replan_attempts = "Ignored" - # move_action_goal.planning_options.replan_delay = "Ignored" - - return move_action_goal - - def __init_compute_fk(self): - self.__compute_fk_client = self._node.create_client( - srv_type=GetPositionFK, - srv_name="/compute_fk", - callback_group=self._callback_group, - ) - - self.__compute_fk_req = GetPositionFK.Request() - self.__compute_fk_req.header.frame_id = self.__base_link_name - # self.__compute_fk_req.header.stamp = "Set during request" - # self.__compute_fk_req.fk_link_names = "Set during request" - # self.__compute_fk_req.robot_state.joint_state = "Set during request" - # self.__compute_fk_req.robot_state.multi_dof_ = "Ignored" - # self.__compute_fk_req.robot_state.attached_collision_objects = "Ignored" - self.__compute_fk_req.robot_state.is_diff = False - - def __init_compute_ik(self): - # Service client for IK - self.__compute_ik_client = self._node.create_client( - srv_type=GetPositionIK, - srv_name="/compute_ik", - callback_group=self._callback_group, - ) - - self.__compute_ik_req = GetPositionIK.Request() - self.__compute_ik_req.ik_request.group_name = self.__group_name - # self.__compute_ik_req.ik_request.robot_state.joint_state = "Set during request" - # self.__compute_ik_req.ik_request.robot_state.multi_dof_ = "Ignored" - # self.__compute_ik_req.ik_request.robot_state.attached_collision_objects = "Ignored" - self.__compute_ik_req.ik_request.robot_state.is_diff = False - # self.__compute_ik_req.ik_request.constraints = "Set during request OR Ignored" - self.__compute_ik_req.ik_request.avoid_collisions = True - # self.__compute_ik_req.ik_request.ik_link_name = "Ignored" - self.__compute_ik_req.ik_request.pose_stamped.header.frame_id = ( - self.__base_link_name - ) - # self.__compute_ik_req.ik_request.pose_stamped.header.stamp = "Set during request" - # self.__compute_ik_req.ik_request.pose_stamped.pose = "Set during request" - # self.__compute_ik_req.ik_request.ik_link_names = "Ignored" - # self.__compute_ik_req.ik_request.pose_stamped_vector = "Ignored" - # self.__compute_ik_req.ik_request.timeout.sec = "Ignored" - # self.__compute_ik_req.ik_request.timeout.nanosec = "Ignored" - - @property - def planning_scene(self) -> Optional[PlanningScene]: - return self.__planning_scene - - @property - def follow_joint_trajectory_action_client(self) -> str: - return self.__follow_joint_trajectory_action_client - - @property - def end_effector_name(self) -> str: - return self.__end_effector_name - - @property - def base_link_name(self) -> str: - return self.__base_link_name - - @property - def joint_names(self) -> List[str]: - return self.__joint_names - - @property - def joint_state(self) -> Optional[JointState]: - self.__joint_state_mutex.acquire() - joint_state = self.__joint_state - self.__joint_state_mutex.release() - return joint_state - - @property - def new_joint_state_available(self): - return self.__new_joint_state_available - - @property - def max_velocity(self) -> float: - return self.__move_action_goal.request.max_velocity_scaling_factor - - @max_velocity.setter - def max_velocity(self, value: float): - self.__move_action_goal.request.max_velocity_scaling_factor = value - - @property - def max_acceleration(self) -> float: - return self.__move_action_goal.request.max_acceleration_scaling_factor - - @max_acceleration.setter - def max_acceleration(self, value: float): - self.__move_action_goal.request.max_acceleration_scaling_factor = value - - @property - def num_planning_attempts(self) -> int: - return self.__move_action_goal.request.num_planning_attempts - - @num_planning_attempts.setter - def num_planning_attempts(self, value: int): - self.__move_action_goal.request.num_planning_attempts = value - - @property - def allowed_planning_time(self) -> float: - return self.__move_action_goal.request.allowed_planning_time - - @allowed_planning_time.setter - def allowed_planning_time(self, value: float): - self.__move_action_goal.request.allowed_planning_time = value - - @property - def cartesian_avoid_collisions(self) -> bool: - return self.__cartesian_path_request.request.avoid_collisions - - @cartesian_avoid_collisions.setter - def cartesian_avoid_collisions(self, value: bool): - self.__cartesian_path_request.avoid_collisions = value - - @property - def cartesian_jump_threshold(self) -> float: - return self.__cartesian_path_request.request.jump_threshold - - @cartesian_jump_threshold.setter - def cartesian_jump_threshold(self, value: float): - self.__cartesian_path_request.jump_threshold = value - - @property - def cartesian_prismatic_jump_threshold(self) -> float: - return self.__cartesian_path_request.request.prismatic_jump_threshold - - @cartesian_prismatic_jump_threshold.setter - def cartesian_prismatic_jump_threshold(self, value: float): - self.__cartesian_path_request.prismatic_jump_threshold = value - - @property - def cartesian_revolute_jump_threshold(self) -> float: - return self.__cartesian_path_request.request.revolute_jump_threshold - - @cartesian_revolute_jump_threshold.setter - def cartesian_revolute_jump_threshold(self, value: float): - self.__cartesian_path_request.revolute_jump_threshold = value - - @property - def pipeline_id(self) -> int: - return self.__move_action_goal.request.pipeline_id - - @pipeline_id.setter - def pipeline_id(self, value: str): - self.__move_action_goal.request.pipeline_id = value - - @property - def planner_id(self) -> int: - return self.__move_action_goal.request.planner_id - - @planner_id.setter - def planner_id(self, value: str): - self.__move_action_goal.request.planner_id = value - - -def init_joint_state( - joint_names: List[str], - joint_positions: Optional[List[str]] = None, - joint_velocities: Optional[List[str]] = None, - joint_effort: Optional[List[str]] = None, -) -> JointState: - joint_state = JointState() - - joint_state.name = joint_names - joint_state.position = ( - joint_positions if joint_positions is not None else [0.0] * len(joint_names) - ) - joint_state.velocity = ( - joint_velocities if joint_velocities is not None else [0.0] * len(joint_names) - ) - joint_state.effort = ( - joint_effort if joint_effort is not None else [0.0] * len(joint_names) - ) - - return joint_state - - -def init_execute_trajectory_goal( - joint_trajectory: JointTrajectory, -) -> Optional[ExecuteTrajectory.Goal]: - if joint_trajectory is None: - return None - - execute_trajectory_goal = ExecuteTrajectory.Goal() - - execute_trajectory_goal.trajectory.joint_trajectory = joint_trajectory - - return execute_trajectory_goal - - -def init_dummy_joint_trajectory_from_state( - joint_state: JointState, duration_sec: int = 0, duration_nanosec: int = 0 -) -> JointTrajectory: - joint_trajectory = JointTrajectory() - joint_trajectory.joint_names = joint_state.name - - point = JointTrajectoryPoint() - point.positions = joint_state.position - point.velocities = joint_state.velocity - point.accelerations = [0.0] * len(joint_trajectory.joint_names) - point.effort = joint_state.effort - point.time_from_start.sec = duration_sec - point.time_from_start.nanosec = duration_nanosec - joint_trajectory.points.append(point) - - return joint_trajectory diff --git a/unilabos/devices/ros_dev/moveit_interface.py b/unilabos/devices/ros_dev/moveit_interface.py deleted file mode 100644 index 81c2d112..00000000 --- a/unilabos/devices/ros_dev/moveit_interface.py +++ /dev/null @@ -1,384 +0,0 @@ -import json -import time -from copy import deepcopy -from pathlib import Path - -from moveit_msgs.msg import JointConstraint, Constraints -from rclpy.action import ActionClient -from tf2_ros import Buffer, TransformListener -from unilabos_msgs.action import SendCmd - -from unilabos.devices.ros_dev.moveit2 import MoveIt2 -from unilabos.ros.nodes.base_device_node import BaseROS2DeviceNode - - -class MoveitInterface: - _ros_node: BaseROS2DeviceNode - tf_buffer: Buffer - tf_listener: TransformListener - - def __init__(self, moveit_type, joint_poses, rotation=None, device_config=None, **kwargs): - self.device_config = device_config - self.rotation = rotation - self.data_config = json.load( - open( - f"{Path(__file__).parent.parent.parent.absolute()}/device_mesh/devices/{moveit_type}/config/move_group.json", - encoding="utf-8", - ) - ) - self.arm_move_flag = False - self.move_option = ["pick", "place", "side_pick", "side_place"] - self.joint_poses = joint_poses - self.cartesian_flag = False - self.mesh_group = ["reactor", "sample", "beaker"] - self.moveit2 = {} - self.resource_action = None - self.resource_client = None - self.resource_action_ok = False - - - def post_init(self, ros_node: BaseROS2DeviceNode): - self._ros_node = ros_node - self.tf_buffer = Buffer() - self.tf_listener = TransformListener(self.tf_buffer, self._ros_node) - - for move_group, config in self.data_config.items(): - - base_link_name = f"{self._ros_node.device_id}_{config['base_link_name']}" - end_effector_name = f"{self._ros_node.device_id}_{config['end_effector_name']}" - joint_names = [f"{self._ros_node.device_id}_{name}" for name in config["joint_names"]] - - self.moveit2[f"{move_group}"] = MoveIt2( - node=self._ros_node, - joint_names=joint_names, - base_link_name=base_link_name, - end_effector_name=end_effector_name, - group_name=f"{self._ros_node.device_id}_{move_group}", - callback_group=self._ros_node.callback_group, - use_move_group_action=True, - ignore_new_calls_while_executing=True, - ) - self.moveit2[f"{move_group}"].allowed_planning_time = 3.0 - - self._ros_node.create_timer(1, self.wait_for_resource_action, callback_group=self._ros_node.callback_group) - - - def wait_for_resource_action(self): - if not self.resource_action_ok: - - while self.resource_action is None: - self.resource_action = self.check_tf_update_actions() - time.sleep(1) - self.resource_client = ActionClient(self._ros_node, SendCmd, self.resource_action) - self.resource_action_ok = True - while not self.resource_client.wait_for_server(timeout_sec=5.0): - self._ros_node.lab_logger().info("等待 TfUpdate 服务器...") - - def check_tf_update_actions(self): - topics = self._ros_node.get_topic_names_and_types() - for topic_item in topics: - topic_name, topic_types = topic_item - if "action_msgs/msg/GoalStatusArray" in topic_types: - # 删除 /_action/status 部分 - - base_name = topic_name.replace("/_action/status", "") - # 检查最后一个部分是否为 tf_update - parts = base_name.split("/") - if parts and parts[-1] == "tf_update": - return base_name - - return None - - def set_position(self, command): - """使用moveit 移动到指定点 - Args: - command: A JSON-formatted string that includes quaternion, speed, position - - position (list) : 点的位置 [x,y,z] - quaternion (list) : 点的姿态(四元数) [x,y,z,w] - move_group (string) : The move group moveit will plan - speed (float) : The speed of the movement, speed > 0 - retry (int) : Retry times when moveit plan fails - - Returns: - None - """ - - result = SendCmd.Result() - cmd_str = command.replace("'", '"') - cmd_dict = json.loads(cmd_str) - self.moveit_task(**cmd_dict) - return result - - def moveit_task( - self, move_group, position, quaternion, speed=1, retry=10, cartesian=False, target_link=None, offsets=[0, 0, 0] - ): - - speed_ = float(max(0.1, min(speed, 1))) - - self.moveit2[move_group].max_velocity = speed_ - self.moveit2[move_group].max_acceleration = speed_ - - re_ = False - - pose_result = [x + y for x, y in zip(position, offsets)] - # print(pose_result) - - while retry > -1 and not re_: - - self.moveit2[move_group].move_to_pose( - target_link=target_link, - position=pose_result, - quat_xyzw=quaternion, - cartesian=cartesian, - # cartesian_fraction_threshold=0.0, - cartesian_max_step=0.01, - weight_position=1.0, - ) - re_ = self.moveit2[move_group].wait_until_executed() - retry += -1 - - return re_ - - def moveit_joint_task(self, move_group, joint_positions, joint_names=None, speed=1, retry=10): - - re_ = False - - joint_positions_ = [float(x) for x in joint_positions] - - speed_ = float(max(0.1, min(speed, 1))) - - self.moveit2[move_group].max_velocity = speed_ - self.moveit2[move_group].max_acceleration = speed_ - - while retry > -1 and not re_: - - self.moveit2[move_group].move_to_configuration(joint_positions=joint_positions_, joint_names=joint_names) - re_ = self.moveit2[move_group].wait_until_executed() - - retry += -1 - print(self.moveit2[move_group].compute_fk(joint_positions)) - return re_ - - def resource_manager(self, resource, parent_link): - goal_msg = SendCmd.Goal() - str_dict = {} - str_dict[resource] = parent_link - - goal_msg.command = json.dumps(str_dict) - assert self.resource_client is not None - self.resource_client.send_goal(goal_msg) - - return True - - def pick_and_place(self, command: str): - """ - Using MoveIt to make the robotic arm pick or place materials to a target point. - - Args: - command: A JSON-formatted string that includes option, target, speed, lift_height, mt_height - - *option (string) : Action type: pick/place/side_pick/side_place - *move_group (string): The move group moveit will plan - *status(string) : Target pose - resource(string) : The target resource - x_distance (float) : The distance to the target in x direction(meters) - y_distance (float) : The distance to the target in y direction(meters) - lift_height (float) : The height at which the material should be lifted(meters) - retry (float) : Retry times when moveit plan fails - speed (float) : The speed of the movement, speed > 0 - Returns: - None - """ - result = SendCmd.Result() - - try: - cmd_str = str(command).replace("'", '"') - cmd_dict = json.loads(cmd_str) - - if cmd_dict["option"] in self.move_option: - option_index = self.move_option.index(cmd_dict["option"]) - place_flag = option_index % 2 - - config = {} - function_list = [] - - status = cmd_dict["status"] - joint_positions_ = self.joint_poses[cmd_dict["move_group"]][status] - - config.update({k: cmd_dict[k] for k in ["speed", "retry", "move_group"] if k in cmd_dict}) - - # 夹取 - if not place_flag: - if "target" in cmd_dict.keys(): - function_list.append(lambda: self.resource_manager(cmd_dict["resource"], cmd_dict["target"])) - else: - function_list.append( - lambda: self.resource_manager( - cmd_dict["resource"], self.moveit2[cmd_dict["move_group"]].end_effector_name - ) - ) - else: - function_list.append(lambda: self.resource_manager(cmd_dict["resource"], "world")) - - constraints = [] - if "constraints" in cmd_dict.keys(): - - for i in range(len(cmd_dict["constraints"])): - v = float(cmd_dict["constraints"][i]) - if v > 0: - constraints.append( - JointConstraint( - joint_name=self.moveit2[cmd_dict["move_group"]].joint_names[i], - position=joint_positions_[i], - tolerance_above=v, - tolerance_below=v, - weight=1.0, - ) - ) - - if "lift_height" in cmd_dict.keys(): - retval = None - retry = config.get("retry", 10) - while retval is None and retry > 0: - retval = self.moveit2[cmd_dict["move_group"]].compute_fk(joint_positions_) - time.sleep(0.1) - retry -= 1 - if retval is None: - result.success = False - return result - pose = [retval.pose.position.x, retval.pose.position.y, retval.pose.position.z] - quaternion = [ - retval.pose.orientation.x, - retval.pose.orientation.y, - retval.pose.orientation.z, - retval.pose.orientation.w, - ] - - function_list = [ - lambda: self.moveit_task( - position=[retval.pose.position.x, retval.pose.position.y, retval.pose.position.z], - quaternion=quaternion, - **config, - cartesian=self.cartesian_flag, - ) - ] + function_list - - pose[2] += float(cmd_dict["lift_height"]) - function_list.append( - lambda: self.moveit_task( - position=pose, quaternion=quaternion, **config, cartesian=self.cartesian_flag - ) - ) - end_pose = pose - - if "x_distance" in cmd_dict.keys() or "y_distance" in cmd_dict.keys(): - if "x_distance" in cmd_dict.keys(): - deep_pose = deepcopy(pose) - deep_pose[0] += float(cmd_dict["x_distance"]) - elif "y_distance" in cmd_dict.keys(): - deep_pose = deepcopy(pose) - deep_pose[1] += float(cmd_dict["y_distance"]) - - function_list = [ - lambda: self.moveit_task( - position=pose, quaternion=quaternion, **config, cartesian=self.cartesian_flag - ) - ] + function_list - function_list.append( - lambda: self.moveit_task( - position=deep_pose, quaternion=quaternion, **config, cartesian=self.cartesian_flag - ) - ) - end_pose = deep_pose - - retval_ik = None - retry = config.get("retry", 10) - while retval_ik is None and retry > 0: - retval_ik = self.moveit2[cmd_dict["move_group"]].compute_ik( - position=end_pose, quat_xyzw=quaternion, constraints=Constraints(joint_constraints=constraints) - ) - time.sleep(0.1) - retry -= 1 - if retval_ik is None: - result.success = False - return result - position_ = [ - retval_ik.position[retval_ik.name.index(i)] - for i in self.moveit2[cmd_dict["move_group"]].joint_names - ] - function_list = [ - lambda: self.moveit_joint_task( - joint_positions=position_, - joint_names=self.moveit2[cmd_dict["move_group"]].joint_names, - **config, - ) - ] + function_list - else: - function_list = [ - lambda: self.moveit_joint_task(**config, joint_positions=joint_positions_) - ] + function_list - - for i in range(len(function_list)): - if i == 0: - self.cartesian_flag = False - else: - self.cartesian_flag = True - - re = function_list[i]() - if not re: - print(i, re) - result.success = False - return result - result.success = True - - except Exception as e: - print(e) - self.cartesian_flag = False - result.success = False - - return result - - def set_status(self, command: str): - """ - Goto home position - - Args: - command: A JSON-formatted string that includes speed - *status (string) : The joint status moveit will plan - *move_group (string): The move group moveit will plan - separate (list) : The joint index to be separated - lift_height (float) : The height at which the material should be lifted(meters) - x_distance (float) : The distance to the target in x direction(meters) - y_distance (float) : The distance to the target in y direction(meters) - speed (float) : The speed of the movement, speed > 0 - retry (float) : Retry times when moveit plan fails - - Returns: - None - """ - - result = SendCmd.Result() - - try: - cmd_str = command.replace("'", '"') - cmd_dict = json.loads(cmd_str) - config = {} - config["move_group"] = cmd_dict["move_group"] - if "speed" in cmd_dict.keys(): - config["speed"] = cmd_dict["speed"] - if "retry" in cmd_dict.keys(): - config["retry"] = cmd_dict["retry"] - - status = cmd_dict["status"] - joint_positions_ = self.joint_poses[cmd_dict["move_group"]][status] - re = self.moveit_joint_task(**config, joint_positions=joint_positions_) - if not re: - result.success = False - return result - result.success = True - except Exception as e: - print(e) - result.success = False - - return result diff --git a/unilabos/devices/rotavap/__init__.py b/unilabos/devices/rotavap/__init__.py deleted file mode 100644 index e69de29b..00000000 diff --git a/unilabos/devices/rotavap/rotavap_one.py b/unilabos/devices/rotavap/rotavap_one.py deleted file mode 100644 index 507e1231..00000000 --- a/unilabos/devices/rotavap/rotavap_one.py +++ /dev/null @@ -1,64 +0,0 @@ -import json -from serial import Serial -import time as time_ -import threading - -class RotavapOne: - def __init__(self, port, rate=9600): - self.ser = Serial(port,rate) - self.pump_state = 'h' - self.pump_time = 0 - self.rotate_state = 'h' - self.rotate_time = 0 - self.success = True - if not self.ser.is_open: - self.ser.open() - - # self.main_loop() - t = threading.Thread(target=self.main_loop ,daemon=True) - t.start() - - def cmd_write(self, cmd): - self.ser.write(cmd) - self.ser.read_all() - - def set_rotate_time(self, time): - self.success = False - self.rotate_time = time - self.success = True - - - def set_pump_time(self, time): - self.success = False - self.pump_time = time - self.success = True - - def set_timer(self, command): - self.success = False - timer = json.loads(command) - - rotate_time = timer['rotate_time'] - pump_time = timer['pump_time'] - - self.rotate_time = rotate_time - self.pump_time = pump_time - - self.success = True - - - def main_loop(self): - param = ['rotate','pump'] - while True: - for i in param: - if getattr(self, f'{i}_time') <= 0: - setattr(self, f'{i}_state','l') - else: - setattr(self, f'{i}_state','h') - setattr(self, f'{i}_time',getattr(self, f'{i}_time')-1) - cmd = f'1{self.pump_state}2{self.rotate_state}3l4l\n' - self.cmd_write(cmd.encode()) - - time_.sleep(1) - -if __name__ == '__main__': - ro = RotavapOne(port='COM15') diff --git a/unilabos/devices/sealer/sealer.py b/unilabos/devices/sealer/sealer.py deleted file mode 100644 index f2149279..00000000 --- a/unilabos/devices/sealer/sealer.py +++ /dev/null @@ -1,100 +0,0 @@ -import serial, time, re - -class SimpleSealer: - """ - It purposely skips CRC/ACK handling and sends raw commands of the form - '**00??[=xxxx]zz!'. Good enough for quick experiments or automation - scripts where robustness is less critical. - - Example - ------- - >>> sealer = SimpleSealer("COM24") - >>> sealer.set_temperature(160) # 160 °C - >>> sealer.set_time(2.0) # 2 s - >>> sealer.seal_cycle() # wait‑heat‑seal‑eject - >>> sealer.close() - """ - T_RE = re.compile(r"\*T\d\d:\d\d:\d\d=(\d+),(\d),(\d),") - - def __init__(self, port: str, baud: int = 19200, thresh_c: int = 150): - self.port = port - self.baud = baud - self.thresh_c = thresh_c - self.ser = serial.Serial(port, baud, timeout=0.3) - self.ser.reset_input_buffer() - - # ---------- low‑level helpers ---------- - def _send(self, raw: str): - """Write an already‑formed ASCII command, e.g. '**00DH=0160zz!'.""" - self.ser.write(raw.encode()) - print(">>>", raw) - - def _read_frame(self) -> str: - """Read one frame (ending at '!') and strip the terminator.""" - return self.ser.read_until(b'!').decode(errors='ignore').strip() - - # ---------- high‑level commands ---------- - def set_temperature(self, celsius: int): - self._send(f"**00DH={celsius:04d}zz!") - - def set_time(self, seconds: float): - units = int(round(seconds * 10)) - self._send(f"**00DT={units:04d}zz!") - - def open_drawer(self): - self._send("**00MOzz!") - - def close_drawer(self): - self._send("**00MCzz!") - - def seal(self): - self._send("**00GSzz!") - - # ---------- waits ---------- - def wait_temp(self): - print(f"[Waiting ≥{self.thresh_c}°C]") - while True: - frame = self._read_frame() - if frame.startswith("*T"): - m = self.T_RE.match(frame) - if not m: - continue - temp = int(m.group(1)) / 10 - blk = int(m.group(3)) # 1=Ready,4=Converging - print(f"\rTemp={temp:5.1f}°C | Block={blk}", end="") - if temp >= self.thresh_c and blk in (1, 0, 4): - print(" <-- OK") - return - - def wait_finish(self): - while True: - frame = self._read_frame() - if frame.startswith("*T"): - parts = frame.split('=')[1].split(',') - status = int(parts[1]) - cnt = int(parts[6][: -3] if parts[6].endswith("!") else parts[6]) - print(f"\rRemaining {cnt/10:4.1f}s", end="") - if status == 4: - print("\n[Seal Done]") - return - - # ---------- convenience helpers ---------- - def seal_cycle(self): - """Full cycle: wait heat, seal, wait finish, eject drawer.""" - time.sleep(10) - self.seal() - self.open_drawer() - - def close(self): - self.ser.close() - - -if __name__ == "__main__": - # Quick demo usage (modify COM port and parameters as needed) - sealer = SimpleSealer("COM24") - try: - sealer.set_temperature(160) # °C - sealer.set_time(2.0) # seconds - sealer.seal_cycle() - finally: - sealer.close() \ No newline at end of file diff --git a/unilabos/devices/separator/__init__.py b/unilabos/devices/separator/__init__.py deleted file mode 100644 index e69de29b..00000000 diff --git a/unilabos/devices/separator/chinwe.py b/unilabos/devices/separator/chinwe.py deleted file mode 100644 index 8beac447..00000000 --- a/unilabos/devices/separator/chinwe.py +++ /dev/null @@ -1,649 +0,0 @@ -# -*- coding: utf-8 -*- -""" -Contains drivers for: -1. SyringePump: Runze Fluid SY-03B (ASCII) -2. EmmMotor: Emm V5.0 Closed-loop Stepper (Modbus-RTU variant) -3. XKCSensor: XKC Non-contact Level Sensor (Modbus-RTU) -""" - -import socket -import serial -import time -import threading -import struct -import re -import traceback -import queue -from typing import Optional, Dict, List, Any - -try: - from unilabos.device_comms.universal_driver import UniversalDriver -except ImportError: - import logging - class UniversalDriver: - def __init__(self): - self.logger = logging.getLogger(self.__class__.__name__) - - def execute_command_from_outer(self, command: str): - pass - -# ============================================================================== -# 1. Transport Layer (通信层) -# ============================================================================== - -class TransportManager: - """ - 统一通信管理类。 - 自动识别 串口 (Serial) 或 网络 (TCP) 连接。 - """ - def __init__(self, port: str, baudrate: int = 9600, timeout: float = 3.0, logger=None): - self.port = port - self.baudrate = baudrate - self.timeout = timeout - self.logger = logger - self.lock = threading.RLock() # 线程锁,确保多设备共用一个连接时不冲突 - - self.is_tcp = False - self.serial = None - self.socket = None - - # 简单判断: 如果包含 ':' (如 192.168.1.1:8899) 或者看起来像 IP,则认为是 TCP - if ':' in self.port or (self.port.count('.') == 3 and not self.port.startswith('/')): - self.is_tcp = True - self._connect_tcp() - else: - self._connect_serial() - - def _log(self, msg): - if self.logger: - pass - # self.logger.debug(f"[Transport] {msg}") - - def _connect_tcp(self): - try: - if ':' in self.port: - host, p = self.port.split(':') - self.tcp_host = host - self.tcp_port = int(p) - else: - self.tcp_host = self.port - self.tcp_port = 8899 # 默认端口 - - # if self.logger: self.logger.info(f"Connecting TCP {self.tcp_host}:{self.tcp_port} ...") - self.socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) - self.socket.settimeout(self.timeout) - self.socket.connect((self.tcp_host, self.tcp_port)) - except Exception as e: - raise ConnectionError(f"TCP connection failed: {e}") - - def _connect_serial(self): - try: - # if self.logger: self.logger.info(f"Opening Serial {self.port} (Baud: {self.baudrate}) ...") - self.serial = serial.Serial( - port=self.port, - baudrate=self.baudrate, - timeout=self.timeout - ) - except Exception as e: - raise ConnectionError(f"Serial open failed: {e}") - - def close(self): - """关闭连接""" - if self.is_tcp and self.socket: - try: self.socket.close() - except: pass - elif not self.is_tcp and self.serial and self.serial.is_open: - self.serial.close() - - def clear_buffer(self): - """清空缓冲区 (Thread-safe)""" - with self.lock: - if self.is_tcp: - self.socket.setblocking(False) - try: - while True: - if not self.socket.recv(1024): break - except: pass - finally: self.socket.settimeout(self.timeout) - else: - self.serial.reset_input_buffer() - - def write(self, data: bytes): - """发送原始字节""" - with self.lock: - if self.is_tcp: - self.socket.sendall(data) - else: - self.serial.write(data) - - def read(self, size: int) -> bytes: - """读取指定长度字节""" - if self.is_tcp: - data = b'' - start = time.time() - while len(data) < size: - if time.time() - start > self.timeout: break - try: - chunk = self.socket.recv(size - len(data)) - if not chunk: break - data += chunk - except socket.timeout: break - return data - else: - return self.serial.read(size) - - def send_ascii_command(self, command: str) -> str: - """ - 发送 ASCII 字符串命令 (如注射泵指令),读取直到 '\r'。 - """ - with self.lock: - data = command.encode('ascii') if isinstance(command, str) else command - self.clear_buffer() - self.write(data) - - # Read until \r - if self.is_tcp: - resp = b'' - start = time.time() - while True: - if time.time() - start > self.timeout: break - try: - char = self.socket.recv(1) - if not char: break - resp += char - if char == b'\r': break - except: break - return resp.decode('ascii', errors='ignore').strip() - else: - return self.serial.read_until(b'\r').decode('ascii', errors='ignore').strip() - -# ============================================================================== -# 2. Syringe Pump Driver (注射泵) -# ============================================================================== - -class SyringePump: - """SY-03B 注射泵驱动 (ASCII协议)""" - - CMD_INITIALIZE = "Z{speed},{drain_port},{output_port}R" - CMD_SWITCH_VALVE = "I{port}R" - CMD_ASPIRATE = "P{vol}R" - CMD_DISPENSE = "D{vol}R" - CMD_DISPENSE_ALL = "A0R" - CMD_STOP = "TR" - CMD_QUERY_STATUS = "Q" - CMD_QUERY_PLUNGER = "?0" - - def __init__(self, device_id: int, transport: TransportManager): - if not 1 <= device_id <= 15: - pass # Allow all IDs for now - self.id = str(device_id) - self.transport = transport - - def _send(self, template: str, **kwargs) -> str: - cmd = f"/{self.id}" + template.format(**kwargs) + "\r" - return self.transport.send_ascii_command(cmd) - - def is_busy(self) -> bool: - """查询繁忙状态""" - resp = self._send(self.CMD_QUERY_STATUS) - # 响应如 /0` (Ready, 0x60) 或 /0@ (Busy, 0x40) - if len(resp) >= 3: - status_byte = ord(resp[2]) - # Bit 5: 1=Ready, 0=Busy - return (status_byte & 0x20) == 0 - return False - - def wait_until_idle(self, timeout=30): - """阻塞等待直到空闲""" - start = time.time() - while time.time() - start < timeout: - if not self.is_busy(): return - time.sleep(0.5) - # raise TimeoutError(f"Pump {self.id} wait idle timeout") - pass - - def initialize(self, drain_port=0, output_port=0, speed=10): - """初始化""" - self._send(self.CMD_INITIALIZE, speed=speed, drain_port=drain_port, output_port=output_port) - - def switch_valve(self, port: int): - """切换阀门 (1-8)""" - self._send(self.CMD_SWITCH_VALVE, port=port) - - def aspirate(self, steps: int): - """吸液 (相对步数)""" - self._send(self.CMD_ASPIRATE, vol=steps) - - def dispense(self, steps: int): - """排液 (相对步数)""" - self._send(self.CMD_DISPENSE, vol=steps) - - def stop(self): - """停止""" - self._send(self.CMD_STOP) - - def get_position(self) -> int: - """获取柱塞位置 (步数)""" - resp = self._send(self.CMD_QUERY_PLUNGER) - m = re.search(r'\d+', resp) - return int(m.group()) if m else -1 - -# ============================================================================== -# 3. Stepper Motor Driver (步进电机) -# ============================================================================== - -class EmmMotor: - """Emm V5.0 闭环步进电机驱动""" - - def __init__(self, device_id: int, transport: TransportManager): - self.id = device_id - self.transport = transport - - def _send(self, func_code: int, payload: list) -> bytes: - with self.transport.lock: - self.transport.clear_buffer() - # 格式: [ID] [Func] [Data...] [Check=0x6B] - body = [self.id, func_code] + payload - body.append(0x6B) # Checksum - self.transport.write(bytes(body)) - - # 根据指令不同,读取不同长度响应 - read_len = 10 if func_code in [0x31, 0x32, 0x35, 0x24, 0x27] else 4 - return self.transport.read(read_len) - - def enable(self, on=True): - """使能 (True=锁轴, False=松轴)""" - state = 1 if on else 0 - self._send(0xF3, [0xAB, state, 0]) - - def run_speed(self, speed_rpm: int, direction=0, acc=10): - """速度模式运行""" - sp = struct.pack('>H', int(speed_rpm)) - self._send(0xF6, [direction, sp[0], sp[1], acc, 0]) - - def run_position(self, pulses: int, speed_rpm: int, direction=0, acc=10, absolute=False): - """位置模式运行""" - sp = struct.pack('>H', int(speed_rpm)) - pl = struct.pack('>I', int(pulses)) - is_abs = 1 if absolute else 0 - self._send(0xFD, [direction, sp[0], sp[1], acc, pl[0], pl[1], pl[2], pl[3], is_abs, 0]) - - def stop(self): - """停止""" - self._send(0xFE, [0x98, 0]) - - def set_zero(self): - """清零位置""" - self._send(0x0A, []) - - def get_position(self) -> int: - """获取当前脉冲位置""" - resp = self._send(0x32, []) - if len(resp) >= 8: - sign = resp[2] - val = struct.unpack('>I', resp[3:7])[0] - return -val if sign == 1 else val - return 0 - -# ============================================================================== -# 4. Liquid Sensor Driver (液位传感器) -# ============================================================================== - -class XKCSensor: - """XKC RS485 液位传感器 (Modbus RTU)""" - - def __init__(self, device_id: int, transport: TransportManager, threshold: int = 300): - self.id = device_id - self.transport = transport - self.threshold = threshold - - def _crc(self, data: bytes) -> bytes: - crc = 0xFFFF - for byte in data: - crc ^= byte - for _ in range(8): - if crc & 0x0001: crc = (crc >> 1) ^ 0xA001 - else: crc >>= 1 - return struct.pack(' Optional[Dict[str, Any]]: - """ - 读取液位。 - 返回: {'level': bool, 'rssi': int} - """ - with self.transport.lock: - self.transport.clear_buffer() - # Modbus Read Registers: 01 03 00 01 00 02 CRC - payload = struct.pack('>HH', 0x0001, 0x0002) - msg = struct.pack('BB', self.id, 0x03) + payload - msg += self._crc(msg) - self.transport.write(msg) - - # Read header - h = self.transport.read(3) # Addr, Func, Len - if len(h) < 3: return None - length = h[2] - - # Read body + CRC - body = self.transport.read(length + 2) - if len(body) < length + 2: - # Firmware bug fix specific to some modules - if len(body) == 4 and length == 4: - pass - else: - return None - - data = body[:-2] - if len(data) == 2: - rssi = data[1] - elif len(data) >= 4: - rssi = (data[2] << 8) | data[3] - else: - return None - - return { - 'level': rssi > self.threshold, - 'rssi': rssi - } - -# ============================================================================== -# 5. Main Device Class (ChinweDevice) -# ============================================================================== - -class ChinweDevice(UniversalDriver): - """ - ChinWe 工作站主驱动 - 继承自 UniversalDriver,管理所有子设备(泵、电机、传感器) - """ - - def __init__(self, port: str = "192.168.1.200:8899", baudrate: int = 9600, - pump_ids: List[int] = None, motor_ids: List[int] = None, - sensor_id: int = 6, sensor_threshold: int = 300, - timeout: float = 10.0): - """ - 初始化 ChinWe 工作站 - :param port: 串口号 或 IP:Port - :param baudrate: 串口波特率 - :param pump_ids: 注射泵 ID列表 (默认 [1, 2, 3]) - :param motor_ids: 步进电机 ID列表 (默认 [4, 5]) - :param sensor_id: 液位传感器 ID (默认 6) - :param sensor_threshold: 传感器液位判定阈值 - :param timeout: 通信超时时间 (默认 10秒) - """ - super().__init__() - self.port = port - self.baudrate = baudrate - self.timeout = timeout - self.mgr = None - self._is_connected = False - - # 默认配置 - if pump_ids is None: pump_ids = [1, 2, 3] - if motor_ids is None: motor_ids = [4, 5] - - # 配置信息 - self.pump_ids = pump_ids - self.motor_ids = motor_ids - self.sensor_id = sensor_id - self.sensor_threshold = sensor_threshold - - # 子设备实例容器 - self.pumps: Dict[int, SyringePump] = {} - self.motors: Dict[int, EmmMotor] = {} - self.sensor: Optional[XKCSensor] = None - - # 轮询线程控制 - self._stop_event = threading.Event() - self._poll_thread = None - - # 实时状态缓存 - self.status_cache = { - "sensor_rssi": 0, - "sensor_level": False, - "connected": False - } - - # 自动连接 - if self.port: - self.connect() - - def connect(self) -> bool: - if self._is_connected: return True - try: - self.logger.info(f"Connecting to {self.port} (timeout={self.timeout})...") - self.mgr = TransportManager(self.port, baudrate=self.baudrate, timeout=self.timeout, logger=self.logger) - - # 初始化所有泵 - for pid in self.pump_ids: - self.pumps[pid] = SyringePump(pid, self.mgr) - - # 初始化所有电机 - for mid in self.motor_ids: - self.motors[mid] = EmmMotor(mid, self.mgr) - - # 初始化传感器 - self.sensor = XKCSensor(self.sensor_id, self.mgr, self.sensor_threshold) - - self._is_connected = True - self.status_cache["connected"] = True - - # 启动轮询线程 - self._start_polling() - return True - except Exception as e: - self.logger.error(f"Connection failed: {e}") - self._is_connected = False - self.status_cache["connected"] = False - return False - - def disconnect(self): - self._stop_event.set() - if self._poll_thread: - self._poll_thread.join(timeout=2.0) - - if self.mgr: - self.mgr.close() - - self._is_connected = False - self.status_cache["connected"] = False - self.logger.info("Disconnected.") - - def _start_polling(self): - """启动传感器轮询线程""" - if self._poll_thread and self._poll_thread.is_alive(): - return - - self._stop_event.clear() - self._poll_thread = threading.Thread(target=self._polling_loop, daemon=True, name="ChinwePoll") - self._poll_thread.start() - - def _polling_loop(self): - """轮询主循环""" - self.logger.info("Sensor polling started.") - error_count = 0 - while not self._stop_event.is_set(): - if not self._is_connected or not self.sensor: - time.sleep(1) - continue - - try: - # 获取传感器数据 - data = self.sensor.read_level() - if data: - self.status_cache["sensor_rssi"] = data['rssi'] - self.status_cache["sensor_level"] = data['level'] - error_count = 0 - else: - error_count += 1 - - # 降低轮询频率防止总线拥塞 - time.sleep(0.2) - - except Exception as e: - error_count += 1 - if error_count > 10: # 连续错误记录日志 - # self.logger.error(f"Polling error: {e}") - error_count = 0 - time.sleep(1) - - # --- 对外暴露属性 (Properties) --- - - @property - def sensor_level(self) -> bool: - return self.status_cache["sensor_level"] - - @property - def sensor_rssi(self) -> int: - return self.status_cache["sensor_rssi"] - - @property - def is_connected(self) -> bool: - return self._is_connected - - # --- 对外功能指令 (Actions) --- - - def pump_initialize(self, pump_id: int, drain_port=0, output_port=0, speed=10): - """指定泵初始化""" - pump_id = int(pump_id) - if pump_id in self.pumps: - self.pumps[pump_id].initialize(drain_port, output_port, speed) - self.pumps[pump_id].wait_until_idle() - return True - return False - - def pump_aspirate(self, pump_id: int, volume: int, valve_port: int): - """ - 泵吸液 (阻塞) - :param valve_port: 阀门端口 (1-8) - """ - pump_id = int(pump_id) - valve_port = int(valve_port) - if pump_id in self.pumps: - pump = self.pumps[pump_id] - # 1. 切换阀门 - pump.switch_valve(valve_port) - pump.wait_until_idle() - # 2. 吸液 - pump.aspirate(volume) - pump.wait_until_idle() - return True - return False - - def pump_dispense(self, pump_id: int, volume: int, valve_port: int): - """ - 泵排液 (阻塞) - :param valve_port: 阀门端口 (1-8) - """ - pump_id = int(pump_id) - valve_port = int(valve_port) - if pump_id in self.pumps: - pump = self.pumps[pump_id] - # 1. 切换阀门 - pump.switch_valve(valve_port) - pump.wait_until_idle() - # 2. 排液 - pump.dispense(volume) - pump.wait_until_idle() - return True - return False - - def pump_valve(self, pump_id: int, port: int): - """泵切换阀门 (阻塞)""" - pump_id = int(pump_id) - port = int(port) - if pump_id in self.pumps: - pump = self.pumps[pump_id] - pump.switch_valve(port) - pump.wait_until_idle() - return True - return False - - def motor_run_continuous(self, motor_id: int, speed: int, direction: str = "顺时针"): - """ - 电机一直旋转 (速度模式) - :param direction: "顺时针" or "逆时针" - """ - motor_id = int(motor_id) - if motor_id not in self.motors: return False - - dir_val = 0 if direction == "顺时针" else 1 - self.motors[motor_id].run_speed(speed, dir_val) - return True - - def motor_rotate_quarter(self, motor_id: int, speed: int = 60, direction: str = "顺时针"): - """ - 电机旋转1/4圈 (阻塞) - 假设电机设置为 3200 脉冲/圈,1/4圈 = 800脉冲 - """ - motor_id = int(motor_id) - if motor_id not in self.motors: return False - - pulses = 800 - dir_val = 0 if direction == "顺时针" else 1 - - self.motors[motor_id].run_position(pulses, speed, dir_val, absolute=False) - - # 预估时间阻塞 (单位: 分钟 -> 秒) - # Time(s) = revs / (RPM/60). revs = 0.25. time = 15 / RPM. - estimated_time = 15.0 / max(1, speed) - time.sleep(estimated_time + 0.5) - - return True - - def motor_stop(self, motor_id: int): - """电机停止""" - motor_id = int(motor_id) - if motor_id in self.motors: - self.motors[motor_id].stop() - return True - return False - - def wait_sensor_level(self, target_state: str = "有液", timeout: int = 30) -> bool: - """ - 等待传感器达到指定电平 - :param target_state: "有液" or "无液" - """ - target_bool = True if target_state == "有液" else False - - self.logger.info(f"Wait sensor: {target_state} ({target_bool}), timeout: {timeout}") - start = time.time() - while time.time() - start < timeout: - if self.sensor_level == target_bool: - return True - time.sleep(0.1) - self.logger.warning("Wait sensor level timeout") - return False - - def wait_time(self, duration: int) -> bool: - """ - 等待指定时间 (秒) - :param duration: 秒 - """ - self.logger.info(f"Waiting for {duration} seconds...") - time.sleep(duration) - return True - - def execute_command_from_outer(self, command_dict: Dict[str, Any]) -> bool: - """支持标准 JSON 指令调用""" - return super().execute_command_from_outer(command_dict) - -if __name__ == "__main__": - # Test - logging.basicConfig(level=logging.INFO) - dev = ChinweDevice(port="192.168.31.201:8899") - try: - if dev.is_connected: - print(f"Status: Level={dev.sensor_level}, RSSI={dev.sensor_rssi}") - - # Test pump 1 - # dev.pump_valve(1, 1) - # dev.pump_move(1, 1000, "aspirate") - - # Test motor 4 - # dev.motor_run(4, 60, 0, 2) - - for _ in range(5): - print(f"Level={dev.sensor_level}, RSSI={dev.sensor_rssi}") - time.sleep(1) - finally: - dev.disconnect() diff --git a/unilabos/devices/separator/homemade_grbl_conductivity.py b/unilabos/devices/separator/homemade_grbl_conductivity.py deleted file mode 100644 index 9588f195..00000000 --- a/unilabos/devices/separator/homemade_grbl_conductivity.py +++ /dev/null @@ -1,156 +0,0 @@ -import json -import serial -import time as systime -import threading - - -class SeparatorController: - """Controls the operation of a separator device using serial communication. - - This class manages the interaction with both an executor and a sensor through serial ports, allowing for stirring, settling, and extracting operations based on sensor data. - - Args: - port_executor (str): The serial port for the executor device. - port_sensor (str): The serial port for the sensor device. - baudrate_executor (int, optional): The baud rate for the executor device. Defaults to 115200. - baudrate_sensor (int, optional): The baud rate for the sensor device. Defaults to 115200. - - Attributes: - serial_executor (Serial): The serial connection to the executor device. - serial_sensor (Serial): The serial connection to the sensor device. - sensordata (float): The latest sensor data read from the sensor device. - success (bool): Indicates whether the last operation was successful. - status (str): The current status of the controller, which can be 'Idle', 'Stirring', 'Settling', or 'Extracting'. - """ - def __init__( - self, - port_executor: str, - port_sensor: str, - baudrate_executor: int = 115200, - baudrate_sensor: int = 115200, - ): - - self.serial_executor = serial.Serial(port_executor, baudrate_executor) - self.serial_sensor = serial.Serial(port_sensor, baudrate_sensor) - - if not self.serial_executor.is_open: - self.serial_executor.open() - if not self.serial_sensor.is_open: - self.serial_sensor.open() - - self.sensordata = 0.00 - self.success = False - - self.status = "Idle" # 'Idle', 'Stirring' ,'Settling' , 'Extracting', - - systime.sleep(2) - t = threading.Thread(target=self.read_sensor_loop, daemon=True) - t.start() - - def write(self, data): - self.serial_executor.write(data) - a = self.serial_executor.read_all() - - def stir(self, stir_time: float = 10, stir_speed: float = 300, settling_time: float = 10): - """Controls the stirring operation of the separator. - - This function initiates a stirring process for a specified duration and speed, followed by a settling phase. It updates the status of the controller and communicates with the executor to perform the stirring action. - - Args: - stir_time (float, optional): The duration for which to stir, in seconds. Defaults to 10. - stir_speed (float, optional): The speed of stirring, in RPM. Defaults to 300. - settling_time (float, optional): The duration for which to settle after stirring, in seconds. Defaults to 10. - - Returns: - None - """ - self.success = False - start_time = systime.time() - self.status = "Stirring" - - stir_speed_second = stir_speed / 60 - cmd = f"G91 Z{stir_speed_second}\n" - cmd_data = bytearray(cmd, "ascii") - self.write(bytearray(f"$112={stir_speed_second}", "ascii")) - while self.status != "Idle": - # print(self.sensordata) - if self.status == "Stirring": - if systime.time() - start_time < stir_time: - self.write(cmd_data) - systime.sleep(1) - else: - self.status = "Settling" - start_time = systime.time() - - elif self.status == "Settling": - if systime.time() - start_time > settling_time: - break - self.success = True - - def valve_open(self, condition, value): - """Opens the valve, then wait to close the valve based on a specified condition. - - This function sends a command to open the valve and continuously monitors the sensor data until the specified condition is met. Once the condition is satisfied, it closes the valve and updates the status of the controller. - - Args: - - condition (str): The condition to be monitored, either 'delta' or 'time'. - value (float): The threshold value for the condition. - `delta > 0.05`, `time > 60` - - Returns: - None - """ - if condition not in ["delta", "time"]: - raise ValueError("Invalid condition") - elif condition == "delta": - valve_position = 0.66 - else: - valve_position = 0.8 - - self.write((f"G91 X{valve_position}\n").encode()) - last = self.sensordata - start_time = systime.time() - while True: - data = self.sensordata - delta = abs(data - last) - time = systime.time() - start_time - - if eval(f"{condition} > {value}"): - break - last = data - systime.sleep(0.05) - - self.status = "Idle" - - self.write((f"G91 X-{valve_position}\n").encode()) - - def valve_open_cmd(self,command:str): - self.success = False - try: - cmd_dict = json.loads(command) - self.valve_open(**cmd_dict) - self.success = True - except Exception as e: - raise f"error: {e}" - - def read_sensor_loop(self): - while True: - msg = self.serial_sensor.readline() - ascii_string = "".join(chr(byte) for byte in msg) - # print(msg) - if ascii_string.startswith("A3"): - try: - self.sensordata = float(ascii_string.split(":")[1]) - except: - return - self.serial_sensor.read_all() - systime.sleep(0.05) - - -if __name__ == "__main__": - - e = SeparatorController(port_sensor="COM40", port_executor="COM41") - print(e.status) - e.stir(10, 720, 10) - e.valve_open("delta", 0.3) diff --git a/unilabos/devices/temperature/__init__.py b/unilabos/devices/temperature/__init__.py deleted file mode 100644 index e69de29b..00000000 diff --git a/unilabos/devices/temperature/chiller.py b/unilabos/devices/temperature/chiller.py deleted file mode 100644 index 22878b5c..00000000 --- a/unilabos/devices/temperature/chiller.py +++ /dev/null @@ -1,67 +0,0 @@ -import json -import serial - -class Chiller(): -# def xuanzheng_temp_set(tempset: int): - # 设置目标温度 - def __init__(self, port,rate=9600): - self.T_set = 24 - self.success = True - self.ser = serial.Serial( - port=port, - baudrate=rate, - bytesize=8, - parity='N', - stopbits=1, - timeout=1 - ) - - def modbus_crc(self, data: bytes) -> bytes: - crc = 0xFFFF - for pos in data: - crc ^= pos - for _ in range(8): - if (crc & 0x0001) != 0: - crc >>= 1 - crc ^= 0xA001 - else: - crc >>= 1 - return crc.to_bytes(2, byteorder='little') - - def build_modbus_frame(self,device_address: int, function_code: int, register_address: int, value: int) -> bytes: - frame = bytearray([ - device_address, - function_code, - (register_address >> 8) & 0xFF, - register_address & 0xFF, - (value >> 8) & 0xFF, - value & 0xFF - ]) - crc = self.modbus_crc(frame) - return frame + crc - - def convert_temperature_to_modbus_value(self, temperature: float, decimal_points: int = 1) -> int: - factor = 10 ** decimal_points - value = int(temperature * factor) - return value & 0xFFFF - - def set_temperature(self, command): - T_set = json.loads(command)['temperature'] - self.T_set = int(T_set) - self.success = False - - temperature_value = self.convert_temperature_to_modbus_value(self.T_set, decimal_points=1) - device_address = 0x01 - function_code = 0x06 - register_address = 0x000B - frame = self.build_modbus_frame(device_address, function_code, register_address, temperature_value) - self.ser.write(frame) - response = self.ser.read(8) - self.success = True - - def stop(self): - self.set_temperature(25) - -if __name__ == '__main__': - ch = Chiller(port='COM17') - ch.set_temperature(20) \ No newline at end of file diff --git a/unilabos/devices/temperature/prototype_sensor.py b/unilabos/devices/temperature/prototype_sensor.py deleted file mode 100644 index 84a134ab..00000000 --- a/unilabos/devices/temperature/prototype_sensor.py +++ /dev/null @@ -1,69 +0,0 @@ -import serial -import struct - -class TempSensor: - def __init__(self,port,baudrate=9600): - - # 配置串口 - self.ser = serial.Serial( - port=port, - baudrate=baudrate, - bytesize=serial.EIGHTBITS, - parity=serial.PARITY_NONE, - stopbits=serial.STOPBITS_ONE, - timeout=1 - ) - - def calculate_crc(self,data): - crc = 0xFFFF - for pos in data: - crc ^= pos - for i in range(8): - if (crc & 0x0001) != 0: - crc >>= 1 - crc ^= 0xA001 - else: - crc >>= 1 - return crc - - def build_modbus_request(self, device_id, function_code, register_address, register_count): - request = struct.pack('>BBHH', device_id, function_code, register_address, register_count) - crc = self.calculate_crc(request) - request += struct.pack('H', data[:2])[0] - low_value = struct.unpack('>H', data[2:])[0] - - # 组合高位和低位并计算实际温度 - raw_temperature = (high_value << 16) | low_value - if raw_temperature & 0x8000: # 如果低位寄存器最高位为1,表示负值 - raw_temperature -= 0x10000 # 转换为正确的负数表示 - - actual_temperature = raw_temperature / 10.0 - return actual_temperature - - \ No newline at end of file diff --git a/unilabos/devices/temperature/sensor.py b/unilabos/devices/temperature/sensor.py deleted file mode 100644 index 81ffa5f2..00000000 --- a/unilabos/devices/temperature/sensor.py +++ /dev/null @@ -1,90 +0,0 @@ -import serial -import time -import struct -import tkinter as tk -from tkinter import ttk - -# 配置串口 -ser = serial.Serial( - port='COM13', - baudrate=9600, - bytesize=serial.EIGHTBITS, - parity=serial.PARITY_NONE, - stopbits=serial.STOPBITS_ONE, - timeout=1 -) - -def calculate_crc(data): - crc = 0xFFFF - for pos in data: - crc ^= pos - for i in range(8): - if (crc & 0x0001) != 0: - crc >>= 1 - crc ^= 0xA001 - else: - crc >>= 1 - return crc - -def build_modbus_request(device_id, function_code, register_address, register_count): - request = struct.pack('>BBHH', device_id, function_code, register_address, register_count) - crc = calculate_crc(request) - request += struct.pack('H', data[:2])[0] - low_value = struct.unpack('>H', data[2:])[0] - - # 组合高位和低位并计算实际温度 - raw_temperature = (high_value << 16) | low_value - if raw_temperature & 0x8000: # 如果低位寄存器最高位为1,表示负值 - raw_temperature -= 0x10000 # 转换为正确的负数表示 - - actual_temperature = raw_temperature / 10.0 - return actual_temperature - -def update_temperature_label(): - temperature = read_temperature() - if temperature is not None: - temperature_label.config(text=f"反应温度: {temperature:.1f} °C") - else: - temperature_label.config(text="Error reading temperature") - root.after(1000, update_temperature_label) # 每秒更新一次 - -# 创建主窗口 -root = tk.Tk() -root.title("反应温度监控") - -# 创建标签来显示温度 -temperature_label = ttk.Label(root, text="反应温度: -- °C", font=("Helvetica", 20)) -temperature_label.pack(padx=20, pady=20) - -# 开始更新温度 -update_temperature_label() - -# 运行主循环 -root.mainloop() diff --git a/unilabos/devices/temperature/sensor_node.py b/unilabos/devices/temperature/sensor_node.py deleted file mode 100644 index cb3b175f..00000000 --- a/unilabos/devices/temperature/sensor_node.py +++ /dev/null @@ -1,117 +0,0 @@ -import json -import threading,time - -# class TempSensorNode: -# def __init__(self,port,warning,address): -# self._value = 0.0 -# self.warning = warning -# self.device_id = address - -# self.hardware_interface = port -# # t = threading.Thread(target=self.read_temperature, daemon=True) -# # t.start() - -# def send_command(self ,command): -# print('send_command---------------------') -# pass - -# @property -# def value(self) -> float: -# self._value = self.send_command(self.device_id) -# return self._value -# # def read_temperature(self): -# # while True: -# # self.value = self.send_command(self.device_id) -# # print(self.value,'-----------') -# # time.sleep(1) - -# def set_warning(self, warning_temp): -# self.warning = warning_temp - - - -import serial -import struct -from rclpy.node import Node -import rclpy -import threading - -class TempSensorNode(): - def __init__(self,port,warning,address,baudrate=9600): - self._value = 0.0 - self.warning = warning - self.device_id = address - self.success = False - # 配置串口 - self.hardware_interface = serial.Serial( - port=port, - baudrate=baudrate, - bytesize=serial.EIGHTBITS, - parity=serial.PARITY_NONE, - stopbits=serial.STOPBITS_ONE, - timeout=1 - ) - self.lock = threading.Lock() - - def calculate_crc(self,data): - crc = 0xFFFF - for pos in data: - crc ^= pos - for i in range(8): - if (crc & 0x0001) != 0: - crc >>= 1 - crc ^= 0xA001 - else: - crc >>= 1 - return crc - - def build_modbus_request(self, device_id, function_code, register_address, register_count): - request = struct.pack('>BBHH', device_id, function_code, register_address, register_count) - crc = self.calculate_crc(request) - request += struct.pack('H', data[:2])[0] - low_value = struct.unpack('>H', data[2:])[0] - - # 组合高位和低位并计算实际温度 - raw_temperature = (high_value << 16) | low_value - if raw_temperature & 0x8000: # 如果低位寄存器最高位为1,表示负值 - raw_temperature -= 0x10000 # 转换为正确的负数表示 - - actual_temperature = raw_temperature / 10.0 - return actual_temperature - - @property - def value(self) -> float: - self._value = self.send_prototype_command(self.device_id) - return self._value - - def set_warning(self, command): - self.success = False - temp = json.loads(command)["warning_temp"] - self.warning = round(float(temp), 1) - self.success = True diff --git a/unilabos/devices/vaccum/__init__.py b/unilabos/devices/vaccum/__init__.py deleted file mode 100644 index e69de29b..00000000 diff --git a/unilabos/devices/virtual/__init__.py b/unilabos/devices/virtual/__init__.py deleted file mode 100644 index e69de29b..00000000 diff --git a/unilabos/devices/virtual/virtual_centrifuge.py b/unilabos/devices/virtual/virtual_centrifuge.py deleted file mode 100644 index afce45a9..00000000 --- a/unilabos/devices/virtual/virtual_centrifuge.py +++ /dev/null @@ -1,220 +0,0 @@ -import asyncio -import logging -import time as time_module -from typing import Dict, Any, Optional - -from unilabos.ros.nodes.base_device_node import BaseROS2DeviceNode - - -class VirtualCentrifuge: - """Virtual centrifuge device - 简化版,只保留核心功能""" - - _ros_node: BaseROS2DeviceNode - - def __init__(self, device_id: Optional[str] = None, config: Optional[Dict[str, Any]] = None, **kwargs): - # 处理可能的不同调用方式 - if device_id is None and "id" in kwargs: - device_id = kwargs.pop("id") - if config is None and "config" in kwargs: - config = kwargs.pop("config") - - # 设置默认值 - self.device_id = device_id or "unknown_centrifuge" - self.config = config or {} - - self.logger = logging.getLogger(f"VirtualCentrifuge.{self.device_id}") - self.data = {} - - # 从config或kwargs中获取配置参数 - self.port = self.config.get("port") or kwargs.get("port", "VIRTUAL") - self._max_speed = self.config.get("max_speed") or kwargs.get("max_speed", 15000.0) - self._max_temp = self.config.get("max_temp") or kwargs.get("max_temp", 40.0) - self._min_temp = self.config.get("min_temp") or kwargs.get("min_temp", 4.0) - - # 处理其他kwargs参数 - skip_keys = {"port", "max_speed", "max_temp", "min_temp"} - for key, value in kwargs.items(): - if key not in skip_keys and not hasattr(self, key): - setattr(self, key, value) - - def post_init(self, ros_node: BaseROS2DeviceNode): - self._ros_node = ros_node - - async def initialize(self) -> bool: - """Initialize virtual centrifuge""" - self.logger.info(f"Initializing virtual centrifuge {self.device_id}") - - # 只保留核心状态 - self.data.update({ - "status": "Idle", - "centrifuge_state": "Stopped", # Stopped, Running, Completed, Error - "current_speed": 0.0, - "target_speed": 0.0, - "current_temp": 25.0, - "target_temp": 25.0, - "time_remaining": 0.0, - "progress": 0.0, - "message": "Ready for centrifugation" - }) - return True - - async def cleanup(self) -> bool: - """Cleanup virtual centrifuge""" - self.logger.info(f"Cleaning up virtual centrifuge {self.device_id}") - - self.data.update({ - "status": "Offline", - "centrifuge_state": "Offline", - "current_speed": 0.0, - "current_temp": 25.0, - "message": "System offline" - }) - return True - - async def centrifuge( - self, - vessel: str, - speed: float, - time: float, - temp: float = 25.0 - ) -> bool: - """Execute centrifuge action - 简化的离心流程""" - self.logger.info(f"Centrifuge: vessel={vessel}, speed={speed} rpm, time={time}s, temp={temp}°C") - - # 验证参数 - if speed > self._max_speed or speed < 100.0: - error_msg = f"离心速度 {speed} rpm 超出范围 (100-{self._max_speed} rpm)" - self.logger.error(error_msg) - self.data.update({ - "status": f"Error: {error_msg}", - "centrifuge_state": "Error", - "message": error_msg - }) - return False - - if temp > self._max_temp or temp < self._min_temp: - error_msg = f"温度 {temp}°C 超出范围 ({self._min_temp}-{self._max_temp}°C)" - self.logger.error(error_msg) - self.data.update({ - "status": f"Error: {error_msg}", - "centrifuge_state": "Error", - "message": error_msg - }) - return False - - # 开始离心 - self.data.update({ - "status": f"离心中: {vessel}", - "centrifuge_state": "Running", - "current_speed": speed, - "target_speed": speed, - "current_temp": temp, - "target_temp": temp, - "time_remaining": time, - "progress": 0.0, - "message": f"Centrifuging {vessel} at {speed} rpm, {temp}°C" - }) - - try: - # 离心过程 - 实时更新进度 - start_time = time_module.time() - total_time = time - - while True: - current_time = time_module.time() - elapsed = current_time - start_time - remaining = max(0, total_time - elapsed) - progress = min(100.0, (elapsed / total_time) * 100) - - # 更新状态 - self.data.update({ - "time_remaining": remaining, - "progress": progress, - "status": f"离心中: {vessel} | {speed} rpm | {temp}°C | {progress:.1f}% | 剩余: {remaining:.0f}s", - "message": f"Centrifuging: {progress:.1f}% complete, {remaining:.0f}s remaining" - }) - - # 时间到了,退出循环 - if remaining <= 0: - break - - # 每秒更新一次 - await self._ros_node.sleep(1.0) - - # 离心完成 - self.data.update({ - "status": f"离心完成: {vessel} | {speed} rpm | {time}s", - "centrifuge_state": "Completed", - "progress": 100.0, - "time_remaining": 0.0, - "current_speed": 0.0, # 停止旋转 - "current_temp": 25.0, # 恢复室温 - "message": f"Centrifugation completed: {vessel} at {speed} rpm for {time}s" - }) - - self.logger.info(f"Centrifugation completed: {vessel} at {speed} rpm for {time}s") - return True - - except Exception as e: - # 出错处理 - self.logger.error(f"Error during centrifugation: {str(e)}") - - self.data.update({ - "status": f"离心错误: {str(e)}", - "centrifuge_state": "Error", - "current_speed": 0.0, - "current_temp": 25.0, - "progress": 0.0, - "time_remaining": 0.0, - "message": f"Centrifugation failed: {str(e)}" - }) - return False - - # === 核心状态属性 === - @property - def status(self) -> str: - return self.data.get("status", "Unknown") - - @property - def centrifuge_state(self) -> str: - return self.data.get("centrifuge_state", "Unknown") - - @property - def current_speed(self) -> float: - return self.data.get("current_speed", 0.0) - - @property - def target_speed(self) -> float: - return self.data.get("target_speed", 0.0) - - @property - def current_temp(self) -> float: - return self.data.get("current_temp", 25.0) - - @property - def target_temp(self) -> float: - return self.data.get("target_temp", 25.0) - - @property - def max_speed(self) -> float: - return self._max_speed - - @property - def max_temp(self) -> float: - return self._max_temp - - @property - def min_temp(self) -> float: - return self._min_temp - - @property - def time_remaining(self) -> float: - return self.data.get("time_remaining", 0.0) - - @property - def progress(self) -> float: - return self.data.get("progress", 0.0) - - @property - def message(self) -> str: - return self.data.get("message", "") \ No newline at end of file diff --git a/unilabos/devices/virtual/virtual_column.py b/unilabos/devices/virtual/virtual_column.py deleted file mode 100644 index 539f302a..00000000 --- a/unilabos/devices/virtual/virtual_column.py +++ /dev/null @@ -1,210 +0,0 @@ -import asyncio -import logging -from typing import Dict, Any, Optional - -from unilabos.ros.nodes.base_device_node import BaseROS2DeviceNode - -class VirtualColumn: - """Virtual column device for RunColumn protocol 🏛️""" - - _ros_node: BaseROS2DeviceNode - - def __init__(self, device_id: str = None, config: Dict[str, Any] = None, **kwargs): - # 处理可能的不同调用方式 - if device_id is None and 'id' in kwargs: - device_id = kwargs.pop('id') - if config is None and 'config' in kwargs: - config = kwargs.pop('config') - - # 设置默认值 - self.device_id = device_id or "unknown_column" - self.config = config or {} - - self.logger = logging.getLogger(f"VirtualColumn.{self.device_id}") - self.data = {} - - # 从config或kwargs中获取配置参数 - self.port = self.config.get('port') or kwargs.get('port', 'VIRTUAL') - self._max_flow_rate = self.config.get('max_flow_rate') or kwargs.get('max_flow_rate', 10.0) - self._column_length = self.config.get('column_length') or kwargs.get('column_length', 25.0) - self._column_diameter = self.config.get('column_diameter') or kwargs.get('column_diameter', 2.0) - - print(f"🏛️ === 虚拟色谱柱 {self.device_id} 已创建 === ✨") - print(f"📏 柱参数: 流速={self._max_flow_rate}mL/min | 长度={self._column_length}cm | 直径={self._column_diameter}cm 🔬") - - def post_init(self, ros_node: BaseROS2DeviceNode): - self._ros_node = ros_node - - async def initialize(self) -> bool: - """Initialize virtual column 🚀""" - self.logger.info(f"🔧 初始化虚拟色谱柱 {self.device_id} ✨") - - self.data.update({ - "status": "Idle", - "column_state": "Ready", - "current_flow_rate": 0.0, - "max_flow_rate": self._max_flow_rate, - "column_length": self._column_length, - "column_diameter": self._column_diameter, - "processed_volume": 0.0, - "progress": 0.0, - "current_status": "Ready for separation" - }) - - self.logger.info(f"✅ 色谱柱 {self.device_id} 初始化完成 🏛️") - self.logger.info(f"📊 设备规格: 最大流速 {self._max_flow_rate}mL/min | 柱长 {self._column_length}cm 📏") - return True - - async def cleanup(self) -> bool: - """Cleanup virtual column 🧹""" - self.logger.info(f"🧹 清理虚拟色谱柱 {self.device_id} 🔚") - - self.data.update({ - "status": "Offline", - "column_state": "Offline", - "current_status": "System offline" - }) - - self.logger.info(f"✅ 色谱柱 {self.device_id} 清理完成 💤") - return True - - async def run_column(self, from_vessel: str, to_vessel: str, column: str, **kwargs) -> bool: - """Execute column chromatography run - matches RunColumn action 🏛️""" - - # 提取额外参数 - rf = kwargs.get('rf', '0.3') - solvent1 = kwargs.get('solvent1', 'ethyl_acetate') - solvent2 = kwargs.get('solvent2', 'hexane') - ratio = kwargs.get('ratio', '30:70') - - self.logger.info(f"🏛️ 开始柱层析分离: {from_vessel} → {to_vessel} 🚰") - self.logger.info(f" 🧪 使用色谱柱: {column}") - self.logger.info(f" 🎯 Rf值: {rf}") - self.logger.info(f" 🧪 洗脱溶剂: {solvent1}:{solvent2} ({ratio}) 💧") - - # 更新设备状态 - self.data.update({ - "status": "Running", - "column_state": "Separating", - "current_status": "🏛️ Column separation in progress", - "progress": 0.0, - "processed_volume": 0.0, - "current_from_vessel": from_vessel, - "current_to_vessel": to_vessel, - "current_column": column, - "current_rf": rf, - "current_solvents": f"{solvent1}:{solvent2} ({ratio})" - }) - - # 模拟柱层析分离过程 - # 假设处理时间基于流速和柱子长度 - base_time = (self._column_length * 2) / self._max_flow_rate # 简化计算 - separation_time = max(base_time, 20.0) # 最少20秒 - - self.logger.info(f"⏱️ 预计分离时间: {separation_time:.1f}秒 ⌛") - self.logger.info(f"📏 柱参数: 长度 {self._column_length}cm | 流速 {self._max_flow_rate}mL/min 🌊") - - steps = 20 # 分20个步骤模拟分离过程 - step_time = separation_time / steps - - for i in range(steps): - await self._ros_node.sleep(step_time) - - progress = (i + 1) / steps * 100 - volume_processed = (i + 1) * 5.0 # 假设每步处理5mL - - # 不同阶段的状态描述 - if progress <= 25: - phase = "🌊 样品上柱阶段" - phase_emoji = "📥" - elif progress <= 50: - phase = "🧪 洗脱开始" - phase_emoji = "💧" - elif progress <= 75: - phase = "⚗️ 成分分离中" - phase_emoji = "🔄" - else: - phase = "🎯 收集产物" - phase_emoji = "📤" - - # 更新状态 - status_msg = f"{phase_emoji} {phase}: {progress:.1f}% | 💧 已处理: {volume_processed:.1f}mL" - - self.data.update({ - "progress": progress, - "processed_volume": volume_processed, - "current_status": status_msg, - "current_phase": phase - }) - - # 进度日志(每25%打印一次) - if progress >= 25 and (i + 1) % 5 == 0: # 每5步(25%)打印一次 - self.logger.info(f"📊 分离进度: {progress:.0f}% | {phase} | 💧 {volume_processed:.1f}mL 完成 ✨") - - # 分离完成 - final_status = f"✅ 柱层析分离完成: {from_vessel} → {to_vessel} | 💧 共处理 {volume_processed:.1f}mL" - - self.data.update({ - "status": "Idle", - "column_state": "Ready", - "current_status": final_status, - "progress": 100.0, - "final_volume": volume_processed - }) - - self.logger.info(f"🎉 柱层析分离完成! ✨") - self.logger.info(f"📊 分离结果:") - self.logger.info(f" 🥽 源容器: {from_vessel}") - self.logger.info(f" 🥽 目标容器: {to_vessel}") - self.logger.info(f" 🏛️ 使用色谱柱: {column}") - self.logger.info(f" 💧 处理体积: {volume_processed:.1f}mL") - self.logger.info(f" 🧪 洗脱条件: {solvent1}:{solvent2} ({ratio})") - self.logger.info(f" 🎯 Rf值: {rf}") - self.logger.info(f" ⏱️ 总耗时: {separation_time:.1f}秒 🏁") - - return True - - # 状态属性 - @property - def status(self) -> str: - return self.data.get("status", "❓ Unknown") - - @property - def column_state(self) -> str: - return self.data.get("column_state", "❓ Unknown") - - @property - def current_flow_rate(self) -> float: - return self.data.get("current_flow_rate", 0.0) - - @property - def max_flow_rate(self) -> float: - return self.data.get("max_flow_rate", 0.0) - - @property - def column_length(self) -> float: - return self.data.get("column_length", 0.0) - - @property - def column_diameter(self) -> float: - return self.data.get("column_diameter", 0.0) - - @property - def processed_volume(self) -> float: - return self.data.get("processed_volume", 0.0) - - @property - def progress(self) -> float: - return self.data.get("progress", 0.0) - - @property - def current_status(self) -> str: - return self.data.get("current_status", "📋 Ready") - - @property - def current_phase(self) -> str: - return self.data.get("current_phase", "🏠 待机中") - - @property - def final_volume(self) -> float: - return self.data.get("final_volume", 0.0) \ No newline at end of file diff --git a/unilabos/devices/virtual/virtual_filter.py b/unilabos/devices/virtual/virtual_filter.py deleted file mode 100644 index 98effc99..00000000 --- a/unilabos/devices/virtual/virtual_filter.py +++ /dev/null @@ -1,244 +0,0 @@ -import asyncio -import logging -import time as time_module -from typing import Dict, Any, Optional - -from unilabos.compile.utils.vessel_parser import get_vessel -from unilabos.ros.nodes.base_device_node import BaseROS2DeviceNode - - -class VirtualFilter: - """Virtual filter device - 完全按照 Filter.action 规范 🌊""" - - _ros_node: BaseROS2DeviceNode - - def __init__(self, device_id: Optional[str] = None, config: Optional[Dict[str, Any]] = None, **kwargs): - if device_id is None and "id" in kwargs: - device_id = kwargs.pop("id") - if config is None and "config" in kwargs: - config = kwargs.pop("config") - - self.device_id = device_id or "unknown_filter" - self.config = config or {} - self.logger = logging.getLogger(f"VirtualFilter.{self.device_id}") - self.data = {} - - # 从config或kwargs中获取配置参数 - self.port = self.config.get("port") or kwargs.get("port", "VIRTUAL") - self._max_temp = self.config.get("max_temp") or kwargs.get("max_temp", 100.0) - self._max_stir_speed = self.config.get("max_stir_speed") or kwargs.get("max_stir_speed", 1000.0) - self._max_volume = self.config.get("max_volume") or kwargs.get("max_volume", 500.0) - - # 处理其他kwargs参数 - skip_keys = {"port", "max_temp", "max_stir_speed", "max_volume"} - for key, value in kwargs.items(): - if key not in skip_keys and not hasattr(self, key): - setattr(self, key, value) - - def post_init(self, ros_node: BaseROS2DeviceNode): - self._ros_node = ros_node - - async def initialize(self) -> bool: - """Initialize virtual filter 🚀""" - self.logger.info(f"🔧 初始化虚拟过滤器 {self.device_id} ✨") - - # 按照 Filter.action 的 feedback 字段初始化 - self.data.update( - { - "status": "Idle", - "progress": 0.0, # Filter.action feedback - "current_temp": 25.0, # Filter.action feedback - "filtered_volume": 0.0, # Filter.action feedback - "message": "Ready for filtration", - } - ) - - self.logger.info(f"✅ 过滤器 {self.device_id} 初始化完成 🌊") - return True - - async def cleanup(self) -> bool: - """Cleanup virtual filter 🧹""" - self.logger.info(f"🧹 清理虚拟过滤器 {self.device_id} 🔚") - - self.data.update({"status": "Offline"}) - - self.logger.info(f"✅ 过滤器 {self.device_id} 清理完成 💤") - return True - - async def filter( - self, - vessel: dict, - filtrate_vessel: dict = {}, - stir: bool = False, - stir_speed: float = 300.0, - temp: float = 25.0, - continue_heatchill: bool = False, - volume: float = 0.0, - ) -> bool: - """Execute filter action - 完全按照 Filter.action 参数 🌊""" - vessel_id, _ = get_vessel(vessel) - filtrate_vessel_id, _ = get_vessel(filtrate_vessel) if filtrate_vessel else (f"{vessel_id}_filtrate", {}) - - # 🔧 新增:温度自动调整 - original_temp = temp - if temp == 0.0: - temp = 25.0 # 0度自动设置为室温 - self.logger.info(f"🌡️ 温度自动调整: {original_temp}°C → {temp}°C (室温) 🏠") - elif temp < 4.0: - temp = 4.0 # 小于4度自动设置为4度 - self.logger.info(f"🌡️ 温度自动调整: {original_temp}°C → {temp}°C (最低温度) ❄️") - - self.logger.info(f"🌊 开始过滤操作: {vessel_id} → {filtrate_vessel_id} 🚰") - self.logger.info(f" 🌪️ 搅拌: {stir} ({stir_speed} RPM)") - self.logger.info(f" 🌡️ 温度: {temp}°C") - self.logger.info(f" 💧 体积: {volume}mL") - self.logger.info(f" 🔥 保持加热: {continue_heatchill}") - - # 验证参数 - if temp > self._max_temp or temp < 4.0: - error_msg = f"🌡️ 温度 {temp}°C 超出范围 (4-{self._max_temp}°C) ⚠️" - self.logger.error(f"❌ {error_msg}") - self.data.update({"status": f"Error: 温度超出范围 ⚠️", "message": error_msg}) - return False - - if stir and stir_speed > self._max_stir_speed: - error_msg = f"🌪️ 搅拌速度 {stir_speed} RPM 超出范围 (0-{self._max_stir_speed} RPM) ⚠️" - self.logger.error(f"❌ {error_msg}") - self.data.update({"status": f"Error: 搅拌速度超出范围 ⚠️", "message": error_msg}) - return False - - if volume > self._max_volume: - error_msg = f"💧 过滤体积 {volume} mL 超出范围 (0-{self._max_volume} mL) ⚠️" - self.logger.error(f"❌ {error_msg}") - self.data.update({"status": f"Error", "message": error_msg}) - return False - - # 开始过滤 - filter_volume = volume if volume > 0 else 50.0 - self.logger.info(f"🚀 开始过滤 {filter_volume}mL 液体 💧") - - self.data.update( - { - "status": f"Running", - "current_temp": temp, - "filtered_volume": 0.0, - "progress": 0.0, - "message": f"🚀 Starting filtration: {vessel_id} → {filtrate_vessel_id}", - } - ) - - try: - # 过滤过程 - 实时更新进度 - start_time = time_module.time() - - # 根据体积和搅拌估算过滤时间 - base_time = filter_volume / 5.0 # 5mL/s 基础速度 - if stir: - base_time *= 0.8 # 搅拌加速过滤 - self.logger.info(f"🌪️ 搅拌加速过滤,预计时间减少20% ⚡") - if temp > 50.0: - base_time *= 0.7 # 高温加速过滤 - self.logger.info(f"🔥 高温加速过滤,预计时间减少30% ⚡") - - filter_time = max(base_time, 10.0) # 最少10秒 - self.logger.info(f"⏱️ 预计过滤时间: {filter_time:.1f}秒 ⌛") - - while True: - current_time = time_module.time() - elapsed = current_time - start_time - remaining = max(0, filter_time - elapsed) - progress = min(100.0, (elapsed / filter_time) * 100) - current_filtered = (progress / 100.0) * filter_volume - - # 更新状态 - 按照 Filter.action feedback 字段 - status_msg = f"🌊 过滤中: {vessel}" - if stir: - status_msg += f" | 🌪️ 搅拌: {stir_speed} RPM" - status_msg += f" | 🌡️ {temp}°C | 📊 {progress:.1f}% | 💧 已过滤: {current_filtered:.1f}mL" - - self.data.update( - { - "progress": progress, # Filter.action feedback - "current_temp": temp, # Filter.action feedback - "filtered_volume": current_filtered, # Filter.action feedback - "status": "Running", - "message": f"🌊 Filtering: {progress:.1f}% complete, {current_filtered:.1f}mL filtered", - } - ) - - # 进度日志(每25%打印一次) - if progress >= 25 and progress % 25 < 1: - self.logger.info(f"📊 过滤进度: {progress:.0f}% | 💧 {current_filtered:.1f}mL 完成 ✨") - - if remaining <= 0: - break - - await self._ros_node.sleep(1.0) - - # 过滤完成 - final_temp = temp if continue_heatchill else 25.0 - final_status = f"✅ 过滤完成: {vessel} | 💧 {filter_volume}mL → {filtrate_vessel}" - if continue_heatchill: - final_status += " | 🔥 继续加热搅拌" - self.logger.info(f"🔥 继续保持加热搅拌状态 🌪️") - - self.data.update( - { - "status": final_status, - "progress": 100.0, # Filter.action feedback - "current_temp": final_temp, # Filter.action feedback - "filtered_volume": filter_volume, # Filter.action feedback - "message": f"✅ Filtration completed: {filter_volume}mL filtered from {vessel_id}", - } - ) - - self.logger.info(f"🎉 过滤完成! 💧 {filter_volume}mL 从 {vessel_id} 过滤到 {filtrate_vessel_id} ✨") - self.logger.info(f"📊 最终状态: 温度 {final_temp}°C | 进度 100% | 体积 {filter_volume}mL 🏁") - return True - - except Exception as e: - error_msg = f"过滤过程中发生错误: {str(e)} 💥" - self.logger.error(f"❌ {error_msg}") - self.data.update({"status": f"Error", "message": f"❌ Filtration failed: {str(e)}"}) - return False - - # === 核心状态属性 - 按照 Filter.action feedback 字段 === - @property - def status(self) -> str: - return self.data.get("status", "❓ Unknown") - - @property - def progress(self) -> float: - """Filter.action feedback 字段 📊""" - return self.data.get("progress", 0.0) - - @property - def current_temp(self) -> float: - """Filter.action feedback 字段 🌡️""" - return self.data.get("current_temp", 25.0) - - @property - def current_status(self) -> str: - """Filter.action feedback 字段 📋""" - return self.data.get("current_status", "") - - @property - def filtered_volume(self) -> float: - """Filter.action feedback 字段 💧""" - return self.data.get("filtered_volume", 0.0) - - @property - def message(self) -> str: - return self.data.get("message", "") - - @property - def max_temp(self) -> float: - return self._max_temp - - @property - def max_stir_speed(self) -> float: - return self._max_stir_speed - - @property - def max_volume(self) -> float: - return self._max_volume diff --git a/unilabos/devices/virtual/virtual_gas_source.py b/unilabos/devices/virtual/virtual_gas_source.py deleted file mode 100644 index 90528826..00000000 --- a/unilabos/devices/virtual/virtual_gas_source.py +++ /dev/null @@ -1,46 +0,0 @@ -import time -from typing import Dict, Any, Optional - - -class VirtualGasSource: - """Virtual gas source for testing""" - - def __init__(self, device_id: Optional[str] = None, config: Optional[Dict[str, Any]] = None, **kwargs): - self.device_id = device_id or "unknown_gas_source" - self.config = config or {} - self.data = {} - self._status = "OPEN" - - async def initialize(self) -> bool: - """Initialize virtual gas source""" - self.data.update({ - "status": self._status - }) - return True - - async def cleanup(self) -> bool: - """Cleanup virtual gas source""" - return True - - @property - def status(self) -> str: - return self._status - - def get_status(self) -> str: - return self._status - - def set_status(self, string): - self._status = string - time.sleep(5) - - def open(self): - self._status = "OPEN" - - def close(self): - self._status = "CLOSED" - - def is_open(self): - return self._status - - def is_closed(self): - return not self._status \ No newline at end of file diff --git a/unilabos/devices/virtual/virtual_heatchill.py b/unilabos/devices/virtual/virtual_heatchill.py deleted file mode 100644 index 29a9fd28..00000000 --- a/unilabos/devices/virtual/virtual_heatchill.py +++ /dev/null @@ -1,318 +0,0 @@ -import asyncio -import logging -import time as time_module # 重命名time模块,避免与参数冲突 -from typing import Dict, Any - -from unilabos.ros.nodes.base_device_node import BaseROS2DeviceNode - -class VirtualHeatChill: - """Virtual heat chill device for HeatChillProtocol testing 🌡️""" - - _ros_node: BaseROS2DeviceNode - - def __init__(self, device_id: str = None, config: Dict[str, Any] = None, **kwargs): - # 处理可能的不同调用方式 - if device_id is None and 'id' in kwargs: - device_id = kwargs.pop('id') - if config is None and 'config' in kwargs: - config = kwargs.pop('config') - - # 设置默认值 - self.device_id = device_id or "unknown_heatchill" - self.config = config or {} - - self.logger = logging.getLogger(f"VirtualHeatChill.{self.device_id}") - self.data = {} - - # 从config或kwargs中获取配置参数 - self.port = self.config.get('port') or kwargs.get('port', 'VIRTUAL') - self._max_temp = self.config.get('max_temp') or kwargs.get('max_temp', 200.0) - self._min_temp = self.config.get('min_temp') or kwargs.get('min_temp', -80.0) - self._max_stir_speed = self.config.get('max_stir_speed') or kwargs.get('max_stir_speed', 1000.0) - - # 处理其他kwargs参数 - skip_keys = {'port', 'max_temp', 'min_temp', 'max_stir_speed'} - for key, value in kwargs.items(): - if key not in skip_keys and not hasattr(self, key): - setattr(self, key, value) - - print(f"🌡️ === 虚拟温控设备 {self.device_id} 已创建 === ✨") - print(f"🔥 温度范围: {self._min_temp}°C ~ {self._max_temp}°C | 🌪️ 最大搅拌: {self._max_stir_speed} RPM") - - def post_init(self, ros_node: BaseROS2DeviceNode): - self._ros_node = ros_node - - async def initialize(self) -> bool: - """Initialize virtual heat chill 🚀""" - self.logger.info(f"🔧 初始化虚拟温控设备 {self.device_id} ✨") - - # 初始化状态信息 - self.data.update({ - "status": "🏠 待机中", - "operation_mode": "Idle", - "is_stirring": False, - "stir_speed": 0.0, - "remaining_time": 0.0, - }) - - self.logger.info(f"✅ 温控设备 {self.device_id} 初始化完成 🌡️") - self.logger.info(f"📊 设备规格: 温度范围 {self._min_temp}°C ~ {self._max_temp}°C | 搅拌范围 0 ~ {self._max_stir_speed} RPM") - return True - - async def cleanup(self) -> bool: - """Cleanup virtual heat chill 🧹""" - self.logger.info(f"🧹 清理虚拟温控设备 {self.device_id} 🔚") - - self.data.update({ - "status": "💤 离线", - "operation_mode": "Offline", - "is_stirring": False, - "stir_speed": 0.0, - "remaining_time": 0.0 - }) - - self.logger.info(f"✅ 温控设备 {self.device_id} 清理完成 💤") - return True - - async def heat_chill(self, temp: float, time, stir: bool, - stir_speed: float, purpose: str, vessel: dict = {}) -> bool: - """Execute heat chill action - 🔧 修复:确保参数类型正确""" - - # 🔧 关键修复:确保所有参数类型正确 - try: - temp = float(temp) - time_value = float(time) # 强制转换为浮点数 - stir_speed = float(stir_speed) - stir = bool(stir) - purpose = str(purpose) - except (ValueError, TypeError) as e: - error_msg = f"参数类型转换错误: temp={temp}({type(temp)}), time={time}({type(time)}), error={str(e)}" - self.logger.error(f"❌ {error_msg}") - self.data.update({ - "status": f"❌ 错误: {error_msg}", - "operation_mode": "Error" - }) - return False - - # 确定温度操作emoji - if temp > 25.0: - temp_emoji = "🔥" - operation_mode = "Heating" - status_action = "加热" - elif temp < 25.0: - temp_emoji = "❄️" - operation_mode = "Cooling" - status_action = "冷却" - else: - temp_emoji = "🌡️" - operation_mode = "Maintaining" - status_action = "保温" - - self.logger.info(f"🌡️ 开始温控操作: {temp}°C {temp_emoji}") - self.logger.info(f" 🎯 目标温度: {temp}°C {temp_emoji}") - self.logger.info(f" ⏰ 持续时间: {time_value}s") - self.logger.info(f" 🌪️ 搅拌: {stir} ({stir_speed} RPM)") - self.logger.info(f" 📝 目的: {purpose}") - - # 验证参数范围 - if temp > self._max_temp or temp < self._min_temp: - error_msg = f"🌡️ 温度 {temp}°C 超出范围 ({self._min_temp}°C - {self._max_temp}°C) ⚠️" - self.logger.error(f"❌ {error_msg}") - self.data.update({ - "status": f"❌ 错误: 温度超出范围 ⚠️", - "operation_mode": "Error" - }) - return False - - if stir and stir_speed > self._max_stir_speed: - error_msg = f"🌪️ 搅拌速度 {stir_speed} RPM 超出最大值 {self._max_stir_speed} RPM ⚠️" - self.logger.error(f"❌ {error_msg}") - self.data.update({ - "status": f"❌ 错误: 搅拌速度超出范围 ⚠️", - "operation_mode": "Error" - }) - return False - - if time_value <= 0: - error_msg = f"⏰ 时间 {time_value}s 必须大于0 ⚠️" - self.logger.error(f"❌ {error_msg}") - self.data.update({ - "status": f"❌ 错误: 时间参数无效 ⚠️", - "operation_mode": "Error" - }) - return False - - # 🔧 修复:使用转换后的时间值 - start_time = time_module.time() - total_time = time_value # 使用转换后的浮点数 - - self.logger.info(f"🚀 开始{status_action}程序! 预计用时 {total_time:.1f}秒 ⏱️") - - # 开始操作 - stir_info = f" | 🌪️ 搅拌: {stir_speed} RPM" if stir else "" - - self.data.update({ - "status": f"{temp_emoji} 运行中: {status_action} 至 {temp}°C | ⏰ 剩余: {total_time:.0f}s{stir_info}", - "operation_mode": operation_mode, - "is_stirring": stir, - "stir_speed": stir_speed if stir else 0.0, - "remaining_time": total_time, - }) - - # 在等待过程中每秒更新剩余时间 - last_logged_time = 0 - while True: - current_time = time_module.time() - elapsed = current_time - start_time - remaining = max(0, total_time - elapsed) - progress = (elapsed / total_time) * 100 if total_time > 0 else 100 - - # 更新剩余时间和状态 - self.data.update({ - "remaining_time": remaining, - "status": f"{temp_emoji} 运行中: {status_action} 至 {temp}°C | ⏰ 剩余: {remaining:.0f}s{stir_info}", - "progress": progress - }) - - # 进度日志(每25%打印一次) - if progress >= 25 and int(progress) % 25 == 0 and int(progress) != last_logged_time: - self.logger.info(f"📊 {status_action}进度: {progress:.0f}% | ⏰ 剩余: {remaining:.0f}s | {temp_emoji} 目标: {temp}°C ✨") - last_logged_time = int(progress) - - # 如果时间到了,退出循环 - if remaining <= 0: - break - - # 等待1秒后再次检查 - await self._ros_node.sleep(1.0) - - # 操作完成 - final_stir_info = f" | 🌪️ 搅拌: {stir_speed} RPM" if stir else "" - - self.data.update({ - "status": f"✅ 完成: 已达到 {temp}°C {temp_emoji} | ⏱️ 用时: {total_time:.0f}s{final_stir_info}", - "operation_mode": "Completed", - "remaining_time": 0.0, - "is_stirring": False, - "stir_speed": 0.0, - "progress": 100.0 - }) - - self.logger.info(f"🎉 温控操作完成! ✨") - self.logger.info(f"📊 操作结果:") - self.logger.info(f" 🌡️ 达到温度: {temp}°C {temp_emoji}") - self.logger.info(f" ⏱️ 总用时: {total_time:.0f}s") - if stir: - self.logger.info(f" 🌪️ 搅拌速度: {stir_speed} RPM") - self.logger.info(f" 📝 操作目的: {purpose} 🏁") - - return True - - async def heat_chill_start(self, temp: float, purpose: str, vessel: dict = {}) -> bool: - """Start continuous heat chill 🔄""" - - # 🔧 添加类型转换 - try: - temp = float(temp) - purpose = str(purpose) - except (ValueError, TypeError) as e: - error_msg = f"参数类型转换错误: {str(e)}" - self.logger.error(f"❌ {error_msg}") - self.data.update({ - "status": f"❌ 错误: {error_msg}", - "operation_mode": "Error" - }) - return False - - # 确定温度操作emoji - if temp > 25.0: - temp_emoji = "🔥" - operation_mode = "Heating" - status_action = "持续加热" - elif temp < 25.0: - temp_emoji = "❄️" - operation_mode = "Cooling" - status_action = "持续冷却" - else: - temp_emoji = "🌡️" - operation_mode = "Maintaining" - status_action = "恒温保持" - - self.logger.info(f"🔄 启动持续温控: {temp}°C {temp_emoji}") - self.logger.info(f" 🎯 目标温度: {temp}°C {temp_emoji}") - self.logger.info(f" 🔄 模式: {status_action}") - self.logger.info(f" 📝 目的: {purpose}") - - # 验证参数 - if temp > self._max_temp or temp < self._min_temp: - error_msg = f"🌡️ 温度 {temp}°C 超出范围 ({self._min_temp}°C - {self._max_temp}°C) ⚠️" - self.logger.error(f"❌ {error_msg}") - self.data.update({ - "status": f"❌ 错误: 温度超出范围 ⚠️", - "operation_mode": "Error" - }) - return False - - self.data.update({ - "status": f"🔄 启动: {status_action} 至 {temp}°C {temp_emoji} | ♾️ 持续运行", - "operation_mode": operation_mode, - "is_stirring": False, - "stir_speed": 0.0, - "remaining_time": -1.0, # -1 表示持续运行 - }) - - self.logger.info(f"✅ 持续温控已启动! {temp_emoji} {status_action}模式 🚀") - return True - - async def heat_chill_stop(self, vessel: dict = {}) -> bool: - """Stop heat chill 🛑""" - - self.logger.info(f"🛑 停止温控:") - - self.data.update({ - "status": f"🛑 {self.device_id} 温控停止", - "operation_mode": "Stopped", - "is_stirring": False, - "stir_speed": 0.0, - "remaining_time": 0.0, - }) - - self.logger.info(f"✅ 温控设备已停止 {self.device_id} 温度控制 🏁") - return True - - # 状态属性 - @property - def status(self) -> str: - return self.data.get("status", "🏠 待机中") - - @property - def operation_mode(self) -> str: - return self.data.get("operation_mode", "Idle") - - @property - def is_stirring(self) -> bool: - return self.data.get("is_stirring", False) - - @property - def stir_speed(self) -> float: - return self.data.get("stir_speed", 0.0) - - @property - def remaining_time(self) -> float: - return self.data.get("remaining_time", 0.0) - - @property - def progress(self) -> float: - return self.data.get("progress", 0.0) - - @property - def max_temp(self) -> float: - return self._max_temp - - @property - def min_temp(self) -> float: - return self._min_temp - - @property - def max_stir_speed(self) -> float: - return self._max_stir_speed \ No newline at end of file diff --git a/unilabos/devices/virtual/virtual_multiway_valve.py b/unilabos/devices/virtual/virtual_multiway_valve.py deleted file mode 100644 index 1512f33d..00000000 --- a/unilabos/devices/virtual/virtual_multiway_valve.py +++ /dev/null @@ -1,278 +0,0 @@ -import time -import logging -from typing import Union, Dict, Optional - - -class VirtualMultiwayValve: - """ - 虚拟九通阀门 - 0号位连接transfer pump,1-8号位连接其他设备 🔄 - """ - def __init__(self, port: str = "VIRTUAL", positions: int = 8, **kwargs): - self.port = port - self.max_positions = positions # 1-8号位 - self.total_positions = positions + 1 # 0-8号位,共9个位置 - - # 添加日志记录器 - self.logger = logging.getLogger(f"VirtualMultiwayValve.{port}") - - # 状态属性 - self._status = "Idle" - self._valve_state = "Ready" - self._current_position = 0 # 默认在0号位(transfer pump位置) - self._target_position = 0 - - print(f"🔄 === 虚拟多通阀门已创建 === ✨") - print(f"🎯 端口: {port} | 📊 位置范围: 0-{self.max_positions} | 🏠 初始位置: 0 (transfer_pump)") - self.logger.info(f"🔧 多通阀门初始化: 端口={port}, 最大位置={self.max_positions}") - - @property - def status(self) -> str: - return self._status - - @property - def valve_state(self) -> str: - return self._valve_state - - @property - def current_position(self) -> int: - return self._current_position - - @property - def target_position(self) -> int: - return self._target_position - - def get_current_position(self) -> int: - """获取当前阀门位置 📍""" - return self._current_position - - def get_current_port(self) -> str: - """获取当前连接的端口名称 🔌""" - return self._current_position - - def set_position(self, command: Union[int, str]): - """ - 设置阀门位置 - 支持0-8位置 🎯 - - Args: - command: 目标位置 (0-8) 或位置字符串 - 0: transfer pump位置 - 1-8: 其他设备位置 - 'default': 默认位置(0号位) - """ - try: - # 🔧 处理特殊字符串命令 - if isinstance(command, str): - command_lower = command.lower().strip() - - # 处理特殊命令 - if command_lower in ['default', 'pump', 'transfer_pump', 'home']: - pos = 0 # 默认位置为0号位(transfer pump) - self.logger.info(f"🔧 特殊命令 '{command}' 映射到位置 {pos}") - elif command_lower in ['open']: - pos = 0 # open命令也映射到0号位 - self.logger.info(f"🔧 OPEN命令映射到位置 {pos}") - elif command_lower in ['close', 'closed']: - # 关闭命令保持当前位置 - pos = self._current_position - self.logger.info(f"🔧 CLOSE命令保持当前位置 {pos}") - else: - # 尝试转换为数字 - try: - pos = int(command) - except ValueError: - error_msg = f"无法识别的命令: '{command}'" - self.logger.error(f"❌ {error_msg}") - raise ValueError(error_msg) - else: - pos = int(command) - - if pos < 0 or pos > self.max_positions: - error_msg = f"位置必须在 0-{self.max_positions} 范围内" - self.logger.error(f"❌ {error_msg}: 请求位置={pos}") - raise ValueError(error_msg) - - # 获取位置描述emoji - if pos == 0: - pos_emoji = "🚰" - pos_desc = "泵位置" - else: - pos_emoji = "🔌" - pos_desc = f"端口{pos}" - - old_position = self._current_position - old_port = self.get_current_port() - - self.logger.info(f"🔄 阀门切换: {old_position}({old_port}) → {pos} {pos_emoji}") - - self._status = "Busy" - self._valve_state = "Moving" - self._target_position = pos - - # 模拟阀门切换时间 - switch_time = abs(self._current_position - pos) * 0.5 # 每个位置0.5秒 - - if switch_time > 0: - self.logger.info(f"⏱️ 阀门移动中... 预计用时: {switch_time:.1f}秒 🔄") - time.sleep(switch_time) - - self._current_position = pos - self._status = "Idle" - self._valve_state = "Ready" - - current_port = self.get_current_port() - success_msg = f"✅ 阀门已切换到位置 {pos} ({current_port}) {pos_emoji}" - - self.logger.info(success_msg) - return success_msg - - except ValueError as e: - error_msg = f"❌ 阀门切换失败: {str(e)}" - self._status = "Error" - self._valve_state = "Error" - self.logger.error(error_msg) - return error_msg - - def set_to_pump_position(self): - """切换到transfer pump位置(0号位)🚰""" - self.logger.info(f"🚰 切换到泵位置...") - return self.set_position(0) - - def set_to_port(self, port_number: int): - """ - 切换到指定端口位置 🔌 - - Args: - port_number: 端口号 (1-8) - """ - if port_number < 1 or port_number > self.max_positions: - error_msg = f"端口号必须在 1-{self.max_positions} 范围内" - self.logger.error(f"❌ {error_msg}: 请求端口={port_number}") - raise ValueError(error_msg) - - self.logger.info(f"🔌 切换到端口 {port_number}...") - return self.set_position(port_number) - - def open(self): - """打开阀门 - 设置到transfer pump位置(0号位)🔓""" - self.logger.info(f"🔓 打开阀门,设置到泵位置...") - return self.set_to_pump_position() - - def close(self): - """关闭阀门 - 对于多通阀门,设置到一个"关闭"状态 🔒""" - self.logger.info(f"🔒 关闭阀门...") - - self._status = "Busy" - self._valve_state = "Closing" - time.sleep(0.5) - - # 可以选择保持当前位置或设置特殊关闭状态 - self._status = "Idle" - self._valve_state = "Closed" - - close_msg = f"🔒 阀门已关闭,保持在位置 {self._current_position} ({self.get_current_port()})" - self.logger.info(close_msg) - return close_msg - - def get_valve_position(self) -> int: - """获取阀门位置 - 兼容性方法 📍""" - return self._current_position - - def set_valve_position(self, command: Union[int, str]): - """ - 设置阀门位置 - 兼容pump_protocol调用 🎯 - 这是set_position的别名方法,用于兼容pump_protocol.py - - Args: - command: 目标位置 (0-8) 或位置字符串 - """ - # 删除debug日志:self.logger.debug(f"🎯 兼容性调用: set_valve_position({command})") - return self.set_position(command) - - def is_at_position(self, position: int) -> bool: - """检查是否在指定位置 🎯""" - result = self._current_position == position - # 删除debug日志:self.logger.debug(f"🎯 位置检查: 当前={self._current_position}, 目标={position}, 匹配={result}") - return result - - def is_at_pump_position(self) -> bool: - """检查是否在transfer pump位置 🚰""" - result = self._current_position == 0 - # 删除debug日志:pump_status = "是" if result else "否" - # 删除debug日志:self.logger.debug(f"🚰 泵位置检查: {pump_status} (当前位置: {self._current_position})") - return result - - def is_at_port(self, port_number: int) -> bool: - """检查是否在指定端口位置 🔌""" - result = self._current_position == port_number - # 删除debug日志:port_status = "是" if result else "否" - # 删除debug日志:self.logger.debug(f"🔌 端口{port_number}检查: {port_status} (当前位置: {self._current_position})") - return result - - def reset(self): - """重置阀门到transfer pump位置(0号位)🔄""" - self.logger.info(f"🔄 重置阀门到泵位置...") - return self.set_position(0) - - def switch_between_pump_and_port(self, port_number: int): - """ - 在transfer pump位置和指定端口之间切换 🔄 - - Args: - port_number: 目标端口号 (1-8) - """ - if self._current_position == 0: - # 当前在pump位置,切换到指定端口 - self.logger.info(f"🔄 从泵位置切换到端口 {port_number}...") - return self.set_to_port(port_number) - else: - # 当前在某个端口,切换到pump位置 - self.logger.info(f"🔄 从端口 {self._current_position} 切换到泵位置...") - return self.set_to_pump_position() - - def get_flow_path(self) -> str: - """获取当前流路路径描述 🌊""" - current_port = self.get_current_port() - if self._current_position == 0: - flow_path = f"🚰 转移泵已连接 (位置 {self._current_position})" - else: - flow_path = f"🔌 端口 {self._current_position} 已连接 ({current_port})" - - # 删除debug日志:self.logger.debug(f"🌊 当前流路: {flow_path}") - return flow_path - - def __str__(self): - current_port = self.get_current_port() - status_emoji = "✅" if self._status == "Idle" else "🔄" if self._status == "Busy" else "❌" - - return f"🔄 VirtualMultiwayValve({status_emoji} 位置: {self._current_position}/{self.max_positions}, 端口: {current_port}, 状态: {self._status})" - - -# 使用示例 -if __name__ == "__main__": - valve = VirtualMultiwayValve() - - print("🔄 === 虚拟九通阀门测试 === ✨") - print(f"🏠 初始状态: {valve}") - print(f"🌊 当前流路: {valve.get_flow_path()}") - - # 切换到试剂瓶1(1号位) - print(f"\n🔌 切换到1号位: {valve.set_position(1)}") - print(f"📍 当前状态: {valve}") - - # 切换到transfer pump位置(0号位) - print(f"\n🚰 切换到pump位置: {valve.set_to_pump_position()}") - print(f"📍 当前状态: {valve}") - - # 切换到试剂瓶2(2号位) - print(f"\n🔌 切换到2号位: {valve.set_to_port(2)}") - print(f"📍 当前状态: {valve}") - - # 测试切换功能 - print(f"\n🔄 智能切换测试:") - print(f"当前位置: {valve._current_position}") - print(f"切换结果: {valve.switch_between_pump_and_port(3)}") - print(f"新位置: {valve._current_position}") - - # 重置测试 - print(f"\n🔄 重置测试: {valve.reset()}") - print(f"📍 重置后状态: {valve}") \ No newline at end of file diff --git a/unilabos/devices/virtual/virtual_rotavap.py b/unilabos/devices/virtual/virtual_rotavap.py deleted file mode 100644 index 5e85d35c..00000000 --- a/unilabos/devices/virtual/virtual_rotavap.py +++ /dev/null @@ -1,359 +0,0 @@ -import asyncio -import logging -import time as time_module -from typing import Dict, Any, Optional - -from unilabos.ros.nodes.base_device_node import BaseROS2DeviceNode - - -def debug_print(message): - """调试输出 🔍""" - print(f"🌪️ [ROTAVAP] {message}", flush=True) - - -class VirtualRotavap: - """Virtual rotary evaporator device - 简化版,只保留核心功能 🌪️""" - - _ros_node: BaseROS2DeviceNode - - def __init__(self, device_id: Optional[str] = None, config: Optional[Dict[str, Any]] = None, **kwargs): - # 处理可能的不同调用方式 - if device_id is None and "id" in kwargs: - device_id = kwargs.pop("id") - if config is None and "config" in kwargs: - config = kwargs.pop("config") - - # 设置默认值 - self.device_id = device_id or "unknown_rotavap" - self.config = config or {} - - self.logger = logging.getLogger(f"VirtualRotavap.{self.device_id}") - self.data = {} - - # 从config或kwargs中获取配置参数 - self.port = self.config.get("port") or kwargs.get("port", "VIRTUAL") - self._max_temp = self.config.get("max_temp") or kwargs.get("max_temp", 180.0) - self._max_rotation_speed = self.config.get("max_rotation_speed") or kwargs.get("max_rotation_speed", 280.0) - - # 处理其他kwargs参数 - skip_keys = {"port", "max_temp", "max_rotation_speed"} - for key, value in kwargs.items(): - if key not in skip_keys and not hasattr(self, key): - setattr(self, key, value) - - print(f"🌪️ === 虚拟旋转蒸发仪 {self.device_id} 已创建 === ✨") - print(f"🔥 温度范围: 10°C ~ {self._max_temp}°C | 🌀 转速范围: 10 ~ {self._max_rotation_speed} RPM") - - def post_init(self, ros_node: BaseROS2DeviceNode): - self._ros_node = ros_node - - async def initialize(self) -> bool: - """Initialize virtual rotary evaporator 🚀""" - self.logger.info(f"🔧 初始化虚拟旋转蒸发仪 {self.device_id} ✨") - - # 只保留核心状态 - self.data.update( - { - "status": "🏠 待机中", - "rotavap_state": "Ready", # Ready, Evaporating, Completed, Error - "current_temp": 25.0, - "target_temp": 25.0, - "rotation_speed": 0.0, - "vacuum_pressure": 1.0, # 大气压 - "evaporated_volume": 0.0, - "progress": 0.0, - "remaining_time": 0.0, - "message": "🌪️ Ready for evaporation", - } - ) - - self.logger.info(f"✅ 旋转蒸发仪 {self.device_id} 初始化完成 🌪️") - self.logger.info( - f"📊 设备规格: 温度范围 10°C ~ {self._max_temp}°C | 转速范围 10 ~ {self._max_rotation_speed} RPM" - ) - return True - - async def cleanup(self) -> bool: - """Cleanup virtual rotary evaporator 🧹""" - self.logger.info(f"🧹 清理虚拟旋转蒸发仪 {self.device_id} 🔚") - - self.data.update( - { - "status": "💤 离线", - "rotavap_state": "Offline", - "current_temp": 25.0, - "rotation_speed": 0.0, - "vacuum_pressure": 1.0, - "message": "💤 System offline", - } - ) - - self.logger.info(f"✅ 旋转蒸发仪 {self.device_id} 清理完成 💤") - return True - - async def evaporate( - self, - vessel: str, - pressure: float = 0.1, - temp: float = 60.0, - time: float = 180.0, - stir_speed: float = 100.0, - solvent: str = "", - **kwargs, - ) -> bool: - """Execute evaporate action - 简化版 🌪️""" - - # 🔧 新增:确保time参数是数值类型 - if isinstance(time, str): - try: - time = float(time) - except ValueError: - self.logger.error(f"❌ 无法转换时间参数 '{time}' 为数值,使用默认值180.0秒") - time = 180.0 - elif not isinstance(time, (int, float)): - self.logger.error(f"❌ 时间参数类型无效: {type(time)},使用默认值180.0秒") - time = 180.0 - - # 确保time是float类型; 并加速 - time = float(time) / 10.0 - - # 🔧 简化处理:如果vessel就是设备自己,直接操作 - if vessel == self.device_id: - debug_print(f"🎯 在设备 {self.device_id} 上直接执行蒸发操作") - actual_vessel = self.device_id - else: - actual_vessel = vessel - - # 参数预处理 - if solvent: - self.logger.info(f"🧪 识别到溶剂: {solvent}") - # 根据溶剂调整参数 - solvent_lower = solvent.lower() - if any(s in solvent_lower for s in ["water", "aqueous"]): - temp = max(temp, 80.0) - pressure = max(pressure, 0.2) - self.logger.info(f"💧 水系溶剂:调整参数 → 温度 {temp}°C, 压力 {pressure} bar") - elif any(s in solvent_lower for s in ["ethanol", "methanol", "acetone"]): - temp = min(temp, 50.0) - pressure = min(pressure, 0.05) - self.logger.info(f"⚡ 易挥发溶剂:调整参数 → 温度 {temp}°C, 压力 {pressure} bar") - - self.logger.info(f"🌪️ 开始蒸发操作: {actual_vessel}") - self.logger.info(f" 🥽 容器: {actual_vessel}") - self.logger.info(f" 🌡️ 温度: {temp}°C") - self.logger.info(f" 💨 真空度: {pressure} bar") - self.logger.info(f" ⏰ 时间: {time}s") - self.logger.info(f" 🌀 转速: {stir_speed} RPM") - if solvent: - self.logger.info(f" 🧪 溶剂: {solvent}") - - # 验证参数 - if temp > self._max_temp or temp < 10.0: - error_msg = f"🌡️ 温度 {temp}°C 超出范围 (10-{self._max_temp}°C) ⚠️" - self.logger.error(f"❌ {error_msg}") - self.data.update( - { - "status": f"❌ 错误: 温度超出范围", - "rotavap_state": "Error", - "current_temp": 25.0, - "progress": 0.0, - "evaporated_volume": 0.0, - "message": error_msg, - } - ) - return False - - if stir_speed > self._max_rotation_speed or stir_speed < 10.0: - error_msg = f"🌀 旋转速度 {stir_speed} RPM 超出范围 (10-{self._max_rotation_speed} RPM) ⚠️" - self.logger.error(f"❌ {error_msg}") - self.data.update( - { - "status": f"❌ 错误: 转速超出范围", - "rotavap_state": "Error", - "current_temp": 25.0, - "progress": 0.0, - "evaporated_volume": 0.0, - "message": error_msg, - } - ) - return False - - if pressure < 0.01 or pressure > 1.0: - error_msg = f"💨 真空度 {pressure} bar 超出范围 (0.01-1.0 bar) ⚠️" - self.logger.error(f"❌ {error_msg}") - self.data.update( - { - "status": f"❌ 错误: 压力超出范围", - "rotavap_state": "Error", - "current_temp": 25.0, - "progress": 0.0, - "evaporated_volume": 0.0, - "message": error_msg, - } - ) - return False - - # 开始蒸发 - 🔧 现在time已经确保是float类型 - self.logger.info(f"🚀 启动蒸发程序! 预计用时 {time/60:.1f}分钟 ⏱️") - - self.data.update( - { - "status": f"🌪️ 蒸发中: {actual_vessel}", - "rotavap_state": "Evaporating", - "current_temp": temp, - "target_temp": temp, - "rotation_speed": stir_speed, - "vacuum_pressure": pressure, - "remaining_time": time, - "progress": 0.0, - "evaporated_volume": 0.0, - "message": f"🌪️ Evaporating {actual_vessel} at {temp}°C, {pressure} bar, {stir_speed} RPM", - } - ) - - try: - # 蒸发过程 - 实时更新进度 - start_time = time_module.time() - total_time = time - last_logged_progress = 0 - - while True: - current_time = time_module.time() - elapsed = current_time - start_time - remaining = max(0, total_time - elapsed) - progress = min(100.0, (elapsed / total_time) * 100) - - # 模拟蒸发体积 - 根据溶剂类型调整 - if solvent and any(s in solvent.lower() for s in ["water", "aqueous"]): - evaporated_vol = progress * 0.6 # 水系溶剂蒸发慢 - elif solvent and any(s in solvent.lower() for s in ["ethanol", "methanol", "acetone"]): - evaporated_vol = progress * 1.0 # 易挥发溶剂蒸发快 - else: - evaporated_vol = progress * 0.8 # 默认蒸发量 - - # 🔧 更新状态 - 确保包含所有必需字段 - status_msg = f"🌪️ 蒸发中: {actual_vessel} | 🌡️ {temp}°C | 💨 {pressure} bar | 🌀 {stir_speed} RPM | 📊 {progress:.1f}% | ⏰ 剩余: {remaining:.0f}s" - - self.data.update( - { - "remaining_time": remaining, - "progress": progress, - "evaporated_volume": evaporated_vol, - "current_temp": temp, - "status": status_msg, - "message": f"🌪️ Evaporating: {progress:.1f}% complete, 💧 {evaporated_vol:.1f}mL evaporated, ⏰ {remaining:.0f}s remaining", - } - ) - - # 进度日志(每25%打印一次) - if progress >= 25 and int(progress) % 25 == 0 and int(progress) != last_logged_progress: - self.logger.info( - f"📊 蒸发进度: {progress:.0f}% | 💧 已蒸发: {evaporated_vol:.1f}mL | ⏰ 剩余: {remaining:.0f}s ✨" - ) - last_logged_progress = int(progress) - - # 时间到了,退出循环 - if remaining <= 0: - break - - # 每秒更新一次 - await self._ros_node.sleep(1.0) - - # 蒸发完成 - if solvent and any(s in solvent.lower() for s in ["water", "aqueous"]): - final_evaporated = 60.0 # 水系溶剂 - elif solvent and any(s in solvent.lower() for s in ["ethanol", "methanol", "acetone"]): - final_evaporated = 100.0 # 易挥发溶剂 - else: - final_evaporated = 80.0 # 默认 - - self.data.update( - { - "status": f"✅ 蒸发完成: {actual_vessel} | 💧 蒸发量: {final_evaporated:.1f}mL", - "rotavap_state": "Completed", - "evaporated_volume": final_evaporated, - "progress": 100.0, - "current_temp": temp, - "remaining_time": 0.0, - "rotation_speed": 0.0, - "vacuum_pressure": 1.0, - "message": f"✅ Evaporation completed: {final_evaporated}mL evaporated from {actual_vessel}", - } - ) - - self.logger.info(f"🎉 蒸发操作完成! ✨") - self.logger.info(f"📊 蒸发结果:") - self.logger.info(f" 🥽 容器: {actual_vessel}") - self.logger.info(f" 💧 蒸发量: {final_evaporated:.1f}mL") - self.logger.info(f" 🌡️ 蒸发温度: {temp}°C") - self.logger.info(f" 💨 真空度: {pressure} bar") - self.logger.info(f" 🌀 旋转速度: {stir_speed} RPM") - self.logger.info(f" ⏱️ 总用时: {total_time:.0f}s") - if solvent: - self.logger.info(f" 🧪 处理溶剂: {solvent} 🏁") - - return True - - except Exception as e: - # 出错处理 - error_msg = f"蒸发过程中发生错误: {str(e)} 💥" - self.logger.error(f"❌ {error_msg}") - - self.data.update( - { - "status": f"❌ 蒸发错误: {str(e)}", - "rotavap_state": "Error", - "current_temp": 25.0, - "progress": 0.0, - "evaporated_volume": 0.0, - "rotation_speed": 0.0, - "vacuum_pressure": 1.0, - "message": f"❌ Evaporation failed: {str(e)}", - } - ) - return False - - # === 核心状态属性 === - @property - def status(self) -> str: - return self.data.get("status", "❓ Unknown") - - @property - def rotavap_state(self) -> str: - return self.data.get("rotavap_state", "Unknown") - - @property - def current_temp(self) -> float: - return self.data.get("current_temp", 25.0) - - @property - def rotation_speed(self) -> float: - return self.data.get("rotation_speed", 0.0) - - @property - def vacuum_pressure(self) -> float: - return self.data.get("vacuum_pressure", 1.0) - - @property - def evaporated_volume(self) -> float: - return self.data.get("evaporated_volume", 0.0) - - @property - def progress(self) -> float: - return self.data.get("progress", 0.0) - - @property - def message(self) -> str: - return self.data.get("message", "") - - @property - def max_temp(self) -> float: - return self._max_temp - - @property - def max_rotation_speed(self) -> float: - return self._max_rotation_speed - - @property - def remaining_time(self) -> float: - return self.data.get("remaining_time", 0.0) diff --git a/unilabos/devices/virtual/virtual_separator.py b/unilabos/devices/virtual/virtual_separator.py deleted file mode 100644 index 0f266ce1..00000000 --- a/unilabos/devices/virtual/virtual_separator.py +++ /dev/null @@ -1,191 +0,0 @@ -import asyncio -import logging -from typing import Dict, Any, Optional - -from unilabos.ros.nodes.base_device_node import BaseROS2DeviceNode - - -class VirtualSeparator: - """Virtual separator device for SeparateProtocol testing""" - - _ros_node: BaseROS2DeviceNode - - def __init__(self, device_id: Optional[str] = None, config: Optional[Dict[str, Any]] = None, **kwargs): - # 处理可能的不同调用方式 - if device_id is None and "id" in kwargs: - device_id = kwargs.pop("id") - if config is None and "config" in kwargs: - config = kwargs.pop("config") - - # 设置默认值 - self.device_id = device_id or "unknown_separator" - self.config = config or {} - - self.logger = logging.getLogger(f"VirtualSeparator.{self.device_id}") - self.data = {} - - # 添加调试信息 - print(f"=== VirtualSeparator {self.device_id} is being created! ===") - print(f"=== Config: {self.config} ===") - print(f"=== Kwargs: {kwargs} ===") - - # 从config或kwargs中获取配置参数 - self.port = self.config.get("port") or kwargs.get("port", "VIRTUAL") - self._volume = self.config.get("volume") or kwargs.get("volume", 250.0) - self._has_phases = self.config.get("has_phases") or kwargs.get("has_phases", True) - - # 处理其他kwargs参数,但跳过已知的配置参数 - skip_keys = {"port", "volume", "has_phases"} - for key, value in kwargs.items(): - if key not in skip_keys and not hasattr(self, key): - setattr(self, key, value) - - def post_init(self, ros_node: BaseROS2DeviceNode): - self._ros_node = ros_node - - async def initialize(self) -> bool: - """Initialize virtual separator""" - print(f"=== VirtualSeparator {self.device_id} initialize() called! ===") - self.logger.info(f"Initializing virtual separator {self.device_id}") - self.data.update( - { - "status": "Ready", - "separator_state": "Ready", - "volume": self._volume, - "has_phases": self._has_phases, - "phase_separation": False, - "stir_speed": 0.0, - "settling_time": 0.0, - "progress": 0.0, - "message": "", - } - ) - return True - - async def cleanup(self) -> bool: - """Cleanup virtual separator""" - self.logger.info(f"Cleaning up virtual separator {self.device_id}") - return True - - async def separate( - self, - purpose: str, - product_phase: str, - from_vessel: str, - separation_vessel: str, - to_vessel: str, - waste_phase_to_vessel: str = "", - solvent: str = "", - solvent_volume: float = 50.0, - through: str = "", - repeats: int = 1, - stir_time: float = 30.0, - stir_speed: float = 300.0, - settling_time: float = 300.0, - ) -> bool: - """Execute separate action - matches Separate action""" - self.logger.info(f"Separate: purpose={purpose}, product_phase={product_phase}, from_vessel={from_vessel}") - - # 验证参数 - if product_phase not in ["top", "bottom"]: - self.logger.error(f"Invalid product_phase {product_phase}, must be 'top' or 'bottom'") - self.data["message"] = f"产物相位 {product_phase} 无效,必须是 'top' 或 'bottom'" - return False - - if purpose not in ["wash", "extract"]: - self.logger.error(f"Invalid purpose {purpose}, must be 'wash' or 'extract'") - self.data["message"] = f"分离目的 {purpose} 无效,必须是 'wash' 或 'extract'" - return False - - # 开始分离 - self.data.update( - { - "status": "Running", - "separator_state": "Separating", - "purpose": purpose, - "product_phase": product_phase, - "from_vessel": from_vessel, - "separation_vessel": separation_vessel, - "to_vessel": to_vessel, - "waste_phase_to_vessel": waste_phase_to_vessel, - "solvent": solvent, - "solvent_volume": solvent_volume, - "repeats": repeats, - "stir_speed": stir_speed, - "settling_time": settling_time, - "phase_separation": True, - "progress": 0.0, - "message": f"正在分离: {from_vessel} -> {to_vessel}", - } - ) - - # 模拟分离过程 - total_time = (stir_time + settling_time) * repeats - simulation_time = min(total_time / 60.0, 15.0) # 最多模拟15秒 - - for repeat in range(repeats): - # 搅拌阶段 - for progress in range(0, 51, 10): - await self._ros_node.sleep(simulation_time / (repeats * 10)) - overall_progress = ((repeat * 100) + (progress * 0.5)) / repeats - self.data["progress"] = overall_progress - self.data["message"] = f"第{repeat+1}次分离 - 搅拌中 ({progress}%)" - - # 静置分相阶段 - for progress in range(50, 101, 10): - await self._ros_node.sleep(simulation_time / (repeats * 10)) - overall_progress = ((repeat * 100) + (progress * 0.5)) / repeats - self.data["progress"] = overall_progress - self.data["message"] = f"第{repeat+1}次分离 - 静置分相中 ({progress}%)" - - # 分离完成 - self.data.update( - { - "status": "Ready", - "separator_state": "Ready", - "phase_separation": False, - "stir_speed": 0.0, - "progress": 100.0, - "message": f"分离完成: {repeats}次分离操作", - } - ) - - self.logger.info(f"Separation completed: {repeats} cycles from {from_vessel} to {to_vessel}") - return True - - # 状态属性 - @property - def status(self) -> str: - return self.data.get("status", "Unknown") - - @property - def separator_state(self) -> str: - return self.data.get("separator_state", "Unknown") - - @property - def volume(self) -> float: - return self.data.get("volume", self._volume) - - @property - def has_phases(self) -> bool: - return self.data.get("has_phases", self._has_phases) - - @property - def phase_separation(self) -> bool: - return self.data.get("phase_separation", False) - - @property - def stir_speed(self) -> float: - return self.data.get("stir_speed", 0.0) - - @property - def settling_time(self) -> float: - return self.data.get("settling_time", 0.0) - - @property - def progress(self) -> float: - return self.data.get("progress", 0.0) - - @property - def message(self) -> str: - return self.data.get("message", "") diff --git a/unilabos/devices/virtual/virtual_solenoid_valve.py b/unilabos/devices/virtual/virtual_solenoid_valve.py deleted file mode 100644 index 26970cbe..00000000 --- a/unilabos/devices/virtual/virtual_solenoid_valve.py +++ /dev/null @@ -1,147 +0,0 @@ -import time -import asyncio -from typing import Union - -from unilabos.ros.nodes.base_device_node import BaseROS2DeviceNode - - -class VirtualSolenoidValve: - """ - 虚拟电磁阀门 - 简单的开关型阀门,只有开启和关闭两个状态 - """ - - _ros_node: BaseROS2DeviceNode - - def __init__(self, device_id: str = None, config: dict = None, **kwargs): - # 从配置中获取参数,提供默认值 - if config is None: - config = {} - - self.device_id = device_id - self.port = config.get("port", "VIRTUAL") - self.voltage = config.get("voltage", 12.0) - self.response_time = config.get("response_time", 0.1) - - # 状态属性 - self._status = "Idle" - self._valve_state = "Closed" # "Open" or "Closed" - self._is_open = False - - def post_init(self, ros_node: BaseROS2DeviceNode): - self._ros_node = ros_node - - async def initialize(self) -> bool: - """初始化设备""" - self._status = "Idle" - return True - - async def cleanup(self) -> bool: - """清理资源""" - return True - - @property - def status(self) -> str: - return self._status - - @property - def valve_state(self) -> str: - return self._valve_state - - @property - def is_open(self) -> bool: - return self._is_open - - @property - def valve_position(self) -> str: - """获取阀门位置状态""" - return "OPEN" if self._is_open else "CLOSED" - - async def set_valve_position(self, command: str = None, **kwargs): - """ - 设置阀门位置 - ROS动作接口 - - Args: - command: "OPEN"/"CLOSED" 或其他控制命令 - """ - if command is None: - return {"success": False, "message": "Missing command parameter"} - - print(f"SOLENOID_VALVE: {self.device_id} 接收到命令: {command}") - - self._status = "Busy" - - # 模拟阀门响应时间 - await self._ros_node.sleep(self.response_time) - - # 处理不同的命令格式 - if isinstance(command, str): - cmd_upper = command.upper() - if cmd_upper in ["OPEN", "ON", "TRUE", "1"]: - self._is_open = True - self._valve_state = "Open" - result_msg = f"Valve {self.device_id} opened" - elif cmd_upper in ["CLOSED", "CLOSE", "OFF", "FALSE", "0"]: - self._is_open = False - self._valve_state = "Closed" - result_msg = f"Valve {self.device_id} closed" - else: - # 可能是端口名称,处理路径设置 - # 对于简单电磁阀,任何非关闭命令都视为开启 - self._is_open = True - self._valve_state = "Open" - result_msg = f"Valve {self.device_id} set to position: {command}" - else: - self._status = "Error" - return {"success": False, "message": "Invalid command type"} - - self._status = "Idle" - print(f"SOLENOID_VALVE: {result_msg}") - - return { - "success": True, - "message": result_msg, - "valve_position": self.valve_position - } - - async def open(self, **kwargs): - """打开电磁阀 - ROS动作接口""" - return await self.set_valve_position(command="OPEN") - - async def close(self, **kwargs): - """关闭电磁阀 - ROS动作接口""" - return await self.set_valve_position(command="CLOSED") - - async def set_status(self, string: str = None, **kwargs): - """ - 设置阀门状态 - 兼容 StrSingleInput 类型 - - Args: - string: "ON"/"OFF" 或 "OPEN"/"CLOSED" - """ - if string is None: - return {"success": False, "message": "Missing string parameter"} - - # 将 string 参数转换为 command 参数 - if string.upper() in ["ON", "OPEN"]: - command = "OPEN" - elif string.upper() in ["OFF", "CLOSED"]: - command = "CLOSED" - else: - command = string - - return await self.set_valve_position(command=command) - - def toggle(self): - """切换阀门状态""" - if self._is_open: - return self.close() - else: - return self.open() - - def is_closed(self) -> bool: - """检查阀门是否关闭""" - return not self._is_open - - async def reset(self): - """重置阀门到关闭状态""" - return await self.close() \ No newline at end of file diff --git a/unilabos/devices/virtual/virtual_solid_dispenser.py b/unilabos/devices/virtual/virtual_solid_dispenser.py deleted file mode 100644 index 63182616..00000000 --- a/unilabos/devices/virtual/virtual_solid_dispenser.py +++ /dev/null @@ -1,379 +0,0 @@ -import asyncio -import logging -import re -from typing import Dict, Any, Optional - -from unilabos.ros.nodes.base_device_node import BaseROS2DeviceNode - -class VirtualSolidDispenser: - """ - 虚拟固体粉末加样器 - 用于处理 Add Protocol 中的固体试剂添加 ⚗️ - - 特点: - - 高兼容性:缺少参数不报错 ✅ - - 智能识别:自动查找固体试剂瓶 🔍 - - 简单反馈:成功/失败 + 消息 📊 - """ - - _ros_node: BaseROS2DeviceNode - - def __init__(self, device_id: str = None, config: Dict[str, Any] = None, **kwargs): - self.device_id = device_id or "virtual_solid_dispenser" - self.config = config or {} - - # 设备参数 - self.max_capacity = float(self.config.get('max_capacity', 100.0)) # 最大加样量 (g) - self.precision = float(self.config.get('precision', 0.001)) # 精度 (g) - - # 状态变量 - self._status = "Idle" - self._current_reagent = "" - self._dispensed_amount = 0.0 - self._total_operations = 0 - - self.logger = logging.getLogger(f"VirtualSolidDispenser.{self.device_id}") - - print(f"⚗️ === 虚拟固体分配器 {self.device_id} 创建成功! === ✨") - print(f"📊 设备规格: 最大容量 {self.max_capacity}g | 精度 {self.precision}g 🎯") - - def post_init(self, ros_node: BaseROS2DeviceNode): - self._ros_node = ros_node - - async def initialize(self) -> bool: - """初始化固体加样器 🚀""" - self.logger.info(f"🔧 初始化固体分配器 {self.device_id} ✨") - self._status = "Ready" - self._current_reagent = "" - self._dispensed_amount = 0.0 - - self.logger.info(f"✅ 固体分配器 {self.device_id} 初始化完成 ⚗️") - return True - - async def cleanup(self) -> bool: - """清理固体加样器 🧹""" - self.logger.info(f"🧹 清理固体分配器 {self.device_id} 🔚") - self._status = "Idle" - - self.logger.info(f"✅ 固体分配器 {self.device_id} 清理完成 💤") - return True - - def parse_mass_string(self, mass_str: str) -> float: - """ - 解析质量字符串为数值 (g) ⚖️ - - 支持格式: "2.9 g", "19.3g", "4.5 mg", "1.2 kg" 等 - """ - if not mass_str or not isinstance(mass_str, str): - return 0.0 - - # 移除空格并转小写 - mass_clean = mass_str.strip().lower() - - # 正则匹配数字和单位 - pattern = r'(\d+(?:\.\d+)?)\s*([a-z]*)' - match = re.search(pattern, mass_clean) - - if not match: - self.logger.debug(f"🔍 无法解析质量字符串: {mass_str}") - return 0.0 - - try: - value = float(match.group(1)) - unit = match.group(2) or 'g' # 默认单位 g - - # 单位转换为 g - unit_multipliers = { - 'g': 1.0, - 'gram': 1.0, - 'grams': 1.0, - 'mg': 0.001, - 'milligram': 0.001, - 'milligrams': 0.001, - 'kg': 1000.0, - 'kilogram': 1000.0, - 'kilograms': 1000.0, - 'μg': 0.000001, - 'ug': 0.000001, - 'microgram': 0.000001, - 'micrograms': 0.000001, - } - - multiplier = unit_multipliers.get(unit, 1.0) - result = value * multiplier - - self.logger.debug(f"⚖️ 质量解析: {mass_str} → {result:.6f}g (原值: {value} {unit})") - return result - - except (ValueError, TypeError): - self.logger.warning(f"⚠️ 无法解析质量字符串: {mass_str}") - return 0.0 - - def parse_mol_string(self, mol_str: str) -> float: - """ - 解析摩尔数字符串为数值 (mol) 🧮 - - 支持格式: "0.12 mol", "16.2 mmol", "25.2mmol" 等 - """ - if not mol_str or not isinstance(mol_str, str): - return 0.0 - - # 移除空格并转小写 - mol_clean = mol_str.strip().lower() - - # 正则匹配数字和单位 - pattern = r'(\d+(?:\.\d+)?)\s*(m?mol)' - match = re.search(pattern, mol_clean) - - if not match: - self.logger.debug(f"🔍 无法解析摩尔数字符串: {mol_str}") - return 0.0 - - try: - value = float(match.group(1)) - unit = match.group(2) - - # 单位转换为 mol - if unit == 'mmol': - result = value * 0.001 - else: # mol - result = value - - self.logger.debug(f"🧮 摩尔数解析: {mol_str} → {result:.6f}mol (原值: {value} {unit})") - return result - - except (ValueError, TypeError): - self.logger.warning(f"⚠️ 无法解析摩尔数字符串: {mol_str}") - return 0.0 - - def find_solid_reagent_bottle(self, reagent_name: str) -> str: - """ - 查找固体试剂瓶 🔍 - - 这是一个简化版本,实际使用时应该连接到系统的设备图 - """ - if not reagent_name: - self.logger.debug(f"🔍 未指定试剂名称,使用默认瓶") - return "unknown_solid_bottle" - - # 可能的固体试剂瓶命名模式 - possible_names = [ - f"solid_bottle_{reagent_name}", - f"reagent_solid_{reagent_name}", - f"powder_{reagent_name}", - f"{reagent_name}_solid", - f"{reagent_name}_powder", - f"solid_{reagent_name}", - ] - - # 这里简化处理,实际应该查询设备图 - selected_bottle = possible_names[0] - self.logger.debug(f"🔍 为试剂 {reagent_name} 选择试剂瓶: {selected_bottle}") - return selected_bottle - - async def add_solid( - self, - vessel: str, - reagent: str, - mass: str = "", - mol: str = "", - purpose: str = "", - **kwargs # 兼容额外参数 - ) -> Dict[str, Any]: - """ - 添加固体试剂的主要方法 ⚗️ - - Args: - vessel: 目标容器 - reagent: 试剂名称 - mass: 质量字符串 (如 "2.9 g") - mol: 摩尔数字符串 (如 "0.12 mol") - purpose: 添加目的 - **kwargs: 其他兼容参数 - - Returns: - Dict: 操作结果 - """ - try: - self.logger.info(f"⚗️ === 开始固体加样操作 === ✨") - self.logger.info(f" 🥽 目标容器: {vessel}") - self.logger.info(f" 🧪 试剂: {reagent}") - self.logger.info(f" ⚖️ 质量: {mass}") - self.logger.info(f" 🧮 摩尔数: {mol}") - self.logger.info(f" 📝 目的: {purpose}") - - # 参数验证 - 宽松处理 - if not vessel: - vessel = "main_reactor" # 默认容器 - self.logger.warning(f"⚠️ 未指定容器,使用默认容器: {vessel} 🏠") - - if not reagent: - error_msg = "❌ 错误: 必须指定试剂名称" - self.logger.error(error_msg) - return { - "success": False, - "message": error_msg, - "return_info": "missing_reagent" - } - - # 解析质量和摩尔数 - mass_value = self.parse_mass_string(mass) - mol_value = self.parse_mol_string(mol) - - self.logger.info(f"📊 解析结果 - 质量: {mass_value:.6f}g | 摩尔数: {mol_value:.6f}mol") - - # 确定实际加样量 - if mass_value > 0: - actual_amount = mass_value - amount_unit = "g" - amount_emoji = "⚖️" - self.logger.info(f"⚖️ 按质量加样: {actual_amount:.6f} {amount_unit}") - elif mol_value > 0: - # 简化处理:假设分子量为100 g/mol - assumed_mw = 100.0 - actual_amount = mol_value * assumed_mw - amount_unit = "g (from mol)" - amount_emoji = "🧮" - self.logger.info(f"🧮 按摩尔数加样: {mol_value:.6f} mol → {actual_amount:.6f} g (假设分子量 {assumed_mw})") - else: - # 没有指定量,使用默认值 - actual_amount = 1.0 - amount_unit = "g (default)" - amount_emoji = "🎯" - self.logger.warning(f"⚠️ 未指定质量或摩尔数,使用默认值: {actual_amount} {amount_unit} 🎯") - - # 检查容量限制 - if actual_amount > self.max_capacity: - error_msg = f"❌ 错误: 请求量 {actual_amount:.3f}g 超过最大容量 {self.max_capacity}g" - self.logger.error(error_msg) - return { - "success": False, - "message": error_msg, - "return_info": "exceeds_capacity" - } - - # 查找试剂瓶 - reagent_bottle = self.find_solid_reagent_bottle(reagent) - self.logger.info(f"🔍 使用试剂瓶: {reagent_bottle}") - - # 模拟加样过程 - self._status = "Dispensing" - self._current_reagent = reagent - - # 计算操作时间 (基于质量) - operation_time = max(0.5, actual_amount * 0.1) # 每克0.1秒,最少0.5秒 - - self.logger.info(f"🚀 开始加样,预计时间: {operation_time:.1f}秒 ⏱️") - - # 显示进度的模拟 - steps = max(3, int(operation_time)) - step_time = operation_time / steps - - for i in range(steps): - progress = (i + 1) / steps * 100 - await self._ros_node.sleep(step_time) - if i % 2 == 0: # 每隔一步显示进度 - self.logger.debug(f"📊 加样进度: {progress:.0f}% | {amount_emoji} 正在分配 {reagent}...") - - # 更新状态 - self._dispensed_amount = actual_amount - self._total_operations += 1 - self._status = "Ready" - - # 成功结果 - success_message = f"✅ 成功添加 {reagent} {actual_amount:.6f} {amount_unit} 到 {vessel}" - - self.logger.info(f"🎉 === 固体加样完成 === ✨") - self.logger.info(f"📊 操作结果:") - self.logger.info(f" ✅ {success_message}") - self.logger.info(f" 🧪 试剂瓶: {reagent_bottle}") - self.logger.info(f" ⏱️ 用时: {operation_time:.1f}秒") - self.logger.info(f" 🎯 总操作次数: {self._total_operations} 🏁") - - return { - "success": True, - "message": success_message, - "return_info": f"dispensed_{actual_amount:.6f}g", - "dispensed_amount": actual_amount, - "reagent": reagent, - "vessel": {"id": vessel}, - } - - except Exception as e: - error_message = f"❌ 固体加样失败: {str(e)} 💥" - self.logger.error(error_message) - self._status = "Error" - - return { - "success": False, - "message": error_message, - "return_info": "operation_failed" - } - - # 状态属性 - @property - def status(self) -> str: - return self._status - - @property - def current_reagent(self) -> str: - return self._current_reagent - - @property - def dispensed_amount(self) -> float: - return self._dispensed_amount - - @property - def total_operations(self) -> int: - return self._total_operations - - def __str__(self): - status_emoji = "✅" if self._status == "Ready" else "🔄" if self._status == "Dispensing" else "❌" if self._status == "Error" else "🏠" - return f"⚗️ VirtualSolidDispenser({status_emoji} {self.device_id}: {self._status}, 最后加样 {self._dispensed_amount:.3f}g)" - - -# 测试函数 -async def test_solid_dispenser(): - """测试固体加样器 🧪""" - print("⚗️ === 固体加样器测试开始 === 🧪") - - dispenser = VirtualSolidDispenser("test_dispenser") - await dispenser.initialize() - - # 测试1: 按质量加样 - print(f"\n🧪 测试1: 按质量加样...") - result1 = await dispenser.add_solid( - vessel="main_reactor", - reagent="magnesium", - mass="2.9 g" - ) - print(f"📊 测试1结果: {result1}") - - # 测试2: 按摩尔数加样 - print(f"\n🧮 测试2: 按摩尔数加样...") - result2 = await dispenser.add_solid( - vessel="main_reactor", - reagent="sodium_nitrite", - mol="0.28 mol" - ) - print(f"📊 测试2结果: {result2}") - - # 测试3: 缺少参数 - print(f"\n⚠️ 测试3: 缺少参数测试...") - result3 = await dispenser.add_solid( - reagent="test_compound" - ) - print(f"📊 测试3结果: {result3}") - - # 测试4: 超容量测试 - print(f"\n❌ 测试4: 超容量测试...") - result4 = await dispenser.add_solid( - vessel="main_reactor", - reagent="heavy_compound", - mass="150 g" # 超过100g限制 - ) - print(f"📊 测试4结果: {result4}") - print(f"✅ === 测试完成 === 🎉") - - -if __name__ == "__main__": - asyncio.run(test_solid_dispenser()) \ No newline at end of file diff --git a/unilabos/devices/virtual/virtual_stirrer.py b/unilabos/devices/virtual/virtual_stirrer.py deleted file mode 100644 index 8e95617f..00000000 --- a/unilabos/devices/virtual/virtual_stirrer.py +++ /dev/null @@ -1,336 +0,0 @@ -import asyncio -import logging -import time as time_module -from typing import Dict, Any - -from unilabos.ros.nodes.base_device_node import BaseROS2DeviceNode - -class VirtualStirrer: - """Virtual stirrer device for StirProtocol testing - 功能完整版 🌪️""" - - _ros_node: BaseROS2DeviceNode - - def __init__(self, device_id: str = None, config: Dict[str, Any] = None, **kwargs): - # 处理可能的不同调用方式 - if device_id is None and 'id' in kwargs: - device_id = kwargs.pop('id') - if config is None and 'config' in kwargs: - config = kwargs.pop('config') - - # 设置默认值 - self.device_id = device_id or "unknown_stirrer" - self.config = config or {} - - self.logger = logging.getLogger(f"VirtualStirrer.{self.device_id}") - self.data = {} - - # 从config或kwargs中获取配置参数 - self.port = self.config.get('port') or kwargs.get('port', 'VIRTUAL') - self._max_speed = self.config.get('max_speed') or kwargs.get('max_speed', 1500.0) - self._min_speed = self.config.get('min_speed') or kwargs.get('min_speed', 50.0) - - # 处理其他kwargs参数 - skip_keys = {'port', 'max_speed', 'min_speed'} - for key, value in kwargs.items(): - if key not in skip_keys and not hasattr(self, key): - setattr(self, key, value) - - print(f"🌪️ === 虚拟搅拌器 {self.device_id} 已创建 === ✨") - print(f"🔧 速度范围: {self._min_speed} ~ {self._max_speed} RPM | 📱 端口: {self.port}") - - def post_init(self, ros_node: BaseROS2DeviceNode): - self._ros_node = ros_node - - async def initialize(self) -> bool: - """Initialize virtual stirrer 🚀""" - self.logger.info(f"🔧 初始化虚拟搅拌器 {self.device_id} ✨") - - # 初始化状态信息 - self.data.update({ - "status": "🏠 待机中", - "operation_mode": "Idle", # 操作模式: Idle, Stirring, Settling, Completed, Error - "current_vessel": "", # 当前搅拌的容器 - "current_speed": 0.0, # 当前搅拌速度 - "is_stirring": False, # 是否正在搅拌 - "remaining_time": 0.0, # 剩余时间 - }) - - self.logger.info(f"✅ 搅拌器 {self.device_id} 初始化完成 🌪️") - self.logger.info(f"📊 设备规格: 速度范围 {self._min_speed} ~ {self._max_speed} RPM") - return True - - async def cleanup(self) -> bool: - """Cleanup virtual stirrer 🧹""" - self.logger.info(f"🧹 清理虚拟搅拌器 {self.device_id} 🔚") - - self.data.update({ - "status": "💤 离线", - "operation_mode": "Offline", - "current_vessel": "", - "current_speed": 0.0, - "is_stirring": False, - "remaining_time": 0.0, - }) - - self.logger.info(f"✅ 搅拌器 {self.device_id} 清理完成 💤") - return True - - async def stir(self, stir_time: float, stir_speed: float, settling_time: float, **kwargs) -> bool: - """Execute stir action - 定时搅拌 + 沉降 🌪️""" - - # 🔧 类型转换 - 确保所有参数都是数字类型 - try: - stir_time = float(stir_time) - stir_speed = float(stir_speed) - settling_time = float(settling_time) - except (ValueError, TypeError) as e: - error_msg = f"参数类型转换失败: stir_time={stir_time}, stir_speed={stir_speed}, settling_time={settling_time}, error={e}" - self.logger.error(f"❌ {error_msg}") - self.data.update({ - "status": f"❌ 错误: {error_msg}", - "operation_mode": "Error" - }) - return False - - self.logger.info(f"🌪️ 开始搅拌操作: 速度 {stir_speed} RPM | 时间 {stir_time}s | 沉降 {settling_time}s") - - # 验证参数 - if stir_speed > self._max_speed or stir_speed < self._min_speed: - error_msg = f"🌪️ 搅拌速度 {stir_speed} RPM 超出范围 ({self._min_speed} - {self._max_speed} RPM) ⚠️" - self.logger.error(f"❌ {error_msg}") - self.data.update({ - "status": f"❌ 错误: 速度超出范围", - "operation_mode": "Error" - }) - return False - - # === 第一阶段:搅拌 === - start_time = time_module.time() - total_stir_time = stir_time - - self.logger.info(f"🚀 开始搅拌阶段: {stir_speed} RPM × {total_stir_time}s ⏱️") - - self.data.update({ - "status": f"🌪️ 搅拌中: {stir_speed} RPM | ⏰ 剩余: {total_stir_time:.0f}s", - "operation_mode": "Stirring", - "current_speed": stir_speed, - "is_stirring": True, - "remaining_time": total_stir_time, - }) - - # 搅拌过程 - 实时更新剩余时间 - last_logged_time = 0 - while True: - current_time = time_module.time() - elapsed = current_time - start_time - remaining = max(0, total_stir_time - elapsed) - progress = (elapsed / total_stir_time) * 100 if total_stir_time > 0 else 100 - - # 更新状态 - self.data.update({ - "remaining_time": remaining, - "status": f"🌪️ 搅拌中: {stir_speed} RPM | ⏰ 剩余: {remaining:.0f}s" - }) - - # 进度日志(每25%打印一次) - if progress >= 25 and int(progress) % 25 == 0 and int(progress) != last_logged_time: - self.logger.info(f"📊 搅拌进度: {progress:.0f}% | 🌪️ {stir_speed} RPM | ⏰ 剩余: {remaining:.0f}s ✨") - last_logged_time = int(progress) - - # 搅拌时间到了 - if remaining <= 0: - break - - await self._ros_node.sleep(1.0) - - self.logger.info(f"✅ 搅拌阶段完成! 🌪️ {stir_speed} RPM × {stir_time}s") - - # === 第二阶段:沉降(如果需要)=== - if settling_time > 0: - start_settling_time = time_module.time() - total_settling_time = settling_time - - self.logger.info(f"🛑 开始沉降阶段: 停止搅拌 × {total_settling_time}s ⏱️") - - self.data.update({ - "status": f"🛑 沉降中: 停止搅拌 | ⏰ 剩余: {total_settling_time:.0f}s", - "operation_mode": "Settling", - "current_speed": 0.0, - "is_stirring": False, - "remaining_time": total_settling_time, - }) - - # 沉降过程 - 实时更新剩余时间 - last_logged_settling = 0 - while True: - current_time = time_module.time() - elapsed = current_time - start_settling_time - remaining = max(0, total_settling_time - elapsed) - progress = (elapsed / total_settling_time) * 100 if total_settling_time > 0 else 100 - - # 更新状态 - self.data.update({ - "remaining_time": remaining, - "status": f"🛑 沉降中: 停止搅拌 | ⏰ 剩余: {remaining:.0f}s" - }) - - # 进度日志(每25%打印一次) - if progress >= 25 and int(progress) % 25 == 0 and int(progress) != last_logged_settling: - self.logger.info(f"📊 沉降进度: {progress:.0f}% | 🛑 静置中 | ⏰ 剩余: {remaining:.0f}s ✨") - last_logged_settling = int(progress) - - # 沉降时间到了 - if remaining <= 0: - break - - await self._ros_node.sleep(1.0) - - self.logger.info(f"✅ 沉降阶段完成! 🛑 静置 {settling_time}s") - - # === 操作完成 === - settling_info = f" | 🛑 沉降: {settling_time:.0f}s" if settling_time > 0 else "" - - self.data.update({ - "status": f"✅ 完成: 🌪️ 搅拌 {stir_speed} RPM × {stir_time:.0f}s{settling_info}", - "operation_mode": "Completed", - "current_speed": 0.0, - "is_stirring": False, - "remaining_time": 0.0, - }) - - self.logger.info(f"🎉 搅拌操作完成! ✨") - self.logger.info(f"📊 操作总结:") - self.logger.info(f" 🌪️ 搅拌: {stir_speed} RPM × {stir_time}s") - if settling_time > 0: - self.logger.info(f" 🛑 沉降: {settling_time}s") - self.logger.info(f" ⏱️ 总用时: {(stir_time + settling_time):.0f}s 🏁") - - return True - - async def start_stir(self, vessel: str, stir_speed: float, purpose: str = "") -> bool: - """Start stir action - 开始持续搅拌 🔄""" - - # 🔧 类型转换 - try: - stir_speed = float(stir_speed) - vessel = str(vessel) - purpose = str(purpose) - except (ValueError, TypeError) as e: - error_msg = f"参数类型转换错误: {str(e)}" - self.logger.error(f"❌ {error_msg}") - self.data.update({ - "status": f"❌ 错误: {error_msg}", - "operation_mode": "Error" - }) - return False - - self.logger.info(f"🔄 启动持续搅拌: {vessel} | 🌪️ {stir_speed} RPM") - if purpose: - self.logger.info(f"📝 搅拌目的: {purpose}") - - # 验证参数 - if stir_speed > self._max_speed or stir_speed < self._min_speed: - error_msg = f"🌪️ 搅拌速度 {stir_speed} RPM 超出范围 ({self._min_speed} - {self._max_speed} RPM) ⚠️" - self.logger.error(f"❌ {error_msg}") - self.data.update({ - "status": f"❌ 错误: 速度超出范围", - "operation_mode": "Error" - }) - return False - - purpose_info = f" | 📝 {purpose}" if purpose else "" - - self.data.update({ - "status": f"🔄 启动: 持续搅拌 {vessel} | 🌪️ {stir_speed} RPM{purpose_info}", - "operation_mode": "Stirring", - "current_vessel": vessel, - "current_speed": stir_speed, - "is_stirring": True, - "remaining_time": -1.0, # -1 表示持续运行 - }) - - self.logger.info(f"✅ 持续搅拌已启动! 🌪️ {stir_speed} RPM × ♾️ 🚀") - return True - - async def stop_stir(self, vessel: str) -> bool: - """Stop stir action - 停止搅拌 🛑""" - - # 🔧 类型转换 - try: - vessel = str(vessel) - except (ValueError, TypeError) as e: - error_msg = f"参数类型转换错误: {str(e)}" - self.logger.error(f"❌ {error_msg}") - return False - - current_speed = self.data.get("current_speed", 0.0) - - self.logger.info(f"🛑 停止搅拌: {vessel}") - if current_speed > 0: - self.logger.info(f"🌪️ 之前搅拌速度: {current_speed} RPM") - - self.data.update({ - "status": f"🛑 已停止: {vessel} 搅拌停止 | 之前速度: {current_speed} RPM", - "operation_mode": "Stopped", - "current_vessel": "", - "current_speed": 0.0, - "is_stirring": False, - "remaining_time": 0.0, - }) - - self.logger.info(f"✅ 搅拌器已停止 {vessel} 的搅拌操作 🏁") - return True - - # 状态属性 - @property - def status(self) -> str: - return self.data.get("status", "🏠 待机中") - - @property - def operation_mode(self) -> str: - return self.data.get("operation_mode", "Idle") - - @property - def current_vessel(self) -> str: - return self.data.get("current_vessel", "") - - @property - def current_speed(self) -> float: - return self.data.get("current_speed", 0.0) - - @property - def is_stirring(self) -> bool: - return self.data.get("is_stirring", False) - - @property - def remaining_time(self) -> float: - return self.data.get("remaining_time", 0.0) - - @property - def max_speed(self) -> float: - return self._max_speed - - @property - def min_speed(self) -> float: - return self._min_speed - - def get_device_info(self) -> Dict[str, Any]: - """获取设备状态信息 📊""" - info = { - "device_id": self.device_id, - "status": self.status, - "operation_mode": self.operation_mode, - "current_vessel": self.current_vessel, - "current_speed": self.current_speed, - "is_stirring": self.is_stirring, - "remaining_time": self.remaining_time, - "max_speed": self._max_speed, - "min_speed": self._min_speed - } - - # self.logger.debug(f"📊 设备信息: 模式={self.operation_mode}, 速度={self.current_speed} RPM, 搅拌={self.is_stirring}") - return info - - def __str__(self): - status_emoji = "✅" if self.operation_mode == "Idle" else "🌪️" if self.operation_mode == "Stirring" else "🛑" if self.operation_mode == "Settling" else "❌" - return f"🌪️ VirtualStirrer({status_emoji} {self.device_id}: {self.operation_mode}, {self.current_speed} RPM)" \ No newline at end of file diff --git a/unilabos/devices/virtual/virtual_transferpump.py b/unilabos/devices/virtual/virtual_transferpump.py deleted file mode 100644 index 7b8eea86..00000000 --- a/unilabos/devices/virtual/virtual_transferpump.py +++ /dev/null @@ -1,422 +0,0 @@ -import asyncio -import time -from enum import Enum -from typing import Union, Optional -import logging - -from unilabos.ros.nodes.base_device_node import BaseROS2DeviceNode - - -class VirtualPumpMode(Enum): - Normal = 0 - AccuratePos = 1 - AccuratePosVel = 2 - - -class VirtualTransferPump: - """虚拟转移泵类 - 模拟泵的基本功能,无需实际硬件 🚰""" - - _ros_node: BaseROS2DeviceNode - - def __init__(self, device_id: str = None, config: dict = None, **kwargs): - """ - 初始化虚拟转移泵 - - Args: - device_id: 设备ID - config: 配置字典,包含max_volume, port等参数 - **kwargs: 其他参数,确保兼容性 - """ - self.device_id = device_id or "virtual_transfer_pump" - - # 从config或kwargs中获取参数,确保类型正确 - if config: - self.max_volume = float(config.get('max_volume', 25.0)) - self.port = config.get('port', 'VIRTUAL') - else: - self.max_volume = float(kwargs.get('max_volume', 25.0)) - self.port = kwargs.get('port', 'VIRTUAL') - - self._transfer_rate = float(kwargs.get('transfer_rate', 0)) - self.mode = kwargs.get('mode', VirtualPumpMode.Normal) - - # 状态变量 - 确保都是正确类型 - self._status = "Idle" - self._position = 0.0 # float - self._max_velocity = 5.0 # float - self._current_volume = 0.0 # float - - # 🚀 新增:快速模式设置 - 大幅缩短执行时间 - self._fast_mode = True # 是否启用快速模式 - self._fast_move_time = 1.0 # 快速移动时间(秒) - self._fast_dispense_time = 1.0 # 快速喷射时间(秒) - - self.logger = logging.getLogger(f"VirtualTransferPump.{self.device_id}") - - print(f"🚰 === 虚拟转移泵 {self.device_id} 已创建 === ✨") - print(f"💨 快速模式: {'启用' if self._fast_mode else '禁用'} | 移动时间: {self._fast_move_time}s | 喷射时间: {self._fast_dispense_time}s") - print(f"📊 最大容量: {self.max_volume}mL | 端口: {self.port}") - - def post_init(self, ros_node: BaseROS2DeviceNode): - self._ros_node = ros_node - - async def initialize(self) -> bool: - """初始化虚拟泵 🚀""" - self.logger.info(f"🔧 初始化虚拟转移泵 {self.device_id} ✨") - self._status = "Idle" - self._position = 0.0 - self._current_volume = 0.0 - self.logger.info(f"✅ 转移泵 {self.device_id} 初始化完成 🚰") - return True - - async def cleanup(self) -> bool: - """清理虚拟泵 🧹""" - self.logger.info(f"🧹 清理虚拟转移泵 {self.device_id} 🔚") - self._status = "Idle" - self.logger.info(f"✅ 转移泵 {self.device_id} 清理完成 💤") - return True - - # 基本属性 - @property - def status(self) -> str: - return self._status - - @property - def position(self) -> float: - """当前柱塞位置 (ml) 📍""" - return self._position - - @property - def current_volume(self) -> float: - """当前注射器中的体积 (ml) 💧""" - return self._current_volume - - @property - def max_velocity(self) -> float: - return self._max_velocity - - @property - def transfer_rate(self) -> float: - return self._transfer_rate - - def set_max_velocity(self, velocity: float): - """设置最大速度 (ml/s) 🌊""" - self._max_velocity = max(0.1, min(50.0, velocity)) # 限制在合理范围内 - self.logger.info(f"🌊 设置最大速度为 {self._max_velocity} mL/s") - - def get_status(self) -> str: - """获取泵状态 📋""" - return self._status - - async def _simulate_operation(self, duration: float): - """模拟操作延时 ⏱️""" - self._status = "Busy" - await self._ros_node.sleep(duration) - self._status = "Idle" - - def _calculate_duration(self, volume: float, velocity: float = None) -> float: - """ - 计算操作持续时间 ⏰ - 🚀 快速模式:保留计算逻辑用于日志显示,但实际使用固定的快速时间 - """ - if velocity is None: - velocity = self._max_velocity - - # 📊 计算理论时间(用于日志显示) - theoretical_duration = abs(volume) / velocity - - # 🚀 如果启用快速模式,使用固定的快速时间 - if self._fast_mode: - # 根据操作类型选择快速时间 - if abs(volume) > 0.1: # 大于0.1mL的操作 - actual_duration = self._fast_move_time - else: # 很小的操作 - actual_duration = 0.5 - - self.logger.debug(f"⚡ 快速模式: 理论时间 {theoretical_duration:.2f}s → 实际时间 {actual_duration:.2f}s") - return actual_duration - else: - # 正常模式使用理论时间 - return theoretical_duration - - def _calculate_display_duration(self, volume: float, velocity: float = None) -> float: - """ - 计算显示用的持续时间(用于日志) 📊 - 这个函数返回理论计算时间,用于日志显示 - """ - if velocity is None: - velocity = self._max_velocity - return abs(volume) / velocity - - # 新的set_position方法 - 专门用于SetPumpPosition动作 - async def set_position(self, position: float, max_velocity: float = None): - """ - 移动到绝对位置 - 专门用于SetPumpPosition动作 🎯 - - Args: - position (float): 目标位置 (ml) - max_velocity (float): 移动速度 (ml/s) - - Returns: - dict: 符合SetPumpPosition.action定义的结果 - """ - try: - # 验证并转换参数 - target_position = float(position) - velocity = float(max_velocity) if max_velocity is not None else self._max_velocity - - # 限制位置在有效范围内 - target_position = max(0.0, min(float(self.max_volume), target_position)) - - # 计算移动距离 - volume_to_move = abs(target_position - self._position) - - # 📊 计算显示用的时间(用于日志) - display_duration = self._calculate_display_duration(volume_to_move, velocity) - - # ⚡ 计算实际执行时间(快速模式) - actual_duration = self._calculate_duration(volume_to_move, velocity) - - # 🎯 确定操作类型和emoji - if target_position > self._position: - operation_type = "吸液" - operation_emoji = "📥" - elif target_position < self._position: - operation_type = "排液" - operation_emoji = "📤" - else: - operation_type = "保持" - operation_emoji = "📍" - - self.logger.info(f"🎯 SET_POSITION: {operation_type} {operation_emoji}") - self.logger.info(f" 📍 位置: {self._position:.2f}mL → {target_position:.2f}mL (移动 {volume_to_move:.2f}mL)") - self.logger.info(f" 🌊 速度: {velocity:.2f} mL/s") - self.logger.info(f" ⏰ 预计时间: {display_duration:.2f}s") - - if self._fast_mode: - self.logger.info(f" ⚡ 快速模式: 实际用时 {actual_duration:.2f}s") - - # 🚀 模拟移动过程 - if volume_to_move > 0.01: # 只有当移动距离足够大时才显示进度 - start_position = self._position - steps = 5 if actual_duration > 0.5 else 2 # 根据实际时间调整步数 - step_duration = actual_duration / steps - - self.logger.info(f"🚀 开始{operation_type}... {operation_emoji}") - - for i in range(steps + 1): - # 计算当前位置和进度 - progress = (i / steps) * 100 if steps > 0 else 100 - current_pos = start_position + (target_position - start_position) * (i / steps) if steps > 0 else target_position - - # 更新状态 - if i < steps: - self._status = f"{operation_type}中" - status_emoji = "🔄" - else: - self._status = "Idle" - status_emoji = "✅" - - self._position = current_pos - self._current_volume = current_pos - - # 显示进度(每25%或最后一步) - if i == 0: - self.logger.debug(f" 🔄 {operation_type}开始: {progress:.0f}%") - elif progress >= 50 and i == steps // 2: - self.logger.debug(f" 🔄 {operation_type}进度: {progress:.0f}%") - elif i == steps: - self.logger.info(f" ✅ {operation_type}完成: {progress:.0f}% | 当前位置: {current_pos:.2f}mL") - - # 等待一小步时间 - if i < steps and step_duration > 0: - await self._ros_node.sleep(step_duration) - else: - # 移动距离很小,直接完成 - self._position = target_position - self._current_volume = target_position - self.logger.info(f" 📍 微调完成: {target_position:.2f}mL") - - # 确保最终位置准确 - self._position = target_position - self._current_volume = target_position - self._status = "Idle" - - # 📊 最终状态日志 - if volume_to_move > 0.01: - self.logger.info(f"🎉 SET_POSITION 完成! 📍 最终位置: {self._position:.2f}mL | 💧 当前体积: {self._current_volume:.2f}mL") - - # 返回符合action定义的结果 - return { - "success": True, - "message": f"✅ 成功移动到位置 {self._position:.2f}mL ({operation_type})", - "final_position": self._position, - "final_volume": self._current_volume, - "operation_type": operation_type - } - - except Exception as e: - error_msg = f"❌ 设置位置失败: {str(e)}" - self.logger.error(error_msg) - return { - "success": False, - "message": error_msg, - "final_position": self._position, - "final_volume": self._current_volume - } - - # 其他泵操作方法 - async def pull_plunger(self, volume: float, velocity: float = None): - """ - 拉取柱塞(吸液) 📥 - - Args: - volume (float): 要拉取的体积 (ml) - velocity (float): 拉取速度 (ml/s) - """ - new_position = min(self.max_volume, self._position + volume) - actual_volume = new_position - self._position - - if actual_volume <= 0: - self.logger.warning("⚠️ 无法吸液 - 已达到最大容量") - return - - display_duration = self._calculate_display_duration(actual_volume, velocity) - actual_duration = self._calculate_duration(actual_volume, velocity) - - self.logger.info(f"📥 开始吸液: {actual_volume:.2f}mL") - self.logger.info(f" 📍 位置: {self._position:.2f}mL → {new_position:.2f}mL") - self.logger.info(f" ⏰ 预计时间: {display_duration:.2f}s") - - if self._fast_mode: - self.logger.info(f" ⚡ 快速模式: 实际用时 {actual_duration:.2f}s") - - await self._simulate_operation(actual_duration) - - self._position = new_position - self._current_volume = new_position - - self.logger.info(f"✅ 吸液完成: {actual_volume:.2f}mL | 💧 当前体积: {self._current_volume:.2f}mL") - - async def push_plunger(self, volume: float, velocity: float = None): - """ - 推出柱塞(排液) 📤 - - Args: - volume (float): 要推出的体积 (ml) - velocity (float): 推出速度 (ml/s) - """ - new_position = max(0, self._position - volume) - actual_volume = self._position - new_position - - if actual_volume <= 0: - self.logger.warning("⚠️ 无法排液 - 已达到最小容量") - return - - display_duration = self._calculate_display_duration(actual_volume, velocity) - actual_duration = self._calculate_duration(actual_volume, velocity) - - self.logger.info(f"📤 开始排液: {actual_volume:.2f}mL") - self.logger.info(f" 📍 位置: {self._position:.2f}mL → {new_position:.2f}mL") - self.logger.info(f" ⏰ 预计时间: {display_duration:.2f}s") - - if self._fast_mode: - self.logger.info(f" ⚡ 快速模式: 实际用时 {actual_duration:.2f}s") - - await self._simulate_operation(actual_duration) - - self._position = new_position - self._current_volume = new_position - - self.logger.info(f"✅ 排液完成: {actual_volume:.2f}mL | 💧 当前体积: {self._current_volume:.2f}mL") - - # 便捷操作方法 - async def aspirate(self, volume: float, velocity: float = None): - """吸液操作 📥""" - await self.pull_plunger(volume, velocity) - - async def dispense(self, volume: float, velocity: float = None): - """排液操作 📤""" - await self.push_plunger(volume, velocity) - - async def transfer(self, volume: float, aspirate_velocity: float = None, dispense_velocity: float = None): - """转移操作(先吸后排) 🔄""" - self.logger.info(f"🔄 开始转移操作: {volume:.2f}mL") - - # 吸液 - await self.aspirate(volume, aspirate_velocity) - - # 短暂停顿 - self.logger.debug("⏸️ 短暂停顿...") - await self._ros_node.sleep(0.1) - - # 排液 - await self.dispense(volume, dispense_velocity) - - async def empty_syringe(self, velocity: float = None): - """清空注射器""" - await self.set_position(0, velocity) - - async def fill_syringe(self, velocity: float = None): - """充满注射器""" - await self.set_position(self.max_volume, velocity) - - async def stop_operation(self): - """停止当前操作""" - self._status = "Idle" - self.logger.info("Operation stopped") - - # 状态查询方法 - def get_position(self) -> float: - """获取当前位置""" - return self._position - - def get_current_volume(self) -> float: - """获取当前体积""" - return self._current_volume - - def get_remaining_capacity(self) -> float: - """获取剩余容量""" - return self.max_volume - self._current_volume - - def is_empty(self) -> bool: - """检查是否为空""" - return self._current_volume <= 0.01 # 允许小量误差 - - def is_full(self) -> bool: - """检查是否已满""" - return self._current_volume >= (self.max_volume - 0.01) # 允许小量误差 - - def __str__(self): - return f"VirtualTransferPump({self.device_id}: {self._current_volume:.2f}/{self.max_volume} ml, {self._status})" - - def __repr__(self): - return self.__str__() - - -# 使用示例 -async def demo(): - """虚拟泵使用示例""" - pump = VirtualTransferPump("demo_pump", {"max_volume": 50.0}) - - await pump.initialize() - - print(f"Initial state: {pump}") - - # 测试set_position方法 - result = await pump.set_position(10.0, max_velocity=2.0) - print(f"Set position result: {result}") - print(f"After setting position to 10ml: {pump}") - - # 吸液测试 - await pump.aspirate(5.0, velocity=2.0) - print(f"After aspirating 5ml: {pump}") - - # 清空测试 - result = await pump.set_position(0.0) - print(f"Empty result: {result}") - print(f"After emptying: {pump}") - - -if __name__ == "__main__": - asyncio.run(demo()) diff --git a/unilabos/devices/virtual/virtual_vacuum_pump.py b/unilabos/devices/virtual/virtual_vacuum_pump.py deleted file mode 100644 index ec355b68..00000000 --- a/unilabos/devices/virtual/virtual_vacuum_pump.py +++ /dev/null @@ -1,47 +0,0 @@ -import asyncio -import time -from typing import Dict, Any, Optional - - -class VirtualVacuumPump: - """Virtual vacuum pump for testing""" - - def __init__(self, device_id: Optional[str] = None, config: Optional[Dict[str, Any]] = None, **kwargs): - self.device_id = device_id or "unknown_vacuum_pump" - self.config = config or {} - self.data = {} - self._status = "OPEN" - - async def initialize(self) -> bool: - """Initialize virtual vacuum pump""" - self.data.update({ - "status": self._status - }) - return True - - async def cleanup(self) -> bool: - """Cleanup virtual vacuum pump""" - return True - - @property - def status(self) -> str: - return self._status - - def get_status(self) -> str: - return self._status - - def set_status(self, string): - self._status = string - time.sleep(5) - - def open(self): - self._status = "OPEN" - - def close(self): - self._status = "CLOSED" - - def is_open(self): - return self._status - - def is_closed(self): - return not self._status \ No newline at end of file diff --git a/unilabos/devices/virtual/virtual_valve.py b/unilabos/devices/virtual/virtual_valve.py deleted file mode 100644 index a665e005..00000000 --- a/unilabos/devices/virtual/virtual_valve.py +++ /dev/null @@ -1,105 +0,0 @@ -import asyncio -import logging -from typing import Dict, Any - -class VirtualValve: - """Virtual valve device for AddProtocol testing""" - - def __init__(self, device_id: str = None, config: Dict[str, Any] = None, **kwargs): - # 处理可能的不同调用方式 - if device_id is None and 'id' in kwargs: - device_id = kwargs.pop('id') - if config is None and 'config' in kwargs: - config = kwargs.pop('config') - - # 设置默认值 - self.device_id = device_id or "unknown_valve" - self.config = config or {} - - self.logger = logging.getLogger(f"VirtualValve.{self.device_id}") - self.data = {} - - print(f"=== VirtualValve {self.device_id} is being created! ===") - print(f"=== Config: {self.config} ===") - print(f"=== Kwargs: {kwargs} ===") - - # 处理所有配置参数,包括port - self.port = self.config.get('port', 'VIRTUAL') - self.positions = self.config.get('positions', 6) - self.current_position = 0 - - # 忽略其他可能的kwargs参数 - for key, value in kwargs.items(): - if not hasattr(self, key): - setattr(self, key, value) - - async def initialize(self) -> bool: - """Initialize virtual valve""" - print(f"=== VirtualValve {self.device_id} initialize() called! ===") - self.logger.info(f"Initializing virtual valve {self.device_id}") - self.data.update({ - "status": "Idle", - "valve_state": "Closed", - "current_position": 0, - "target_position": 0, - "max_positions": self.positions - }) - return True - - async def cleanup(self) -> bool: - """Cleanup virtual valve""" - self.logger.info(f"Cleaning up virtual valve {self.device_id}") - return True - - async def set_position(self, position: int) -> bool: - """Set valve position - matches SendCmd action""" - if 0 <= position <= self.positions: - self.logger.info(f"Setting valve position to {position}") - self.data.update({ - "target_position": position, - "current_position": position, - "valve_state": "Open" if position > 0 else "Closed" - }) - return True - else: - self.logger.error(f"Invalid position {position}. Must be 0-{self.positions}") - return False - - async def open(self) -> bool: - """Open valve - matches EmptyIn action""" - self.logger.info("Opening valve") - self.data.update({ - "valve_state": "Open", - "current_position": 1 - }) - return True - - async def close(self) -> bool: - """Close valve - matches EmptyIn action""" - self.logger.info("Closing valve") - self.data.update({ - "valve_state": "Closed", - "current_position": 0 - }) - return True - - # 状态属性 - @property - def status(self) -> str: - return self.data.get("status", "Unknown") - - @property - def valve_state(self) -> str: - return self.data.get("valve_state", "Unknown") - - @property - def current_position(self) -> int: - return self.data.get("current_position", 0) - - @property - def target_position(self) -> int: - return self.data.get("target_position", 0) - - @property - def max_positions(self) -> int: - return self.data.get("max_positions", 6) \ No newline at end of file diff --git a/unilabos/devices/workstation/post_process/post_process.py "b/unilabos/devices/workstation/AI4M/AI4M - \345\211\257\346\234\254.py" similarity index 72% rename from unilabos/devices/workstation/post_process/post_process.py rename to "unilabos/devices/workstation/AI4M/AI4M - \345\211\257\346\234\254.py" index b45cded2..2e551d7c 100644 --- a/unilabos/devices/workstation/post_process/post_process.py +++ "b/unilabos/devices/workstation/AI4M/AI4M - \345\211\257\346\234\254.py" @@ -12,7 +12,7 @@ from unilabos.device_comms.opcua_client.node.uniopcua import Variable, Method, NodeType, DataType from unilabos.device_comms.universal_driver import UniversalDriver from unilabos.utils.log import logger -from unilabos.devices.workstation.post_process.decks import post_process_deck +from unilabos.devices.workstation.AI4M.decks import AI4M_deck class OpcUaNode(BaseModel): name: str @@ -61,51 +61,9 @@ class NodeFunctionJson(BaseModel): value: Any = None -class InitFunctionJson(NodeFunctionJson): - pass - - -class StartFunctionJson(NodeFunctionJson): - write_functions: List[str] - condition_functions: List[str] - stop_condition_expression: str - - -class StopFunctionJson(NodeFunctionJson): - pass - - -class CleanupFunctionJson(NodeFunctionJson): - pass - - -class ActionJson(BaseModel): - node_function_to_create: List[NodeFunctionJson] - create_init_function: Optional[InitFunctionJson] = None - create_start_function: Optional[StartFunctionJson] = None - create_stop_function: Optional[StopFunctionJson] = None - create_cleanup_function: Optional[CleanupFunctionJson] = None - - -class SimplifiedActionJson(BaseModel): - """简化的动作JSON格式,直接定义节点列表和函数""" - nodes: Optional[Dict[str, Dict[str, Any]]] = None # 节点定义,格式为 {func_name: {node_name, mode, value}} - init_function: Optional[Dict[str, Any]] = None - start_function: Optional[Dict[str, Any]] = None - stop_function: Optional[Dict[str, Any]] = None - cleanup_function: Optional[Dict[str, Any]] = None - - -class WorkflowCreateJson(BaseModel): - name: str - action: List[Union[ActionJson, SimplifiedActionJson, 'WorkflowCreateJson', str]] - parameters: Optional[List[str]] = None - description: Optional[str] = None - - class ExecuteProcedureJson(BaseModel): register_node_list_from_csv_path: Optional[Dict[str, Any]] = None - create_flow: List[WorkflowCreateJson] +# create_flow: List[WorkflowCreateJson] execute_flow: List[str] @@ -152,21 +110,52 @@ def _connect(self) -> None: raise ValueError('client is not initialized') def _find_nodes(self) -> None: - """查找服务器中的节点""" + """查找服务器中的节点(通过NodeID直接获取)""" if not self.client: raise ValueError('client is not connected') logger.info(f'开始查找 {len(self._variables_to_find)} 个节点...') try: - # 获取根节点 - root = self.client.get_root_node() - objects = root.get_child(["0:Objects"]) - # 记录查找前的状态 before_count = len(self._node_registry) - # 查找节点 - self._find_nodes_recursive(objects) + # 通过NodeID直接查找节点 + for var_name, var_info in self._variables_to_find.items(): + if var_name in self._node_registry: + continue # 已经找到的节点跳过 + + node_id = var_info.get("node_id") + if not node_id: + logger.warning(f"节点 '{var_name}' 缺少NodeID,跳过") + continue + + try: + # 通过NodeID直接获取节点 + node = self.client.get_node(node_id) + + # 验证节点是否存在(通过读取浏览名称) + browse_name = node.get_browse_name() + + node_type = var_info.get("node_type") + data_type = var_info.get("data_type") + node_id_str = str(node.nodeid) + + # 根据节点类型创建相应的对象 + if node_type == NodeType.VARIABLE: + self._node_registry[var_name] = Variable(self.client, var_name, node_id_str, data_type) + logger.debug(f"✓ 找到变量节点: '{var_name}', NodeId: {node_id_str}, DataType: {data_type}") + # 缓存真实的 ua.Node 对象用于订阅 + self._found_node_objects[var_name] = node + elif node_type == NodeType.METHOD: + # 对于方法节点,需要获取父节点ID + parent_node = node.get_parent() + parent_node_id = str(parent_node.nodeid) + self._node_registry[var_name] = Method(self.client, var_name, node_id_str, parent_node_id, data_type) + logger.debug(f"✓ 找到方法节点: '{var_name}', NodeId: {node_id_str}, ParentId: {parent_node_id}") + + except Exception as e: + logger.warning(f"无法获取节点 '{var_name}' (NodeId: {node_id}): {e}") + continue # 记录查找后的状态 after_count = len(self._node_registry) @@ -182,10 +171,7 @@ def _find_nodes(self) -> None: if not_found: logger.warning(f"⚠ 以下 {len(not_found)} 个节点未找到: {', '.join(not_found[:10])}{'...' if len(not_found) > 10 else ''}") - logger.warning(f"提示:请检查这些节点名称是否与服务器的 BrowseName 完全匹配(包括大小写、空格等)") - # 提供一个示例来帮助调试 - if not_found: - logger.info(f"尝试在服务器中查找第一个未找到的节点 '{not_found[0]}' 的相似节点...") + logger.warning(f"提示:请检查这些节点的NodeID是否正确") else: logger.info(f"✓ 所有 {len(self._variables_to_find)} 个节点均已找到并注册") @@ -193,55 +179,23 @@ def _find_nodes(self) -> None: logger.error(f"查找节点失败: {e}") traceback.print_exc() - def _find_nodes_recursive(self, node) -> None: - """递归查找节点""" - try: - # 获取当前节点的浏览名称 - browse_name = node.get_browse_name() - node_name = browse_name.Name - - # 检查是否是我们要找的变量 - if node_name in self._variables_to_find and node_name not in self._node_registry: - var_info = self._variables_to_find[node_name] - node_type = var_info.get("node_type") - data_type = var_info.get("data_type") - node_id_str = str(node.nodeid) - - # 根据节点类型创建相应的对象 - if node_type == NodeType.VARIABLE: - self._node_registry[node_name] = Variable(self.client, node_name, node_id_str, data_type) - logger.info(f"✓ 找到变量节点: '{node_name}', NodeId: {node_id_str}, DataType: {data_type}") - # 缓存真实的 ua.Node 对象用于订阅 - self._found_node_objects[node_name] = node - elif node_type == NodeType.METHOD: - # 对于方法节点,需要获取父节点ID - parent_node = node.get_parent() - parent_node_id = str(parent_node.nodeid) - self._node_registry[node_name] = Method(self.client, node_name, node_id_str, parent_node_id, data_type) - logger.info(f"✓ 找到方法节点: '{node_name}', NodeId: {node_id_str}, ParentId: {parent_node_id}") - - # 递归处理子节点 - for child in node.get_children(): - self._find_nodes_recursive(child) - - except Exception as e: - # 忽略处理单个节点时的错误,继续处理其他节点 - pass + @classmethod def load_csv(cls, file_path: str) -> List[OpcUaNode]: """ 从CSV文件加载节点定义 CSV文件需包含Name,NodeType,DataType列 - 可选包含EnglishName和NodeLanguage列 + 可选包含EnglishName,NodeLanguage和NodeId列 """ df = pd.read_csv(file_path) df = df.drop_duplicates(subset='Name', keep='first') # 重复的数据应该报错 nodes = [] - # 检查是否包含英文名称列和节点语言列 + # 检查是否包含英文名称列、节点语言列和NodeId列 has_english_name = 'EnglishName' in df.columns has_node_language = 'NodeLanguage' in df.columns + has_node_id = 'NodeId' in df.columns # 如果存在英文名称列,创建名称映射字典 name_mapping = {} @@ -252,9 +206,10 @@ def load_csv(cls, file_path: str) -> List[OpcUaNode]: node_type_str = row.get('NodeType') data_type_str = row.get('DataType') - # 获取英文名称和节点语言(如果有) + # 获取英文名称、节点语言和NodeId(如果有) english_name = row.get('EnglishName') if has_english_name else None node_language = row.get('NodeLanguage') if has_node_language else 'English' # 默认为英文 + node_id = row.get('NodeId') if has_node_id else None # 如果有英文名称,添加到映射字典 if english_name and not pd.isna(english_name) and node_language == 'Chinese': @@ -296,10 +251,16 @@ def load_csv(cls, file_path: str) -> List[OpcUaNode]: except KeyError: logger.warning(f"无效的数据类型: {data_type_str},将使用默认值") - # 创建节点对象,节点ID留空,将通过自动查找功能获取 + # 处理NodeId(如果有的话) + node_id_value = "" + if node_id and not pd.isna(node_id): + node_id_value = str(node_id).strip() + + # 创建节点对象,如果有NodeId则使用,否则留空 nodes.append(OpcUaNode( name=name, node_type=node_type, + node_id=node_id_value, data_type=data_type )) @@ -376,13 +337,14 @@ def register_node_list(self, node_list: List[OpcUaNode]) -> "BaseClient": raise ValueError(f'节点 {node.name} 类型 {node.node_type} 与已存在的类型 {exist.type} 不一致') continue - # 将节点添加到待查找列表 + # 将节点添加到待查找列表,包括node_id self._variables_to_find[node.name] = { "node_type": node.node_type, - "data_type": node.data_type + "data_type": node.data_type, + "node_id": node.node_id } new_nodes_count += 1 - logger.debug(f'添加节点 "{node.name}" ({node.node_type}) 到待查找列表') + logger.debug(f'添加节点 "{node.name}" ({node.node_type}, NodeId: {node.node_id}) 到待查找列表') logger.info(f'节点注册完成:新增 {new_nodes_count} 个待查找节点,总计 {len(self._variables_to_find)} 个') @@ -1177,8 +1139,8 @@ class OpcUaClient(BaseClient): def __init__( self, url: str, - deck: Optional[Union[post_process_deck, Dict[str, Any]]] = None, - config_path: str = None, + deck: Optional[Union[AI4M_deck, Dict[str, Any]]] = None, + csv_path: str = None, username: str = None, password: str = None, use_subscription: bool = True, @@ -1191,17 +1153,15 @@ def __init__( import logging logging.getLogger("opcua").setLevel(logging.WARNING) - super().__init__() - # ===== 关键修改:参照 BioyondWorkstation 处理 deck ===== super().__init__() # 处理 deck 参数 if deck is None: - self.deck = post_process_deck(setup=True) + self.deck = AI4M_deck(setup=True) elif isinstance(deck, dict): - self.deck = post_process_deck(setup=True) + self.deck = AI4M_deck(setup=True) elif hasattr(deck, 'children'): self.deck = deck else: @@ -1248,9 +1208,9 @@ def __init__( # 连接到服务器 self._connect() - # 如果提供了配置文件路径,则加载配置并注册工作流 - if config_path: - self.load_config(config_path) + # 如果提供了 CSV 路径,则直接加载节点 + if csv_path: + self.load_nodes_from_csv(csv_path) # 启动连接监控 self._start_connection_monitor() @@ -1611,33 +1571,27 @@ def print_cache_stats(self): print(f"缓存超时时间: {stats['cache_timeout']}秒") print("="*80 + "\n") - def load_config(self, config_path: str) -> None: - """从JSON配置文件加载并注册工作流""" + def load_nodes_from_csv(self, csv_path: str) -> None: + """直接从CSV文件加载并注册节点""" try: - with open(config_path, 'r', encoding='utf-8') as f: - config_data = json.load(f) + logger.info(f"开始从CSV文件加载节点: {csv_path}") - # 处理节点注册 - if "register_node_list_from_csv_path" in config_data: - config_dir = os.path.dirname(os.path.abspath(config_path)) - - if "path" in config_data["register_node_list_from_csv_path"]: - csv_path = config_data["register_node_list_from_csv_path"]["path"] - if not os.path.isabs(csv_path): - csv_path = os.path.join(config_dir, csv_path) - config_data["register_node_list_from_csv_path"]["path"] = csv_path - - self.register_node_list_from_csv_path(**config_data["register_node_list_from_csv_path"]) - - if self.client and self._variables_to_find: - logger.info("CSV加载完成,开始查找服务器节点...") - self._find_nodes() + # 检查文件是否存在 + if not os.path.exists(csv_path): + logger.error(f"CSV文件不存在: {csv_path}") + return + + # 注册节点 + logger.info(f"注册CSV文件中的节点: {csv_path}") + self.register_node_list_from_csv_path(path=csv_path) + + # 查找节点 + if self.client and self._variables_to_find: + logger.info(f"CSV加载完成,待查找 {len(self._variables_to_find)} 个节点...") + self._find_nodes() + else: + logger.warning(f"⚠ 跳过节点查找 - client: {self.client is not None}, 待查找节点: {len(self._variables_to_find)}") - # 处理工作流创建 - if "create_flow" in config_data: - self.create_workflow_from_json(config_data["create_flow"]) - self.register_workflows_as_methods() - # 将所有节点注册为属性 self._register_nodes_as_attributes() @@ -1649,13 +1603,13 @@ def load_config(self, config_path: str) -> None: else: logger.info(f"✓ 节点查找完成:所有 {found_count} 个节点均已找到") - # 如果使用订阅模式,重新设置订阅(确保新节点被订阅) + # 如果使用订阅模式,设置订阅(确保新节点被订阅) if self._use_subscription and found_count > 0: self._setup_subscriptions() - logger.info(f"成功从 {config_path} 加载配置") + logger.info(f"✓ 成功从 CSV 加载 {found_count} 个节点") except Exception as e: - logger.error(f"加载配置文件 {config_path} 失败: {e}") + logger.error(f"从CSV文件加载节点失败 {csv_path}: {e}") traceback.print_exc() def disconnect(self): @@ -1724,52 +1678,547 @@ def post_init(self, ros_node): logger.info("Deck 已上传到云端") except Exception as e: logger.error(f"上传失败: {e}") + + def start_manual_mode( + self + ) -> bool: + """ + 指令作业模式函数: + - 将模式切换、手自动切换写false + - 等待自动模式为false + - 将模式切换写true + + 返回: 是否成功完成自动作业 + """ + self.success = False + + print("启动指令作业模式...") + + # 将模式切换、手自动切换写true + print("设置模式切换和手自动切换为true...") + self.set_node_value("mode_switch", True) + self.set_node_value("manual_auto_switch", False) + + # 等待自动模式为false + print("等待自动模式为False...") + auto_mode = self.get_node_value("auto_mode") + while auto_mode: + print("等待自动模式变为False...") + time.sleep(1.0) + auto_mode = self.get_node_value("auto_mode") + else: + print("模式切换完成") + self.success = True + + return self.success + + def trigger_robot_pick_beaker( + self, + pick_beaker_id: int, + place_station_id: int, + ) -> bool: + """ + 机器人取烧杯并放到检测位: + - 先写入取烧杯编号,等待取烧杯完成 + - 取完成后再写入放检测编号,等待对应的放检测完成信号 + + 参数: + pick_beaker_id: 取烧杯编号(1-5) + place_station_id: 放检测编号(1-3) + timeout: 超时时间(秒),保留用于向后兼容,实际不使用 + poll_interval: 轮询间隔(秒) + + 返回: 是否成功完成操作 + """ + self.success = False + + # 校验输入范围 + if pick_beaker_id not in (1, 2, 3, 4, 5): + logger.error("取烧杯编号必须在 1-5 范围内") + return False + if place_station_id not in (1, 2, 3): + logger.error("放检测编号必须在 1-3 范围内") + return False + + # 获取仓库资源 + rack_warehouse = self.deck.warehouses["水凝胶烧杯堆栈"] + station_warehouse = self.deck.warehouses[f"反应工站{place_station_id}"] + rack_site_key = f"A{pick_beaker_id}" + + pick_complete_node = f"robot_rack_pick_beaker_{pick_beaker_id}_complete" + place_complete_node = f"robot_place_station_{place_station_id}_complete" + + # 阶段1:下发取烧杯编号并等待完成 + print("下发取烧杯编号,等待完成...") + self.set_node_value("robot_pick_beaker_id", pick_beaker_id) + + # 等待取烧杯完成 + pick_complete = self.get_node_value(pick_complete_node) + while not pick_complete: + print("取烧杯中...") + time.sleep(2.0) + pick_complete = self.get_node_value(pick_complete_node) + + # 获取载具(carrier) + carrier = rack_warehouse[rack_site_key] + if carrier is None: + logger.error(f"堆栈位置 {rack_site_key} 没有载具") + return False + + # 阶段1.5:机器人取烧杯完成后,从堆栈解绑载具 + try: + rack_warehouse.unassign_child_resource(carrier) + print(f"✓ 已从堆栈解绑载具 {carrier.name}") + except Exception as e: + logger.error(f"从堆栈解绑载具失败: {e}") + return False + + # 阶段2:取完成后再下发放检测编号并等待完成 + print("取完成,开始下发放检测编号...") + self.set_node_value("robot_place_station_id", place_station_id) + + # 等待放检测完成 + place_complete = self.get_node_value(place_complete_node) + while not place_complete: + print("放检测中...") + time.sleep(2.0) + place_complete = self.get_node_value(place_complete_node) + + # 阶段2.5:机器人放到检测站完成后,绑定载具到检测站 + # 注意:每个检测站都有独立的 warehouse,且是 1x1x1,所以索引始终是 0 + try: + # 每个检测站 warehouse 只有 1 个 site,索引固定为 0 + station_site_idx = 0 + station_site_key = list(station_warehouse._ordering.keys())[station_site_idx] + station_location = station_warehouse.child_locations[station_site_key] + + # 绑定到检测站 warehouse + station_warehouse.assign_child_resource(carrier, location=station_location, spot=station_site_idx) + print(f"✓ 已绑定载具 {carrier.name} 到检测站{place_station_id}") + except Exception as e: + logger.error(f"绑定载具到检测站失败: {e}") + # 即使绑定失败,物理上机器人已经完成了操作 + + print("放检测完成") + self.success = True + + # 更新资源树到前端 + if hasattr(self, '_ros_node') and self._ros_node: + try: + from unilabos.ros.nodes.base_device_node import ROS2DeviceNode + ROS2DeviceNode.run_async_func(self._ros_node.update_resource, True, resources=[self.deck]) + print(f"✓ 已同步资源更新到前端") + except Exception as e: + logger.warning(f"前端资源更新失败: {e}") + + return self.success + def trigger_robot_place_beaker( + self, + place_beaker_id: int, + pick_station_id: int, + ) -> bool: + """ + 机器人从检测位取烧杯并放回: + - 先写入取检测编号,等待取检测完成 + - 取完成后再写入放烧杯编号,等待对应的放烧杯完成信号 + + 参数: + place_beaker_id: 放烧杯编号(1-5) + pick_station_id: 取检测编号(1-3) + + 返回: 是否成功完成操作 + """ + self.success = False + + # 校验输入范围 + if place_beaker_id not in (1, 2, 3, 4, 5): + logger.error("放烧杯编号必须在 1-5 范围内") + return False + if pick_station_id not in (1, 2, 3): + logger.error("取检测编号必须在 1-3 范围内") + return False + + # 获取仓库资源 + rack_warehouse = self.deck.warehouses["水凝胶烧杯堆栈"] + station_warehouse = self.deck.warehouses[f"反应工站{pick_station_id}"] + + # 获取检测站的载具 + # 注意:每个检测站都有独立的 warehouse,且是 1x1x1,所以索引始终是 0 + # 当检测站有 carrier 时,sites[0] 直接返回 BottleCarrier(和堆栈一样) + # 当检测站为空时,sites[0] 返回 ResourceHolder(占位符) + station_site_idx = 0 # 每个检测站 warehouse 只有 1 个 site + + if not station_warehouse.sites or len(station_warehouse.sites) == 0: + logger.error(f"检测站{pick_station_id} 的 warehouse sites 列表为空") + return False + + carrier = station_warehouse.sites[station_site_idx] + + # 检查是否是 ResourceHolder(说明检测站为空) + if carrier is None or type(carrier).__name__ == 'ResourceHolder': + logger.error(f"检测站{pick_station_id} 没有载具(可能是空的 ResourceHolder)") + return False + + # 确定堆栈目标位置(place_beaker_id 1-5 对应 C1-C5) + rack_site_key = f"C{place_beaker_id}" + + pick_complete_node = f"robot_pick_station_{pick_station_id}_complete" + place_complete_node = f"robot_rack_place_beaker_{place_beaker_id}_complete" + + # 阶段1:下发取检测编号并等待完成 + print("下发取检测编号,等待完成...") + self.set_node_value("robot_pick_station_id", pick_station_id) + + # 等待取检测完成 + pick_complete = self.get_node_value(pick_complete_node) + while not pick_complete: + print("取检测中...") + time.sleep(2.0) + pick_complete = self.get_node_value(pick_complete_node) + + # 阶段1.5:机器人取检测完成后,从检测站解绑载具 + try: + station_warehouse.unassign_child_resource(carrier) + print(f"✓ 已从检测站{pick_station_id}解绑载具 {carrier.name}") + except Exception as e: + logger.error(f"从检测站解绑载具失败: {e}") + return False + + # 阶段2:取完成后再下发放烧杯编号并等待完成 + print("取完成,开始下发放烧杯编号...") + self.set_node_value("robot_place_beaker_id", place_beaker_id) + + # 等待放烧杯完成 + place_complete = self.get_node_value(place_complete_node) + while not place_complete: + print("放烧杯中...") + time.sleep(2.0) + place_complete = self.get_node_value(place_complete_node) + + # 阶段2.5:机器人放烧杯完成后,绑定载具回堆栈 + try: + # 获取堆栈的位置信息(rack_site_key 已在前面定义为 C{place_beaker_id}) + rack_site_idx = list(rack_warehouse._ordering.keys()).index(rack_site_key) + rack_location = rack_warehouse.child_locations[rack_site_key] + + # 绑定回堆栈 warehouse + rack_warehouse.assign_child_resource(carrier, location=rack_location, spot=rack_site_idx) + print(f"✓ 已绑定载具 {carrier.name} 回堆栈 {rack_site_key}") + except Exception as e: + logger.error(f"绑定载具回堆栈失败: {e}") + # 即使绑定失败,物理上机器人已经完成了操作 + + print("放烧杯完成") + self.success = True + + # 更新资源树到前端 + if hasattr(self, '_ros_node') and self._ros_node: + try: + from unilabos.ros.nodes.base_device_node import ROS2DeviceNode + ROS2DeviceNode.run_async_func(self._ros_node.update_resource, True, resources=[self.deck]) + print(f"✓ 已同步资源更新到前端") + except Exception as e: + logger.warning(f"前端资源更新失败: {e}") + + return self.success + + def trigger_station_process( + self, + station_id: int, + mag_stir_stir_speed: int, + mag_stir_heat_temp: int, + mag_stir_time_set: int, + syringe_pump_abs_position_set: int, + ) -> bool: + """ + 执行检测工艺流程: + 1. 等待检测站请求参数 + 2. 下发对应编号的搅拌仪和注射泵参数 + 3. 等待参数已执行 + 4. 给出检测开始信号 + 5. 等待检测工艺完成 + + 参数: + station_id: 检测编号(1-3) + mag_stir_stir_speed: 磁力搅拌仪搅拌速度 + mag_stir_heat_temp: 磁力搅拌仪加热温度 + mag_stir_time_set: 磁力搅拌仪时间设置 + syringe_pump_abs_position_set: 注射泵绝对位置设置 + + 返回: 是否成功完成工艺 + """ + self.success = False + + # 校验输入范围 + if station_id not in (1, 2, 3): + logger.error("检测编号必须在 1-3 范围内") + return False + + # 检测站索引(0-2) + station_idx = station_id - 1 + + # 节点名称 + request_node = f"station_{station_id}_request_params" + params_received_node = f"station_{station_id}_params_received" + start_node = f"station_{station_id}_start" + complete_node = f"station_{station_id}_process_complete" + + self.set_node_value(complete_node, False) + self.set_node_value(start_node, False) + self.set_node_value(params_received_node, False) + + # 阶段1:等待检测站请求参数 + print(f"等待检测{station_id}请求参数...") + request_params = self.get_node_value(request_node) + while not request_params: + print(f"等待检测{station_id}请求参数中...") + time.sleep(2.0) + request_params = self.get_node_value(request_node) + + print(f"检测{station_id}已请求参数,开始下发...") + + # 阶段2:下发对应编号的搅拌仪参数 + self.set_node_value(f"mag_stirrer_c{station_idx}_stir_speed", mag_stir_stir_speed) + self.set_node_value(f"mag_stirrer_c{station_idx}_heat_temp", mag_stir_heat_temp) + self.set_node_value(f"mag_stirrer_c{station_idx}_time_set", mag_stir_time_set) + print(f"已下发检测{station_id}磁力搅拌仪参数:速度={mag_stir_stir_speed}, 温度={mag_stir_heat_temp}, 时间={mag_stir_time_set}") + + # 下发对应编号的注射泵参数 + self.set_node_value(f"syringe_pump_{station_idx}_abs_position_set", syringe_pump_abs_position_set) + print(f"已下发检测{station_id}注射泵绝对位置设置:{syringe_pump_abs_position_set}") + + + # 阶段3:等待参数已执行 + self.set_node_value(start_node, True) + print(f"等待检测{station_id}参数已执行...") + params_received = self.get_node_value(params_received_node) + while not params_received: + print(f"检测{station_id}参数执行中...") + time.sleep(2.0) + params_received = self.get_node_value(params_received_node) + + print(f"检测{station_id}参数已执行") + + # 阶段4:等待检测工艺完成 + print(f"等待检测{station_id}工艺完成...") + process_complete = self.get_node_value(complete_node) + while not process_complete: + print(f"检测{station_id}工艺执行中...") + time.sleep(2.0) + process_complete = self.get_node_value(complete_node) + else: + print(f"检测{station_id}工艺完成") + self.set_node_value(start_node, False) + self.success = True + + return self.success + + def trigger_init( + self + ) -> bool: + """ + 初始化函数: + - 将手自动切换写false + - 等待自动模式为false + - 将初始化PC写true + - 等待初始化完成PC为true + - 将初始化PC写false + - 返回成功 + + 参数: + poll_interval: 轮询间隔(秒) + + 返回: 是否成功完成初始化 + """ + self.success = False + + print("开始初始化...") + + # 将手自动切换写false + print("设置手自动切换为false...") + self.set_node_value("manual_auto_switch", False) + self.set_node_value("initialize", False) + time.sleep(1.0) + # 等待自动模式为false + print("等待自动模式为false...") + auto_mode = self.get_node_value("auto_mode") + while auto_mode: + print("等待自动模式变为false...") + time.sleep(2.0) + auto_mode = self.get_node_value("auto_mode") + + # 将初始化PC写true + print("自动模式已为false,设置初始化PC为true...") + self.set_node_value("initialize", True) + time.sleep(2.0) + # 等待初始化完成PC为true + print("等待初始化完成...") + init_finished = self.get_node_value("init finished") + while not init_finished: + print("初始化中...") + time.sleep(2.0) + init_finished = self.get_node_value("init finished") + else: + # 将初始化PC写false + print("初始化完成,设置初始化PC为false...") + self.set_node_value("initialize", False) + self.success = True + + return self.success + + def download_auto_params( + self, + mag_stir_stir_speed: int, + mag_stir_heat_temp: int, + mag_stir_time_set: int, + syringe_pump_abs_position_set: int, + auto_job_stop_delay: int + ) -> bool: + """ + 自动模式参数下发函数: + - 将搅拌仪的搅拌速度、加热温度、时间设置、泵的绝对位置设置和自动作业停止等待时间作为传入参数 + - 一起下发给3个搅拌仪和3个泵 + - 下发后将自动作业参数已下发写true + - 等待自动作业参数已执行为true + - 将已下发写false + - 返回成功 + + 参数: + mag_stir_stir_speed: 磁力搅拌仪搅拌速度 + mag_stir_heat_temp: 磁力搅拌仪加热温度 + mag_stir_time_set: 磁力搅拌仪时间设置 + syringe_pump_abs_position_set: 注射泵绝对位置设置 + auto_job_stop_delay: 自动作业等待停止时间 + poll_interval: 轮询间隔(秒) + + 返回: 是否成功完成参数下发 + """ + self.success = False + + print("开始下发自动模式参数...") + self.set_node_value("auto_param_applied", False) + self.set_node_value("auto_param_downloaded", False) + self.set_node_value("mode_switch", False) + # 下发3个磁力搅拌仪的参数 + for c in (0, 1, 2): + self.set_node_value(f"mag_stirrer_c{c}_stir_speed", mag_stir_stir_speed) + self.set_node_value(f"mag_stirrer_c{c}_heat_temp", mag_stir_heat_temp) + self.set_node_value(f"mag_stirrer_c{c}_time_set", mag_stir_time_set) + print(f"已下发3个磁力搅拌仪参数:速度={mag_stir_stir_speed}, 温度={mag_stir_heat_temp}, 时间={mag_stir_time_set}") + + # 下发3个注射泵的绝对位置设置 + for p in (0, 1, 2): + self.set_node_value(f"syringe_pump_{p}_abs_position_set", syringe_pump_abs_position_set) + print(f"已下发3个注射泵绝对位置设置:{syringe_pump_abs_position_set}") + + # 下发自动作业等待停止时间 + self.set_node_value("auto_job_stop_delay", auto_job_stop_delay) + print(f"已下发自动作业等待停止时间:{auto_job_stop_delay}") + + # 将自动作业参数已下发写true + print("设置自动作业参数已下发为true...") + self.set_node_value("auto_param_downloaded", True) + + # 等待自动作业参数已执行为true + print("等待自动作业参数已执行...") + param_applied = self.get_node_value("auto_param_applied") + while not param_applied: + print("参数执行中...") + time.sleep(2.0) + param_applied = self.get_node_value("auto_param_applied") + else: + print("自动作业参数已执行") + # 将已下发写false + self.set_node_value("auto_param_downloaded", False) + self.success = True + + return self.success + + def start_auto_mode( + self + ) -> bool: + """ + 自动作业模式函数: + - 将模式切换、手自动切换写true + - 等待自动模式为true + - 将自动作业开始触发写true + - 等待自动作业完成为true + - 返回成功 + + 参数: + poll_interval: 轮询间隔(秒) + + 返回: 是否成功完成自动作业 + """ + self.success = False + + print("启动自动作业模式...") + + # 将模式切换、手自动切换写true + print("设置模式切换和手自动切换为true...") + self.set_node_value("mode_switch", False) + self.set_node_value("manual_auto_switch", False) + self.set_node_value("auto_run_start_trigger", False) + self.set_node_value("auto_run_complete", False) + time.sleep(1.0) + self.set_node_value("manual_auto_switch", True) + + # 等待自动模式为true + print("等待自动模式为true...") + auto_mode = self.get_node_value("auto_mode") + while not auto_mode: + print("等待自动模式变为true...") + time.sleep(5.0) + auto_mode = self.get_node_value("auto_mode") + + # 将自动作业开始触发写true + print("自动模式已为true,设置自动作业开始触发为true...") + self.set_node_value("auto_run_start_trigger", True) + + # 等待自动作业完成为true + print("等待自动作业完成...") + auto_run_complete = self.get_node_value("auto_run_complete") + while not auto_run_complete: + print("自动作业执行中...") + time.sleep(5.0) + auto_run_complete = self.get_node_value("auto_run_complete") + else: + print("自动作业完成") + self.set_node_value("manual_auto_switch", False) + self.success = True + + return self.success + + if __name__ == '__main__': # 示例用法 - # 使用配置文件创建客户端并自动注册工作流 - import os - current_dir = os.path.dirname(os.path.abspath(__file__)) - config_path = os.path.join(current_dir, "opcua_huairou.json") - + # 创建OPC UA客户端并加载配置 try: client = OpcUaClient( - url="opc.tcp://192.168.1.88:4840/freeopcua/server/", # 替换为实际的OPC UA服务器地址 - config_path="D:\\Uni-Lab-OS\\unilabos\\device_comms\\opcua_client\\opcua_huairou.json" # 传入配置文件路径 + url="opc.tcp://127.0.0.1:49320", # 替换为实际的OPC UA服务器地址 + csv_path="C:\\Users\\Roy\\Desktop\\DPLC\\Uni-Lab-OS\\unilabos\\devices\\workstation\\AI4M\\opcua_nodes_AI4M.csv" # 使用AI4M的CSV路径 ) - # 列出所有已注册的工作流 - print("\n已注册的工作流:") - for workflow_name in client.workflow_name: - print(f" - {workflow_name}") - - # 测试trigger_grab_action工作流 - 使用英文参数名 - print("\n测试trigger_grab_action工作流 - 使用英文参数名:") - client.trigger_grab_action(reaction_tank_number=2, raw_tank_number=2) - # client.set_node_value("reaction_tank_number", 2) - - - # 读取节点值 - 使用英文节点名 - grab_complete = client.get_node_value("grab_complete") - reaction_tank = client.get_node_value("reaction_tank_number") - raw_tank = client.get_node_value("raw_tank_number") - - print(f"\n执行后状态检查 (使用英文节点名):") - print(f" - 抓取完成状态: {grab_complete}") - print(f" - 当前反应罐号码: {reaction_tank}") - print(f" - 当前原料罐号码: {raw_tank}") + # 测试1: 初始化函数 + print("\n" + "="*80) + print("测试: 物料载具转移函数") + print("="*80) - # 测试节点值写入 - 使用英文节点名 - print("\n测试节点值写入 (使用英文节点名):") - success = client.set_node_value("atomization_fast_speed", 150.5) - print(f" - 写入搅拌浆雾化快速 = 150.5, 结果: {success}") + # 测试将物料载具从水凝胶堆栈转移到反应工站1 + result = client.transfer_carrier_to_station( + carrier_name="Hydrogel_Clean_1BottleCarrier", + source_warehouse_name="水凝胶烧杯堆栈", + target_station_name="反应工站1" + ) + print(f"物料载具转移结果: {'成功' if result else '失败'}") - # 读取写入的值 - atomization_speed = client.get_node_value("atomization_fast_speed") - print(f" - 读取搅拌浆雾化快速: {atomization_speed}") + print("\n" + "="*80) + print("测试完成") + print("="*80) # 断开连接 client.disconnect() diff --git a/unilabos/devices/workstation/AI4M/AI4M.json b/unilabos/devices/workstation/AI4M/AI4M.json new file mode 100644 index 00000000..ee09e4c2 --- /dev/null +++ b/unilabos/devices/workstation/AI4M/AI4M.json @@ -0,0 +1,56 @@ +{ + "nodes": [ + { + "id": "AI4M_station", + "name": "AI4M_station", + "children": [ + "AI4M_deck" + ], + "parent": null, + "type": "device", + "class": "AI4M_station", + "position": { + "x": 250, + "y": 0, + "z": 0 + }, + "pose": { + "size": { + "width": 1217, + "height": 1580, + "depth": 2670 + } + }, + "config": { + "url": "opc.tcp://127.0.0.1:49320", + "csv_path": "opcua_nodes_AI4M_sim.csv", + "deck": { + "data": { + "_resource_child_name": "AI4M_deck", + "_resource_type": "unilabos.devices.workstation.AI4M.decks:AI4M_deck" + } + } + }, + "data": { + } + }, + { + "id": "AI4M_deck", + "name": "AI4M_deck", + "sample_id": null, + "children": [], + "parent": "AI4M_station", + "type": "deck", + "class": "AI4M_deck", + "position": { + "x": 250, + "y": 0, + "z": 0 + }, + "config": { + "type": "AI4M_deck" + }, + "data": {} + } + ] +} \ No newline at end of file diff --git a/unilabos/devices/workstation/AI4M/AI4M.py b/unilabos/devices/workstation/AI4M/AI4M.py new file mode 100644 index 00000000..7fa37f07 --- /dev/null +++ b/unilabos/devices/workstation/AI4M/AI4M.py @@ -0,0 +1,2252 @@ +import json +import time +import traceback +from typing import Any, Union, List, Dict, Callable, Optional, Tuple +from pydantic import BaseModel + +from opcua import Client, ua +import pandas as pd +import os + +from unilabos.device_comms.opcua_client.node.uniopcua import Base as OpcUaNodeBase +from unilabos.device_comms.opcua_client.node.uniopcua import Variable, Method, NodeType, DataType +from unilabos.device_comms.universal_driver import UniversalDriver +from unilabos.resources.resource_tracker import ResourceTreeSet +from unilabos.utils.log import logger +from unilabos.devices.workstation.AI4M.decks import AI4M_deck + +class OpcUaNode(BaseModel): + name: str + node_type: NodeType + node_id: str = "" + data_type: Optional[DataType] = None + parent_node_id: Optional[str] = None + + +class OpcUaWorkflow(BaseModel): + name: str + actions: List[ + Union[ + "OpcUaWorkflow", + Callable[ + [Callable[[str], OpcUaNodeBase]], + None + ]] + ] + + +class Action(BaseModel): + name: str + rw: bool # read是0 write是1 + + +class WorkflowAction(BaseModel): + init: Optional[Callable[[Callable[[str], OpcUaNodeBase]], bool]] = None + start: Optional[Callable[[Callable[[str], OpcUaNodeBase]], bool]] = None + stop: Optional[Callable[[Callable[[str], OpcUaNodeBase]], bool]] = None + cleanup: Optional[Callable[[Callable[[str], OpcUaNodeBase]], None]] = None + + +class OpcUaWorkflowModel(BaseModel): + name: str + actions: List[Union["OpcUaWorkflowModel", WorkflowAction]] + parameters: Optional[List[str]] = None + description: Optional[str] = None + + +""" 前后端Json解析用 """ +class NodeFunctionJson(BaseModel): + func_name: str + node_name: str + mode: str # read, write, call + value: Any = None + + +class ExecuteProcedureJson(BaseModel): + register_node_list_from_csv_path: Optional[Dict[str, Any]] = None +# create_flow: List[WorkflowCreateJson] + execute_flow: List[str] + + +class BaseClient(UniversalDriver): + client: Optional[Client] = None + _node_registry: Dict[str, OpcUaNodeBase] = {} + DEFAULT_ADDRESS_PATH = "" + _variables_to_find: Dict[str, Dict[str, Any]] = {} + _name_mapping: Dict[str, str] = {} # 英文名到中文名的映射 + _reverse_mapping: Dict[str, str] = {} # 中文名到英文名的映射 + # 直接缓存已找到的 ua.Node 对象,避免因字符串 NodeId 格式导致订阅失败 + _found_node_objects: Dict[str, Any] = {} + + def __init__(self): + super().__init__() + # 自动查找节点功能默认开启 + self._auto_find_nodes = True + # 初始化名称映射字典 + self._name_mapping = {} + self._reverse_mapping = {} + # 初始化线程锁(在子类中会被重新创建,这里提供默认实现) + import threading + self._client_lock = threading.RLock() + + def _set_client(self, client: Optional[Client]) -> None: + if client is None: + raise ValueError('client is not valid') + self.client = client + + def _connect(self) -> None: + logger.info('try to connect client...') + if self.client: + try: + self.client.connect() + logger.info('client connected!') + + # 连接后开始查找节点 + if self._variables_to_find: + self._find_nodes() + except Exception as e: + logger.error(f'client connect failed: {e}') + raise + else: + raise ValueError('client is not initialized') + + def _find_nodes(self) -> None: + """查找服务器中的节点(通过NodeID直接获取)""" + if not self.client: + raise ValueError('client is not connected') + + logger.info(f'开始查找 {len(self._variables_to_find)} 个节点...') + try: + # 记录查找前的状态 + before_count = len(self._node_registry) + + # 通过NodeID直接查找节点 + for var_name, var_info in self._variables_to_find.items(): + if var_name in self._node_registry: + continue # 已经找到的节点跳过 + + node_id = var_info.get("node_id") + if not node_id: + logger.warning(f"节点 '{var_name}' 缺少NodeID,跳过") + continue + + try: + # 通过NodeID直接获取节点 + node = self.client.get_node(node_id) + + # 验证节点是否存在(通过读取浏览名称) + browse_name = node.get_browse_name() + + node_type = var_info.get("node_type") + data_type = var_info.get("data_type") + node_id_str = str(node.nodeid) + + # 根据节点类型创建相应的对象 + if node_type == NodeType.VARIABLE: + self._node_registry[var_name] = Variable(self.client, var_name, node_id_str, data_type) + logger.debug(f"✓ 找到变量节点: '{var_name}', NodeId: {node_id_str}, DataType: {data_type}") + # 缓存真实的 ua.Node 对象用于订阅 + self._found_node_objects[var_name] = node + elif node_type == NodeType.METHOD: + # 对于方法节点,需要获取父节点ID + parent_node = node.get_parent() + parent_node_id = str(parent_node.nodeid) + self._node_registry[var_name] = Method(self.client, var_name, node_id_str, parent_node_id, data_type) + logger.debug(f"✓ 找到方法节点: '{var_name}', NodeId: {node_id_str}, ParentId: {parent_node_id}") + + except Exception as e: + logger.warning(f"无法获取节点 '{var_name}' (NodeId: {node_id}): {e}") + continue + + # 记录查找后的状态 + after_count = len(self._node_registry) + newly_found = after_count - before_count + + logger.info(f"本次查找新增 {newly_found} 个节点,当前共 {after_count} 个") + + # 检查是否所有节点都已找到 + not_found = [] + for var_name, var_info in self._variables_to_find.items(): + if var_name not in self._node_registry: + not_found.append(var_name) + + if not_found: + logger.warning(f"⚠ 以下 {len(not_found)} 个节点未找到: {', '.join(not_found[:10])}{'...' if len(not_found) > 10 else ''}") + logger.warning(f"提示:请检查这些节点的NodeID是否正确") + else: + logger.info(f"✓ 所有 {len(self._variables_to_find)} 个节点均已找到并注册") + + except Exception as e: + logger.error(f"查找节点失败: {e}") + traceback.print_exc() + + + + @classmethod + def load_csv(cls, file_path: str) -> List[OpcUaNode]: + """ + 从CSV文件加载节点定义 + CSV文件需包含Name,NodeType,DataType列 + 可选包含EnglishName,NodeLanguage和NodeId列 + """ + df = pd.read_csv(file_path) + df = df.drop_duplicates(subset='Name', keep='first') # 重复的数据应该报错 + nodes = [] + + # 检查是否包含英文名称列、节点语言列和NodeId列 + has_english_name = 'EnglishName' in df.columns + has_node_language = 'NodeLanguage' in df.columns + has_node_id = 'NodeId' in df.columns + + # 如果存在英文名称列,创建名称映射字典 + name_mapping = {} + reverse_mapping = {} + + for _, row in df.iterrows(): + name = row.get('Name') + node_type_str = row.get('NodeType') + data_type_str = row.get('DataType') + + # 获取英文名称、节点语言和NodeId(如果有) + english_name = row.get('EnglishName') if has_english_name else None + node_language = row.get('NodeLanguage') if has_node_language else 'English' # 默认为英文 + node_id = row.get('NodeId') if has_node_id else None + + # 如果有英文名称,添加到映射字典 + if english_name and not pd.isna(english_name) and node_language == 'Chinese': + name_mapping[english_name] = name + reverse_mapping[name] = english_name + + if not name or not node_type_str: + logger.warning(f"跳过无效行: 名称或节点类型缺失") + continue + + # 只支持VARIABLE和METHOD两种类型 + if node_type_str not in ['VARIABLE', 'METHOD']: + logger.warning(f"不支持的节点类型: {node_type_str},仅支持VARIABLE和METHOD") + continue + + try: + node_type = NodeType[node_type_str] + except KeyError: + logger.warning(f"无效的节点类型: {node_type_str}") + continue + + # 对于VARIABLE节点,必须指定数据类型 + if node_type == NodeType.VARIABLE: + if not data_type_str or pd.isna(data_type_str): + logger.warning(f"变量节点 {name} 必须指定数据类型") + continue + + try: + data_type = DataType[data_type_str] + except KeyError: + logger.warning(f"无效的数据类型: {data_type_str}") + continue + else: + # 对于METHOD节点,数据类型可选 + data_type = None + if data_type_str and not pd.isna(data_type_str): + try: + data_type = DataType[data_type_str] + except KeyError: + logger.warning(f"无效的数据类型: {data_type_str},将使用默认值") + + # 处理NodeId(如果有的话) + node_id_value = "" + if node_id and not pd.isna(node_id): + node_id_value = str(node_id).strip() + + # 创建节点对象,如果有NodeId则使用,否则留空 + nodes.append(OpcUaNode( + name=name, + node_type=node_type, + node_id=node_id_value, + data_type=data_type + )) + + # 返回节点列表和名称映射字典 + return nodes, name_mapping, reverse_mapping + + def use_node(self, name: str) -> OpcUaNodeBase: + """ + 获取已注册的节点 + 如果节点尚未找到,会尝试再次查找 + 支持使用英文名称访问中文节点 + """ + # 检查是否使用英文名称访问中文节点 + if name in self._name_mapping: + chinese_name = self._name_mapping[name] + if chinese_name in self._node_registry: + node = self._node_registry[chinese_name] + logger.debug(f"使用节点: '{name}' -> '{chinese_name}', NodeId: {node.node_id}") + return node + elif chinese_name in self._variables_to_find: + logger.warning(f"节点 {chinese_name} (英文名: {name}) 尚未找到,尝试重新查找") + if self.client: + self._find_nodes() + if chinese_name in self._node_registry: + node = self._node_registry[chinese_name] + logger.info(f"重新查找成功: '{chinese_name}', NodeId: {node.node_id}") + return node + raise ValueError(f'节点 {chinese_name} (英文名: {name}) 未注册或未找到') + + # 直接使用原始名称查找 + if name not in self._node_registry: + if name in self._variables_to_find: + logger.warning(f"节点 {name} 尚未找到,尝试重新查找") + if self.client: + self._find_nodes() + if name in self._node_registry: + node = self._node_registry[name] + logger.info(f"重新查找成功: '{name}', NodeId: {node.node_id}") + return node + logger.error(f"❌ 节点 '{name}' 未注册或未找到。已注册节点: {list(self._node_registry.keys())[:5]}...") + raise ValueError(f'节点 {name} 未注册或未找到') + node = self._node_registry[name] + logger.debug(f"使用节点: '{name}', NodeId: {node.node_id}") + return node + + def get_node_registry(self) -> Dict[str, OpcUaNodeBase]: + return self._node_registry + + def register_node_list_from_csv_path(self, path: str = None) -> "BaseClient": + """从CSV文件注册节点""" + if path is None: + path = self.DEFAULT_ADDRESS_PATH + nodes, name_mapping, reverse_mapping = self.load_csv(path) + self._name_mapping.update(name_mapping) + self._reverse_mapping.update(reverse_mapping) + return self.register_node_list(nodes) + + def register_node_list(self, node_list: List[OpcUaNode]) -> "BaseClient": + """注册节点列表""" + if not node_list or len(node_list) == 0: + logger.warning('节点列表为空') + return self + + logger.info(f'开始注册 {len(node_list)} 个节点...') + new_nodes_count = 0 + for node in node_list: + if node is None: + continue + + if node.name in self._node_registry: + logger.debug(f'节点 "{node.name}" 已存在于注册表') + exist = self._node_registry[node.name] + if exist.type != node.node_type: + raise ValueError(f'节点 {node.name} 类型 {node.node_type} 与已存在的类型 {exist.type} 不一致') + continue + + # 将节点添加到待查找列表,包括node_id + self._variables_to_find[node.name] = { + "node_type": node.node_type, + "data_type": node.data_type, + "node_id": node.node_id + } + new_nodes_count += 1 + logger.debug(f'添加节点 "{node.name}" ({node.node_type}, NodeId: {node.node_id}) 到待查找列表') + + logger.info(f'节点注册完成:新增 {new_nodes_count} 个待查找节点,总计 {len(self._variables_to_find)} 个') + + # 如果客户端已连接,立即开始查找 + if self.client: + self._find_nodes() + + return self + + def run_opcua_workflow(self, workflow: OpcUaWorkflow) -> None: + if not self.client: + raise ValueError('client is not connected') + + logger.info(f'start to run workflow {workflow.name}...') + + for action in workflow.actions: + if isinstance(action, OpcUaWorkflow): + self.run_opcua_workflow(action) + elif callable(action): + action(self.use_node) + else: + raise ValueError(f'invalid action {action}') + + def call_lifecycle_fn( + self, + workflow: OpcUaWorkflowModel, + fn: Optional[Callable[[Callable], bool]], + ) -> bool: + if not fn: + raise ValueError('fn is not valid in call_lifecycle_fn') + try: + result = fn(self.use_node) + # 处理函数返回值可能是元组的情况 + if isinstance(result, tuple) and len(result) == 2: + # 第二个元素是错误标志,True表示出错,False表示成功 + value, error_flag = result + return not error_flag # 转换成True表示成功,False表示失败 + return result + except Exception as e: + traceback.print_exc() + logger.error(f'execute {workflow.name} lifecycle failed, err: {e}') + return False + + def run_opcua_workflow_model(self, workflow: OpcUaWorkflowModel) -> bool: + if not self.client: + raise ValueError('client is not connected') + + logger.info(f'start to run workflow {workflow.name}...') + + for action in workflow.actions: + if isinstance(action, OpcUaWorkflowModel): + if self.run_opcua_workflow_model(action): + logger.info(f"{action.name} workflow done.") + continue + else: + logger.error(f"{action.name} workflow failed") + return False + elif isinstance(action, WorkflowAction): + init = action.init + start = action.start + stop = action.stop + cleanup = action.cleanup + if not init and not start and not stop: + raise ValueError(f'invalid action {action}') + + is_err = False + try: + if init and not self.call_lifecycle_fn(workflow, init): + raise ValueError(f"{workflow.name} init action failed") + if not self.call_lifecycle_fn(workflow, start): + raise ValueError(f"{workflow.name} start action failed") + if not self.call_lifecycle_fn(workflow, stop): + raise ValueError(f"{workflow.name} stop action failed") + logger.info(f"{workflow.name} action done.") + except Exception as e: + is_err = True + traceback.print_exc() + logger.error(f"{workflow.name} action failed, err: {e}") + finally: + logger.info(f"{workflow.name} try to run cleanup") + if cleanup: + self.call_lifecycle_fn(workflow, cleanup) + else: + logger.info(f"{workflow.name} cleanup is not defined") + if is_err: + return False + return True + else: + raise ValueError(f'invalid action type {type(action)}') + + return True + + function_name: Dict[str, Callable[[Callable[[str], OpcUaNodeBase]], bool]] = {} + + def create_node_function(self, func_name: str = None, node_name: str = None, mode: str = None, value: Any = None, **kwargs) -> Callable[[Callable[[str], OpcUaNodeBase]], bool]: + def execute_node_function(use_node: Callable[[str], OpcUaNodeBase]) -> Union[bool, Tuple[Any, bool]]: + target_node = use_node(node_name) + + # 检查是否有对应的参数值可用 + current_value = value + if hasattr(self, '_workflow_params') and func_name in self._workflow_params: + current_value = self._workflow_params[func_name] + print(f"使用参数值 {func_name} = {current_value}") + else: + print(f"执行 {node_name}, {type(target_node).__name__}, {target_node.node_id}, {mode}, {current_value}") + + if mode == 'read': + result_str = self.read_node(node_name) + + try: + # 将字符串转换为字典 + result_str = result_str.replace("'", '"') # 替换单引号为双引号以便JSON解析 + result_dict = json.loads(result_str) + + # 从字典获取值和错误标志 + val = result_dict.get("value") + err = result_dict.get("error") + + print(f"读取 {node_name} 返回值 = {val} (类型: {type(val).__name__}, 错误 = {err}") + return val, err + except Exception as e: + print(f"解析读取结果失败: {e}, 原始结果: {result_str}") + return None, True + elif mode == 'write': + # 构造完整的JSON输入,包含node_name和value + input_json = json.dumps({"node_name": node_name, "value": current_value}) + result_str = self.write_node(input_json) + + try: + # 解析返回的字符串为字典 + result_str = result_str.replace("'", '"') # 替换单引号为双引号以便JSON解析 + result = json.loads(result_str) + success = result.get("success", False) + print(f"写入 {node_name} = {current_value}, 结果 = {success}") + return success + except Exception as e: + print(f"解析写入结果失败: {e}, 原始结果: {result_str}") + return False + elif mode == 'call' and hasattr(target_node, 'call'): + args = current_value if isinstance(current_value, list) else [current_value] + result = target_node.call(*args) + print(f"调用方法 {node_name} 参数 = {args}, 返回值 = {result}") + return result + return False + + if func_name is None: + func_name = f"{node_name}_{mode}_{str(value)}" + + print(f"创建 node function: {mode}, {func_name}") + self.function_name[func_name] = execute_node_function + + return execute_node_function + + def create_init_function(self, func_name: str = None, write_nodes: Union[Dict[str, Any], List[str]] = None): + """ + 创建初始化函数 + + 参数: + func_name: 函数名称 + write_nodes: 写节点配置,可以是节点名列表[节点1,节点2]或节点值映射{节点1:值1,节点2:值2} + 值可以是具体值,也可以是参数名称字符串(将从_workflow_params中查找) + """ + if write_nodes is None: + raise ValueError("必须提供write_nodes参数") + + def execute_init_function(use_node: Callable[[str], OpcUaNodeBase]) -> bool: + """根据 _workflow_params 为各节点写入真实数值。 + + 约定: + - write_nodes 为 list 时: 节点名 == 参数名,从 _workflow_params[node_name] 取值; + - write_nodes 为 dict 时: + * value 为字符串且在 _workflow_params 中: 当作参数名去取值; + * 否则 value 视为常量直接写入。 + """ + + params = getattr(self, "_workflow_params", {}) or {} + + if isinstance(write_nodes, list): + # 节点列表形式: 节点名与参数名一致 + for node_name in write_nodes: + if node_name not in params: + print(f"初始化函数: 参数中未找到 {node_name}, 跳过写入") + continue + + current_value = params[node_name] + print(f"初始化函数: 写入节点 {node_name} = {current_value}") + input_json = json.dumps({"node_name": node_name, "value": current_value}) + result_str = self.write_node(input_json) + try: + result_str = result_str.replace("'", '"') + result = json.loads(result_str) + success = result.get("success", False) + print(f"初始化函数: 写入结果 = {success}") + except Exception as e: + print(f"初始化函数: 解析写入结果失败: {e}, 原始结果: {result_str}") + elif isinstance(write_nodes, dict): + # 映射形式: 节点名 -> 参数名或常量 + for node_name, node_value in write_nodes.items(): + if isinstance(node_value, str) and node_value in params: + current_value = params[node_value] + print(f"初始化函数: 从参数获取值 {node_value} = {current_value}") + else: + current_value = node_value + print(f"初始化函数: 使用常量值 写入 {node_name} = {current_value}") + + print(f"初始化函数: 写入节点 {node_name} = {current_value}") + input_json = json.dumps({"node_name": node_name, "value": current_value}) + result_str = self.write_node(input_json) + try: + result_str = result_str.replace("'", '"') + result = json.loads(result_str) + success = result.get("success", False) + print(f"初始化函数: 写入结果 = {success}") + except Exception as e: + print(f"初始化函数: 解析写入结果失败: {e}, 原始结果: {result_str}") + return True + + if func_name is None: + func_name = f"init_function_{str(time.time())}" + + print(f"创建初始化函数: {func_name}") + self.function_name[func_name] = execute_init_function + return execute_init_function + + def create_stop_function(self, func_name: str = None, write_nodes: Union[Dict[str, Any], List[str]] = None): + """ + 创建停止函数 + + 参数: + func_name: 函数名称 + write_nodes: 写节点配置,可以是节点名列表[节点1,节点2]或节点值映射{节点1:值1,节点2:值2} + """ + if write_nodes is None: + raise ValueError("必须提供write_nodes参数") + + def execute_stop_function(use_node: Callable[[str], OpcUaNodeBase]) -> bool: + if isinstance(write_nodes, list): + # 处理节点列表,默认值都是False + for node_name in write_nodes: + # 直接写入False + print(f"停止函数: 写入节点 {node_name} = False") + input_json = json.dumps({"node_name": node_name, "value": False}) + result_str = self.write_node(input_json) + try: + result_str = result_str.replace("'", '"') + result = json.loads(result_str) + success = result.get("success", False) + print(f"停止函数: 写入结果 = {success}") + except Exception as e: + print(f"停止函数: 解析写入结果失败: {e}, 原始结果: {result_str}") + elif isinstance(write_nodes, dict): + # 处理节点字典,使用指定的值 + for node_name, node_value in write_nodes.items(): + print(f"停止函数: 写入节点 {node_name} = {node_value}") + input_json = json.dumps({"node_name": node_name, "value": node_value}) + result_str = self.write_node(input_json) + try: + result_str = result_str.replace("'", '"') + result = json.loads(result_str) + success = result.get("success", False) + print(f"停止函数: 写入结果 = {success}") + except Exception as e: + print(f"停止函数: 解析写入结果失败: {e}, 原始结果: {result_str}") + return True + + if func_name is None: + func_name = f"stop_function_{str(time.time())}" + + print(f"创建停止函数: {func_name}") + self.function_name[func_name] = execute_stop_function + return execute_stop_function + + def create_cleanup_function(self, func_name: str = None, write_nodes: Union[Dict[str, Any], List[str]] = None): + """ + 创建清理函数 + + 参数: + func_name: 函数名称 + write_nodes: 写节点配置,可以是节点名列表[节点1,节点2]或节点值映射{节点1:值1,节点2:值2} + """ + if write_nodes is None: + raise ValueError("必须提供write_nodes参数") + + def execute_cleanup_function(use_node: Callable[[str], OpcUaNodeBase]) -> bool: + if isinstance(write_nodes, list): + # 处理节点列表,默认值都是False + for node_name in write_nodes: + # 直接写入False + print(f"清理函数: 写入节点 {node_name} = False") + input_json = json.dumps({"node_name": node_name, "value": False}) + result_str = self.write_node(input_json) + try: + result_str = result_str.replace("'", '"') + result = json.loads(result_str) + success = result.get("success", False) + print(f"清理函数: 写入结果 = {success}") + except Exception as e: + print(f"清理函数: 解析写入结果失败: {e}, 原始结果: {result_str}") + elif isinstance(write_nodes, dict): + # 处理节点字典,使用指定的值 + for node_name, node_value in write_nodes.items(): + print(f"清理函数: 写入节点 {node_name} = {node_value}") + input_json = json.dumps({"node_name": node_name, "value": node_value}) + result_str = self.write_node(input_json) + try: + result_str = result_str.replace("'", '"') + result = json.loads(result_str) + success = result.get("success", False) + print(f"清理函数: 写入结果 = {success}") + except Exception as e: + print(f"清理函数: 解析写入结果失败: {e}, 原始结果: {result_str}") + return True + + if func_name is None: + func_name = f"cleanup_function_{str(time.time())}" + + print(f"创建清理函数: {func_name}") + self.function_name[func_name] = execute_cleanup_function + return execute_cleanup_function + + def create_start_function(self, func_name: str, stop_condition_expression: str = "True", write_nodes: Union[Dict[str, Any], List[str]] = None, condition_nodes: Union[Dict[str, str], List[str]] = None): + """ + 创建开始函数 + + 参数: + func_name: 函数名称 + stop_condition_expression: 停止条件表达式,可直接引用节点名称 + write_nodes: 写节点配置,可以是节点名列表[节点1,节点2]或节点值映射{节点1:值1,节点2:值2} + condition_nodes: 条件节点列表 [节点名1, 节点名2] + """ + def execute_start_function(use_node: Callable[[str], OpcUaNodeBase]) -> bool: + """开始函数: 写入触发节点, 然后轮询条件节点直到满足停止条件。""" + + params = getattr(self, "_workflow_params", {}) or {} + + # 先处理写入节点(触发位等) + if write_nodes: + if isinstance(write_nodes, list): + # 列表形式: 节点名与参数名一致, 若无参数则直接写 True + for node_name in write_nodes: + if node_name in params: + current_value = params[node_name] + else: + current_value = True + + print(f"直接写入节点 {node_name} = {current_value}") + input_json = json.dumps({"node_name": node_name, "value": current_value}) + result_str = self.write_node(input_json) + try: + result_str = result_str.replace("'", '"') + result = json.loads(result_str) + success = result.get("success", False) + print(f"直接写入 {node_name} = {current_value}, 结果: {success}") + except Exception as e: + print(f"解析直接写入结果失败: {e}, 原始结果: {result_str}") + elif isinstance(write_nodes, dict): + # 字典形式: 节点名 -> 常量值(如 True/False) + for node_name, node_value in write_nodes.items(): + if node_name in params: + current_value = params[node_name] + else: + current_value = node_value + + print(f"直接写入节点 {node_name} = {current_value}") + input_json = json.dumps({"node_name": node_name, "value": current_value}) + result_str = self.write_node(input_json) + try: + result_str = result_str.replace("'", '"') + result = json.loads(result_str) + success = result.get("success", False) + print(f"直接写入 {node_name} = {current_value}, 结果: {success}") + except Exception as e: + print(f"解析直接写入结果失败: {e}, 原始结果: {result_str}") + + # 如果没有条件节点,立即返回 + if not condition_nodes: + return True + + # 处理条件检查和等待 + while True: + next_loop = False + condition_source = {} + + # 直接读取条件节点 + if isinstance(condition_nodes, list): + # 处理节点列表 + for i, node_name in enumerate(condition_nodes): + # 直接读取节点 + result_str = self.read_node(node_name) + try: + time.sleep(1) + result_str = result_str.replace("'", '"') + result_dict = json.loads(result_str) + read_res = result_dict.get("value") + read_err = result_dict.get("error", False) + print(f"直接读取 {node_name} 返回值 = {read_res}, 错误 = {read_err}") + + if read_err: + next_loop = True + break + + # 将节点值存入条件源字典,使用节点名称作为键 + condition_source[node_name] = read_res + # 为了向后兼容,也保留read_i格式 + condition_source[f"read_{i}"] = read_res + except Exception as e: + print(f"解析直接读取结果失败: {e}, 原始结果: {result_str}") + read_res, read_err = None, True + next_loop = True + break + elif isinstance(condition_nodes, dict): + # 处理节点字典 + for condition_func, node_name in condition_nodes.items(): + # 直接读取节点 + result_str = self.read_node(node_name) + try: + result_str = result_str.replace("'", '"') + result_dict = json.loads(result_str) + read_res = result_dict.get("value") + read_err = result_dict.get("error", False) + print(f"直接读取 {node_name} 返回值 = {read_res}, 错误 = {read_err}") + + if read_err: + next_loop = True + break + + # 将节点值存入条件源字典 + condition_source[node_name] = read_res + # 也保存使用函数名作为键 + condition_source[condition_func] = read_res + except Exception as e: + print(f"解析直接读取结果失败: {e}, 原始结果: {result_str}") + next_loop = True + break + + if not next_loop: + if stop_condition_expression: + # 添加调试信息 + print(f"条件源数据: {condition_source}") + condition_source["__RESULT"] = None + + # 确保安全地执行条件表达式 + try: + # 先尝试使用eval更安全的方式计算表达式 + result = eval(stop_condition_expression, {}, condition_source) + condition_source["__RESULT"] = result + except Exception as e: + print(f"使用eval执行表达式失败: {e}") + try: + # 回退到exec方式 + exec(f"__RESULT = {stop_condition_expression}", {}, condition_source) + except Exception as e2: + print(f"使用exec执行表达式也失败: {e2}") + condition_source["__RESULT"] = False + + res = condition_source["__RESULT"] + print(f"取得计算结果: {res}, 条件表达式: {stop_condition_expression}") + + if res: + print("满足停止条件,结束工作流") + break + else: + # 如果没有停止条件,直接退出 + break + else: + time.sleep(0.3) + + return True + + self.function_name[func_name] = execute_start_function + return execute_start_function + + create_action_from_json = None + + def create_action_from_json(self, data: Union[Dict, Any]) -> WorkflowAction: + """ + 从JSON配置创建工作流动作 + + 参数: + data: 动作JSON数据 + + 返回: + WorkflowAction对象 + """ + # 初始化所需变量 + start_function = None + write_nodes = {} + condition_nodes = [] + stop_function = None + init_function = None + cleanup_function = None + + # 提取start_function相关信息 + if hasattr(data, "start_function") and data.start_function: + start_function = data.start_function + if "write_nodes" in start_function: + write_nodes = start_function["write_nodes"] + if "condition_nodes" in start_function: + condition_nodes = start_function["condition_nodes"] + elif isinstance(data, dict) and data.get("start_function"): + start_function = data.get("start_function") + if "write_nodes" in start_function: + write_nodes = start_function["write_nodes"] + if "condition_nodes" in start_function: + condition_nodes = start_function["condition_nodes"] + + # 提取stop_function信息 + if hasattr(data, "stop_function") and data.stop_function: + stop_function = data.stop_function + elif isinstance(data, dict) and data.get("stop_function"): + stop_function = data.get("stop_function") + + # 提取init_function信息 + if hasattr(data, "init_function") and data.init_function: + init_function = data.init_function + elif isinstance(data, dict) and data.get("init_function"): + init_function = data.get("init_function") + + # 提取cleanup_function信息 + if hasattr(data, "cleanup_function") and data.cleanup_function: + cleanup_function = data.cleanup_function + elif isinstance(data, dict) and data.get("cleanup_function"): + cleanup_function = data.get("cleanup_function") + + # 创建工作流动作组件 + init = None + start = None + stop = None + cleanup = None + + # 处理init function + if init_function: + init_params = {"func_name": init_function.get("func_name")} + if "write_nodes" in init_function: + init_params["write_nodes"] = init_function["write_nodes"] + else: + # 如果没有write_nodes,创建一个空字典 + init_params["write_nodes"] = {} + + init = self.create_init_function(**init_params) + + # 处理start function + if start_function: + start_params = { + "func_name": start_function.get("func_name"), + "stop_condition_expression": start_function.get("stop_condition_expression", "True"), + "write_nodes": write_nodes, + "condition_nodes": condition_nodes + } + start = self.create_start_function(**start_params) + + # 处理stop function + if stop_function: + stop_params = { + "func_name": stop_function.get("func_name"), + "write_nodes": stop_function.get("write_nodes", {}) + } + stop = self.create_stop_function(**stop_params) + + # 处理cleanup function + if cleanup_function: + cleanup_params = { + "func_name": cleanup_function.get("func_name"), + "write_nodes": cleanup_function.get("write_nodes", {}) + } + cleanup = self.create_cleanup_function(**cleanup_params) + + return WorkflowAction(init=init, start=start, stop=stop, cleanup=cleanup) + + workflow_name: Dict[str, OpcUaWorkflowModel] = {} + + def create_workflow_from_json(self, data: List[Dict]) -> None: + """ + 从JSON配置创建工作流程序 + + 参数: + data: 工作流配置列表 + """ + for ind, flow_dict in enumerate(data): + print(f"正在创建 workflow {ind}, {flow_dict['name']}") + actions = [] + + for i in flow_dict["action"]: + if isinstance(i, str): + print(f"沿用已有 workflow 作为 action: {i}") + action = self.workflow_name[i] + else: + print("创建 action") + # 直接将字典转换为SimplifiedActionJson对象或直接使用字典 + action = self.create_action_from_json(i) + + actions.append(action) + + # 获取参数 + parameters = flow_dict.get("parameters", []) + + flow_instance = OpcUaWorkflowModel( + name=flow_dict["name"], + actions=actions, + parameters=parameters, + description=flow_dict.get("description", "") + ) + print(f"创建完成 workflow: {flow_dict['name']}") + self.workflow_name[flow_dict["name"]] = flow_instance + + def execute_workflow_from_json(self, data: List[str]) -> None: + for i in data: + print(f"正在执行 workflow: {i}") + self.run_opcua_workflow_model(self.workflow_name[i]) + + def execute_procedure_from_json(self, data: Union[ExecuteProcedureJson, Dict]) -> None: + """从JSON配置执行工作流程序""" + if isinstance(data, dict): + # 处理字典类型 + register_params = data.get("register_node_list_from_csv_path") + create_flow = data.get("create_flow", []) + execute_flow = data.get("execute_flow", []) + else: + # 处理Pydantic模型类型 + register_params = data.register_node_list_from_csv_path + create_flow = data.create_flow + execute_flow = data.execute_flow if hasattr(data, "execute_flow") else [] + + # 注册节点 + if register_params: + print(f"注册节点 csv: {register_params}") + self.register_node_list_from_csv_path(**register_params) + + # 创建工作流 + print("创建工作流") + self.create_workflow_from_json(create_flow) + + # 注册工作流为实例方法 + self.register_workflows_as_methods() + + # 如果存在execute_flow字段,则执行指定的工作流(向后兼容) + if execute_flow: + print("执行工作流") + self.execute_workflow_from_json(execute_flow) + + def register_workflows_as_methods(self) -> None: + """将工作流注册为实例方法""" + for workflow_name, workflow in self.workflow_name.items(): + # 获取工作流的参数信息(如果存在) + workflow_params = getattr(workflow, 'parameters', []) or [] + workflow_desc = getattr(workflow, 'description', None) or f"执行工作流: {workflow_name}" + + # 创建执行工作流的方法 + def create_workflow_method(wf_name=workflow_name, wf=workflow, params=workflow_params): + def workflow_method(*args, **kwargs): + logger.info(f"执行工作流: {wf_name}, 参数: {args}, {kwargs}") + + # 处理传入的参数 + if params and (args or kwargs): + # 将位置参数转换为关键字参数 + params_dict = {} + for i, param_name in enumerate(params): + if i < len(args): + params_dict[param_name] = args[i] + + # 合并关键字参数 + params_dict.update(kwargs) + + # 保存参数,供节点函数使用 + self._workflow_params = params_dict + else: + self._workflow_params = {} + + # 执行工作流 + result = self.run_opcua_workflow_model(wf) + + # 清理参数 + self._workflow_params = {} + + return result + + # 设置方法的文档字符串 + workflow_method.__doc__ = workflow_desc + if params: + param_doc = ", ".join(params) + workflow_method.__doc__ += f"\n参数: {param_doc}" + + return workflow_method + + # 注册为实例方法 + method = create_workflow_method() + setattr(self, workflow_name, method) + logger.info(f"已将工作流 '{workflow_name}' 注册为实例方法") + + def read_node(self, node_name: str) -> Dict[str, Any]: + """ + 读取节点值的便捷方法 + 返回包含result字段的字典 + """ + # 使用锁保护客户端访问 + with self._client_lock: + try: + node = self.use_node(node_name) + value, error = node.read() + + # 创建结果字典 + result = { + "value": value, + "error": error, + "node_name": node_name, + "timestamp": time.time() + } + + # 返回JSON字符串 + return json.dumps(result) + except Exception as e: + logger.error(f"读取节点 {node_name} 失败: {e}") + # 创建错误结果字典 + result = { + "value": None, + "error": True, + "node_name": node_name, + "error_message": str(e), + "timestamp": time.time() + } + return json.dumps(result) + + def write_node(self, json_input: str) -> str: + """ + 写入节点值的便捷方法 + 接受单个JSON格式的字符串作为输入,包含节点名称和值 + eg:'{\"node_name\":\"反应罐号码\",\"value\":\"2\"}' + 返回JSON格式的字符串,包含操作结果 + """ + # 使用锁保护客户端访问 + with self._client_lock: + try: + # 解析JSON格式的输入 + if not isinstance(json_input, str): + json_input = str(json_input) + + try: + input_data = json.loads(json_input) + if not isinstance(input_data, dict): + return json.dumps({"error": True, "error_message": "输入必须是包含node_name和value的JSON对象", "success": False}) + + # 从JSON中提取节点名称和值 + node_name = input_data.get("node_name") + value = input_data.get("value") + + if node_name is None: + return json.dumps({"error": True, "error_message": "JSON中缺少node_name字段", "success": False}) + except json.JSONDecodeError as e: + return json.dumps({"error": True, "error_message": f"JSON解析错误: {str(e)}", "success": False}) + + node = self.use_node(node_name) + error = node.write(value) + + # 创建结果字典 + result = { + "value": value, + "error": error, + "node_name": node_name, + "timestamp": time.time(), + "success": not error + } + + return json.dumps(result) + except Exception as e: + logger.error(f"写入节点失败: {e}") + result = { + "error": True, + "error_message": str(e), + "timestamp": time.time(), + "success": False + } + return json.dumps(result) + + def call_method(self, node_name: str, *args) -> Tuple[Any, bool]: + """ + 调用方法节点的便捷方法 + 返回 (返回值, 是否出错) + """ + try: + node = self.use_node(node_name) + if hasattr(node, 'call'): + return node.call(*args) + else: + logger.error(f"节点 {node_name} 不是方法节点") + return None, True + except Exception as e: + logger.error(f"调用方法 {node_name} 失败: {e}") + return None, True + + +class OpcUaClient(BaseClient): + def __init__( + self, + url: str, + deck: Optional[AI4M_deck] = None, + csv_path: str = None, + username: str = None, + password: str = None, + use_subscription: bool = True, + cache_timeout: float = 5.0, + subscription_interval: int = 500, + *args, + **kwargs, + ): + # 降低OPCUA库的日志级别 + import logging + logging.getLogger("opcua").setLevel(logging.WARNING) + + # ===== 关键修改:参照 BioyondWorkstation 处理 deck ===== + + super().__init__() + + # 处理 deck 参数 + if deck is None or isinstance(deck["data"], dict) or len(deck["data"].children) == 0: + self.deck = AI4M_deck(setup=True) + else: + # self.resource = ResourceTreeSet.from_nested_instance_list([deck["data"]]) + # self.deck = self.resource.to_plr_resources() + self.deck = deck["data"] + # elif isinstance(deck, dict): + # # 从 dict 中提取参数创建 deck + # deck_config = deck.get('config', {}) + # deck_size_x = deck_config.get('size_x', 1217.0) + # deck_size_y = deck_config.get('size_y', 1580.0) + # deck_size_z = deck_config.get('size_z', 2670.0) + # self.deck = AI4M_deck( + # size_x=deck_size_x, + # size_y=deck_size_y, + # size_z=deck_size_z, + # setup=True + # ) + # logger.info(f"Deck 尺寸设置: {deck_size_x}x{deck_size_y}x{deck_size_z} mm") + # elif hasattr(deck, 'children'): + # self.deck = deck + # else: + # raise ValueError(f"deck 参数类型不支持: {type(deck)}") + + if self.deck is None: + raise ValueError("Deck 配置不能为空") + + # 统计仓库信息 + warehouse_count = 0 + if hasattr(self.deck, 'children'): + warehouse_count = len(self.deck.children) + logger.info(f"Deck 初始化完成,加载 {warehouse_count} 个资源") + + + # OPC UA 客户端初始化 + client = Client(url) + + if username and password: + client.set_user(username) + client.set_password(password) + + self._set_client(client) + + # 订阅相关属性 + self._use_subscription = use_subscription + self._subscription = None + self._subscription_handles = {} + self._subscription_interval = subscription_interval + + # 缓存相关属性 + self._node_values = {} # 修改为支持时间戳的缓存结构 + self._cache_timeout = cache_timeout + + # 连接状态监控 + self._connection_check_interval = 30.0 # 连接检查间隔(秒) + self._connection_monitor_running = False + self._connection_monitor_thread = None + + # # 添加线程锁,保护OPC UA客户端的并发访问 + import threading + self._client_lock = threading.RLock() + + # 连接到服务器 + self._connect() + + # 如果提供了 CSV 路径,则直接加载节点 + if csv_path: + self.load_nodes_from_csv(csv_path) + + # 启动连接监控 + self._start_connection_monitor() + + + def _connect(self) -> None: + """连接到OPC UA服务器""" + logger.info('尝试连接到 OPC UA 服务器...') + if self.client: + try: + self.client.connect() + logger.info('✓ 客户端已连接!') + + # 连接后开始查找节点 + if self._variables_to_find: + self._find_nodes() + + # 如果启用订阅模式,设置订阅 + if self._use_subscription: + self._setup_subscriptions() + else: + logger.info("订阅模式已禁用,将使用按需读取模式") + + except Exception as e: + logger.error(f'客户端连接失败: {e}') + raise + else: + raise ValueError('客户端未初始化') + + class SubscriptionHandler: + """freeopcua订阅处理器:必须实现 datachange_notification 方法""" + def __init__(self, outer): + self.outer = outer + + def datachange_notification(self, node, val, data): + # 委托给外层类的处理函数 + try: + self.outer._on_subscription_datachange(node, val, data) + except Exception as e: + logger.error(f"订阅数据回调处理失败: {e}") + + # 可选:事件通知占位,避免库调用时报缺失 + def event_notification(self, event): + pass + + def _setup_subscriptions(self): + """设置 OPC UA 订阅""" + if not self.client or not self._use_subscription: + return + + with self._client_lock: + try: + logger.info(f"开始设置订阅 (发布间隔: {self._subscription_interval}ms)...") + + # 创建订阅 + handler = OpcUaClient.SubscriptionHandler(self) + self._subscription = self.client.create_subscription( + self._subscription_interval, + handler + ) + + # 为所有变量节点创建监控项 + subscribed_count = 0 + skipped_count = 0 + + for node_name, node in self._node_registry.items(): + # 只为变量节点创建订阅 + if node.type == NodeType.VARIABLE and node.node_id: + try: + # 优先使用在查找阶段缓存的真实 ua.Node 对象 + ua_node = self._found_node_objects.get(node_name) + if ua_node is None: + ua_node = self.client.get_node(node.node_id) + handle = self._subscription.subscribe_data_change(ua_node) + self._subscription_handles[node_name] = handle + subscribed_count += 1 + logger.debug(f"✓ 已订阅节点: {node_name}") + except Exception as e: + skipped_count += 1 + logger.warning(f"✗ 订阅节点 {node_name} 失败: {e}") + else: + skipped_count += 1 + + logger.info(f"订阅设置完成: 成功 {subscribed_count} 个, 跳过 {skipped_count} 个") + + except Exception as e: + logger.error(f"设置订阅失败: {e}") + traceback.print_exc() + # 订阅失败时回退到按需读取模式 + self._use_subscription = False + logger.warning("订阅模式设置失败,已自动切换到按需读取模式") + + def _on_subscription_datachange(self, node, val, data): + """订阅数据变化处理器(供内部 SubscriptionHandler 调用)""" + try: + node_id = str(node.nodeid) + current_time = time.time() + # 查找对应的节点名称 + for node_name, node_obj in self._node_registry.items(): + if node_obj.node_id == node_id: + self._node_values[node_name] = { + 'value': val, + 'timestamp': current_time, + 'source': 'subscription' + } + logger.debug(f"订阅更新: {node_name} = {val}") + break + except Exception as e: + logger.error(f"处理订阅数据失败: {e}") + + def get_node_value(self, name, use_cache=True, force_read=False): + """ + 获取节点值(智能缓存版本) + + 参数: + name: 节点名称(支持中文名或英文名) + use_cache: 是否使用缓存 + force_read: 是否强制从服务器读取(忽略缓存) + """ + # 处理名称映射 + if name in self._name_mapping: + chinese_name = self._name_mapping[name] + elif name in self._node_registry: + chinese_name = name + else: + raise ValueError(f"未找到名称为 '{name}' 的节点") + + # 如果强制读取,直接从服务器读取 + if force_read: + with self._client_lock: + value, _ = self.use_node(chinese_name).read() + # 更新缓存 + self._node_values[chinese_name] = { + 'value': value, + 'timestamp': time.time(), + 'source': 'forced_read' + } + return value + + # 检查缓存 + if use_cache and chinese_name in self._node_values: + cache_entry = self._node_values[chinese_name] + cache_age = time.time() - cache_entry['timestamp'] + + # 如果是订阅模式,缓存永久有效(由订阅更新) + # 如果是按需读取模式,检查缓存超时 + if cache_entry.get('source') == 'subscription' or cache_age < self._cache_timeout: + logger.debug(f"从缓存读取: {chinese_name} = {cache_entry['value']} (age: {cache_age:.2f}s, source: {cache_entry.get('source', 'unknown')})") + return cache_entry['value'] + + # 缓存过期或不存在,从服务器读取 + with self._client_lock: + try: + value, error = self.use_node(chinese_name).read() + if not error: + # 更新缓存 + self._node_values[chinese_name] = { + 'value': value, + 'timestamp': time.time(), + 'source': 'on_demand_read' + } + return value + else: + logger.warning(f"读取节点 {chinese_name} 失败") + return None + except Exception as e: + logger.error(f"读取节点 {chinese_name} 出错: {e}") + return None + + def set_node_value(self, name, value): + """ + 设置节点值 + 写入成功后会立即更新本地缓存 + """ + # 处理名称映射 + if name in self._name_mapping: + chinese_name = self._name_mapping[name] + elif name in self._node_registry: + chinese_name = name + else: + raise ValueError(f"未找到名称为 '{name}' 的节点") + + with self._client_lock: + try: + node = self.use_node(chinese_name) + error = node.write(value) + + if not error: + # 写入成功,立即更新缓存 + self._node_values[chinese_name] = { + 'value': value, + 'timestamp': time.time(), + 'source': 'write' + } + logger.debug(f"写入成功: {chinese_name} = {value}") + return True + else: + logger.warning(f"写入节点 {chinese_name} 失败") + return False + except Exception as e: + logger.error(f"写入节点 {chinese_name} 出错: {e}") + return False + + def _check_connection(self) -> bool: + """检查连接状态""" + try: + with self._client_lock: + if self.client: + # 尝试获取命名空间数组来验证连接 + self.client.get_namespace_array() + return True + except Exception as e: + logger.warning(f"连接检查失败: {e}") + return False + return False + + def _connection_monitor_worker(self): + """连接监控线程工作函数""" + self._connection_monitor_running = True + logger.info(f"连接监控线程已启动 (检查间隔: {self._connection_check_interval}秒)") + + reconnect_attempts = 0 + max_reconnect_attempts = 5 + + while self._connection_monitor_running: + try: + # 检查连接状态 + if not self._check_connection(): + logger.warning("检测到连接断开,尝试重新连接...") + reconnect_attempts += 1 + + if reconnect_attempts <= max_reconnect_attempts: + try: + # 尝试重新连接 + with self._client_lock: + if self.client: + try: + self.client.disconnect() + except: + pass + + self.client.connect() + logger.info("✓ 重新连接成功") + + # 重新设置订阅 + if self._use_subscription: + self._setup_subscriptions() + + reconnect_attempts = 0 + except Exception as e: + logger.error(f"重新连接失败 (尝试 {reconnect_attempts}/{max_reconnect_attempts}): {e}") + time.sleep(5) # 重连失败后等待5秒 + else: + logger.error(f"达到最大重连次数 ({max_reconnect_attempts}),停止重连") + self._connection_monitor_running = False + else: + # 连接正常,重置重连计数 + reconnect_attempts = 0 + + except Exception as e: + logger.error(f"连接监控出错: {e}") + + # 等待下次检查 + time.sleep(self._connection_check_interval) + + def _start_connection_monitor(self): + """启动连接监控线程""" + if self._connection_monitor_thread is not None and self._connection_monitor_thread.is_alive(): + logger.warning("连接监控线程已在运行") + return + + import threading + self._connection_monitor_thread = threading.Thread( + target=self._connection_monitor_worker, + daemon=True, + name="OpcUaConnectionMonitor" + ) + self._connection_monitor_thread.start() + + def _stop_connection_monitor(self): + """停止连接监控线程""" + self._connection_monitor_running = False + if self._connection_monitor_thread and self._connection_monitor_thread.is_alive(): + self._connection_monitor_thread.join(timeout=2.0) + logger.info("连接监控线程已停止") + + def read_node(self, node_name: str) -> str: + """ + 读取节点值的便捷方法(使用缓存) + 返回JSON格式字符串 + """ + try: + # 使用get_node_value方法,自动处理缓存 + value = self.get_node_value(node_name, use_cache=True) + + # 获取缓存信息 + chinese_name = self._name_mapping.get(node_name, node_name) + cache_info = self._node_values.get(chinese_name, {}) + + result = { + "value": value, + "error": False, + "node_name": node_name, + "timestamp": time.time(), + "cache_age": time.time() - cache_info.get('timestamp', time.time()), + "source": cache_info.get('source', 'unknown') + } + + return json.dumps(result) + except Exception as e: + logger.error(f"读取节点 {node_name} 失败: {e}") + result = { + "value": None, + "error": True, + "node_name": node_name, + "error_message": str(e), + "timestamp": time.time() + } + return json.dumps(result) + + def get_cache_stats(self) -> Dict[str, Any]: + """获取缓存统计信息""" + current_time = time.time() + stats = { + 'total_cached_nodes': len(self._node_values), + 'subscription_nodes': 0, + 'on_demand_nodes': 0, + 'expired_nodes': 0, + 'cache_timeout': self._cache_timeout, + 'using_subscription': self._use_subscription + } + + for node_name, cache_entry in self._node_values.items(): + source = cache_entry.get('source', 'unknown') + cache_age = current_time - cache_entry['timestamp'] + + if source == 'subscription': + stats['subscription_nodes'] += 1 + elif source in ['on_demand_read', 'forced_read', 'write']: + stats['on_demand_nodes'] += 1 + + if cache_age > self._cache_timeout: + stats['expired_nodes'] += 1 + + return stats + + def print_cache_stats(self): + """打印缓存统计信息""" + stats = self.get_cache_stats() + print("\n" + "="*80) + print("缓存统计信息") + print("="*80) + print(f"总缓存节点数: {stats['total_cached_nodes']}") + print(f"订阅模式: {'启用' if stats['using_subscription'] else '禁用'}") + print(f" - 订阅更新节点: {stats['subscription_nodes']}") + print(f" - 按需读取节点: {stats['on_demand_nodes']}") + print(f" - 已过期节点: {stats['expired_nodes']}") + print(f"缓存超时时间: {stats['cache_timeout']}秒") + print("="*80 + "\n") + + def load_nodes_from_csv(self, csv_path: str) -> None: + """直接从CSV文件加载并注册节点""" + try: + logger.info(f"开始从CSV文件加载节点: {csv_path}") + + # 如果是相对路径,转换为相对于 AI4M.py 文件所在目录的绝对路径 + if not os.path.isabs(csv_path): + current_dir = os.path.dirname(os.path.abspath(__file__)) + csv_path = os.path.join(current_dir, csv_path) + logger.info(f"相对路径已转换为绝对路径: {csv_path}") + + # 检查文件是否存在 + if not os.path.exists(csv_path): + logger.error(f"CSV文件不存在: {csv_path}") + return + + # 注册节点 + logger.info(f"注册CSV文件中的节点: {csv_path}") + self.register_node_list_from_csv_path(path=csv_path) + + # 查找节点 + if self.client and self._variables_to_find: + logger.info(f"CSV加载完成,待查找 {len(self._variables_to_find)} 个节点...") + self._find_nodes() + else: + logger.warning(f"⚠ 跳过节点查找 - client: {self.client is not None}, 待查找节点: {len(self._variables_to_find)}") + + # 将所有节点注册为属性 + self._register_nodes_as_attributes() + + # 打印统计信息 + found_count = len(self._node_registry) + total_count = len(self._variables_to_find) + if found_count < total_count: + logger.warning(f"节点查找完成:找到 {found_count}/{total_count} 个节点") + else: + logger.info(f"✓ 节点查找完成:所有 {found_count} 个节点均已找到") + + # 如果使用订阅模式,设置订阅(确保新节点被订阅) + if self._use_subscription and found_count > 0: + self._setup_subscriptions() + + logger.info(f"✓ 成功从 CSV 加载 {found_count} 个节点") + except Exception as e: + logger.error(f"从CSV文件加载节点失败 {csv_path}: {e}") + traceback.print_exc() + + def disconnect(self): + """断开连接并清理资源""" + logger.info("正在断开连接...") + + # 停止连接监控 + self._stop_connection_monitor() + + # 删除订阅 + if self._subscription: + try: + with self._client_lock: + self._subscription.delete() + logger.info("订阅已删除") + except Exception as e: + logger.warning(f"删除订阅失败: {e}") + + # 断开客户端连接 + if self.client: + try: + with self._client_lock: + self.client.disconnect() + logger.info("✓ OPC UA 客户端已断开连接") + except Exception as e: + logger.error(f"断开连接失败: {e}") + + def _register_nodes_as_attributes(self): + """将所有节点注册为实例属性""" + for node_name, node in self._node_registry.items(): + if not node.node_id or node.node_id == "": + logger.warning(f"⚠ 节点 '{node_name}' 的 node_id 为空,跳过注册为属性") + continue + + eng_name = self._reverse_mapping.get(node_name) + attr_name = eng_name if eng_name else node_name.replace(' ', '_').replace('-', '_') + + def create_property_getter(node_key): + def getter(self): + return self.get_node_value(node_key, use_cache=True) + return getter + + setattr(OpcUaClient, attr_name, property(create_property_getter(node_name))) + logger.debug(f"已注册节点 '{node_name}' 为属性 '{attr_name}'") + + def post_init(self, ros_node): + """ROS2 节点就绪后的初始化""" + if not (hasattr(self, 'deck') and self.deck): + return + + if not (hasattr(ros_node, 'resource_tracker') and ros_node.resource_tracker): + logger.warning("resource_tracker 不存在,无法注册 deck") + return + + # 1. 本地注册(必需) + ros_node.resource_tracker.add_resource(self.deck) + + # 2. 上传云端 + try: + from unilabos.ros.nodes.base_device_node import ROS2DeviceNode + ROS2DeviceNode.run_async_func( + ros_node.update_resource, + True, + resources=[self.deck] + ) + logger.info("Deck 已上传到云端") + except Exception as e: + logger.error(f"上传失败: {e}") + + def start_manual_mode( + self + ) -> bool: + """ + 指令作业模式函数: + - 将模式切换、手自动切换写false + - 等待自动模式为false + - 将模式切换写true + + 返回: 是否成功完成自动作业 + """ + self.success = False + + print("启动指令作业模式...") + + # 将模式切换、手自动切换写true + print("设置模式切换和手自动切换为true...") + self.set_node_value("mode_switch", True) + self.set_node_value("manual_auto_switch", False) + + # 等待自动模式为false + print("等待自动模式为False...") + auto_mode = self.get_node_value("auto_mode") + while auto_mode: + print("等待自动模式变为False...") + time.sleep(1.0) + auto_mode = self.get_node_value("auto_mode") + else: + print("模式切换完成") + self.success = True + + return self.success + + def trigger_robot_pick_beaker( + self, + pick_beaker_id: int, + place_station_id: int, + ) -> bool: + """ + 机器人取烧杯并放到检测位: + - 先写入取烧杯编号,等待取烧杯完成 + - 取完成后再写入放检测编号,等待对应的放检测完成信号 + + 参数: + pick_beaker_id: 取烧杯编号(1-5) + place_station_id: 放检测编号(1-3) + timeout: 超时时间(秒),保留用于向后兼容,实际不使用 + poll_interval: 轮询间隔(秒) + + 返回: 是否成功完成操作 + """ + self.success = False + + # 校验输入范围 + if pick_beaker_id not in (1, 2, 3, 4, 5): + logger.error("取烧杯编号必须在 1-5 范围内") + return False + if place_station_id not in (1, 2, 3): + logger.error("放检测编号必须在 1-3 范围内") + return False + + # 获取仓库资源 + rack_warehouse = self.deck.warehouses["水凝胶烧杯堆栈"] + station_warehouse = self.deck.warehouses[f"反应工站{place_station_id}"] + rack_site_key = f"A{pick_beaker_id}" + + pick_complete_node = f"robot_rack_pick_beaker_{pick_beaker_id}_complete" + place_complete_node = f"robot_place_station_{place_station_id}_complete" + + # 阶段1:下发取烧杯编号并等待完成 + print("下发取烧杯编号,等待完成...") + self.set_node_value("robot_pick_beaker_id", pick_beaker_id) + + # 等待取烧杯完成 + pick_complete = self.get_node_value(pick_complete_node) + while not pick_complete: + print("取烧杯中...") + time.sleep(2.0) + pick_complete = self.get_node_value(pick_complete_node) + + # 获取载具(carrier) + carrier = rack_warehouse[rack_site_key] + if carrier is None: + logger.error(f"堆栈位置 {rack_site_key} 没有载具") + return False + + # 阶段1.5:机器人取烧杯完成后,从堆栈解绑载具 + try: + rack_warehouse.unassign_child_resource(carrier) + print(f"✓ 已从堆栈解绑载具 {carrier.name}") + except Exception as e: + logger.error(f"从堆栈解绑载具失败: {e}") + return False + + # 阶段2:取完成后再下发放检测编号并等待完成 + print("取完成,开始下发放检测编号...") + self.set_node_value("robot_place_station_id", place_station_id) + + # 等待放检测完成 + place_complete = self.get_node_value(place_complete_node) + while not place_complete: + print("放检测中...") + time.sleep(2.0) + place_complete = self.get_node_value(place_complete_node) + + # 阶段2.5:机器人放到检测站完成后,绑定载具到检测站 + # 注意:每个检测站都有独立的 warehouse,且是 1x1x1,所以索引始终是 0 + try: + # 每个检测站 warehouse 只有 1 个 site,索引固定为 0 + station_site_idx = 0 + station_site_key = list(station_warehouse._ordering.keys())[station_site_idx] + station_location = station_warehouse.child_locations[station_site_key] + + # 绑定到检测站 warehouse + station_warehouse.assign_child_resource(carrier, location=station_location, spot=station_site_idx) + print(f"✓ 已绑定载具 {carrier.name} 到检测站{place_station_id}") + except Exception as e: + logger.error(f"绑定载具到检测站失败: {e}") + # 即使绑定失败,物理上机器人已经完成了操作 + + print("放检测完成") + self.success = True + + # 更新资源树到前端 + if hasattr(self, '_ros_node') and self._ros_node: + try: + from unilabos.ros.nodes.base_device_node import ROS2DeviceNode + ROS2DeviceNode.run_async_func(self._ros_node.update_resource, True, resources=[self.deck]) + print(f"✓ 已同步资源更新到前端") + except Exception as e: + logger.warning(f"前端资源更新失败: {e}") + + return self.success + + def trigger_robot_place_beaker( + self, + place_beaker_id: int, + pick_station_id: int, + ) -> bool: + """ + 机器人从检测位取烧杯并放回: + - 先写入取检测编号,等待取检测完成 + - 取完成后再写入放烧杯编号,等待对应的放烧杯完成信号 + + 参数: + place_beaker_id: 放烧杯编号(1-5) + pick_station_id: 取检测编号(1-3) + + 返回: 是否成功完成操作 + """ + self.success = False + + # 校验输入范围 + if place_beaker_id not in (1, 2, 3, 4, 5): + logger.error("放烧杯编号必须在 1-5 范围内") + return False + if pick_station_id not in (1, 2, 3): + logger.error("取检测编号必须在 1-3 范围内") + return False + + # 获取仓库资源 + rack_warehouse = self.deck.warehouses["水凝胶烧杯堆栈"] + station_warehouse = self.deck.warehouses[f"反应工站{pick_station_id}"] + + # 获取检测站的载具 + # 注意:每个检测站都有独立的 warehouse,且是 1x1x1,所以索引始终是 0 + # 当检测站有 carrier 时,sites[0] 直接返回 BottleCarrier(和堆栈一样) + # 当检测站为空时,sites[0] 返回 ResourceHolder(占位符) + station_site_idx = 0 # 每个检测站 warehouse 只有 1 个 site + + if not station_warehouse.sites or len(station_warehouse.sites) == 0: + logger.error(f"检测站{pick_station_id} 的 warehouse sites 列表为空") + return False + + carrier = station_warehouse.sites[station_site_idx] + + # 检查是否是 ResourceHolder(说明检测站为空) + if carrier is None or type(carrier).__name__ == 'ResourceHolder': + logger.error(f"检测站{pick_station_id} 没有载具(可能是空的 ResourceHolder)") + return False + + # 确定堆栈目标位置(place_beaker_id 1-5 对应 C1-C5) + rack_site_key = f"C{place_beaker_id}" + + pick_complete_node = f"robot_pick_station_{pick_station_id}_complete" + place_complete_node = f"robot_rack_place_beaker_{place_beaker_id}_complete" + + # 阶段1:下发取检测编号并等待完成 + print("下发取检测编号,等待完成...") + self.set_node_value("robot_pick_station_id", pick_station_id) + + # 等待取检测完成 + pick_complete = self.get_node_value(pick_complete_node) + while not pick_complete: + print("取检测中...") + time.sleep(2.0) + pick_complete = self.get_node_value(pick_complete_node) + + # 阶段1.5:机器人取检测完成后,从检测站解绑载具 + try: + station_warehouse.unassign_child_resource(carrier) + print(f"✓ 已从检测站{pick_station_id}解绑载具 {carrier.name}") + except Exception as e: + logger.error(f"从检测站解绑载具失败: {e}") + return False + + # 阶段2:取完成后再下发放烧杯编号并等待完成 + print("取完成,开始下发放烧杯编号...") + self.set_node_value("robot_place_beaker_id", place_beaker_id) + + # 等待放烧杯完成 + place_complete = self.get_node_value(place_complete_node) + while not place_complete: + print("放烧杯中...") + time.sleep(2.0) + place_complete = self.get_node_value(place_complete_node) + + # 阶段2.5:机器人放烧杯完成后,绑定载具回堆栈 + try: + # 获取堆栈的位置信息(rack_site_key 已在前面定义为 C{place_beaker_id}) + rack_site_idx = list(rack_warehouse._ordering.keys()).index(rack_site_key) + rack_location = rack_warehouse.child_locations[rack_site_key] + + # 绑定回堆栈 warehouse + rack_warehouse.assign_child_resource(carrier, location=rack_location, spot=rack_site_idx) + print(f"✓ 已绑定载具 {carrier.name} 回堆栈 {rack_site_key}") + except Exception as e: + logger.error(f"绑定载具回堆栈失败: {e}") + # 即使绑定失败,物理上机器人已经完成了操作 + + print("放烧杯完成") + self.success = True + + # 更新资源树到前端 + if hasattr(self, '_ros_node') and self._ros_node: + try: + from unilabos.ros.nodes.base_device_node import ROS2DeviceNode + ROS2DeviceNode.run_async_func(self._ros_node.update_resource, True, resources=[self.deck]) + print(f"✓ 已同步资源更新到前端") + except Exception as e: + logger.warning(f"前端资源更新失败: {e}") + + return self.success + + def trigger_station_process( + self, + station_id: int, + mag_stir_stir_speed: int, + mag_stir_heat_temp: int, + mag_stir_time_set: int, + syringe_pump_abs_position_set: int, + ) -> bool: + """ + 执行检测工艺流程: + 1. 等待检测站请求参数 + 2. 下发对应编号的搅拌仪和注射泵参数 + 3. 等待参数已执行 + 4. 给出检测开始信号 + 5. 等待检测工艺完成 + + 参数: + station_id: 检测编号(1-3) + mag_stir_stir_speed: 磁力搅拌仪搅拌速度 + mag_stir_heat_temp: 磁力搅拌仪加热温度 + mag_stir_time_set: 磁力搅拌仪时间设置 + syringe_pump_abs_position_set: 注射泵绝对位置设置 + + 返回: 是否成功完成工艺 + """ + self.success = False + + # 校验输入范围 + if station_id not in (1, 2, 3): + logger.error("检测编号必须在 1-3 范围内") + return False + + # 检测站索引(0-2) + station_idx = station_id - 1 + + # 节点名称 + request_node = f"station_{station_id}_request_params" + params_received_node = f"station_{station_id}_params_received" + start_node = f"station_{station_id}_start" + complete_node = f"station_{station_id}_process_complete" + + self.set_node_value(complete_node, False) + self.set_node_value(start_node, False) + self.set_node_value(params_received_node, False) + + # 阶段1:等待检测站请求参数 + print(f"等待检测{station_id}请求参数...") + request_params = self.get_node_value(request_node) + while not request_params: + print(f"等待检测{station_id}请求参数中...") + time.sleep(2.0) + request_params = self.get_node_value(request_node) + + print(f"检测{station_id}已请求参数,开始下发...") + + # 阶段2:下发对应编号的搅拌仪参数 + self.set_node_value(f"mag_stirrer_c{station_idx}_stir_speed", mag_stir_stir_speed) + self.set_node_value(f"mag_stirrer_c{station_idx}_heat_temp", mag_stir_heat_temp) + self.set_node_value(f"mag_stirrer_c{station_idx}_time_set", mag_stir_time_set) + print(f"已下发检测{station_id}磁力搅拌仪参数:速度={mag_stir_stir_speed}, 温度={mag_stir_heat_temp}, 时间={mag_stir_time_set}") + + # 下发对应编号的注射泵参数 + self.set_node_value(f"syringe_pump_{station_idx}_abs_position_set", syringe_pump_abs_position_set) + print(f"已下发检测{station_id}注射泵绝对位置设置:{syringe_pump_abs_position_set}") + + + # 阶段3:等待参数已执行 + self.set_node_value(start_node, True) + print(f"等待检测{station_id}参数已执行...") + params_received = self.get_node_value(params_received_node) + while not params_received: + print(f"检测{station_id}参数执行中...") + time.sleep(2.0) + params_received = self.get_node_value(params_received_node) + + print(f"检测{station_id}参数已执行") + + # 阶段4:等待检测工艺完成 + print(f"等待检测{station_id}工艺完成...") + process_complete = self.get_node_value(complete_node) + while not process_complete: + print(f"检测{station_id}工艺执行中...") + time.sleep(2.0) + process_complete = self.get_node_value(complete_node) + else: + print(f"检测{station_id}工艺完成") + self.set_node_value(start_node, False) + self.success = True + + return self.success + + def trigger_init( + self + ) -> bool: + """ + 初始化函数: + - 将手自动切换写false + - 等待自动模式为false + - 将初始化PC写true + - 等待初始化完成PC为true + - 将初始化PC写false + - 返回成功 + + 参数: + poll_interval: 轮询间隔(秒) + + 返回: 是否成功完成初始化 + """ + self.success = False + + print("开始初始化...") + + # 将手自动切换写false + print("设置手自动切换为false...") + self.set_node_value("manual_auto_switch", False) + self.set_node_value("initialize", False) + time.sleep(1.0) + # 等待自动模式为false + print("等待自动模式为false...") + auto_mode = self.get_node_value("auto_mode") + while auto_mode: + print("等待自动模式变为false...") + time.sleep(2.0) + auto_mode = self.get_node_value("auto_mode") + + # 将初始化PC写true + print("自动模式已为false,设置初始化PC为true...") + self.set_node_value("initialize", True) + time.sleep(2.0) + # 等待初始化完成PC为true + print("等待初始化完成...") + init_finished = self.get_node_value("init finished") + while not init_finished: + print("初始化中...") + time.sleep(2.0) + init_finished = self.get_node_value("init finished") + else: + # 将初始化PC写false + print("初始化完成,设置初始化PC为false...") + self.set_node_value("initialize", False) + self.success = True + + return self.success + + def download_auto_params( + self, + mag_stir_stir_speed: int, + mag_stir_heat_temp: int, + mag_stir_time_set: int, + syringe_pump_abs_position_set: int, + auto_job_stop_delay: int + ) -> bool: + """ + 自动模式参数下发函数: + - 将搅拌仪的搅拌速度、加热温度、时间设置、泵的绝对位置设置和自动作业停止等待时间作为传入参数 + - 一起下发给3个搅拌仪和3个泵 + - 下发后将自动作业参数已下发写true + - 等待自动作业参数已执行为true + - 将已下发写false + - 返回成功 + + 参数: + mag_stir_stir_speed: 磁力搅拌仪搅拌速度 + mag_stir_heat_temp: 磁力搅拌仪加热温度 + mag_stir_time_set: 磁力搅拌仪时间设置 + syringe_pump_abs_position_set: 注射泵绝对位置设置 + auto_job_stop_delay: 自动作业等待停止时间 + poll_interval: 轮询间隔(秒) + + 返回: 是否成功完成参数下发 + """ + self.success = False + + print("开始下发自动模式参数...") + self.set_node_value("auto_param_applied", False) + self.set_node_value("auto_param_downloaded", False) + self.set_node_value("mode_switch", False) + # 下发3个磁力搅拌仪的参数 + for c in (0, 1, 2): + self.set_node_value(f"mag_stirrer_c{c}_stir_speed", mag_stir_stir_speed) + self.set_node_value(f"mag_stirrer_c{c}_heat_temp", mag_stir_heat_temp) + self.set_node_value(f"mag_stirrer_c{c}_time_set", mag_stir_time_set) + print(f"已下发3个磁力搅拌仪参数:速度={mag_stir_stir_speed}, 温度={mag_stir_heat_temp}, 时间={mag_stir_time_set}") + + # 下发3个注射泵的绝对位置设置 + for p in (0, 1, 2): + self.set_node_value(f"syringe_pump_{p}_abs_position_set", syringe_pump_abs_position_set) + print(f"已下发3个注射泵绝对位置设置:{syringe_pump_abs_position_set}") + + # 下发自动作业等待停止时间 + self.set_node_value("auto_job_stop_delay", auto_job_stop_delay) + print(f"已下发自动作业等待停止时间:{auto_job_stop_delay}") + + # 将自动作业参数已下发写true + print("设置自动作业参数已下发为true...") + self.set_node_value("auto_param_downloaded", True) + + # 等待自动作业参数已执行为true + print("等待自动作业参数已执行...") + param_applied = self.get_node_value("auto_param_applied") + while not param_applied: + print("参数执行中...") + time.sleep(2.0) + param_applied = self.get_node_value("auto_param_applied") + else: + print("自动作业参数已执行") + # 将已下发写false + self.set_node_value("auto_param_downloaded", False) + self.success = True + + return self.success + + def start_auto_mode( + self + ) -> bool: + """ + 自动作业模式函数: + - 将模式切换、手自动切换写true + - 等待自动模式为true + - 将自动作业开始触发写true + - 等待自动作业完成为true + - 返回成功 + + 参数: + poll_interval: 轮询间隔(秒) + + 返回: 是否成功完成自动作业 + """ + self.success = False + + print("启动自动作业模式...") + + # 将模式切换、手自动切换写true + print("设置模式切换和手自动切换为true...") + self.set_node_value("mode_switch", False) + self.set_node_value("manual_auto_switch", False) + self.set_node_value("auto_run_start_trigger", False) + self.set_node_value("auto_run_complete", False) + time.sleep(1.0) + self.set_node_value("manual_auto_switch", True) + + # 等待自动模式为true + print("等待自动模式为true...") + auto_mode = self.get_node_value("auto_mode") + while not auto_mode: + print("等待自动模式变为true...") + time.sleep(5.0) + auto_mode = self.get_node_value("auto_mode") + + # 将自动作业开始触发写true + print("自动模式已为true,设置自动作业开始触发为true...") + self.set_node_value("auto_run_start_trigger", True) + + # 等待自动作业完成为true + print("等待自动作业完成...") + auto_run_complete = self.get_node_value("auto_run_complete") + while not auto_run_complete: + print("自动作业执行中...") + time.sleep(5.0) + auto_run_complete = self.get_node_value("auto_run_complete") + else: + print("自动作业完成") + self.set_node_value("manual_auto_switch", False) + self.success = True + + return self.success + + + +if __name__ == '__main__': + # 示例用法 + + + # 创建OPC UA客户端并加载配置 + try: + client = OpcUaClient( + url="opc.tcp://127.0.0.1:49320", # 替换为实际的OPC UA服务器地址 + csv_path="C:\\Users\\Roy\\Desktop\\DPLC\\Uni-Lab-OS\\unilabos\\devices\\workstation\\AI4M\\opcua_nodes_AI4M.csv" # 使用AI4M的CSV路径 + ) + + # 测试1: 初始化函数 + print("\n" + "="*80) + print("测试: 物料载具转移函数") + print("="*80) + + # 测试将物料载具从水凝胶堆栈转移到反应工站1 + result = client.transfer_carrier_to_station( + carrier_name="Hydrogel_Clean_1BottleCarrier", + source_warehouse_name="水凝胶烧杯堆栈", + target_station_name="反应工站1" + ) + print(f"物料载具转移结果: {'成功' if result else '失败'}") + + print("\n" + "="*80) + print("测试完成") + print("="*80) + + # 断开连接 + client.disconnect() + + except Exception as e: + print(f"错误: {e}") + traceback.print_exc() + + diff --git a/unilabos/devices/workstation/post_process/post_process_warehouse.py b/unilabos/devices/workstation/AI4M/AI4M_warehouse.py similarity index 81% rename from unilabos/devices/workstation/post_process/post_process_warehouse.py rename to unilabos/devices/workstation/AI4M/AI4M_warehouse.py index 62dda166..30c55e87 100644 --- a/unilabos/devices/workstation/post_process/post_process_warehouse.py +++ b/unilabos/devices/workstation/AI4M/AI4M_warehouse.py @@ -28,6 +28,7 @@ def warehouse_factory( model: Optional[str] = None, col_offset: int = 0, # 列起始偏移量,用于生成5-8等命名 layout: str = "col-major", # 新增:排序方式,"col-major"=列优先,"row-major"=行优先 + custom_keys: Optional[List[Union[str, int]]] = None, # 自定义编号列表 ): # 创建位置坐标 locations = [] @@ -63,25 +64,29 @@ def warehouse_factory( len_x, len_y = (num_items_x, num_items_y) if num_items_z == 1 else (num_items_y, num_items_z) if num_items_x == 1 else (num_items_x, num_items_z) - # 🔑 修改:使用数字命名,最上面是4321,最下面是12,11,10,9 + # 🔑 修改:使用字母+数字命名,如A1A2A3A4A5 B1B2B3B4B5 # 命名顺序必须与坐标生成顺序一致:层 → 行 → 列 - keys = [] - for layer in range(num_items_z): # 遍历每一层 - for row in range(num_items_y): # 遍历每一行 - for col in range(num_items_x): # 遍历每一列 - # 倒序计算全局行号:row=0 应该对应 global_row=0(第1行:4321) - # row=1 应该对应 global_row=1(第2行:8765) - # row=2 应该对应 global_row=2(第3行:12,11,10,9) - # 但前端显示时 row=2 在最上面,所以需要反转 - reversed_row = (num_items_y - 1 - row) # row=0→reversed_row=2, row=1→reversed_row=1, row=2→reversed_row=0 + if custom_keys: + # 使用自定义键名 + keys = [str(k) for k in custom_keys] + if len(keys) != len(_sites): + raise ValueError(f"自定义键名数量({len(keys)})与位置数量({len(_sites)})不匹配") + else: + # 使用默认的字母+数字命名 + keys = [] + for layer in range(num_items_z): # 遍历每一层 + for row in range(num_items_y): # 遍历每一行 + # 每一行对应一个字母:A, B, C, D... + # row=0(第1行)→A, row=1(第2行)→B, row=2(第3行)→C + reversed_row = (num_items_y - 1 - row) # 调整为从上到下:row=0→reversed_row=2, row=1→reversed_row=1 global_row = layer * num_items_y + reversed_row + letter = LETTERS[global_row] - # 每行的最大数字 = (global_row + 1) * num_items_x + col_offset - base_num = (global_row + 1) * num_items_x + col_offset - - # 从右到左递减:4,3,2,1 - key = str(base_num - col) - keys.append(key) + for col in range(num_items_x): # 遍历每一列 + # 从左到右编号:1, 2, 3, 4, 5... + number = col + 1 + key = f"{letter}{number}" + keys.append(key) sites = {i: site for i, site in zip(keys, _sites.values())} diff --git a/unilabos/devices/UV_test/__init__.py b/unilabos/devices/workstation/AI4M/__init__.py similarity index 100% rename from unilabos/devices/UV_test/__init__.py rename to unilabos/devices/workstation/AI4M/__init__.py diff --git a/unilabos/devices/workstation/post_process/bottle_carriers.py b/unilabos/devices/workstation/AI4M/bottle_carriers.py similarity index 59% rename from unilabos/devices/workstation/post_process/bottle_carriers.py rename to unilabos/devices/workstation/AI4M/bottle_carriers.py index 51943c95..1d31559b 100644 --- a/unilabos/devices/workstation/post_process/bottle_carriers.py +++ b/unilabos/devices/workstation/AI4M/bottle_carriers.py @@ -1,7 +1,7 @@ from pylabrobot.resources import create_homogeneous_resources, Coordinate, ResourceHolder, create_ordered_items_2d from unilabos.resources.itemized_carrier import BottleCarrier -from unilabos.devices.workstation.post_process.bottles import POST_PROCESS_PolymerStation_Reagent_Bottle +from unilabos.devices.workstation.AI4M.bottles import Hydrogel_Powder_Containing_Bottle, Hydrogel_Clean_Bottle, Hydrogel_Waste_Bottle # 命名约定:试剂瓶-Bottle,烧杯-Beaker,烧瓶-Flask,小瓶-Vial @@ -10,7 +10,7 @@ # 聚合站(PolymerStation)载体定义(统一入口) # ============================================================================ -def POST_PROCESS_Raw_1BottleCarrier(name: str) -> BottleCarrier: +def Hydrogel_Powder_Containing_1BottleCarrier(name: str) -> BottleCarrier: """聚合站-单试剂瓶载架 参数: @@ -42,16 +42,16 @@ def POST_PROCESS_Raw_1BottleCarrier(name: str) -> BottleCarrier: resource_size_y=beaker_diameter, name_prefix=name, ), - model="POST_PROCESS_Raw_1BottleCarrier", + model="Hydrogel_Powder_Containing_1BottleCarrier", ) carrier.num_items_x = 1 carrier.num_items_y = 1 carrier.num_items_z = 1 # 统一后缀采用 "flask_1" 命名(可按需调整) - carrier[0] = POST_PROCESS_PolymerStation_Reagent_Bottle(f"{name}_flask_1") + carrier[0] = Hydrogel_Powder_Containing_Bottle(f"{name}_flask_1") return carrier -def POST_PROCESS_Reaction_1BottleCarrier(name: str) -> BottleCarrier: +def Hydrogel_Clean_1BottleCarrier(name: str) -> BottleCarrier: """聚合站-单试剂瓶载架 参数: @@ -83,11 +83,52 @@ def POST_PROCESS_Reaction_1BottleCarrier(name: str) -> BottleCarrier: resource_size_y=beaker_diameter, name_prefix=name, ), - model="POST_PROCESS_Reaction_1BottleCarrier", + model="Hydrogel_Clean_1BottleCarrier", ) carrier.num_items_x = 1 carrier.num_items_y = 1 carrier.num_items_z = 1 # 统一后缀采用 "flask_1" 命名(可按需调整) - carrier[0] = POST_PROCESS_PolymerStation_Reagent_Bottle(f"{name}_flask_1") + carrier[0] = Hydrogel_Clean_Bottle(f"{name}_flask_1") return carrier + +def Hydrogel_Waste_1BottleCarrier(name: str) -> BottleCarrier: + """聚合站-单试剂瓶载架 + + 参数: + - name: 载架名称前缀 + """ + + # 载架尺寸 (mm) + carrier_size_x = 127.8 + carrier_size_y = 85.5 + carrier_size_z = 20.0 + + # 烧杯/试剂瓶占位尺寸(使用圆形占位) + beaker_diameter = 60.0 + + # 计算中央位置 + center_x = (carrier_size_x - beaker_diameter) / 2 + center_y = (carrier_size_y - beaker_diameter) / 2 + center_z = 5.0 + + carrier = BottleCarrier( + name=name, + size_x=carrier_size_x, + size_y=carrier_size_y, + size_z=carrier_size_z, + sites=create_homogeneous_resources( + klass=ResourceHolder, + locations=[Coordinate(center_x, center_y, center_z)], + resource_size_x=beaker_diameter, + resource_size_y=beaker_diameter, + name_prefix=name, + ), + model="Hydrogel_Waste_1BottleCarrier", + ) + carrier.num_items_x = 1 + carrier.num_items_y = 1 + carrier.num_items_z = 1 + # 统一后缀采用 "flask_1" 命名(可按需调整) + carrier[0] = Hydrogel_Waste_Bottle(f"{name}_flask_1") + return carrier \ No newline at end of file diff --git a/unilabos/devices/workstation/AI4M/bottles.py b/unilabos/devices/workstation/AI4M/bottles.py new file mode 100644 index 00000000..14451a4b --- /dev/null +++ b/unilabos/devices/workstation/AI4M/bottles.py @@ -0,0 +1,53 @@ +from unilabos.resources.itemized_carrier import Bottle + + +def Hydrogel_Powder_Containing_Bottle( + name: str, + diameter: float = 70.0, + height: float = 120.0, + max_volume: float = 500000.0, # 500mL + barcode: str = None, +) -> Bottle: + """创建试剂瓶""" + return Bottle( + name=name, + diameter=diameter, + height=height, + max_volume=max_volume, + barcode=barcode, + model="Hydrogel_Powder_Containing_Bottle", + ) + +def Hydrogel_Clean_Bottle( + name: str, + diameter: float = 70.0, + height: float = 120.0, + max_volume: float = 500000.0, # 500mL + barcode: str = None, +) -> Bottle: + """创建试剂瓶""" + return Bottle( + name=name, + diameter=diameter, + height=height, + max_volume=max_volume, + barcode=barcode, + model="Hydrogel_Clean_Bottle", + ) + +def Hydrogel_Waste_Bottle( + name: str, + diameter: float = 70.0, + height: float = 120.0, + max_volume: float = 500000.0, # 500mL + barcode: str = None, +) -> Bottle: + """创建试剂瓶""" + return Bottle( + name=name, + diameter=diameter, + height=height, + max_volume=max_volume, + barcode=barcode, + model="Hydrogel_Waste_Bottle", + ) diff --git a/unilabos/devices/workstation/AI4M/decks.py b/unilabos/devices/workstation/AI4M/decks.py new file mode 100644 index 00000000..8d9e7803 --- /dev/null +++ b/unilabos/devices/workstation/AI4M/decks.py @@ -0,0 +1,61 @@ +from os import name +from typing import Optional + +from pylabrobot.resources import Deck, Coordinate, Rotation, Resource +from unilabos.devices.workstation.AI4M.warehouses import ( + Hydrogel_warehouse_5x3x1, + Station_1_warehouse_1x1x1, + Station_2_warehouse_1x1x1, + Station_3_warehouse_1x1x1, +) + + + +class AI4M_deck(Deck): + def __init__( + self, + name: str = "AI4M_deck", + size_x: float = 1217.0, + size_y: float = 1560.0, + size_z: float = 2670.0, + origin: Coordinate = Coordinate(0, 35, 0), + category: str = "deck", + setup: bool = False, + ) -> None: + super().__init__(name=name, size_x=size_x, size_y=size_y, size_z=size_z, origin=origin) + self.warehouses = {} + self.warehouse_locations = {} + if setup: + self.setup() + + def setup(self) -> None: + # 添加仓库 + self.warehouses = { + "水凝胶烧杯堆栈": Hydrogel_warehouse_5x3x1("水凝胶烧杯堆栈"), + "反应工站1": Station_1_warehouse_1x1x1("反应工站1"), + "反应工站2": Station_2_warehouse_1x1x1("反应工站2"), + "反应工站3": Station_3_warehouse_1x1x1("反应工站3") + } + # warehouse 的位置 + # 根据前端显示位置转换计算(Deck尺寸: 1217x1580mm, 前端显示: 688x895px) + # 缩放比例: x=1.769, y=1.766 + # 前端坐标 -> 实际坐标: x' = x * 1.769, y' = y * 1.766 + self.warehouse_locations = { + "水凝胶烧杯堆栈": Coordinate(15.9, 1100.2, 0.0), # 前端: 9x623 + "反应工站1": Coordinate(838.5, 245.5, 0.0), # 前端: 474x139 + "反应工站2": Coordinate(850.9, 706.4, 0.0), # 前端: 481x400 + "反应工站3": Coordinate(842.0, 1158.7, 0.0) # 前端: 476x656 + } + + for warehouse_name, warehouse in self.warehouses.items(): + self.assign_child_resource(warehouse, location=self.warehouse_locations[warehouse_name]) + + def assign_child_resource( + self, + resource: Resource, + location: Optional[Coordinate], + reassign: bool = True, + ): + super().assign_child_resource(resource, location, reassign) + self.warehouses[resource.name] = resource + self.warehouse_locations[resource.name] = location diff --git a/unilabos/devices/workstation/AI4M/kepware_simulator_tags_import.csv b/unilabos/devices/workstation/AI4M/kepware_simulator_tags_import.csv new file mode 100644 index 00000000..67a6a83b --- /dev/null +++ b/unilabos/devices/workstation/AI4M/kepware_simulator_tags_import.csv @@ -0,0 +1,135 @@ +Tag Name,Address,Data Type,Scan Rate,Description +磁力搅拌参数设置_C[0].搅拌速度,K0000,short,100,ns=2;s=AI4M.设备 1.磁力搅拌参数设置_C[0].搅拌速度 +磁力搅拌参数设置_C[0].加热温度,K0001,short,100,ns=2;s=AI4M.设备 1.磁力搅拌参数设置_C[0].加热温度 +磁力搅拌参数设置_C[0].时间设置,K0002,short,100,ns=2;s=AI4M.设备 1.磁力搅拌参数设置_C[0].时间设置 +磁力搅拌参数设置_C[0].返回设定速度,K0003,short,100,ns=2;s=AI4M.设备 1.磁力搅拌参数设置_C[0].返回设定速度 +磁力搅拌参数设置_C[0].返回实际速度,K0004,short,100,ns=2;s=AI4M.设备 1.磁力搅拌参数设置_C[0].返回实际速度 +磁力搅拌参数设置_C[0].返回设定温度,K0005,short,100,ns=2;s=AI4M.设备 1.磁力搅拌参数设置_C[0].返回设定温度 +磁力搅拌参数设置_C[0].返回实际温度,K0006,short,100,ns=2;s=AI4M.设备 1.磁力搅拌参数设置_C[0].返回实际温度 +磁力搅拌参数设置_C[0].返回设定时间,K0007,short,100,ns=2;s=AI4M.设备 1.磁力搅拌参数设置_C[0].返回设定时间 +磁力搅拌参数设置_C[0].返回实际时间,K0008,short,100,ns=2;s=AI4M.设备 1.磁力搅拌参数设置_C[0].返回实际时间 +磁力搅拌参数设置_C[0].工作模式设置,K0009,short,100,ns=2;s=AI4M.设备 1.磁力搅拌参数设置_C[0].工作模式设置 +磁力搅拌参数设置_C[0].加热模式设置,K0010,short,100,ns=2;s=AI4M.设备 1.磁力搅拌参数设置_C[0].加热模式设置 +磁力搅拌参数设置_C[0].温度单位,K0011,short,100,ns=2;s=AI4M.设备 1.磁力搅拌参数设置_C[0].温度单位 +磁力搅拌参数设置_C[0].加热模式,K0012,short,100,ns=2;s=AI4M.设备 1.磁力搅拌参数设置_C[0].加热模式 +磁力搅拌参数设置_C[0].仪器模式,K0013,short,100,ns=2;s=AI4M.设备 1.磁力搅拌参数设置_C[0].仪器模式 +磁力搅拌参数设置_C[0].安全温度,K0014,short,100,ns=2;s=AI4M.设备 1.磁力搅拌参数设置_C[0].安全温度 +磁力搅拌参数设置_C[1].搅拌速度,K0015,short,100,ns=2;s=AI4M.设备 1.磁力搅拌参数设置_C[1].搅拌速度 +磁力搅拌参数设置_C[1].加热温度,K0016,short,100,ns=2;s=AI4M.设备 1.磁力搅拌参数设置_C[1].加热温度 +磁力搅拌参数设置_C[1].时间设置,K0017,short,100,ns=2;s=AI4M.设备 1.磁力搅拌参数设置_C[1].时间设置 +磁力搅拌参数设置_C[1].返回设定速度,K0018,short,100,ns=2;s=AI4M.设备 1.磁力搅拌参数设置_C[1].返回设定速度 +磁力搅拌参数设置_C[1].返回实际速度,K0019,short,100,ns=2;s=AI4M.设备 1.磁力搅拌参数设置_C[1].返回实际速度 +磁力搅拌参数设置_C[1].返回设定温度,K0020,short,100,ns=2;s=AI4M.设备 1.磁力搅拌参数设置_C[1].返回设定温度 +磁力搅拌参数设置_C[1].返回实际温度,K0021,short,100,ns=2;s=AI4M.设备 1.磁力搅拌参数设置_C[1].返回实际温度 +磁力搅拌参数设置_C[1].返回设定时间,K0022,short,100,ns=2;s=AI4M.设备 1.磁力搅拌参数设置_C[1].返回设定时间 +磁力搅拌参数设置_C[1].返回实际时间,K0023,short,100,ns=2;s=AI4M.设备 1.磁力搅拌参数设置_C[1].返回实际时间 +磁力搅拌参数设置_C[1].工作模式设置,K0024,short,100,ns=2;s=AI4M.设备 1.磁力搅拌参数设置_C[1].工作模式设置 +磁力搅拌参数设置_C[1].加热模式设置,K0025,short,100,ns=2;s=AI4M.设备 1.磁力搅拌参数设置_C[1].加热模式设置 +磁力搅拌参数设置_C[1].温度单位,K0026,short,100,ns=2;s=AI4M.设备 1.磁力搅拌参数设置_C[1].温度单位 +磁力搅拌参数设置_C[1].加热模式,K0027,short,100,ns=2;s=AI4M.设备 1.磁力搅拌参数设置_C[1].加热模式 +磁力搅拌参数设置_C[1].仪器模式,K0028,short,100,ns=2;s=AI4M.设备 1.磁力搅拌参数设置_C[1].仪器模式 +磁力搅拌参数设置_C[1].安全温度,K0029,short,100,ns=2;s=AI4M.设备 1.磁力搅拌参数设置_C[1].安全温度 +磁力搅拌参数设置_C[2].搅拌速度,K0030,short,100,ns=2;s=AI4M.设备 1.磁力搅拌参数设置_C[2].搅拌速度 +磁力搅拌参数设置_C[2].加热温度,K0031,short,100,ns=2;s=AI4M.设备 1.磁力搅拌参数设置_C[2].加热温度 +磁力搅拌参数设置_C[2].时间设置,K0032,short,100,ns=2;s=AI4M.设备 1.磁力搅拌参数设置_C[2].时间设置 +磁力搅拌参数设置_C[2].返回设定速度,K0033,short,100,ns=2;s=AI4M.设备 1.磁力搅拌参数设置_C[2].返回设定速度 +磁力搅拌参数设置_C[2].返回实际速度,K0034,short,100,ns=2;s=AI4M.设备 1.磁力搅拌参数设置_C[2].返回实际速度 +磁力搅拌参数设置_C[2].返回设定温度,K0035,short,100,ns=2;s=AI4M.设备 1.磁力搅拌参数设置_C[2].返回设定温度 +磁力搅拌参数设置_C[2].返回实际温度,K0036,short,100,ns=2;s=AI4M.设备 1.磁力搅拌参数设置_C[2].返回实际温度 +磁力搅拌参数设置_C[2].返回设定时间,K0037,short,100,ns=2;s=AI4M.设备 1.磁力搅拌参数设置_C[2].返回设定时间 +磁力搅拌参数设置_C[2].返回实际时间,K0038,short,100,ns=2;s=AI4M.设备 1.磁力搅拌参数设置_C[2].返回实际时间 +磁力搅拌参数设置_C[2].工作模式设置,K0039,short,100,ns=2;s=AI4M.设备 1.磁力搅拌参数设置_C[2].工作模式设置 +磁力搅拌参数设置_C[2].加热模式设置,K0040,short,100,ns=2;s=AI4M.设备 1.磁力搅拌参数设置_C[2].加热模式设置 +磁力搅拌参数设置_C[2].温度单位,K0041,short,100,ns=2;s=AI4M.设备 1.磁力搅拌参数设置_C[2].温度单位 +磁力搅拌参数设置_C[2].加热模式,K0042,short,100,ns=2;s=AI4M.设备 1.磁力搅拌参数设置_C[2].加热模式 +磁力搅拌参数设置_C[2].仪器模式,K0043,short,100,ns=2;s=AI4M.设备 1.磁力搅拌参数设置_C[2].仪器模式 +磁力搅拌参数设置_C[2].安全温度,K0044,short,100,ns=2;s=AI4M.设备 1.磁力搅拌参数设置_C[2].安全温度 +注射泵参数[0].当前位置显示,K0045,short,100,ns=2;s=AI4M.设备 1.注射泵参数[0].当前位置显示 +注射泵参数[0].绝对位置设置,K0046,short,100,ns=2;s=AI4M.设备 1.注射泵参数[0].绝对位置设置 +注射泵参数[0].抽液位置设置,K0047,short,100,ns=2;s=AI4M.设备 1.注射泵参数[0].抽液位置设置 +注射泵参数[0].排液位置设置,K0048,short,100,ns=2;s=AI4M.设备 1.注射泵参数[0].排液位置设置 +注射泵参数[0].启动速度,K0049,short,100,ns=2;s=AI4M.设备 1.注射泵参数[0].启动速度 +注射泵参数[0].最高速度,K0050,short,100,ns=2;s=AI4M.设备 1.注射泵参数[0].最高速度 +注射泵参数[0].加速度代码,K0051,short,100,ns=2;s=AI4M.设备 1.注射泵参数[0].加速度代码 +注射泵参数[1].当前位置显示,K0052,short,100,ns=2;s=AI4M.设备 1.注射泵参数[1].当前位置显示 +注射泵参数[1].绝对位置设置,K0053,short,100,ns=2;s=AI4M.设备 1.注射泵参数[1].绝对位置设置 +注射泵参数[1].抽液位置设置,K0054,short,100,ns=2;s=AI4M.设备 1.注射泵参数[1].抽液位置设置 +注射泵参数[1].排液位置设置,K0055,short,100,ns=2;s=AI4M.设备 1.注射泵参数[1].排液位置设置 +注射泵参数[1].启动速度,K0056,short,100,ns=2;s=AI4M.设备 1.注射泵参数[1].启动速度 +注射泵参数[1].最高速度,K0057,short,100,ns=2;s=AI4M.设备 1.注射泵参数[1].最高速度 +注射泵参数[1].加速度代码,K0058,short,100,ns=2;s=AI4M.设备 1.注射泵参数[1].加速度代码 +注射泵参数[2].当前位置显示,K0059,short,100,ns=2;s=AI4M.设备 1.注射泵参数[2].当前位置显示 +注射泵参数[2].绝对位置设置,K0060,short,100,ns=2;s=AI4M.设备 1.注射泵参数[2].绝对位置设置 +注射泵参数[2].抽液位置设置,K0061,short,100,ns=2;s=AI4M.设备 1.注射泵参数[2].抽液位置设置 +注射泵参数[2].排液位置设置,K0062,short,100,ns=2;s=AI4M.设备 1.注射泵参数[2].排液位置设置 +注射泵参数[2].启动速度,K0063,short,100,ns=2;s=AI4M.设备 1.注射泵参数[2].启动速度 +注射泵参数[2].最高速度,K0064,short,100,ns=2;s=AI4M.设备 1.注射泵参数[2].最高速度 +注射泵参数[2].加速度代码,K0065,short,100,ns=2;s=AI4M.设备 1.注射泵参数[2].加速度代码 +机器人取烧杯编号,K0166,long,100,ns=2;s=AI4M.设备 1.机器人取烧杯编号 +机器人放烧杯编号,K0168,long,100,ns=2;s=AI4M.设备 1.机器人放烧杯编号 +机器人放检测编号,K0170,long,100,ns=2;s=AI4M.设备 1.机器人放检测编号 +机器人取检测编号,K0172,long,100,ns=2;s=AI4M.设备 1.机器人取检测编号 +机器人初始化,K0174,long,100,ns=2;s=AI4M.设备 1.机器人初始化 +机器人料架取烧杯1完成,K0071,BOOLEAN,100,ns=2;s=AI4M.设备 1.机器人料架取烧杯1完成 +机器人料架取烧杯2完成,K0072,BOOLEAN,100,ns=2;s=AI4M.设备 1.机器人料架取烧杯2完成 +机器人料架取烧杯3完成,K0073,BOOLEAN,100,ns=2;s=AI4M.设备 1.机器人料架取烧杯3完成 +机器人料架取烧杯4完成,K0074,BOOLEAN,100,ns=2;s=AI4M.设备 1.机器人料架取烧杯4完成 +机器人料架取烧杯5完成,K0075,BOOLEAN,100,ns=2;s=AI4M.设备 1.机器人料架取烧杯5完成 +机器人料架放烧杯1完成,K0076,BOOLEAN,100,ns=2;s=AI4M.设备 1.机器人料架放烧杯1完成 +机器人料架放烧杯2完成,K0077,BOOLEAN,100,ns=2;s=AI4M.设备 1.机器人料架放烧杯2完成 +机器人料架放烧杯3完成,K0078,BOOLEAN,100,ns=2;s=AI4M.设备 1.机器人料架放烧杯3完成 +机器人料架放烧杯4完成,K0079,BOOLEAN,100,ns=2;s=AI4M.设备 1.机器人料架放烧杯4完成 +机器人料架放烧杯5完成,K0080,BOOLEAN,100,ns=2;s=AI4M.设备 1.机器人料架放烧杯5完成 +机器人放检测1完成,K0081,BOOLEAN,100,ns=2;s=AI4M.设备 1.机器人放检测1完成 +机器人放检测2完成,K0082,BOOLEAN,100,ns=2;s=AI4M.设备 1.机器人放检测2完成 +机器人放检测3完成,K0083,BOOLEAN,100,ns=2;s=AI4M.设备 1.机器人放检测3完成 +机器人取检测1完成,K0084,BOOLEAN,100,ns=2;s=AI4M.设备 1.机器人取检测1完成 +机器人取检测2完成,K0085,BOOLEAN,100,ns=2;s=AI4M.设备 1.机器人取检测2完成 +机器人取检测3完成,K0086,BOOLEAN,100,ns=2;s=AI4M.设备 1.机器人取检测3完成 +机器人初始化完成,K0087,BOOLEAN,100,ns=2;s=AI4M.设备 1.机器人初始化完成 +机器人料架取烧杯1开始,K0088,BOOLEAN,100,ns=2;s=AI4M.设备 1.机器人料架取烧杯1开始 +机器人料架取烧杯2开始,K0089,BOOLEAN,100,ns=2;s=AI4M.设备 1.机器人料架取烧杯2开始 +机器人料架取烧杯3开始,K0090,BOOLEAN,100,ns=2;s=AI4M.设备 1.机器人料架取烧杯3开始 +机器人料架取烧杯4开始,K0091,BOOLEAN,100,ns=2;s=AI4M.设备 1.机器人料架取烧杯4开始 +机器人料架取烧杯5开始,K0092,BOOLEAN,100,ns=2;s=AI4M.设备 1.机器人料架取烧杯5开始 +机器人料架放烧杯1开始,K0093,BOOLEAN,100,ns=2;s=AI4M.设备 1.机器人料架放烧杯1开始 +机器人料架放烧杯2开始,K0094,BOOLEAN,100,ns=2;s=AI4M.设备 1.机器人料架放烧杯2开始 +机器人料架放烧杯3开始,K0095,BOOLEAN,100,ns=2;s=AI4M.设备 1.机器人料架放烧杯3开始 +机器人料架放烧杯4开始,K0096,BOOLEAN,100,ns=2;s=AI4M.设备 1.机器人料架放烧杯4开始 +机器人料架放烧杯5开始,K0097,BOOLEAN,100,ns=2;s=AI4M.设备 1.机器人料架放烧杯5开始 +机器人放检测1开始,K0098,BOOLEAN,100,ns=2;s=AI4M.设备 1.机器人放检测1开始 +机器人放检测2开始,K0099,BOOLEAN,100,ns=2;s=AI4M.设备 1.机器人放检测2开始 +机器人放检测3开始,K0100,BOOLEAN,100,ns=2;s=AI4M.设备 1.机器人放检测3开始 +机器人取检测1开始,K0101,BOOLEAN,100,ns=2;s=AI4M.设备 1.机器人取检测1开始 +机器人取检测2开始,K0102,BOOLEAN,100,ns=2;s=AI4M.设备 1.机器人取检测2开始 +机器人取检测3开始,K0103,BOOLEAN,100,ns=2;s=AI4M.设备 1.机器人取检测3开始 +机器人机器人安全点,K0104,BOOLEAN,100,ns=2;s=AI4M.设备 1.机器人机器人安全点 +机器人机器人安全区域1,K0105,BOOLEAN,100,ns=2;s=AI4M.设备 1.机器人机器人安全区域1 +机器人机器人安全区域2,K0106,BOOLEAN,100,ns=2;s=AI4M.设备 1.机器人机器人安全区域2 +机器人机器人安全区域3,K0107,BOOLEAN,100,ns=2;s=AI4M.设备 1.机器人机器人安全区域3 +自动作业开始触发,K0108,BOOLEAN,100,ns=2;s=AI4M.设备 1.自动作业开始触发 +自动作业完成,K0109,BOOLEAN,100,ns=2;s=AI4M.设备 1.自动作业完成 +检测1请求参数,K0110,BOOLEAN,100,ns=2;s=AI4M.设备 1.检测1请求参数 +检测2请求参数,K0111,BOOLEAN,100,ns=2;s=AI4M.设备 1.检测2请求参数 +检测3请求参数,K0112,BOOLEAN,100,ns=2;s=AI4M.设备 1.检测3请求参数 +检测1参数已执行,K0113,BOOLEAN,100,ns=2;s=AI4M.设备 1.检测1参数已执行 +检测2参数已执行,K0114,BOOLEAN,100,ns=2;s=AI4M.设备 1.检测2参数已执行 +检测3参数已执行,K0115,BOOLEAN,100,ns=2;s=AI4M.设备 1.检测3参数已执行 +检测1空闲,K0116,BOOLEAN,100,ns=2;s=AI4M.设备 1.检测1空闲 +检测2空闲,K0117,BOOLEAN,100,ns=2;s=AI4M.设备 1.检测2空闲 +检测3空闲,K0118,BOOLEAN,100,ns=2;s=AI4M.设备 1.检测3空闲 +机器人空闲,K0119,BOOLEAN,100,ns=2;s=AI4M.设备 1.机器人空闲 +检测1工艺完成,K0120,BOOLEAN,100,ns=2;s=AI4M.设备 1.检测1工艺完成 +检测2工艺完成,K0121,BOOLEAN,100,ns=2;s=AI4M.设备 1.检测2工艺完成 +检测3工艺完成,K0122,BOOLEAN,100,ns=2;s=AI4M.设备 1.检测3工艺完成 +模式切换,K0123,BOOLEAN,100,ns=2;s=AI4M.设备 1.模式切换 +初始化PC,K0124,BOOLEAN,100,ns=2;s=AI4M.设备 1.初始化PC +初始化完成PC,K0125,BOOLEAN,100,ns=2;s=AI4M.设备 1.初始化完成PC +手自动切换,K0126,BOOLEAN,100,ns=2;s=AI4M.设备 1.手自动切换 +自动模式PC,K0127,BOOLEAN,100,ns=2;s=AI4M.设备 1.自动模式PC +自动作业参数已下发,K0128,BOOLEAN,100,ns=2;s=AI4M.设备 1.自动作业参数已下发 +自动作业参数已执行,K0129,BOOLEAN,100,ns=2;s=AI4M.设备 1.自动作业参数已执行 +自动作业等待停止时间,K0130,short,100,ns=2;s=AI4M.设备 1.自动作业等待停止时间 +检测1开始,K0131,BOOLEAN,100,ns=2;s=AI4M.设备 1.检测1开始 +检测2开始,K0132,BOOLEAN,100,ns=2;s=AI4M.设备 1.检测2开始 +检测3开始,K0133,BOOLEAN,100,ns=2;s=AI4M.设备 1.检测3开始 diff --git a/unilabos/devices/workstation/AI4M/opcua_nodes_AI4M.csv b/unilabos/devices/workstation/AI4M/opcua_nodes_AI4M.csv new file mode 100644 index 00000000..f245c5e9 --- /dev/null +++ b/unilabos/devices/workstation/AI4M/opcua_nodes_AI4M.csv @@ -0,0 +1,135 @@ +Name,EnglishName,NodeType,DataType,NodeLanguage,NodeId +磁力搅拌参数设置_C[0].搅拌速度,mag_stirrer_c0_stir_speed,VARIABLE,INT16,Chinese,ns=4;s=上位通讯变量|磁力搅拌参数设置_C[0].搅拌速度 +磁力搅拌参数设置_C[0].加热温度,mag_stirrer_c0_heat_temp,VARIABLE,INT16,Chinese,ns=4;s=上位通讯变量|磁力搅拌参数设置_C[0].加热温度 +磁力搅拌参数设置_C[0].时间设置,mag_stirrer_c0_time_set,VARIABLE,INT16,Chinese,ns=4;s=上位通讯变量|磁力搅拌参数设置_C[0].时间设置 +磁力搅拌参数设置_C[0].返回设定速度,mag_stirrer_c0_return_speed_setpoint,VARIABLE,INT16,Chinese,ns=4;s=上位通讯变量|磁力搅拌参数设置_C[0].返回设定速度 +磁力搅拌参数设置_C[0].返回实际速度,mag_stirrer_c0_return_speed_actual,VARIABLE,INT16,Chinese,ns=4;s=上位通讯变量|磁力搅拌参数设置_C[0].返回实际速度 +磁力搅拌参数设置_C[0].返回设定温度,mag_stirrer_c0_return_temp_setpoint,VARIABLE,INT16,Chinese,ns=4;s=上位通讯变量|磁力搅拌参数设置_C[0].返回设定温度 +磁力搅拌参数设置_C[0].返回实际温度,mag_stirrer_c0_return_temp_actual,VARIABLE,INT16,Chinese,ns=4;s=上位通讯变量|磁力搅拌参数设置_C[0].返回实际温度 +磁力搅拌参数设置_C[0].返回设定时间,mag_stirrer_c0_return_time_setpoint,VARIABLE,INT16,Chinese,ns=4;s=上位通讯变量|磁力搅拌参数设置_C[0].返回设定时间 +磁力搅拌参数设置_C[0].返回实际时间,mag_stirrer_c0_return_time_actual,VARIABLE,INT16,Chinese,ns=4;s=上位通讯变量|磁力搅拌参数设置_C[0].返回实际时间 +磁力搅拌参数设置_C[0].工作模式设置,mag_stirrer_c0_work_mode_set,VARIABLE,INT16,Chinese,ns=4;s=上位通讯变量|磁力搅拌参数设置_C[0].工作模式设置 +磁力搅拌参数设置_C[0].加热模式设置,mag_stirrer_c0_heat_mode_set,VARIABLE,INT16,Chinese,ns=4;s=上位通讯变量|磁力搅拌参数设置_C[0].加热模式设置 +磁力搅拌参数设置_C[0].温度单位,mag_stirrer_c0_temp_unit,VARIABLE,INT16,Chinese,ns=4;s=上位通讯变量|磁力搅拌参数设置_C[0].温度单位 +磁力搅拌参数设置_C[0].加热模式,mag_stirrer_c0_heat_mode,VARIABLE,INT16,Chinese,ns=4;s=上位通讯变量|磁力搅拌参数设置_C[0].加热模式 +磁力搅拌参数设置_C[0].仪器模式,mag_stirrer_c0_instrument_mode,VARIABLE,INT16,Chinese,ns=4;s=上位通讯变量|磁力搅拌参数设置_C[0].仪器模式 +磁力搅拌参数设置_C[0].安全温度,mag_stirrer_c0_safe_temp,VARIABLE,INT16,Chinese,ns=4;s=上位通讯变量|磁力搅拌参数设置_C[0].安全温度 +磁力搅拌参数设置_C[1].搅拌速度,mag_stirrer_c1_stir_speed,VARIABLE,INT16,Chinese,ns=4;s=上位通讯变量|磁力搅拌参数设置_C[1].搅拌速度 +磁力搅拌参数设置_C[1].加热温度,mag_stirrer_c1_heat_temp,VARIABLE,INT16,Chinese,ns=4;s=上位通讯变量|磁力搅拌参数设置_C[1].加热温度 +磁力搅拌参数设置_C[1].时间设置,mag_stirrer_c1_time_set,VARIABLE,INT16,Chinese,ns=4;s=上位通讯变量|磁力搅拌参数设置_C[1].时间设置 +磁力搅拌参数设置_C[1].返回设定速度,mag_stirrer_c1_return_speed_setpoint,VARIABLE,INT16,Chinese,ns=4;s=上位通讯变量|磁力搅拌参数设置_C[1].返回设定速度 +磁力搅拌参数设置_C[1].返回实际速度,mag_stirrer_c1_return_speed_actual,VARIABLE,INT16,Chinese,ns=4;s=上位通讯变量|磁力搅拌参数设置_C[1].返回实际速度 +磁力搅拌参数设置_C[1].返回设定温度,mag_stirrer_c1_return_temp_setpoint,VARIABLE,INT16,Chinese,ns=4;s=上位通讯变量|磁力搅拌参数设置_C[1].返回设定温度 +磁力搅拌参数设置_C[1].返回实际温度,mag_stirrer_c1_return_temp_actual,VARIABLE,INT16,Chinese,ns=4;s=上位通讯变量|磁力搅拌参数设置_C[1].返回实际温度 +磁力搅拌参数设置_C[1].返回设定时间,mag_stirrer_c1_return_time_setpoint,VARIABLE,INT16,Chinese,ns=4;s=上位通讯变量|磁力搅拌参数设置_C[1].返回设定时间 +磁力搅拌参数设置_C[1].返回实际时间,mag_stirrer_c1_return_time_actual,VARIABLE,INT16,Chinese,ns=4;s=上位通讯变量|磁力搅拌参数设置_C[1].返回实际时间 +磁力搅拌参数设置_C[1].工作模式设置,mag_stirrer_c1_work_mode_set,VARIABLE,INT16,Chinese,ns=4;s=上位通讯变量|磁力搅拌参数设置_C[1].工作模式设置 +磁力搅拌参数设置_C[1].加热模式设置,mag_stirrer_c1_heat_mode_set,VARIABLE,INT16,Chinese,ns=4;s=上位通讯变量|磁力搅拌参数设置_C[1].加热模式设置 +磁力搅拌参数设置_C[1].温度单位,mag_stirrer_c1_temp_unit,VARIABLE,INT16,Chinese,ns=4;s=上位通讯变量|磁力搅拌参数设置_C[1].温度单位 +磁力搅拌参数设置_C[1].加热模式,mag_stirrer_c1_heat_mode,VARIABLE,INT16,Chinese,ns=4;s=上位通讯变量|磁力搅拌参数设置_C[1].加热模式 +磁力搅拌参数设置_C[1].仪器模式,mag_stirrer_c1_instrument_mode,VARIABLE,INT16,Chinese,ns=4;s=上位通讯变量|磁力搅拌参数设置_C[1].仪器模式 +磁力搅拌参数设置_C[1].安全温度,mag_stirrer_c1_safe_temp,VARIABLE,INT16,Chinese,ns=4;s=上位通讯变量|磁力搅拌参数设置_C[1].安全温度 +磁力搅拌参数设置_C[2].搅拌速度,mag_stirrer_c2_stir_speed,VARIABLE,INT16,Chinese,ns=4;s=上位通讯变量|磁力搅拌参数设置_C[2].搅拌速度 +磁力搅拌参数设置_C[2].加热温度,mag_stirrer_c2_heat_temp,VARIABLE,INT16,Chinese,ns=4;s=上位通讯变量|磁力搅拌参数设置_C[2].加热温度 +磁力搅拌参数设置_C[2].时间设置,mag_stirrer_c2_time_set,VARIABLE,INT16,Chinese,ns=4;s=上位通讯变量|磁力搅拌参数设置_C[2].时间设置 +磁力搅拌参数设置_C[2].返回设定速度,mag_stirrer_c2_return_speed_setpoint,VARIABLE,INT16,Chinese,ns=4;s=上位通讯变量|磁力搅拌参数设置_C[2].返回设定速度 +磁力搅拌参数设置_C[2].返回实际速度,mag_stirrer_c2_return_speed_actual,VARIABLE,INT16,Chinese,ns=4;s=上位通讯变量|磁力搅拌参数设置_C[2].返回实际速度 +磁力搅拌参数设置_C[2].返回设定温度,mag_stirrer_c2_return_temp_setpoint,VARIABLE,INT16,Chinese,ns=4;s=上位通讯变量|磁力搅拌参数设置_C[2].返回设定温度 +磁力搅拌参数设置_C[2].返回实际温度,mag_stirrer_c2_return_temp_actual,VARIABLE,INT16,Chinese,ns=4;s=上位通讯变量|磁力搅拌参数设置_C[2].返回实际温度 +磁力搅拌参数设置_C[2].返回设定时间,mag_stirrer_c2_return_time_setpoint,VARIABLE,INT16,Chinese,ns=4;s=上位通讯变量|磁力搅拌参数设置_C[2].返回设定时间 +磁力搅拌参数设置_C[2].返回实际时间,mag_stirrer_c2_return_time_actual,VARIABLE,INT16,Chinese,ns=4;s=上位通讯变量|磁力搅拌参数设置_C[2].返回实际时间 +磁力搅拌参数设置_C[2].工作模式设置,mag_stirrer_c2_work_mode_set,VARIABLE,INT16,Chinese,ns=4;s=上位通讯变量|磁力搅拌参数设置_C[2].工作模式设置 +磁力搅拌参数设置_C[2].加热模式设置,mag_stirrer_c2_heat_mode_set,VARIABLE,INT16,Chinese,ns=4;s=上位通讯变量|磁力搅拌参数设置_C[2].加热模式设置 +磁力搅拌参数设置_C[2].温度单位,mag_stirrer_c2_temp_unit,VARIABLE,INT16,Chinese,ns=4;s=上位通讯变量|磁力搅拌参数设置_C[2].温度单位 +磁力搅拌参数设置_C[2].加热模式,mag_stirrer_c2_heat_mode,VARIABLE,INT16,Chinese,ns=4;s=上位通讯变量|磁力搅拌参数设置_C[2].加热模式 +磁力搅拌参数设置_C[2].仪器模式,mag_stirrer_c2_instrument_mode,VARIABLE,INT16,Chinese,ns=4;s=上位通讯变量|磁力搅拌参数设置_C[2].仪器模式 +磁力搅拌参数设置_C[2].安全温度,mag_stirrer_c2_safe_temp,VARIABLE,INT16,Chinese,ns=4;s=上位通讯变量|磁力搅拌参数设置_C[2].安全温度 +注射泵参数[0].当前位置显示,syringe_pump_0_current_position,VARIABLE,INT16,Chinese,ns=4;s=上位通讯变量|注射泵参数[0].当前位置显示 +注射泵参数[0].绝对位置设置,syringe_pump_0_abs_position_set,VARIABLE,INT16,Chinese,ns=4;s=上位通讯变量|注射泵参数[0].绝对位置设置 +注射泵参数[0].抽液位置设置,syringe_pump_0_aspirate_pos_set,VARIABLE,INT16,Chinese,ns=4;s=上位通讯变量|注射泵参数[0].抽液位置设置 +注射泵参数[0].排液位置设置,syringe_pump_0_dispense_pos_set,VARIABLE,INT16,Chinese,ns=4;s=上位通讯变量|注射泵参数[0].排液位置设置 +注射泵参数[0].启动速度,syringe_pump_0_start_speed,VARIABLE,INT16,Chinese,ns=4;s=上位通讯变量|注射泵参数[0].启动速度 +注射泵参数[0].最高速度,syringe_pump_0_max_speed,VARIABLE,INT16,Chinese,ns=4;s=上位通讯变量|注射泵参数[0].最高速度 +注射泵参数[0].加速度代码,syringe_pump_0_accel_code,VARIABLE,INT16,Chinese,ns=4;s=上位通讯变量|注射泵参数[0].加速度代码 +注射泵参数[1].当前位置显示,syringe_pump_1_current_position,VARIABLE,INT16,Chinese,ns=4;s=上位通讯变量|注射泵参数[1].当前位置显示 +注射泵参数[1].绝对位置设置,syringe_pump_1_abs_position_set,VARIABLE,INT16,Chinese,ns=4;s=上位通讯变量|注射泵参数[1].绝对位置设置 +注射泵参数[1].抽液位置设置,syringe_pump_1_aspirate_pos_set,VARIABLE,INT16,Chinese,ns=4;s=上位通讯变量|注射泵参数[1].抽液位置设置 +注射泵参数[1].排液位置设置,syringe_pump_1_dispense_pos_set,VARIABLE,INT16,Chinese,ns=4;s=上位通讯变量|注射泵参数[1].排液位置设置 +注射泵参数[1].启动速度,syringe_pump_1_start_speed,VARIABLE,INT16,Chinese,ns=4;s=上位通讯变量|注射泵参数[1].启动速度 +注射泵参数[1].最高速度,syringe_pump_1_max_speed,VARIABLE,INT16,Chinese,ns=4;s=上位通讯变量|注射泵参数[1].最高速度 +注射泵参数[1].加速度代码,syringe_pump_1_accel_code,VARIABLE,INT16,Chinese,ns=4;s=上位通讯变量|注射泵参数[1].加速度代码 +注射泵参数[2].当前位置显示,syringe_pump_2_current_position,VARIABLE,INT16,Chinese,ns=4;s=上位通讯变量|注射泵参数[2].当前位置显示 +注射泵参数[2].绝对位置设置,syringe_pump_2_abs_position_set,VARIABLE,INT16,Chinese,ns=4;s=上位通讯变量|注射泵参数[2].绝对位置设置 +注射泵参数[2].抽液位置设置,syringe_pump_2_aspirate_pos_set,VARIABLE,INT16,Chinese,ns=4;s=上位通讯变量|注射泵参数[2].抽液位置设置 +注射泵参数[2].排液位置设置,syringe_pump_2_dispense_pos_set,VARIABLE,INT16,Chinese,ns=4;s=上位通讯变量|注射泵参数[2].排液位置设置 +注射泵参数[2].启动速度,syringe_pump_2_start_speed,VARIABLE,INT16,Chinese,ns=4;s=上位通讯变量|注射泵参数[2].启动速度 +注射泵参数[2].最高速度,syringe_pump_2_max_speed,VARIABLE,INT16,Chinese,ns=4;s=上位通讯变量|注射泵参数[2].最高速度 +注射泵参数[2].加速度代码,syringe_pump_2_accel_code,VARIABLE,INT16,Chinese,ns=4;s=上位通讯变量|注射泵参数[2].加速度代码 +机器人取烧杯编号,robot_pick_beaker_id,VARIABLE,INT32,Chinese,ns=4;s=上位通讯变量|机器人取烧杯编号 +机器人放烧杯编号,robot_place_beaker_id,VARIABLE,INT32,Chinese,ns=4;s=上位通讯变量|机器人放烧杯编号 +机器人放检测编号,robot_place_station_id,VARIABLE,INT32,Chinese,ns=4;s=上位通讯变量|机器人放检测编号 +机器人取检测编号,robot_pick_station_id,VARIABLE,INT32,Chinese,ns=4;s=上位通讯变量|机器人取检测编号 +机器人初始化,robot_init,VARIABLE,INT32,Chinese,ns=4;s=上位通讯变量|机器人初始化 +机器人料架取烧杯1完成,robot_rack_pick_beaker_1_complete,VARIABLE,BOOLEAN,Chinese,ns=4;s=上位通讯变量|机器人料架取烧杯1完成 +机器人料架取烧杯2完成,robot_rack_pick_beaker_2_complete,VARIABLE,BOOLEAN,Chinese,ns=4;s=上位通讯变量|机器人料架取烧杯2完成 +机器人料架取烧杯3完成,robot_rack_pick_beaker_3_complete,VARIABLE,BOOLEAN,Chinese,ns=4;s=上位通讯变量|机器人料架取烧杯3完成 +机器人料架取烧杯4完成,robot_rack_pick_beaker_4_complete,VARIABLE,BOOLEAN,Chinese,ns=4;s=上位通讯变量|机器人料架取烧杯4完成 +机器人料架取烧杯5完成,robot_rack_pick_beaker_5_complete,VARIABLE,BOOLEAN,Chinese,ns=4;s=上位通讯变量|机器人料架取烧杯5完成 +机器人料架放烧杯1完成,robot_rack_place_beaker_1_complete,VARIABLE,BOOLEAN,Chinese,ns=4;s=上位通讯变量|机器人料架放烧杯1完成 +机器人料架放烧杯2完成,robot_rack_place_beaker_2_complete,VARIABLE,BOOLEAN,Chinese,ns=4;s=上位通讯变量|机器人料架放烧杯2完成 +机器人料架放烧杯3完成,robot_rack_place_beaker_3_complete,VARIABLE,BOOLEAN,Chinese,ns=4;s=上位通讯变量|机器人料架放烧杯3完成 +机器人料架放烧杯4完成,robot_rack_place_beaker_4_complete,VARIABLE,BOOLEAN,Chinese,ns=4;s=上位通讯变量|机器人料架放烧杯4完成 +机器人料架放烧杯5完成,robot_rack_place_beaker_5_complete,VARIABLE,BOOLEAN,Chinese,ns=4;s=上位通讯变量|机器人料架放烧杯5完成 +机器人放检测1完成,robot_place_station_1_complete,VARIABLE,BOOLEAN,Chinese,ns=4;s=上位通讯变量|机器人放检测1完成 +机器人放检测2完成,robot_place_station_2_complete,VARIABLE,BOOLEAN,Chinese,ns=4;s=上位通讯变量|机器人放检测2完成 +机器人放检测3完成,robot_place_station_3_complete,VARIABLE,BOOLEAN,Chinese,ns=4;s=上位通讯变量|机器人放检测3完成 +机器人取检测1完成,robot_pick_station_1_complete,VARIABLE,BOOLEAN,Chinese,ns=4;s=上位通讯变量|机器人取检测1完成 +机器人取检测2完成,robot_pick_station_2_complete,VARIABLE,BOOLEAN,Chinese,ns=4;s=上位通讯变量|机器人取检测2完成 +机器人取检测3完成,robot_pick_station_3_complete,VARIABLE,BOOLEAN,Chinese,ns=4;s=上位通讯变量|机器人取检测3完成 +机器人初始化完成,robot_init_complete,VARIABLE,BOOLEAN,Chinese,ns=4;s=上位通讯变量|机器人初始化完成 +机器人料架取烧杯1开始,robot_rack_pick_beaker_1_start,VARIABLE,BOOLEAN,Chinese,ns=4;s=上位通讯变量|机器人料架取烧杯1开始 +机器人料架取烧杯2开始,robot_rack_pick_beaker_2_start,VARIABLE,BOOLEAN,Chinese,ns=4;s=上位通讯变量|机器人料架取烧杯2开始 +机器人料架取烧杯3开始,robot_rack_pick_beaker_3_start,VARIABLE,BOOLEAN,Chinese,ns=4;s=上位通讯变量|机器人料架取烧杯3开始 +机器人料架取烧杯4开始,robot_rack_pick_beaker_4_start,VARIABLE,BOOLEAN,Chinese,ns=4;s=上位通讯变量|机器人料架取烧杯4开始 +机器人料架取烧杯5开始,robot_rack_pick_beaker_5_start,VARIABLE,BOOLEAN,Chinese,ns=4;s=上位通讯变量|机器人料架取烧杯5开始 +机器人料架放烧杯1开始,robot_rack_place_beaker_1_start,VARIABLE,BOOLEAN,Chinese,ns=4;s=上位通讯变量|机器人料架放烧杯1开始 +机器人料架放烧杯2开始,robot_rack_place_beaker_2_start,VARIABLE,BOOLEAN,Chinese,ns=4;s=上位通讯变量|机器人料架放烧杯2开始 +机器人料架放烧杯3开始,robot_rack_place_beaker_3_start,VARIABLE,BOOLEAN,Chinese,ns=4;s=上位通讯变量|机器人料架放烧杯3开始 +机器人料架放烧杯4开始,robot_rack_place_beaker_4_start,VARIABLE,BOOLEAN,Chinese,ns=4;s=上位通讯变量|机器人料架放烧杯4开始 +机器人料架放烧杯5开始,robot_rack_place_beaker_5_start,VARIABLE,BOOLEAN,Chinese,ns=4;s=上位通讯变量|机器人料架放烧杯5开始 +机器人放检测1开始,robot_place_station_1_start,VARIABLE,BOOLEAN,Chinese,ns=4;s=上位通讯变量|机器人放检测1开始 +机器人放检测2开始,robot_place_station_2_start,VARIABLE,BOOLEAN,Chinese,ns=4;s=上位通讯变量|机器人放检测2开始 +机器人放检测3开始,robot_place_station_3_start,VARIABLE,BOOLEAN,Chinese,ns=4;s=上位通讯变量|机器人放检测3开始 +机器人取检测1开始,robot_pick_station_1_start,VARIABLE,BOOLEAN,Chinese,ns=4;s=上位通讯变量|机器人取检测1开始 +机器人取检测2开始,robot_pick_station_2_start,VARIABLE,BOOLEAN,Chinese,ns=4;s=上位通讯变量|机器人取检测2开始 +机器人取检测3开始,robot_pick_station_3_start,VARIABLE,BOOLEAN,Chinese,ns=4;s=上位通讯变量|机器人取检测3开始 +机器人机器人安全点,robot_safe_point,VARIABLE,BOOLEAN,Chinese,ns=4;s=上位通讯变量|机器人机器人安全点 +机器人机器人安全区域1,robot_safe_zone_1,VARIABLE,BOOLEAN,Chinese,ns=4;s=上位通讯变量|机器人机器人安全区域1 +机器人机器人安全区域2,robot_safe_zone_2,VARIABLE,BOOLEAN,Chinese,ns=4;s=上位通讯变量|机器人机器人安全区域2 +机器人机器人安全区域3,robot_safe_zone_3,VARIABLE,BOOLEAN,Chinese,ns=4;s=上位通讯变量|机器人机器人安全区域3 +自动作业开始触发,auto_run_start_trigger,VARIABLE,BOOLEAN,Chinese,ns=4;s=上位通讯变量|自动作业开始触发 +自动作业完成,auto_run_complete,VARIABLE,BOOLEAN,Chinese,ns=4;s=上位通讯变量|自动作业完成 +检测1请求参数,station_1_request_params,VARIABLE,BOOLEAN,Chinese,ns=4;s=上位通讯变量|检测1请求参数 +检测2请求参数,station_2_request_params,VARIABLE,BOOLEAN,Chinese,ns=4;s=上位通讯变量|检测2请求参数 +检测3请求参数,station_3_request_params,VARIABLE,BOOLEAN,Chinese,ns=4;s=上位通讯变量|检测3请求参数 +检测1参数已执行,station_1_params_received,VARIABLE,BOOLEAN,Chinese,ns=4;s=上位通讯变量|检测1参数已执行 +检测2参数已执行,station_2_params_received,VARIABLE,BOOLEAN,Chinese,ns=4;s=上位通讯变量|检测2参数已执行 +检测3参数已执行,station_3_params_received,VARIABLE,BOOLEAN,Chinese,ns=4;s=上位通讯变量|检测3参数已执行 +检测1空闲,station_1_ready,VARIABLE,BOOLEAN,Chinese,ns=4;s=上位通讯变量|检测1空闲 +检测2空闲,station_2_ready,VARIABLE,BOOLEAN,Chinese,ns=4;s=上位通讯变量|检测2空闲 +检测3空闲,station_3_ready,VARIABLE,BOOLEAN,Chinese,ns=4;s=上位通讯变量|检测3空闲 +机器人空闲,robot_ready,VARIABLE,BOOLEAN,Chinese,ns=4;s=上位通讯变量|机器人空闲 +检测1工艺完成,station_1_process_complete,VARIABLE,BOOLEAN,Chinese,ns=4;s=上位通讯变量|检测1工艺完成 +检测2工艺完成,station_2_process_complete,VARIABLE,BOOLEAN,Chinese,ns=4;s=上位通讯变量|检测2工艺完成 +检测3工艺完成,station_3_process_complete,VARIABLE,BOOLEAN,Chinese,ns=4;s=上位通讯变量|检测3工艺完成 +模式切换,mode_switch,VARIABLE,BOOLEAN,Chinese,ns=4;s=上位通讯变量|模式切换 +初始化PC,initialize,VARIABLE,BOOLEAN,Chinese,ns=4;s=上位通讯变量|初始化PC +初始化完成PC,init finished,VARIABLE,BOOLEAN,Chinese,ns=4;s=上位通讯变量|初始化完成PC +手自动切换,manual_auto_switch,VARIABLE,BOOLEAN,Chinese,ns=4;s=上位通讯变量|手自动切换 +自动模式PC,auto_mode,VARIABLE,BOOLEAN,Chinese,ns=4;s=上位通讯变量|自动模式PC +自动作业参数已下发,auto_param_downloaded,VARIABLE,BOOLEAN,Chinese,ns=4;s=上位通讯变量|自动作业参数已下发 +自动作业参数已执行,auto_param_applied,VARIABLE,BOOLEAN,Chinese,ns=4;s=上位通讯变量|自动作业参数已执行 +自动作业等待停止时间,auto_job_stop_delay,VARIABLE,INT16,Chinese,ns=4;s=上位通讯变量|自动作业等待停止时间 +检测1开始,station_1_start,VARIABLE,BOOLEAN,Chinese,ns=4;s=上位通讯变量|检测1开始 +检测2开始,station_2_start,VARIABLE,BOOLEAN,Chinese,ns=4;s=上位通讯变量|检测2开始 +检测3开始,station_3_start,VARIABLE,BOOLEAN,Chinese,ns=4;s=上位通讯变量|检测3开始 \ No newline at end of file diff --git a/unilabos/devices/workstation/AI4M/opcua_nodes_AI4M_sim.csv b/unilabos/devices/workstation/AI4M/opcua_nodes_AI4M_sim.csv new file mode 100644 index 00000000..9b534464 --- /dev/null +++ b/unilabos/devices/workstation/AI4M/opcua_nodes_AI4M_sim.csv @@ -0,0 +1,135 @@ +Name,EnglishName,NodeType,DataType,NodeLanguage,NodeId +磁力搅拌参数设置_C[0].搅拌速度,mag_stirrer_c0_stir_speed,VARIABLE,INT16,Chinese,ns=2;s=AI4M.设备 1.磁力搅拌参数设置_C[0].搅拌速度 +磁力搅拌参数设置_C[0].加热温度,mag_stirrer_c0_heat_temp,VARIABLE,INT16,Chinese,ns=2;s=AI4M.设备 1.磁力搅拌参数设置_C[0].加热温度 +磁力搅拌参数设置_C[0].时间设置,mag_stirrer_c0_time_set,VARIABLE,INT16,Chinese,ns=2;s=AI4M.设备 1.磁力搅拌参数设置_C[0].时间设置 +磁力搅拌参数设置_C[0].返回设定速度,mag_stirrer_c0_return_speed_setpoint,VARIABLE,INT16,Chinese,ns=2;s=AI4M.设备 1.磁力搅拌参数设置_C[0].返回设定速度 +磁力搅拌参数设置_C[0].返回实际速度,mag_stirrer_c0_return_speed_actual,VARIABLE,INT16,Chinese,ns=2;s=AI4M.设备 1.磁力搅拌参数设置_C[0].返回实际速度 +磁力搅拌参数设置_C[0].返回设定温度,mag_stirrer_c0_return_temp_setpoint,VARIABLE,INT16,Chinese,ns=2;s=AI4M.设备 1.磁力搅拌参数设置_C[0].返回设定温度 +磁力搅拌参数设置_C[0].返回实际温度,mag_stirrer_c0_return_temp_actual,VARIABLE,INT16,Chinese,ns=2;s=AI4M.设备 1.磁力搅拌参数设置_C[0].返回实际温度 +磁力搅拌参数设置_C[0].返回设定时间,mag_stirrer_c0_return_time_setpoint,VARIABLE,INT16,Chinese,ns=2;s=AI4M.设备 1.磁力搅拌参数设置_C[0].返回设定时间 +磁力搅拌参数设置_C[0].返回实际时间,mag_stirrer_c0_return_time_actual,VARIABLE,INT16,Chinese,ns=2;s=AI4M.设备 1.磁力搅拌参数设置_C[0].返回实际时间 +磁力搅拌参数设置_C[0].工作模式设置,mag_stirrer_c0_work_mode_set,VARIABLE,INT16,Chinese,ns=2;s=AI4M.设备 1.磁力搅拌参数设置_C[0].工作模式设置 +磁力搅拌参数设置_C[0].加热模式设置,mag_stirrer_c0_heat_mode_set,VARIABLE,INT16,Chinese,ns=2;s=AI4M.设备 1.磁力搅拌参数设置_C[0].加热模式设置 +磁力搅拌参数设置_C[0].温度单位,mag_stirrer_c0_temp_unit,VARIABLE,INT16,Chinese,ns=2;s=AI4M.设备 1.磁力搅拌参数设置_C[0].温度单位 +磁力搅拌参数设置_C[0].加热模式,mag_stirrer_c0_heat_mode,VARIABLE,INT16,Chinese,ns=2;s=AI4M.设备 1.磁力搅拌参数设置_C[0].加热模式 +磁力搅拌参数设置_C[0].仪器模式,mag_stirrer_c0_instrument_mode,VARIABLE,INT16,Chinese,ns=2;s=AI4M.设备 1.磁力搅拌参数设置_C[0].仪器模式 +磁力搅拌参数设置_C[0].安全温度,mag_stirrer_c0_safe_temp,VARIABLE,INT16,Chinese,ns=2;s=AI4M.设备 1.磁力搅拌参数设置_C[0].安全温度 +磁力搅拌参数设置_C[1].搅拌速度,mag_stirrer_c1_stir_speed,VARIABLE,INT16,Chinese,ns=2;s=AI4M.设备 1.磁力搅拌参数设置_C[1].搅拌速度 +磁力搅拌参数设置_C[1].加热温度,mag_stirrer_c1_heat_temp,VARIABLE,INT16,Chinese,ns=2;s=AI4M.设备 1.磁力搅拌参数设置_C[1].加热温度 +磁力搅拌参数设置_C[1].时间设置,mag_stirrer_c1_time_set,VARIABLE,INT16,Chinese,ns=2;s=AI4M.设备 1.磁力搅拌参数设置_C[1].时间设置 +磁力搅拌参数设置_C[1].返回设定速度,mag_stirrer_c1_return_speed_setpoint,VARIABLE,INT16,Chinese,ns=2;s=AI4M.设备 1.磁力搅拌参数设置_C[1].返回设定速度 +磁力搅拌参数设置_C[1].返回实际速度,mag_stirrer_c1_return_speed_actual,VARIABLE,INT16,Chinese,ns=2;s=AI4M.设备 1.磁力搅拌参数设置_C[1].返回实际速度 +磁力搅拌参数设置_C[1].返回设定温度,mag_stirrer_c1_return_temp_setpoint,VARIABLE,INT16,Chinese,ns=2;s=AI4M.设备 1.磁力搅拌参数设置_C[1].返回设定温度 +磁力搅拌参数设置_C[1].返回实际温度,mag_stirrer_c1_return_temp_actual,VARIABLE,INT16,Chinese,ns=2;s=AI4M.设备 1.磁力搅拌参数设置_C[1].返回实际温度 +磁力搅拌参数设置_C[1].返回设定时间,mag_stirrer_c1_return_time_setpoint,VARIABLE,INT16,Chinese,ns=2;s=AI4M.设备 1.磁力搅拌参数设置_C[1].返回设定时间 +磁力搅拌参数设置_C[1].返回实际时间,mag_stirrer_c1_return_time_actual,VARIABLE,INT16,Chinese,ns=2;s=AI4M.设备 1.磁力搅拌参数设置_C[1].返回实际时间 +磁力搅拌参数设置_C[1].工作模式设置,mag_stirrer_c1_work_mode_set,VARIABLE,INT16,Chinese,ns=2;s=AI4M.设备 1.磁力搅拌参数设置_C[1].工作模式设置 +磁力搅拌参数设置_C[1].加热模式设置,mag_stirrer_c1_heat_mode_set,VARIABLE,INT16,Chinese,ns=2;s=AI4M.设备 1.磁力搅拌参数设置_C[1].加热模式设置 +磁力搅拌参数设置_C[1].温度单位,mag_stirrer_c1_temp_unit,VARIABLE,INT16,Chinese,ns=2;s=AI4M.设备 1.磁力搅拌参数设置_C[1].温度单位 +磁力搅拌参数设置_C[1].加热模式,mag_stirrer_c1_heat_mode,VARIABLE,INT16,Chinese,ns=2;s=AI4M.设备 1.磁力搅拌参数设置_C[1].加热模式 +磁力搅拌参数设置_C[1].仪器模式,mag_stirrer_c1_instrument_mode,VARIABLE,INT16,Chinese,ns=2;s=AI4M.设备 1.磁力搅拌参数设置_C[1].仪器模式 +磁力搅拌参数设置_C[1].安全温度,mag_stirrer_c1_safe_temp,VARIABLE,INT16,Chinese,ns=2;s=AI4M.设备 1.磁力搅拌参数设置_C[1].安全温度 +磁力搅拌参数设置_C[2].搅拌速度,mag_stirrer_c2_stir_speed,VARIABLE,INT16,Chinese,ns=2;s=AI4M.设备 1.磁力搅拌参数设置_C[2].搅拌速度 +磁力搅拌参数设置_C[2].加热温度,mag_stirrer_c2_heat_temp,VARIABLE,INT16,Chinese,ns=2;s=AI4M.设备 1.磁力搅拌参数设置_C[2].加热温度 +磁力搅拌参数设置_C[2].时间设置,mag_stirrer_c2_time_set,VARIABLE,INT16,Chinese,ns=2;s=AI4M.设备 1.磁力搅拌参数设置_C[2].时间设置 +磁力搅拌参数设置_C[2].返回设定速度,mag_stirrer_c2_return_speed_setpoint,VARIABLE,INT16,Chinese,ns=2;s=AI4M.设备 1.磁力搅拌参数设置_C[2].返回设定速度 +磁力搅拌参数设置_C[2].返回实际速度,mag_stirrer_c2_return_speed_actual,VARIABLE,INT16,Chinese,ns=2;s=AI4M.设备 1.磁力搅拌参数设置_C[2].返回实际速度 +磁力搅拌参数设置_C[2].返回设定温度,mag_stirrer_c2_return_temp_setpoint,VARIABLE,INT16,Chinese,ns=2;s=AI4M.设备 1.磁力搅拌参数设置_C[2].返回设定温度 +磁力搅拌参数设置_C[2].返回实际温度,mag_stirrer_c2_return_temp_actual,VARIABLE,INT16,Chinese,ns=2;s=AI4M.设备 1.磁力搅拌参数设置_C[2].返回实际温度 +磁力搅拌参数设置_C[2].返回设定时间,mag_stirrer_c2_return_time_setpoint,VARIABLE,INT16,Chinese,ns=2;s=AI4M.设备 1.磁力搅拌参数设置_C[2].返回设定时间 +磁力搅拌参数设置_C[2].返回实际时间,mag_stirrer_c2_return_time_actual,VARIABLE,INT16,Chinese,ns=2;s=AI4M.设备 1.磁力搅拌参数设置_C[2].返回实际时间 +磁力搅拌参数设置_C[2].工作模式设置,mag_stirrer_c2_work_mode_set,VARIABLE,INT16,Chinese,ns=2;s=AI4M.设备 1.磁力搅拌参数设置_C[2].工作模式设置 +磁力搅拌参数设置_C[2].加热模式设置,mag_stirrer_c2_heat_mode_set,VARIABLE,INT16,Chinese,ns=2;s=AI4M.设备 1.磁力搅拌参数设置_C[2].加热模式设置 +磁力搅拌参数设置_C[2].温度单位,mag_stirrer_c2_temp_unit,VARIABLE,INT16,Chinese,ns=2;s=AI4M.设备 1.磁力搅拌参数设置_C[2].温度单位 +磁力搅拌参数设置_C[2].加热模式,mag_stirrer_c2_heat_mode,VARIABLE,INT16,Chinese,ns=2;s=AI4M.设备 1.磁力搅拌参数设置_C[2].加热模式 +磁力搅拌参数设置_C[2].仪器模式,mag_stirrer_c2_instrument_mode,VARIABLE,INT16,Chinese,ns=2;s=AI4M.设备 1.磁力搅拌参数设置_C[2].仪器模式 +磁力搅拌参数设置_C[2].安全温度,mag_stirrer_c2_safe_temp,VARIABLE,INT16,Chinese,ns=2;s=AI4M.设备 1.磁力搅拌参数设置_C[2].安全温度 +注射泵参数[0].当前位置显示,syringe_pump_0_current_position,VARIABLE,INT16,Chinese,ns=2;s=AI4M.设备 1.注射泵参数[0].当前位置显示 +注射泵参数[0].绝对位置设置,syringe_pump_0_abs_position_set,VARIABLE,INT16,Chinese,ns=2;s=AI4M.设备 1.注射泵参数[0].绝对位置设置 +注射泵参数[0].抽液位置设置,syringe_pump_0_aspirate_pos_set,VARIABLE,INT16,Chinese,ns=2;s=AI4M.设备 1.注射泵参数[0].抽液位置设置 +注射泵参数[0].排液位置设置,syringe_pump_0_dispense_pos_set,VARIABLE,INT16,Chinese,ns=2;s=AI4M.设备 1.注射泵参数[0].排液位置设置 +注射泵参数[0].启动速度,syringe_pump_0_start_speed,VARIABLE,INT16,Chinese,ns=2;s=AI4M.设备 1.注射泵参数[0].启动速度 +注射泵参数[0].最高速度,syringe_pump_0_max_speed,VARIABLE,INT16,Chinese,ns=2;s=AI4M.设备 1.注射泵参数[0].最高速度 +注射泵参数[0].加速度代码,syringe_pump_0_accel_code,VARIABLE,INT16,Chinese,ns=2;s=AI4M.设备 1.注射泵参数[0].加速度代码 +注射泵参数[1].当前位置显示,syringe_pump_1_current_position,VARIABLE,INT16,Chinese,ns=2;s=AI4M.设备 1.注射泵参数[1].当前位置显示 +注射泵参数[1].绝对位置设置,syringe_pump_1_abs_position_set,VARIABLE,INT16,Chinese,ns=2;s=AI4M.设备 1.注射泵参数[1].绝对位置设置 +注射泵参数[1].抽液位置设置,syringe_pump_1_aspirate_pos_set,VARIABLE,INT16,Chinese,ns=2;s=AI4M.设备 1.注射泵参数[1].抽液位置设置 +注射泵参数[1].排液位置设置,syringe_pump_1_dispense_pos_set,VARIABLE,INT16,Chinese,ns=2;s=AI4M.设备 1.注射泵参数[1].排液位置设置 +注射泵参数[1].启动速度,syringe_pump_1_start_speed,VARIABLE,INT16,Chinese,ns=2;s=AI4M.设备 1.注射泵参数[1].启动速度 +注射泵参数[1].最高速度,syringe_pump_1_max_speed,VARIABLE,INT16,Chinese,ns=2;s=AI4M.设备 1.注射泵参数[1].最高速度 +注射泵参数[1].加速度代码,syringe_pump_1_accel_code,VARIABLE,INT16,Chinese,ns=2;s=AI4M.设备 1.注射泵参数[1].加速度代码 +注射泵参数[2].当前位置显示,syringe_pump_2_current_position,VARIABLE,INT16,Chinese,ns=2;s=AI4M.设备 1.注射泵参数[2].当前位置显示 +注射泵参数[2].绝对位置设置,syringe_pump_2_abs_position_set,VARIABLE,INT16,Chinese,ns=2;s=AI4M.设备 1.注射泵参数[2].绝对位置设置 +注射泵参数[2].抽液位置设置,syringe_pump_2_aspirate_pos_set,VARIABLE,INT16,Chinese,ns=2;s=AI4M.设备 1.注射泵参数[2].抽液位置设置 +注射泵参数[2].排液位置设置,syringe_pump_2_dispense_pos_set,VARIABLE,INT16,Chinese,ns=2;s=AI4M.设备 1.注射泵参数[2].排液位置设置 +注射泵参数[2].启动速度,syringe_pump_2_start_speed,VARIABLE,INT16,Chinese,ns=2;s=AI4M.设备 1.注射泵参数[2].启动速度 +注射泵参数[2].最高速度,syringe_pump_2_max_speed,VARIABLE,INT16,Chinese,ns=2;s=AI4M.设备 1.注射泵参数[2].最高速度 +注射泵参数[2].加速度代码,syringe_pump_2_accel_code,VARIABLE,INT16,Chinese,ns=2;s=AI4M.设备 1.注射泵参数[2].加速度代码 +机器人取烧杯编号,robot_pick_beaker_id,VARIABLE,INT32,Chinese,ns=2;s=AI4M.设备 1.机器人取烧杯编号 +机器人放烧杯编号,robot_place_beaker_id,VARIABLE,INT32,Chinese,ns=2;s=AI4M.设备 1.机器人放烧杯编号 +机器人放检测编号,robot_place_station_id,VARIABLE,INT32,Chinese,ns=2;s=AI4M.设备 1.机器人放检测编号 +机器人取检测编号,robot_pick_station_id,VARIABLE,INT32,Chinese,ns=2;s=AI4M.设备 1.机器人取检测编号 +机器人初始化,robot_init,VARIABLE,INT32,Chinese,ns=2;s=AI4M.设备 1.机器人初始化 +机器人料架取烧杯1完成,robot_rack_pick_beaker_1_complete,VARIABLE,BOOLEAN,Chinese,ns=2;s=AI4M.设备 1.机器人料架取烧杯1完成 +机器人料架取烧杯2完成,robot_rack_pick_beaker_2_complete,VARIABLE,BOOLEAN,Chinese,ns=2;s=AI4M.设备 1.机器人料架取烧杯2完成 +机器人料架取烧杯3完成,robot_rack_pick_beaker_3_complete,VARIABLE,BOOLEAN,Chinese,ns=2;s=AI4M.设备 1.机器人料架取烧杯3完成 +机器人料架取烧杯4完成,robot_rack_pick_beaker_4_complete,VARIABLE,BOOLEAN,Chinese,ns=2;s=AI4M.设备 1.机器人料架取烧杯4完成 +机器人料架取烧杯5完成,robot_rack_pick_beaker_5_complete,VARIABLE,BOOLEAN,Chinese,ns=2;s=AI4M.设备 1.机器人料架取烧杯5完成 +机器人料架放烧杯1完成,robot_rack_place_beaker_1_complete,VARIABLE,BOOLEAN,Chinese,ns=2;s=AI4M.设备 1.机器人料架放烧杯1完成 +机器人料架放烧杯2完成,robot_rack_place_beaker_2_complete,VARIABLE,BOOLEAN,Chinese,ns=2;s=AI4M.设备 1.机器人料架放烧杯2完成 +机器人料架放烧杯3完成,robot_rack_place_beaker_3_complete,VARIABLE,BOOLEAN,Chinese,ns=2;s=AI4M.设备 1.机器人料架放烧杯3完成 +机器人料架放烧杯4完成,robot_rack_place_beaker_4_complete,VARIABLE,BOOLEAN,Chinese,ns=2;s=AI4M.设备 1.机器人料架放烧杯4完成 +机器人料架放烧杯5完成,robot_rack_place_beaker_5_complete,VARIABLE,BOOLEAN,Chinese,ns=2;s=AI4M.设备 1.机器人料架放烧杯5完成 +机器人放检测1完成,robot_place_station_1_complete,VARIABLE,BOOLEAN,Chinese,ns=2;s=AI4M.设备 1.机器人放检测1完成 +机器人放检测2完成,robot_place_station_2_complete,VARIABLE,BOOLEAN,Chinese,ns=2;s=AI4M.设备 1.机器人放检测2完成 +机器人放检测3完成,robot_place_station_3_complete,VARIABLE,BOOLEAN,Chinese,ns=2;s=AI4M.设备 1.机器人放检测3完成 +机器人取检测1完成,robot_pick_station_1_complete,VARIABLE,BOOLEAN,Chinese,ns=2;s=AI4M.设备 1.机器人取检测1完成 +机器人取检测2完成,robot_pick_station_2_complete,VARIABLE,BOOLEAN,Chinese,ns=2;s=AI4M.设备 1.机器人取检测2完成 +机器人取检测3完成,robot_pick_station_3_complete,VARIABLE,BOOLEAN,Chinese,ns=2;s=AI4M.设备 1.机器人取检测3完成 +机器人初始化完成,robot_init_complete,VARIABLE,BOOLEAN,Chinese,ns=2;s=AI4M.设备 1.机器人初始化完成 +机器人料架取烧杯1开始,robot_rack_pick_beaker_1_start,VARIABLE,BOOLEAN,Chinese,ns=2;s=AI4M.设备 1.机器人料架取烧杯1开始 +机器人料架取烧杯2开始,robot_rack_pick_beaker_2_start,VARIABLE,BOOLEAN,Chinese,ns=2;s=AI4M.设备 1.机器人料架取烧杯2开始 +机器人料架取烧杯3开始,robot_rack_pick_beaker_3_start,VARIABLE,BOOLEAN,Chinese,ns=2;s=AI4M.设备 1.机器人料架取烧杯3开始 +机器人料架取烧杯4开始,robot_rack_pick_beaker_4_start,VARIABLE,BOOLEAN,Chinese,ns=2;s=AI4M.设备 1.机器人料架取烧杯4开始 +机器人料架取烧杯5开始,robot_rack_pick_beaker_5_start,VARIABLE,BOOLEAN,Chinese,ns=2;s=AI4M.设备 1.机器人料架取烧杯5开始 +机器人料架放烧杯1开始,robot_rack_place_beaker_1_start,VARIABLE,BOOLEAN,Chinese,ns=2;s=AI4M.设备 1.机器人料架放烧杯1开始 +机器人料架放烧杯2开始,robot_rack_place_beaker_2_start,VARIABLE,BOOLEAN,Chinese,ns=2;s=AI4M.设备 1.机器人料架放烧杯2开始 +机器人料架放烧杯3开始,robot_rack_place_beaker_3_start,VARIABLE,BOOLEAN,Chinese,ns=2;s=AI4M.设备 1.机器人料架放烧杯3开始 +机器人料架放烧杯4开始,robot_rack_place_beaker_4_start,VARIABLE,BOOLEAN,Chinese,ns=2;s=AI4M.设备 1.机器人料架放烧杯4开始 +机器人料架放烧杯5开始,robot_rack_place_beaker_5_start,VARIABLE,BOOLEAN,Chinese,ns=2;s=AI4M.设备 1.机器人料架放烧杯5开始 +机器人放检测1开始,robot_place_station_1_start,VARIABLE,BOOLEAN,Chinese,ns=2;s=AI4M.设备 1.机器人放检测1开始 +机器人放检测2开始,robot_place_station_2_start,VARIABLE,BOOLEAN,Chinese,ns=2;s=AI4M.设备 1.机器人放检测2开始 +机器人放检测3开始,robot_place_station_3_start,VARIABLE,BOOLEAN,Chinese,ns=2;s=AI4M.设备 1.机器人放检测3开始 +机器人取检测1开始,robot_pick_station_1_start,VARIABLE,BOOLEAN,Chinese,ns=2;s=AI4M.设备 1.机器人取检测1开始 +机器人取检测2开始,robot_pick_station_2_start,VARIABLE,BOOLEAN,Chinese,ns=2;s=AI4M.设备 1.机器人取检测2开始 +机器人取检测3开始,robot_pick_station_3_start,VARIABLE,BOOLEAN,Chinese,ns=2;s=AI4M.设备 1.机器人取检测3开始 +机器人机器人安全点,robot_safe_point,VARIABLE,BOOLEAN,Chinese,ns=2;s=AI4M.设备 1.机器人机器人安全点 +机器人机器人安全区域1,robot_safe_zone_1,VARIABLE,BOOLEAN,Chinese,ns=2;s=AI4M.设备 1.机器人机器人安全区域1 +机器人机器人安全区域2,robot_safe_zone_2,VARIABLE,BOOLEAN,Chinese,ns=2;s=AI4M.设备 1.机器人机器人安全区域2 +机器人机器人安全区域3,robot_safe_zone_3,VARIABLE,BOOLEAN,Chinese,ns=2;s=AI4M.设备 1.机器人机器人安全区域3 +自动作业开始触发,auto_run_start_trigger,VARIABLE,BOOLEAN,Chinese,ns=2;s=AI4M.设备 1.自动作业开始触发 +自动作业完成,auto_run_complete,VARIABLE,BOOLEAN,Chinese,ns=2;s=AI4M.设备 1.自动作业完成 +检测1请求参数,station_1_request_params,VARIABLE,BOOLEAN,Chinese,ns=2;s=AI4M.设备 1.检测1请求参数 +检测2请求参数,station_2_request_params,VARIABLE,BOOLEAN,Chinese,ns=2;s=AI4M.设备 1.检测2请求参数 +检测3请求参数,station_3_request_params,VARIABLE,BOOLEAN,Chinese,ns=2;s=AI4M.设备 1.检测3请求参数 +检测1参数已执行,station_1_params_received,VARIABLE,BOOLEAN,Chinese,ns=2;s=AI4M.设备 1.检测1参数已执行 +检测2参数已执行,station_2_params_received,VARIABLE,BOOLEAN,Chinese,ns=2;s=AI4M.设备 1.检测2参数已执行 +检测3参数已执行,station_3_params_received,VARIABLE,BOOLEAN,Chinese,ns=2;s=AI4M.设备 1.检测3参数已执行 +检测1空闲,station_1_ready,VARIABLE,BOOLEAN,Chinese,ns=2;s=AI4M.设备 1.检测1空闲 +检测2空闲,station_2_ready,VARIABLE,BOOLEAN,Chinese,ns=2;s=AI4M.设备 1.检测2空闲 +检测3空闲,station_3_ready,VARIABLE,BOOLEAN,Chinese,ns=2;s=AI4M.设备 1.检测3空闲 +机器人空闲,robot_ready,VARIABLE,BOOLEAN,Chinese,ns=2;s=AI4M.设备 1.机器人空闲 +检测1工艺完成,station_1_process_complete,VARIABLE,BOOLEAN,Chinese,ns=2;s=AI4M.设备 1.检测1工艺完成 +检测2工艺完成,station_2_process_complete,VARIABLE,BOOLEAN,Chinese,ns=2;s=AI4M.设备 1.检测2工艺完成 +检测3工艺完成,station_3_process_complete,VARIABLE,BOOLEAN,Chinese,ns=2;s=AI4M.设备 1.检测3工艺完成 +模式切换,mode_switch,VARIABLE,BOOLEAN,Chinese,ns=2;s=AI4M.设备 1.模式切换 +初始化PC,initialize,VARIABLE,BOOLEAN,Chinese,ns=2;s=AI4M.设备 1.初始化PC +初始化完成PC,init finished,VARIABLE,BOOLEAN,Chinese,ns=2;s=AI4M.设备 1.初始化完成PC +手自动切换,manual_auto_switch,VARIABLE,BOOLEAN,Chinese,ns=2;s=AI4M.设备 1.手自动切换 +自动模式PC,auto_mode,VARIABLE,BOOLEAN,Chinese,ns=2;s=AI4M.设备 1.自动模式PC +自动作业参数已下发,auto_param_downloaded,VARIABLE,BOOLEAN,Chinese,ns=2;s=AI4M.设备 1.自动作业参数已下发 +自动作业参数已执行,auto_param_applied,VARIABLE,BOOLEAN,Chinese,ns=2;s=AI4M.设备 1.自动作业参数已执行 +自动作业等待停止时间,auto_job_stop_delay,VARIABLE,INT16,Chinese,ns=2;s=AI4M.设备 1.自动作业等待停止时间 +检测1开始,station_1_start,VARIABLE,BOOLEAN,Chinese,ns=2;s=AI4M.设备 1.检测1开始 +检测2开始,station_2_start,VARIABLE,BOOLEAN,Chinese,ns=2;s=AI4M.设备 1.检测2开始 +检测3开始,station_3_start,VARIABLE,BOOLEAN,Chinese,ns=2;s=AI4M.设备 1.检测3开始 diff --git a/unilabos/devices/workstation/AI4M/start.md b/unilabos/devices/workstation/AI4M/start.md new file mode 100644 index 00000000..9a1a99a7 --- /dev/null +++ b/unilabos/devices/workstation/AI4M/start.md @@ -0,0 +1,6 @@ +深研院正式客户端正式unilab环境启动命令: + +python unilabos\app\main.py -g unilabos\devices\workstation\AI4M\AI4M.json --ak a3a92d5e-e0ff-4822-9a4e-1287d88ce127 --sk d8b6b8da-357d-4b6a-a56c-9034c7f2b932 --upload_registry --disable_browser + + +python unilabos\app\main.py -g unilabos\devices\workstation\AI4M\AI4M.json --ak 6c67a368-8002-4a38-8af8-f165db1c1fe3 --sk 85645cbd-2920-48e0-864f-7ed83b05521a --upload_registry --addr test diff --git a/unilabos/devices/workstation/AI4M/warehouses.py b/unilabos/devices/workstation/AI4M/warehouses.py new file mode 100644 index 00000000..7f2ebfea --- /dev/null +++ b/unilabos/devices/workstation/AI4M/warehouses.py @@ -0,0 +1,74 @@ +from unilabos.devices.workstation.AI4M.AI4M_warehouse import WareHouse, warehouse_factory + + + +# =================== Other =================== + + +def Hydrogel_warehouse_5x3x1(name: str) -> WareHouse: + """创建水凝胶模块 5x3x1仓库""" + return warehouse_factory( + name=name, + num_items_x=5, + num_items_y=3, + num_items_z=1, + dx=10.0, + dy=10.0, + dz=10.0, + item_dx=137.0, + item_dy=96.0, + item_dz=120.0, + category="warehouse", + ) + +def Station_1_warehouse_1x1x1(name: str) -> WareHouse: + """创建检测工站 1x1x1仓库""" + return warehouse_factory( + name=name, + num_items_x=1, + num_items_y=1, + num_items_z=1, + dx=10.0, + dy=10.0, + dz=10.0, + item_dx=137.0, + item_dy=96.0, + item_dz=120.0, + category="warehouse", + custom_keys=[1], # 使用数字1作为编号 + ) + +def Station_2_warehouse_1x1x1(name: str) -> WareHouse: + """创建检测工站 1x1x1仓库""" + return warehouse_factory( + name=name, + num_items_x=1, + num_items_y=1, + num_items_z=1, + dx=10.0, + dy=10.0, + dz=10.0, + item_dx=137.0, + item_dy=96.0, + item_dz=120.0, + category="warehouse", + custom_keys=[2], # 使用数字2作为编号 + ) + +def Station_3_warehouse_1x1x1(name: str) -> WareHouse: + """创建检测工站 1x1x1仓库""" + return warehouse_factory( + name=name, + num_items_x=1, + num_items_y=1, + num_items_z=1, + dx=10.0, + dy=10.0, + dz=10.0, + item_dx=137.0, + item_dy=96.0, + item_dz=120.0, + category="warehouse", + custom_keys=[3], # 使用数字3作为编号 + ) + diff --git "a/unilabos/devices/workstation/AI4M/\346\260\264\345\207\235\346\250\241\345\235\227\350\257\264\346\230\216\344\271\246.docx" "b/unilabos/devices/workstation/AI4M/\346\260\264\345\207\235\346\250\241\345\235\227\350\257\264\346\230\216\344\271\246.docx" new file mode 100644 index 00000000..af705087 Binary files /dev/null and "b/unilabos/devices/workstation/AI4M/\346\260\264\345\207\235\346\250\241\345\235\227\350\257\264\346\230\216\344\271\246.docx" differ diff --git "a/unilabos/devices/workstation/AI4M/\346\267\261\347\240\224\351\231\242\346\226\207\347\250\277\347\264\240\346\235\220.pptx" "b/unilabos/devices/workstation/AI4M/\346\267\261\347\240\224\351\231\242\346\226\207\347\250\277\347\264\240\346\235\220.pptx" new file mode 100644 index 00000000..a6cd0ec8 Binary files /dev/null and "b/unilabos/devices/workstation/AI4M/\346\267\261\347\240\224\351\231\242\346\226\207\347\250\277\347\264\240\346\235\220.pptx" differ diff --git a/unilabos/devices/workstation/bioyond_studio/__init__.py b/unilabos/devices/workstation/bioyond_studio/__init__.py deleted file mode 100644 index e69de29b..00000000 diff --git a/unilabos/devices/workstation/bioyond_studio/bioyond_rpc.py b/unilabos/devices/workstation/bioyond_studio/bioyond_rpc.py deleted file mode 100644 index afd515aa..00000000 --- a/unilabos/devices/workstation/bioyond_studio/bioyond_rpc.py +++ /dev/null @@ -1,1156 +0,0 @@ -# bioyond_rpc.py -""" -BioyondV1RPC类定义 - 负责HTTP接口通信和通用函数 -仅包含基础的API调用、通用工具函数,不包含特定站点业务逻辑 -""" - -from enum import Enum -from datetime import datetime, timezone -from unilabos.device_comms.rpc import BaseRequest -from typing import Optional, List, Dict, Any -import json -from unilabos.devices.workstation.bioyond_studio.config import LOCATION_MAPPING - - -class SimpleLogger: - """简单的日志记录器""" - def info(self, msg): print(f"[INFO] {msg}") - def error(self, msg): print(f"[ERROR] {msg}") - def debug(self, msg): print(f"[DEBUG] {msg}") - def warning(self, msg): print(f"[WARNING] {msg}") - def critical(self, msg): print(f"[CRITICAL] {msg}") - - -class MachineState(Enum): - INITIAL = 0 - STOPPED = 1 - RUNNING = 2 - PAUSED = 3 - ERROR_PAUSED = 4 - ERROR_STOPPED = 5 - - -class MaterialType(Enum): - Consumables = 0 - Sample = 1 - Reagent = 2 - Product = 3 - - -class BioyondException(Exception): - """Bioyond操作异常""" - pass - - -class BioyondV1RPC(BaseRequest): - def __init__(self, config): - super().__init__() - print("开始初始化 BioyondV1RPC") - self.config = config - self.api_key = config["api_key"] - self.host = config["api_host"] - self._logger = SimpleLogger() - self.material_cache = {} - self._load_material_cache() - - # ==================== 基础通用方法 ==================== - - def get_current_time_iso8601(self) -> str: - """ - 获取当前时间,并格式化为 ISO 8601 格式(包含毫秒部分)。 - - :return: 当前时间的 ISO 8601 格式字符串 - """ - current_time = datetime.now(timezone.utc).isoformat( - timespec='milliseconds' - ) - # 替换时区部分为 'Z' - current_time = current_time.replace("+00:00", "Z") - return current_time - - def get_logger(self): - return self._logger - - # ==================== 物料查询相关接口 ==================== - - def stock_material(self, json_str: str) -> list: - """ - 描述:返回所有当前在库的,已启用的物料 - json_str 字段介绍,格式为JSON字符串: - '{"typeMode": 0, "filter": "样品", "includeDetail": true}' - - typeMode: 物料类型, 样品1、试剂2、耗材0 - filter: 过滤字段, 物料名称/物料编码 - includeDetail: 是否包含所在库位。true,false - """ - try: - params = json.loads(json_str) - except json.JSONDecodeError: - return [] - - response = self.post( - url=f'{self.host}/api/lims/storage/stock-material', - params={ - "apiKey": self.api_key, - "requestTime": self.get_current_time_iso8601(), - "data": params - }) - - if not response or response['code'] != 1: - return [] - return response.get("data", []) - - def query_warehouse_by_material_type(self, type_id: str) -> dict: - """ - 描述:查询物料类型可以入库的库位 - type_id: 物料类型ID - """ - params = { - "typeId": type_id - } - - response = self.post( - url=f'{self.host}/api/lims/storage/warehouse-info-by-mat-type-id', - params={ - "apiKey": self.api_key, - "requestTime": self.get_current_time_iso8601(), - "data": params - }) - - if not response: - return {} - - if response['code'] != 1: - print( - f"query warehouse by material type error: {response.get('message', '')}" - ) - return {} - - return response.get("data", {}) - - def material_id_query(self, json_str: str) -> dict: - """ - 查询物料id - json_str 格式为JSON字符串: - '{"material123"}' - """ - params = json_str - - response = self.post( - url=f'{self.host}/api/lims/storage/workflow-sample-locations', - params={ - "apiKey": self.api_key, - "requestTime": self.get_current_time_iso8601(), - "data": params - }) - - if not response: - return {} - - if response['code'] != 1: - print(f"material_id_query error: {response.get('message')}") - return {} - - print(f"material_id_query data: {response['data']}") - return response.get("data", {}) - - def add_material(self, params: dict) -> dict: - """ - 描述:添加新的物料 - json_str 格式为JSON字符串 - """ - - response = self.post( - url=f'{self.host}/api/lims/storage/material', - params={ - "apiKey": self.api_key, - "requestTime": self.get_current_time_iso8601(), - "data": params - }) - - if not response: - return {} - - if response['code'] != 1: - print(f"add material error: {response.get('message', '')}") - return {} - - print(f"add material data: {response['data']}") - return response.get("data", {}) - - def query_matial_type_id(self, data) -> list: - """查找物料typeid""" - response = self.post( - url=f'{self.host}/api/lims/storage/material-types', - params={ - "apiKey": self.api_key, - "requestTime": self.get_current_time_iso8601(), - "data": data - }) - - if not response or response['code'] != 1: - return [] - return str(response.get("data", {})) - - def material_type_list(self) -> list: - """查询物料类型列表 - - 返回值: - list: 物料类型数组,失败返回空列表 - """ - response = self.post( - url=f'{self.host}/api/lims/storage/material-type-list', - params={ - "apiKey": self.api_key, - "requestTime": self.get_current_time_iso8601(), - "data": {}, - }) - if not response or response['code'] != 1: - return [] - return response.get("data", []) - - def material_inbound(self, material_id: str, location_id: str) -> dict: - """ - 描述:指定库位入库一个物料 - material_id: 物料ID - location_name: 库位名称(会自动映射到location_id) - """ - params = { - "materialId": material_id, - "locationId": location_id - } - - response = self.post( - url=f'{self.host}/api/lims/storage/inbound', - params={ - "apiKey": self.api_key, - "requestTime": self.get_current_time_iso8601(), - "data": params - }) - - if not response or response['code'] != 1: - if response: - error_msg = response.get('message', '未知错误') - print(f"[ERROR] 物料入库失败: code={response.get('code')}, message={error_msg}") - else: - print(f"[ERROR] 物料入库失败: API 无响应") - return {} - # 入库成功时,即使没有 data 字段,也返回成功标识 - return response.get("data") or {"success": True} - - def batch_inbound(self, inbound_items: List[Dict[str, Any]]) -> int: - """批量入库物料 - - 参数: - inbound_items: 入库条目列表,每项包含 materialId/locationId/quantity 等 - - 返回值: - int: 成功返回1,失败返回0 - """ - response = self.post( - url=f'{self.host}/api/lims/storage/batch-inbound', - params={ - "apiKey": self.api_key, - "requestTime": self.get_current_time_iso8601(), - "data": inbound_items, - }) - if not response or response['code'] != 1: - return 0 - return response.get("code", 0) - - def delete_material(self, material_id: str) -> dict: - """ - 描述:删除尚未入库的物料 - material_id: 物料ID - """ - response = self.post( - url=f'{self.host}/api/lims/storage/delete-material', - params={ - "apiKey": self.api_key, - "requestTime": self.get_current_time_iso8601(), - "data": material_id - }) - - if not response or response['code'] != 1: - return {} - return response.get("data", {}) - - def material_outbound(self, material_id: str, location_name: str, quantity: int) -> dict: - """指定库位出库物料(通过库位名称)""" - location_id = LOCATION_MAPPING.get(location_name, location_name) - - params = { - "materialId": material_id, - "locationId": location_id, - "quantity": quantity - } - - response = self.post( - url=f'{self.host}/api/lims/storage/outbound', - params={ - "apiKey": self.api_key, - "requestTime": self.get_current_time_iso8601(), - "data": params - }) - - if not response or response['code'] != 1: - return None - return response - - def material_outbound_by_id(self, material_id: str, location_id: str, quantity: int) -> dict: - """指定库位出库物料(直接使用location_id) - - Args: - material_id: 物料ID - location_id: 库位ID(不是库位名称,是UUID) - quantity: 数量 - - Returns: - dict: API响应,失败返回None - """ - params = { - "materialId": material_id, - "locationId": location_id, - "quantity": quantity - } - - response = self.post( - url=f'{self.host}/api/lims/storage/outbound', - params={ - "apiKey": self.api_key, - "requestTime": self.get_current_time_iso8601(), - "data": params - }) - - if not response or response['code'] != 1: - return None - return response - - def batch_outbound(self, outbound_items: List[Dict[str, Any]]) -> int: - """批量出库物料 - - 参数: - outbound_items: 出库条目列表,每项包含 materialId/locationId/quantity 等 - - 返回值: - int: 成功返回1,失败返回0 - """ - response = self.post( - url=f'{self.host}/api/lims/storage/batch-outbound', - params={ - "apiKey": self.api_key, - "requestTime": self.get_current_time_iso8601(), - "data": outbound_items, - }) - if not response or response['code'] != 1: - return 0 - return response.get("code", 0) - - def material_info(self, material_id: str) -> dict: - """查询物料详情 - - 参数: - material_id: 物料ID - - 返回值: - dict: 物料信息字典,失败返回空字典 - """ - response = self.post( - url=f'{self.host}/api/lims/storage/material-info', - params={ - "apiKey": self.api_key, - "requestTime": self.get_current_time_iso8601(), - "data": material_id, - }) - if not response or response['code'] != 1: - return {} - return response.get("data", {}) - - def reset_location(self, location_id: str) -> int: - """复位库位 - - 参数: - location_id: 库位ID - - 返回值: - int: 成功返回1,失败返回0 - """ - response = self.post( - url=f'{self.host}/api/lims/storage/reset-location', - params={ - "apiKey": self.api_key, - "requestTime": self.get_current_time_iso8601(), - "data": location_id, - }) - if not response or response['code'] != 1: - return 0 - return response.get("code", 0) - - # ==================== 工作流查询相关接口 ==================== - - def query_workflow(self, json_str: str) -> dict: - try: - params = json.loads(json_str) - except json.JSONDecodeError: - print(f"无效的JSON字符串: {json_str}") - return {} - except Exception as e: - print(f"处理JSON时出错: {str(e)}") - return {} - - response = self.post( - url=f'{self.host}/api/lims/workflow/work-flow-list', - params={ - "apiKey": self.api_key, - "requestTime": self.get_current_time_iso8601(), - "data": params - }) - - if not response or response['code'] != 1: - return {} - return response.get("data", {}) - - def workflow_step_query(self, workflow_id: str) -> dict: - """ - 描述:查询某一个子工作流的详细信息,包含所有步骤、参数信息 - json_str 格式为JSON字符串: - '{"workflow_id": "workflow123"}' - """ - - response = self.post( - url=f'{self.host}/api/lims/workflow/sub-workflow-step-parameters', - params={ - "apiKey": self.api_key, - "requestTime": self.get_current_time_iso8601(), - "data": workflow_id, - }) - - if not response or response['code'] != 1: - return {} - return response.get("data", {}) - - def split_workflow_list(self, params: Dict[str, Any]) -> dict: - """查询可拆分工作流列表 - - 参数: - params: 查询条件参数 - - 返回值: - dict: 返回数据字典,失败返回空字典 - """ - response = self.post( - url=f'{self.host}/api/lims/workflow/split-workflow-list', - params={ - "apiKey": self.api_key, - "requestTime": self.get_current_time_iso8601(), - "data": params, - }) - if not response or response['code'] != 1: - return {} - return response.get("data", {}) - - def merge_workflow(self, data: Dict[str, Any]) -> dict: - """合并工作流(无参数版) - - 参数: - data: 合并请求体,包含待合并的子工作流信息 - - 返回值: - dict: 合并结果,失败返回空字典 - """ - response = self.post( - url=f'{self.host}/api/lims/workflow/merge-workflow', - params={ - "apiKey": self.api_key, - "requestTime": self.get_current_time_iso8601(), - "data": data, - }) - if not response or response['code'] != 1: - return {} - return response.get("data", {}) - - def merge_workflow_with_parameters(self, data: Dict[str, Any]) -> dict: - """合并工作流(携带参数) - - 参数: - data: 合并请求体,包含 name、workflows 以及 stepParameters 等 - - 返回值: - dict: 合并结果,失败返回空字典 - """ - response = self.post( - url=f'{self.host}/api/lims/workflow/merge-workflow-with-parameters', - params={ - "apiKey": self.api_key, - "requestTime": self.get_current_time_iso8601(), - "data": data, - }) - if not response or response['code'] != 1: - return {} - return response.get("data", {}) - - def validate_workflow_parameters(self, workflows: List[Dict[str, Any]]) -> Dict[str, Any]: - """验证工作流参数格式""" - try: - validation_errors = [] - - for i, workflow in enumerate(workflows): - workflow_errors = [] - - # 检查基本结构 - if not isinstance(workflow, dict): - workflow_errors.append("工作流必须是字典类型") - continue - - if "id" not in workflow: - workflow_errors.append("缺少必要的 'id' 字段") - - # 检查 stepParameters(如果存在) - if "stepParameters" in workflow: - step_params = workflow["stepParameters"] - - if not isinstance(step_params, dict): - workflow_errors.append("stepParameters 必须是字典类型") - else: - # 验证参数结构 - for step_id, modules in step_params.items(): - if not isinstance(modules, dict): - workflow_errors.append(f"步骤 {step_id} 的模块配置必须是字典类型") - continue - - for module_name, params in modules.items(): - if not isinstance(params, list): - workflow_errors.append(f"步骤 {step_id} 模块 {module_name} 的参数必须是列表类型") - continue - - for j, param in enumerate(params): - if not isinstance(param, dict): - workflow_errors.append(f"步骤 {step_id} 模块 {module_name} 参数 {j} 必须是字典类型") - elif "Key" not in param or "DisplayValue" not in param: - workflow_errors.append(f"步骤 {step_id} 模块 {module_name} 参数 {j} 必须包含 Key 和 DisplayValue") - - if workflow_errors: - validation_errors.append({ - "workflow_index": i, - "workflow_id": workflow.get("id", "unknown"), - "errors": workflow_errors - }) - - if validation_errors: - return { - "valid": False, - "errors": validation_errors, - "message": f"发现 {len(validation_errors)} 个工作流存在验证错误" - } - else: - return { - "valid": True, - "message": f"所有 {len(workflows)} 个工作流验证通过" - } - - except Exception as e: - return { - "valid": False, - "errors": [{"general_error": str(e)}], - "message": f"验证过程中发生异常: {str(e)}" - } - - def get_workflow_parameter_template(self) -> Dict[str, Any]: - """获取工作流参数模板""" - return { - "template": { - "name": "拼接后的长工作流的名称", - "workflows": [ - { - "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6", - "stepParameters": { - "步骤ID (UUID)": { - "模块名称": [ - { - "key": "参数键名", - "value": "参数值或变量引用 {{index-m-n}}" - } - ] - } - } - } - ] - }, - "parameter_descriptions": { - "name": "拼接后的长工作流名称", - "workflows": "待合并的子工作流列表", - "id": "子工作流 ID,对应工作流列表中 workflows 数组中每个对象的 id 字段", - "stepParameters": "步骤参数配置,如果子工作流没有参数则不需要填写" - } - } - - # ==================== 任务订单相关接口 ==================== - - def create_order(self, json_str: str) -> dict: - """ - 描述:新建并开始任务,返回需要的物料和入库的库位 - json_str 格式为JSON字符串,包含任务参数 - """ - try: - params = json.loads(json_str) - self._logger.info(f"创建任务参数: {params}") - self._logger.info(f"参数类型: {type(params)}") - - response = self.post( - url=f'{self.host}/api/lims/order/order', - params={ - "apiKey": self.api_key, - "requestTime": self.get_current_time_iso8601(), - "data": params - }) - - if not response: - raise BioyondException("API调用失败:未收到响应") - - if response['code'] != 1: - error_msg = f"创建任务失败: {response.get('message', '未知错误')}" - self._logger.error(error_msg) - raise BioyondException(error_msg) - - self._logger.info(f"创建任务成功,返回数据: {response['data']}") - result = str(response.get("data", {})) - return result - - except BioyondException: - # 重新抛出BioyondException - raise - except json.JSONDecodeError as e: - error_msg = f"JSON解析失败: {str(e)}" - self._logger.error(error_msg) - raise BioyondException(error_msg) from e - except Exception as e: - # 捕获其他未预期的异常,转换为BioyondException - error_msg = f"创建任务时发生未预期的错误: {str(e)}" - self._logger.error(error_msg) - raise BioyondException(error_msg) from e - - def order_query(self, json_str: str) -> dict: - """ - 描述:查询任务列表 - json_str 格式为JSON字符串 - """ - try: - params = json.loads(json_str) - except json.JSONDecodeError: - return {} - - response = self.post( - url=f'{self.host}/api/lims/order/order-list', - params={ - "apiKey": self.api_key, - "requestTime": self.get_current_time_iso8601(), - "data": params - }) - - if not response or response['code'] != 1: - return {} - return response.get("data", {}) - - def order_report(self, order_id: str) -> dict: - """查询订单报告 - - 参数: - order_id: 订单ID - - 返回值: - dict: 报告数据,失败返回空字典 - """ - response = self.post( - url=f'{self.host}/api/lims/order/order-report', - params={ - "apiKey": self.api_key, - "requestTime": self.get_current_time_iso8601(), - "data": order_id, - }) - if not response or response['code'] != 1: - return {} - return response.get("data", {}) - - def order_takeout(self, json_str: str) -> int: - """取出任务产物 - - 参数: - json_str: JSON字符串,包含 order_id 与 preintake_id - - 返回值: - int: 成功返回1,失败返回0 - """ - try: - data = json.loads(json_str) - params = { - "orderId": data.get("order_id", ""), - "preintakeId": data.get("preintake_id", "") - } - except json.JSONDecodeError: - return 0 - - response = self.post( - url=f'{self.host}/api/lims/order/order-takeout', - params={ - "apiKey": self.api_key, - "requestTime": self.get_current_time_iso8601(), - "data": params, - }) - - if not response or response['code'] != 1: - return 0 - return response.get("code", 0) - - - def sample_waste_removal(self, order_id: str) -> dict: - """样品/废料取出 - - 参数: - order_id: 订单ID - - 返回值: - dict: 取出结果,失败返回空字典 - """ - params = {"orderId": order_id} - - response = self.post( - url=f'{self.host}/api/lims/order/take-out', - params={ - "apiKey": self.api_key, - "requestTime": self.get_current_time_iso8601(), - "data": params - }) - - if not response: - return {} - - if response['code'] != 1: - self._logger.error(f"样品废料取出错误: {response.get('message', '')}") - return {} - - return response.get("data", {}) - - def cancel_order(self, json_str: str) -> bool: - """取消指定任务 - - 参数: - json_str: JSON字符串,包含 order_id - - 返回值: - bool: 成功返回 True,失败返回 False - """ - try: - data = json.loads(json_str) - order_id = data.get("order_id", "") - except json.JSONDecodeError: - return False - - response = self.post( - url=f'{self.host}/api/lims/order/cancel-order', - params={ - "apiKey": self.api_key, - "requestTime": self.get_current_time_iso8601(), - "data": order_id, - }) - - if not response or response['code'] != 1: - return False - return True - - def cancel_experiment(self, order_id: str) -> int: - """取消指定实验 - - 参数: - order_id: 订单ID - - 返回值: - int: 成功返回1,失败返回0 - """ - response = self.post( - url=f'{self.host}/api/lims/order/cancel-experiment', - params={ - "apiKey": self.api_key, - "requestTime": self.get_current_time_iso8601(), - "data": order_id, - }) - if not response or response['code'] != 1: - return 0 - return response.get("code", 0) - - def batch_cancel_experiment(self, order_ids: List[str]) -> int: - """批量取消实验 - - 参数: - order_ids: 订单ID列表 - - 返回值: - int: 成功返回1,失败返回0 - """ - response = self.post( - url=f'{self.host}/api/lims/order/batch-cancel-experiment', - params={ - "apiKey": self.api_key, - "requestTime": self.get_current_time_iso8601(), - "data": order_ids, - }) - if not response or response['code'] != 1: - return 0 - return response.get("code", 0) - - def gantts_by_order_id(self, order_id: str) -> dict: - """查询订单甘特图数据 - - 参数: - order_id: 订单ID - - 返回值: - dict: 甘特数据,失败返回空字典 - """ - response = self.post( - url=f'{self.host}/api/lims/order/gantts-by-order-id', - params={ - "apiKey": self.api_key, - "requestTime": self.get_current_time_iso8601(), - "data": order_id, - }) - if not response or response['code'] != 1: - return {} - return response.get("data", {}) - - def simulation_gantt_by_order_id(self, order_id: str) -> dict: - """查询订单模拟甘特图数据 - - 参数: - order_id: 订单ID - - 返回值: - dict: 模拟甘特数据,失败返回空字典 - """ - response = self.post( - url=f'{self.host}/api/lims/order/simulation-gantt-by-order-id', - params={ - "apiKey": self.api_key, - "requestTime": self.get_current_time_iso8601(), - "data": order_id, - }) - if not response or response['code'] != 1: - return {} - return response.get("data", {}) - - def reset_order_status(self, order_id: str) -> int: - """复位订单状态 - - 参数: - order_id: 订单ID - - 返回值: - int: 成功返回1,失败返回0 - """ - response = self.post( - url=f'{self.host}/api/lims/order/reset-order-status', - params={ - "apiKey": self.api_key, - "requestTime": self.get_current_time_iso8601(), - "data": order_id, - }) - if not response or response['code'] != 1: - return 0 - return response.get("code", 0) - - def gantt_with_simulation_by_order_id(self, order_id: str) -> dict: - """查询订单甘特与模拟联合数据 - - 参数: - order_id: 订单ID - - 返回值: - dict: 联合数据,失败返回空字典 - """ - response = self.post( - url=f'{self.host}/api/lims/order/gantt-with-simulation-by-order-id', - params={ - "apiKey": self.api_key, - "requestTime": self.get_current_time_iso8601(), - "data": order_id, - }) - if not response or response['code'] != 1: - return {} - return response.get("data", {}) - - # ==================== 设备管理相关接口 ==================== - - def device_list(self, json_str: str = "") -> list: - """ - 描述:获取所有设备列表 - json_str 格式为JSON字符串,可选 - """ - device_no = None - if json_str: - try: - data = json.loads(json_str) - device_no = data.get("device_no", None) - except json.JSONDecodeError: - pass - - url = f'{self.host}/api/lims/device/device-list' - if device_no: - url += f'/{device_no}' - - response = self.post( - url=url, - params={ - "apiKey": self.api_key, - "requestTime": self.get_current_time_iso8601(), - }) - - if not response or response['code'] != 1: - return [] - return response.get("data", []) - - def device_operation(self, json_str: str) -> int: - """设备操作 - - 参数: - json_str: JSON字符串,包含 device_no/operationType/operationParams - - 返回值: - int: 成功返回1,失败返回0 - """ - try: - data = json.loads(json_str) - params = { - "deviceNo": data.get("device_no", ""), - "operationType": data.get("operation_type", 0), - "operationParams": data.get("operation_params", {}) - } - except json.JSONDecodeError: - return 0 - - response = self.post( - url=f'{self.host}/api/lims/device/execute-operation', - params={ - "apiKey": self.api_key, - "requestTime": self.get_current_time_iso8601(), - "data": params, - }) - - if not response or response['code'] != 1: - return 0 - return response.get("code", 0) - - def reset_devices(self) -> int: - """复位设备集合 - - 返回值: - int: 成功返回1,失败返回0 - """ - response = self.post( - url=f'{self.host}/api/lims/device/reset-devices', - params={ - "apiKey": self.api_key, - "requestTime": self.get_current_time_iso8601(), - }) - if not response or response['code'] != 1: - return 0 - return response.get("code", 0) - - # ==================== 调度器相关接口 ==================== - - def scheduler_status(self) -> dict: - """查询调度器状态 - - 返回值: - dict: 包含 schedulerStatus/hasTask/creationTime 等 - """ - response = self.post( - url=f'{self.host}/api/lims/scheduler/scheduler-status', - params={ - "apiKey": self.api_key, - "requestTime": self.get_current_time_iso8601(), - }) - - if not response or response['code'] != 1: - return {} - return response.get("data", {}) - - def scheduler_start(self) -> int: - """启动调度器""" - response = self.post( - url=f'{self.host}/api/lims/scheduler/start', - params={ - "apiKey": self.api_key, - "requestTime": self.get_current_time_iso8601(), - }) - - if not response or response['code'] != 1: - return 0 - return response.get("code", 0) - - def scheduler_pause(self) -> int: - """暂停调度器""" - response = self.post( - url=f'{self.host}/api/lims/scheduler/pause', - params={ - "apiKey": self.api_key, - "requestTime": self.get_current_time_iso8601(), - }) - - if not response or response['code'] != 1: - return 0 - return response.get("code", 0) - - def scheduler_smart_pause(self) -> int: - """智能暂停调度器""" - response = self.post( - url=f'{self.host}/api/lims/scheduler/smart-pause', - params={ - "apiKey": self.api_key, - "requestTime": self.get_current_time_iso8601(), - }) - - if not response or response['code'] != 1: - return 0 - return response.get("code", 0) - - def scheduler_continue(self) -> int: - """继续调度器""" - response = self.post( - url=f'{self.host}/api/lims/scheduler/continue', - params={ - "apiKey": self.api_key, - "requestTime": self.get_current_time_iso8601(), - }) - - if not response or response['code'] != 1: - return 0 - return response.get("code", 0) - - def scheduler_stop(self) -> int: - """停止调度器""" - response = self.post( - url=f'{self.host}/api/lims/scheduler/stop', - params={ - "apiKey": self.api_key, - "requestTime": self.get_current_time_iso8601(), - }) - - if not response or response['code'] != 1: - return 0 - return response.get("code", 0) - - def scheduler_reset(self) -> int: - """复位调度器""" - response = self.post( - url=f'{self.host}/api/lims/scheduler/reset', - params={ - "apiKey": self.api_key, - "requestTime": self.get_current_time_iso8601(), - }) - - if not response or response['code'] != 1: - return 0 - return response.get("code", 0) - - def scheduler_reply_error_handling(self, data: Dict[str, Any]) -> int: - """调度错误处理回复 - - 参数: - data: 错误处理参数 - - 返回值: - int: 成功返回1,失败返回0 - """ - response = self.post( - url=f'{self.host}/api/lims/scheduler/reply-error-handling', - params={ - "apiKey": self.api_key, - "requestTime": self.get_current_time_iso8601(), - "data": data, - }) - if not response or response['code'] != 1: - return 0 - return response.get("code", 0) - - # ==================== 辅助方法 ==================== - - def _load_material_cache(self): - """预加载材料列表到缓存中""" - try: - print("正在加载材料列表缓存...") - - # 加载所有类型的材料:耗材(0)、样品(1)、试剂(2) - material_types = [0, 1, 2] - - for type_mode in material_types: - print(f"正在加载类型 {type_mode} 的材料...") - stock_query = f'{{"typeMode": {type_mode}, "includeDetail": true}}' - stock_result = self.stock_material(stock_query) - - if isinstance(stock_result, str): - stock_data = json.loads(stock_result) - else: - stock_data = stock_result - - materials = stock_data - for material in materials: - material_name = material.get("name") - material_id = material.get("id") - if material_name and material_id: - self.material_cache[material_name] = material_id - - # 处理样品板等容器中的detail材料 - detail_materials = material.get("detail", []) - for detail_material in detail_materials: - detail_name = detail_material.get("name") - detail_id = detail_material.get("detailMaterialId") - if detail_name and detail_id: - self.material_cache[detail_name] = detail_id - print(f"加载detail材料: {detail_name} -> ID: {detail_id}") - - print(f"材料列表缓存加载完成,共加载 {len(self.material_cache)} 个材料") - - except Exception as e: - print(f"加载材料列表缓存时出错: {e}") - self.material_cache = {} - - def _get_material_id_by_name(self, material_name_or_id: str) -> str: - """根据材料名称获取材料ID""" - if len(material_name_or_id) > 20 and '-' in material_name_or_id: - return material_name_or_id - - if material_name_or_id in self.material_cache: - material_id = self.material_cache[material_name_or_id] - print(f"从缓存找到材料: {material_name_or_id} -> ID: {material_id}") - return material_id - - print(f"警告: 未在缓存中找到材料名称 '{material_name_or_id}',将使用原值") - return material_name_or_id - - def refresh_material_cache(self): - """刷新材料列表缓存""" - print("正在刷新材料列表缓存...") - self._load_material_cache() - - def get_available_materials(self): - """获取所有可用的材料名称列表""" - return list(self.material_cache.keys()) - - def get_scheduler_state(self) -> Optional[MachineState]: - """将调度状态字符串映射为枚举值 - - 返回值: - Optional[MachineState]: 映射后的枚举,失败返回 None - """ - data = self.scheduler_status() - if not isinstance(data, dict): - return None - status = data.get("schedulerStatus") - mapping = { - "Init": MachineState.INITIAL, - "Stop": MachineState.STOPPED, - "Running": MachineState.RUNNING, - "Pause": MachineState.PAUSED, - "ErrorPause": MachineState.ERROR_PAUSED, - "ErrorStop": MachineState.ERROR_STOPPED, - } - return mapping.get(status) diff --git a/unilabos/devices/workstation/bioyond_studio/config.py b/unilabos/devices/workstation/bioyond_studio/config.py deleted file mode 100644 index e06c4135..00000000 --- a/unilabos/devices/workstation/bioyond_studio/config.py +++ /dev/null @@ -1,142 +0,0 @@ -# config.py -""" -配置文件 - 包含所有配置信息和映射关系 -""" - -# API配置 -API_CONFIG = { - "api_key": "", - "api_host": "" -} - -# 工作流映射配置 -WORKFLOW_MAPPINGS = { - "reactor_taken_out": "", - "reactor_taken_in": "", - "Solid_feeding_vials": "", - "Liquid_feeding_vials(non-titration)": "", - "Liquid_feeding_solvents": "", - "Liquid_feeding(titration)": "", - "liquid_feeding_beaker": "", - "Drip_back": "", -} - -# 工作流名称到DisplaySectionName的映射 -WORKFLOW_TO_SECTION_MAP = { - 'reactor_taken_in': '反应器放入', - 'liquid_feeding_beaker': '液体投料-烧杯', - 'Liquid_feeding_vials(non-titration)': '液体投料-小瓶(非滴定)', - 'Liquid_feeding_solvents': '液体投料-溶剂', - 'Solid_feeding_vials': '固体投料-小瓶', - 'Liquid_feeding(titration)': '液体投料-滴定', - 'reactor_taken_out': '反应器取出' -} - -# 库位映射配置 -WAREHOUSE_MAPPING = { - "粉末堆栈": { - "uuid": "", - "site_uuids": { - # 样品板 - "A1": "3a14198e-6929-31f0-8a22-0f98f72260df", - "A2": "3a14198e-6929-4379-affa-9a2935c17f99", - "A3": "3a14198e-6929-56da-9a1c-7f5fbd4ae8af", - "A4": "3a14198e-6929-5e99-2b79-80720f7cfb54", - "B1": "3a14198e-6929-f525-9a1b-1857552b28ee", - "B2": "3a14198e-6929-bf98-0fd5-26e1d68bf62d", - "B3": "3a14198e-6929-2d86-a468-602175a2b5aa", - "B4": "3a14198e-6929-1a98-ae57-e97660c489ad", - # 分装板 - "C1": "3a14198e-6929-46fe-841e-03dd753f1e4a", - "C2": "3a14198e-6929-1bc9-a9bd-3b7ca66e7f95", - "C3": "3a14198e-6929-72ac-32ce-9b50245682b8", - "C4": "3a14198e-6929-3bd8-e6c7-4a9fd93be118", - "D1": "3a14198e-6929-8a0b-b686-6f4a2955c4e2", - "D2": "3a14198e-6929-dde1-fc78-34a84b71afdf", - "D3": "3a14198e-6929-a0ec-5f15-c0f9f339f963", - "D4": "3a14198e-6929-7ac8-915a-fea51cb2e884" - } - }, - "溶液堆栈": { - "uuid": "", - "site_uuids": { - "A1": "3a14198e-d724-e036-afdc-2ae39a7f3383", - "A2": "3a14198e-d724-afa4-fc82-0ac8a9016791", - "A3": "3a14198e-d724-ca48-bb9e-7e85751e55b6", - "A4": "3a14198e-d724-df6d-5e32-5483b3cab583", - "B1": "3a14198e-d724-d818-6d4f-5725191a24b5", - "B2": "3a14198e-d724-be8a-5e0b-012675e195c6", - "B3": "3a14198e-d724-cc1e-5c2c-228a130f40a8", - "B4": "3a14198e-d724-1e28-c885-574c3df468d0", - "C1": "3a14198e-d724-b5bb-adf3-4c5a0da6fb31", - "C2": "3a14198e-d724-ab4e-48cb-817c3c146707", - "C3": "3a14198e-d724-7f18-1853-39d0c62e1d33", - "C4": "3a14198e-d724-28a2-a760-baa896f46b66", - "D1": "3a14198e-d724-d378-d266-2508a224a19f", - "D2": "3a14198e-d724-f56e-468b-0110a8feb36a", - "D3": "3a14198e-d724-0cf1-dea9-a1f40fe7e13c", - "D4": "3a14198e-d724-0ddd-9654-f9352a421de9" - } - }, - "试剂堆栈": { - "uuid": "", - "site_uuids": { - "A1": "3a14198c-c2cf-8b40-af28-b467808f1c36", - "A2": "3a14198c-c2d0-f3e7-871a-e470d144296f", - "A3": "3a14198c-c2d0-dc7d-b8d0-e1d88cee3094", - "A4": "3a14198c-c2d0-2070-efc8-44e245f10c6f", - "B1": "3a14198c-c2d0-354f-39ad-642e1a72fcb8", - "B2": "3a14198c-c2d0-1559-105d-0ea30682cab4", - "B3": "3a14198c-c2d0-725e-523d-34c037ac2440", - "B4": "3a14198c-c2d0-efce-0939-69ca5a7dfd39" - } - } -} - -# 物料类型配置 -MATERIAL_TYPE_MAPPINGS = { - "烧杯": ("BIOYOND_PolymerStation_1FlaskCarrier", "3a14196b-24f2-ca49-9081-0cab8021bf1a"), - "试剂瓶": ("BIOYOND_PolymerStation_1BottleCarrier", ""), - "样品板": ("BIOYOND_PolymerStation_6StockCarrier", "3a14196e-b7a0-a5da-1931-35f3000281e9"), - "分装板": ("BIOYOND_PolymerStation_6VialCarrier", "3a14196e-5dfe-6e21-0c79-fe2036d052c4"), - "样品瓶": ("BIOYOND_PolymerStation_Solid_Stock", "3a14196a-cf7d-8aea-48d8-b9662c7dba94"), - "90%分装小瓶": ("BIOYOND_PolymerStation_Solid_Vial", "3a14196c-cdcf-088d-dc7d-5cf38f0ad9ea"), - "10%分装小瓶": ("BIOYOND_PolymerStation_Liquid_Vial", "3a14196c-76be-2279-4e22-7310d69aed68"), -} - -# 步骤参数配置(各工作流的步骤UUID) -WORKFLOW_STEP_IDS = { - "reactor_taken_in": { - "config": "" - }, - "liquid_feeding_beaker": { - "liquid": "", - "observe": "" - }, - "liquid_feeding_vials_non_titration": { - "liquid": "", - "observe": "" - }, - "liquid_feeding_solvents": { - "liquid": "", - "observe": "" - }, - "solid_feeding_vials": { - "feeding": "", - "observe": "" - }, - "liquid_feeding_titration": { - "liquid": "", - "observe": "" - }, - "drip_back": { - "liquid": "", - "observe": "" - } -} - -LOCATION_MAPPING = {} - -ACTION_NAMES = {} - -HTTP_SERVICE_CONFIG = {} \ No newline at end of file diff --git a/unilabos/devices/workstation/bioyond_studio/dispensing_station.py b/unilabos/devices/workstation/bioyond_studio/dispensing_station.py deleted file mode 100644 index 6d512720..00000000 --- a/unilabos/devices/workstation/bioyond_studio/dispensing_station.py +++ /dev/null @@ -1,1918 +0,0 @@ -from datetime import datetime -import json -import time -from typing import Optional, Dict, Any, List -from typing_extensions import TypedDict -import requests -from unilabos.devices.workstation.bioyond_studio.config import API_CONFIG - -from unilabos.devices.workstation.bioyond_studio.bioyond_rpc import BioyondException -from unilabos.devices.workstation.bioyond_studio.station import BioyondWorkstation -from unilabos.ros.nodes.base_device_node import ROS2DeviceNode, BaseROS2DeviceNode -import json -import sys -from pathlib import Path -import importlib - -class ComputeExperimentDesignReturn(TypedDict): - solutions: list - titration: dict - solvents: dict - feeding_order: list - return_info: str - - -class BioyondDispensingStation(BioyondWorkstation): - def __init__( - self, - config, - # 桌子 - deck, - *args, - **kwargs, - ): - super().__init__(config, deck, *args, **kwargs) - # self.config = config - # self.api_key = config["api_key"] - # self.host = config["api_host"] - # - # # 使用简单的Logger替代原来的logger - # self._logger = SimpleLogger() - # self.is_running = False - - # 用于跟踪任务完成状态的字典: {orderCode: {status, order_id, timestamp}} - self.order_completion_status = {} - - def _post_project_api(self, endpoint: str, data: Any) -> Dict[str, Any]: - """项目接口通用POST调用 - - 参数: - endpoint: 接口路径(例如 /api/lims/order/brief-step-paramerers) - data: 请求体中的 data 字段内容 - - 返回: - dict: 服务端响应,失败时返回 {code:0,message,...} - """ - request_data = { - "apiKey": API_CONFIG["api_key"], - "requestTime": self.hardware_interface.get_current_time_iso8601(), - "data": data - } - try: - response = requests.post( - f"{self.hardware_interface.host}{endpoint}", - json=request_data, - headers={"Content-Type": "application/json"}, - timeout=30 - ) - result = response.json() - return result if isinstance(result, dict) else {"code": 0, "message": "非JSON响应"} - except json.JSONDecodeError: - return {"code": 0, "message": "非JSON响应"} - except requests.exceptions.Timeout: - return {"code": 0, "message": "请求超时"} - except requests.exceptions.RequestException as e: - return {"code": 0, "message": str(e)} - - def _delete_project_api(self, endpoint: str, data: Any) -> Dict[str, Any]: - """项目接口通用DELETE调用 - - 参数: - endpoint: 接口路径(例如 /api/lims/order/workflows) - data: 请求体中的 data 字段内容 - - 返回: - dict: 服务端响应,失败时返回 {code:0,message,...} - """ - request_data = { - "apiKey": API_CONFIG["api_key"], - "requestTime": self.hardware_interface.get_current_time_iso8601(), - "data": data - } - try: - response = requests.delete( - f"{self.hardware_interface.host}{endpoint}", - json=request_data, - headers={"Content-Type": "application/json"}, - timeout=30 - ) - result = response.json() - return result if isinstance(result, dict) else {"code": 0, "message": "非JSON响应"} - except json.JSONDecodeError: - return {"code": 0, "message": "非JSON响应"} - except requests.exceptions.Timeout: - return {"code": 0, "message": "请求超时"} - except requests.exceptions.RequestException as e: - return {"code": 0, "message": str(e)} - - def compute_experiment_design( - self, - ratio: dict, - wt_percent: str = "0.25", - m_tot: str = "70", - titration_percent: str = "0.03", - ) -> ComputeExperimentDesignReturn: - try: - if isinstance(ratio, str): - try: - ratio = json.loads(ratio) - except Exception: - ratio = {} - root = str(Path(__file__).resolve().parents[3]) - if root not in sys.path: - sys.path.append(root) - try: - mod = importlib.import_module("tem.compute") - except Exception as e: - raise BioyondException(f"无法导入计算模块: {e}") - try: - wp = float(wt_percent) if isinstance(wt_percent, str) else wt_percent - mt = float(m_tot) if isinstance(m_tot, str) else m_tot - tp = float(titration_percent) if isinstance(titration_percent, str) else titration_percent - except Exception as e: - raise BioyondException(f"参数解析失败: {e}") - res = mod.generate_experiment_design(ratio=ratio, wt_percent=wp, m_tot=mt, titration_percent=tp) - out = { - "solutions": res.get("solutions", []), - "titration": res.get("titration", {}), - "solvents": res.get("solvents", {}), - "feeding_order": res.get("feeding_order", []), - "return_info": json.dumps(res, ensure_ascii=False) - } - return out - except BioyondException: - raise - except Exception as e: - raise BioyondException(str(e)) - - # 90%10%小瓶投料任务创建方法 - def create_90_10_vial_feeding_task(self, - order_name: str = None, - speed: str = None, - temperature: str = None, - delay_time: str = None, - percent_90_1_assign_material_name: str = None, - percent_90_1_target_weigh: str = None, - percent_90_2_assign_material_name: str = None, - percent_90_2_target_weigh: str = None, - percent_90_3_assign_material_name: str = None, - percent_90_3_target_weigh: str = None, - percent_10_1_assign_material_name: str = None, - percent_10_1_target_weigh: str = None, - percent_10_1_volume: str = None, - percent_10_1_liquid_material_name: str = None, - percent_10_2_assign_material_name: str = None, - percent_10_2_target_weigh: str = None, - percent_10_2_volume: str = None, - percent_10_2_liquid_material_name: str = None, - percent_10_3_assign_material_name: str = None, - percent_10_3_target_weigh: str = None, - percent_10_3_volume: str = None, - percent_10_3_liquid_material_name: str = None, - hold_m_name: str = None) -> dict: - """ - 创建90%10%小瓶投料任务 - - 参数说明: - - order_name: 任务名称,如果为None则使用默认名称 - - speed: 搅拌速度,如果为None则使用默认值400 - - temperature: 温度,如果为None则使用默认值40 - - delay_time: 延迟时间,如果为None则使用默认值600 - - percent_90_1_assign_material_name: 90%_1物料名称 - - percent_90_1_target_weigh: 90%_1目标重量 - - percent_90_2_assign_material_name: 90%_2物料名称 - - percent_90_2_target_weigh: 90%_2目标重量 - - percent_90_3_assign_material_name: 90%_3物料名称 - - percent_90_3_target_weigh: 90%_3目标重量 - - percent_10_1_assign_material_name: 10%_1固体物料名称 - - percent_10_1_target_weigh: 10%_1固体目标重量 - - percent_10_1_volume: 10%_1液体体积 - - percent_10_1_liquid_material_name: 10%_1液体物料名称 - - percent_10_2_assign_material_name: 10%_2固体物料名称 - - percent_10_2_target_weigh: 10%_2固体目标重量 - - percent_10_2_volume: 10%_2液体体积 - - percent_10_2_liquid_material_name: 10%_2液体物料名称 - - percent_10_3_assign_material_name: 10%_3固体物料名称 - - percent_10_3_target_weigh: 10%_3固体目标重量 - - percent_10_3_volume: 10%_3液体体积 - - percent_10_3_liquid_material_name: 10%_3液体物料名称 - - hold_m_name: 库位名称,如"C01",用于查找对应的holdMId - - 返回: 任务创建结果 - - 异常: - - BioyondException: 各种错误情况下的统一异常 - """ - try: - # 1. 参数验证 - if not hold_m_name: - raise BioyondException("hold_m_name 是必填参数") - - # 检查90%物料参数的完整性 - # 90%_1物料:如果有物料名称或目标重量,就必须有全部参数 - if percent_90_1_assign_material_name or percent_90_1_target_weigh: - if not percent_90_1_assign_material_name: - raise BioyondException("90%_1物料:如果提供了目标重量,必须同时提供物料名称") - if not percent_90_1_target_weigh: - raise BioyondException("90%_1物料:如果提供了物料名称,必须同时提供目标重量") - - # 90%_2物料:如果有物料名称或目标重量,就必须有全部参数 - if percent_90_2_assign_material_name or percent_90_2_target_weigh: - if not percent_90_2_assign_material_name: - raise BioyondException("90%_2物料:如果提供了目标重量,必须同时提供物料名称") - if not percent_90_2_target_weigh: - raise BioyondException("90%_2物料:如果提供了物料名称,必须同时提供目标重量") - - # 90%_3物料:如果有物料名称或目标重量,就必须有全部参数 - if percent_90_3_assign_material_name or percent_90_3_target_weigh: - if not percent_90_3_assign_material_name: - raise BioyondException("90%_3物料:如果提供了目标重量,必须同时提供物料名称") - if not percent_90_3_target_weigh: - raise BioyondException("90%_3物料:如果提供了物料名称,必须同时提供目标重量") - - # 检查10%物料参数的完整性 - # 10%_1物料:如果有物料名称、目标重量、体积或液体物料名称中的任何一个,就必须有全部参数 - if any([percent_10_1_assign_material_name, percent_10_1_target_weigh, percent_10_1_volume, percent_10_1_liquid_material_name]): - if not percent_10_1_assign_material_name: - raise BioyondException("10%_1物料:如果提供了其他参数,必须同时提供固体物料名称") - if not percent_10_1_target_weigh: - raise BioyondException("10%_1物料:如果提供了其他参数,必须同时提供固体目标重量") - if not percent_10_1_volume: - raise BioyondException("10%_1物料:如果提供了其他参数,必须同时提供液体体积") - if not percent_10_1_liquid_material_name: - raise BioyondException("10%_1物料:如果提供了其他参数,必须同时提供液体物料名称") - - # 10%_2物料:如果有物料名称、目标重量、体积或液体物料名称中的任何一个,就必须有全部参数 - if any([percent_10_2_assign_material_name, percent_10_2_target_weigh, percent_10_2_volume, percent_10_2_liquid_material_name]): - if not percent_10_2_assign_material_name: - raise BioyondException("10%_2物料:如果提供了其他参数,必须同时提供固体物料名称") - if not percent_10_2_target_weigh: - raise BioyondException("10%_2物料:如果提供了其他参数,必须同时提供固体目标重量") - if not percent_10_2_volume: - raise BioyondException("10%_2物料:如果提供了其他参数,必须同时提供液体体积") - if not percent_10_2_liquid_material_name: - raise BioyondException("10%_2物料:如果提供了其他参数,必须同时提供液体物料名称") - - # 10%_3物料:如果有物料名称、目标重量、体积或液体物料名称中的任何一个,就必须有全部参数 - if any([percent_10_3_assign_material_name, percent_10_3_target_weigh, percent_10_3_volume, percent_10_3_liquid_material_name]): - if not percent_10_3_assign_material_name: - raise BioyondException("10%_3物料:如果提供了其他参数,必须同时提供固体物料名称") - if not percent_10_3_target_weigh: - raise BioyondException("10%_3物料:如果提供了其他参数,必须同时提供固体目标重量") - if not percent_10_3_volume: - raise BioyondException("10%_3物料:如果提供了其他参数,必须同时提供液体体积") - if not percent_10_3_liquid_material_name: - raise BioyondException("10%_3物料:如果提供了其他参数,必须同时提供液体物料名称") - - # 2. 生成任务编码和设置默认值 - order_code = "task_vial_" + str(int(datetime.now().timestamp())) - if order_name is None: - order_name = "90%10%小瓶投料任务" - if speed is None: - speed = "400" - if temperature is None: - temperature = "40" - if delay_time is None: - delay_time = "600" - - # 3. 工作流ID - workflow_id = "3a19310d-16b9-9d81-b109-0748e953694b" - - # 4. 查询工作流对应的holdMID - material_info = self.hardware_interface.material_id_query(workflow_id) - if not material_info: - raise BioyondException(f"无法查询工作流 {workflow_id} 的物料信息") - - # 获取locations列表 - locations = material_info.get("locations", []) if isinstance(material_info, dict) else [] - if not locations: - raise BioyondException(f"工作流 {workflow_id} 没有找到库位信息") - - # 查找指定名称的库位 - hold_mid = None - for location in locations: - if location.get("holdMName") == hold_m_name: - hold_mid = location.get("holdMId") - break - - if not hold_mid: - raise BioyondException(f"未找到库位名称为 {hold_m_name} 的库位,请检查名称是否正确") - - extend_properties = f"{{\"{ hold_mid }\": {{}}}}" - self.hardware_interface._logger.info(f"找到库位 {hold_m_name} 对应的holdMId: {hold_mid}") - - # 5. 构建任务参数 - order_data = { - "orderCode": order_code, - "orderName": order_name, - "workflowId": workflow_id, - "borderNumber": 1, - "paramValues": {}, - "ExtendProperties": extend_properties - } - - # 添加搅拌参数 - order_data["paramValues"]["e8264e47-c319-d9d9-8676-4dd5cb382b11"] = [ - {"m": 0, "n": 3, "Key": "speed", "Value": speed}, - {"m": 0, "n": 3, "Key": "temperature", "Value": temperature} - ] - - # 添加延迟时间参数 - order_data["paramValues"]["dc5dba79-5e4b-8eae-cbc5-e93482e43b1f"] = [ - {"m": 0, "n": 4, "Key": "DelayTime", "Value": delay_time} - ] - - # 添加90%_1参数 - if percent_90_1_assign_material_name is not None and percent_90_1_target_weigh is not None: - order_data["paramValues"]["e7d3c0a3-25c2-c42d-c84b-860c4a5ef844"] = [ - {"m": 15, "n": 1, "Key": "targetWeigh", "Value": percent_90_1_target_weigh}, - {"m": 15, "n": 1, "Key": "assignMaterialName", "Value": percent_90_1_assign_material_name} - ] - - # 添加90%_2参数 - if percent_90_2_assign_material_name is not None and percent_90_2_target_weigh is not None: - order_data["paramValues"]["50b912c4-6c81-0734-1c8b-532428b2a4a5"] = [ - {"m": 18, "n": 1, "Key": "targetWeigh", "Value": percent_90_2_target_weigh}, - {"m": 18, "n": 1, "Key": "assignMaterialName", "Value": percent_90_2_assign_material_name} - ] - - # 添加90%_3参数 - if percent_90_3_assign_material_name is not None and percent_90_3_target_weigh is not None: - order_data["paramValues"]["9c3674b3-c7cb-946e-fa03-fa2861d8aec4"] = [ - {"m": 21, "n": 1, "Key": "targetWeigh", "Value": percent_90_3_target_weigh}, - {"m": 21, "n": 1, "Key": "assignMaterialName", "Value": percent_90_3_assign_material_name} - ] - - # 添加10%_1固体参数 - if percent_10_1_assign_material_name is not None and percent_10_1_target_weigh is not None: - order_data["paramValues"]["73a0bfd8-1967-45e9-4bab-c07ccd1a2727"] = [ - {"m": 3, "n": 1, "Key": "targetWeigh", "Value": percent_10_1_target_weigh}, - {"m": 3, "n": 1, "Key": "assignMaterialName", "Value": percent_10_1_assign_material_name} - ] - - # 添加10%_1液体参数 - if percent_10_1_liquid_material_name is not None and percent_10_1_volume is not None: - order_data["paramValues"]["39634d40-c623-473a-8e5f-bc301aca2522"] = [ - {"m": 3, "n": 3, "Key": "volume", "Value": percent_10_1_volume}, - {"m": 3, "n": 3, "Key": "assignMaterialName", "Value": percent_10_1_liquid_material_name} - ] - - # 添加10%_2固体参数 - if percent_10_2_assign_material_name is not None and percent_10_2_target_weigh is not None: - order_data["paramValues"]["2d9c16fa-2a19-cd47-a67b-3cadff9e3e3d"] = [ - {"m": 7, "n": 1, "Key": "targetWeigh", "Value": percent_10_2_target_weigh}, - {"m": 7, "n": 1, "Key": "assignMaterialName", "Value": percent_10_2_assign_material_name} - ] - - # 添加10%_2液体参数 - if percent_10_2_liquid_material_name is not None and percent_10_2_volume is not None: - order_data["paramValues"]["e60541bb-ed68-e839-7305-2b4abe38a13d"] = [ - {"m": 7, "n": 3, "Key": "volume", "Value": percent_10_2_volume}, - {"m": 7, "n": 3, "Key": "assignMaterialName", "Value": percent_10_2_liquid_material_name} - ] - - # 添加10%_3固体参数 - if percent_10_3_assign_material_name is not None and percent_10_3_target_weigh is not None: - order_data["paramValues"]["27494733-0f71-a916-7cd2-1929a0125f17"] = [ - {"m": 11, "n": 1, "Key": "targetWeigh", "Value": percent_10_3_target_weigh}, - {"m": 11, "n": 1, "Key": "assignMaterialName", "Value": percent_10_3_assign_material_name} - ] - - # 添加10%_3液体参数 - if percent_10_3_liquid_material_name is not None and percent_10_3_volume is not None: - order_data["paramValues"]["c8798c29-786f-6858-7d7f-5330b890f2a6"] = [ - {"m": 11, "n": 3, "Key": "volume", "Value": percent_10_3_volume}, - {"m": 11, "n": 3, "Key": "assignMaterialName", "Value": percent_10_3_liquid_material_name} - ] - - # 6. 转换为JSON字符串并创建任务 - json_str = json.dumps([order_data], ensure_ascii=False) - self.hardware_interface._logger.info(f"创建90%10%小瓶投料任务参数: {json_str}") - - # 7. 调用create_order方法创建任务 - result = self.hardware_interface.create_order(json_str) - self.hardware_interface._logger.info(f"创建90%10%小瓶投料任务结果: {result}") - - # 8. 解析结果获取order_id - order_id = None - if isinstance(result, str): - # result 格式: "{'3a1d895c-4d39-d504-1398-18f5a40bac1e': [{'id': '...', ...}]}" - # 第一个键就是order_id (UUID) - try: - # 尝试解析字符串为字典 - import ast - result_dict = ast.literal_eval(result) - # 获取第一个键作为order_id - if result_dict and isinstance(result_dict, dict): - first_key = list(result_dict.keys())[0] - order_id = first_key - self.hardware_interface._logger.info(f"✓ 成功提取order_id: {order_id}") - else: - self.hardware_interface._logger.warning(f"result_dict格式异常: {result_dict}") - except Exception as e: - self.hardware_interface._logger.error(f"✗ 无法从结果中提取order_id: {e}, result类型={type(result)}") - elif isinstance(result, dict): - # 如果已经是字典 - if result: - first_key = list(result.keys())[0] - order_id = first_key - self.hardware_interface._logger.info(f"✓ 成功提取order_id(dict): {order_id}") - - if not order_id: - self.hardware_interface._logger.warning( - f"⚠ 未能提取order_id,result={result[:100] if isinstance(result, str) else result}" - ) - - # 返回成功结果和构建的JSON数据 - return json.dumps({ - "suc": True, - "order_code": order_code, - "order_id": order_id, - "result": result, - "order_params": order_data - }) - - except BioyondException: - # 重新抛出BioyondException - raise - except Exception as e: - # 捕获其他未预期的异常,转换为BioyondException - error_msg = f"创建90%10%小瓶投料任务时发生未预期的错误: {str(e)}" - self.hardware_interface._logger.error(error_msg) - raise BioyondException(error_msg) - - # 二胺溶液配置任务创建方法 - def create_diamine_solution_task(self, - order_name: str = None, - material_name: str = None, - target_weigh: str = None, - volume: str = None, - liquid_material_name: str = "NMP", - speed: str = None, - temperature: str = None, - delay_time: str = None, - hold_m_name: str = None) -> dict: - """ - 创建二胺溶液配置任务 - - 参数说明: - - order_name: 任务名称,如果为None则使用默认名称 - - material_name: 固体物料名称,必填 - - target_weigh: 固体目标重量,必填 - - volume: 液体体积,必填 - - liquid_material_name: 液体物料名称,默认为NMP - - speed: 搅拌速度,如果为None则使用默认值400 - - temperature: 温度,如果为None则使用默认值20 - - delay_time: 延迟时间,如果为None则使用默认值600 - - hold_m_name: 库位名称,如"ODA-1",用于查找对应的holdMId - - 返回: 任务创建结果 - - 异常: - - BioyondException: 各种错误情况下的统一异常 - """ - try: - # 1. 参数验证 - if not material_name: - raise BioyondException("material_name 是必填参数") - if not target_weigh: - raise BioyondException("target_weigh 是必填参数") - if not volume: - raise BioyondException("volume 是必填参数") - if not hold_m_name: - raise BioyondException("hold_m_name 是必填参数") - - - # 2. 生成任务编码和设置默认值 - order_code = "task_oda_" + str(int(datetime.now().timestamp())) - if order_name is None: - order_name = f"二胺溶液配置-{material_name}" - if speed is None: - speed = "400" - if temperature is None: - temperature = "20" - if delay_time is None: - delay_time = "600" - - # 3. 工作流ID - 二胺溶液配置工作流 - workflow_id = "3a15d4a1-3bbe-76f9-a458-292896a338f5" - - # 4. 查询工作流对应的holdMID - material_info = self.hardware_interface.material_id_query(workflow_id) - if not material_info: - raise BioyondException(f"无法查询工作流 {workflow_id} 的物料信息") - - # 获取locations列表 - locations = material_info.get("locations", []) if isinstance(material_info, dict) else [] - if not locations: - raise BioyondException(f"工作流 {workflow_id} 没有找到库位信息") - - # 查找指定名称的库位 - hold_mid = None - for location in locations: - if location.get("holdMName") == hold_m_name: - hold_mid = location.get("holdMId") - break - - if not hold_mid: - raise BioyondException(f"未找到库位名称为 {hold_m_name} 的库位,请检查名称是否正确") - - extend_properties = f"{{\"{ hold_mid }\": {{}}}}" - self.hardware_interface._logger.info(f"找到库位 {hold_m_name} 对应的holdMId: {hold_mid}") - - # 5. 构建任务参数 - order_data = { - "orderCode": order_code, - "orderName": order_name, - "workflowId": workflow_id, - "borderNumber": 1, - "paramValues": { - # 固体物料参数 - "3a15d4a1-3bde-f5bc-053f-1ae0bf1f357e": [ - {"m": 3, "n": 2, "Key": "targetWeigh", "Value": target_weigh}, - {"m": 3, "n": 2, "Key": "assignMaterialName", "Value": material_name} - ], - # 液体物料参数 - "3a15d4a1-3bde-d584-b309-e661ae8f1c01": [ - {"m": 3, "n": 3, "Key": "volume", "Value": volume}, - {"m": 3, "n": 3, "Key": "assignMaterialName", "Value": liquid_material_name} - ], - # 搅拌参数 - "3a15d4a1-3bde-8ec4-1ced-92efc97ed73d": [ - {"m": 3, "n": 6, "Key": "speed", "Value": speed}, - {"m": 3, "n": 6, "Key": "temperature", "Value": temperature} - ], - # 延迟时间参数 - "3a15d4a1-3bde-3b92-83ff-8923a0addbbc": [ - {"m": 3, "n": 7, "Key": "DelayTime", "Value": delay_time} - ] - }, - "ExtendProperties": extend_properties - } - - # 6. 转换为JSON字符串并创建任务 - json_str = json.dumps([order_data], ensure_ascii=False) - self.hardware_interface._logger.info(f"创建二胺溶液配置任务参数: {json_str}") - - # 7. 调用create_order方法创建任务 - result = self.hardware_interface.create_order(json_str) - self.hardware_interface._logger.info(f"创建二胺溶液配置任务结果: {result}") - - # 8. 解析结果获取order_id - order_id = None - if isinstance(result, str): - try: - import ast - result_dict = ast.literal_eval(result) - if result_dict and isinstance(result_dict, dict): - first_key = list(result_dict.keys())[0] - order_id = first_key - self.hardware_interface._logger.info(f"✓ 成功提取order_id: {order_id}") - else: - self.hardware_interface._logger.warning(f"result_dict格式异常: {result_dict}") - except Exception as e: - self.hardware_interface._logger.error(f"✗ 无法从结果中提取order_id: {e}") - elif isinstance(result, dict): - if result: - first_key = list(result.keys())[0] - order_id = first_key - self.hardware_interface._logger.info(f"✓ 成功提取order_id(dict): {order_id}") - - if not order_id: - self.hardware_interface._logger.warning(f"⚠ 未能提取order_id") - - # 返回成功结果和构建的JSON数据 - return json.dumps({ - "suc": True, - "order_code": order_code, - "order_id": order_id, - "result": result, - "order_params": order_data - }) - - except BioyondException: - # 重新抛出BioyondException - raise - except Exception as e: - # 捕获其他未预期的异常,转换为BioyondException - error_msg = f"创建二胺溶液配置任务时发生未预期的错误: {str(e)}" - self.hardware_interface._logger.error(error_msg) - raise BioyondException(error_msg) - - # 批量创建二胺溶液配置任务 - def batch_create_diamine_solution_tasks(self, - solutions, - liquid_material_name: str = "NMP", - speed: str = None, - temperature: str = None, - delay_time: str = None) -> str: - """ - 批量创建二胺溶液配置任务 - - 参数说明: - - solutions: 溶液列表(数组)或JSON字符串,格式如下: - [ - { - "name": "MDA", - "order": 0, - "solid_mass": 5.0, - "solvent_volume": 20, - ... - }, - ... - ] - - liquid_material_name: 液体物料名称,默认为"NMP" - - speed: 搅拌速度,如果为None则使用默认值400 - - temperature: 温度,如果为None则使用默认值20 - - delay_time: 延迟时间,如果为None则使用默认值600 - - 返回: JSON字符串格式的任务创建结果 - - 异常: - - BioyondException: 各种错误情况下的统一异常 - """ - try: - # 参数类型转换:如果是字符串则解析为列表 - if isinstance(solutions, str): - try: - solutions = json.loads(solutions) - except json.JSONDecodeError as e: - raise BioyondException(f"solutions JSON解析失败: {str(e)}") - - # 参数验证 - if not isinstance(solutions, list): - raise BioyondException("solutions 必须是列表类型或有效的JSON数组字符串") - - if not solutions: - raise BioyondException("solutions 列表不能为空") - - # 批量创建任务 - results = [] - success_count = 0 - failed_count = 0 - - for idx, solution in enumerate(solutions): - try: - # 提取参数 - name = solution.get("name") - solid_mass = solution.get("solid_mass") - solvent_volume = solution.get("solvent_volume") - order = solution.get("order") - - if not all([name, solid_mass is not None, solvent_volume is not None]): - self.hardware_interface._logger.warning( - f"跳过第 {idx + 1} 个溶液:缺少必要参数" - ) - results.append({ - "index": idx + 1, - "name": name, - "success": False, - "error": "缺少必要参数" - }) - failed_count += 1 - continue - - # 生成库位名称(直接使用物料名称) - # 如果需要其他命名规则,可以在这里调整 - hold_m_name = name - - # 调用单个任务创建方法 - result = self.create_diamine_solution_task( - order_name=f"二胺溶液配置-{name}", - material_name=name, - target_weigh=str(solid_mass), - volume=str(solvent_volume), - liquid_material_name=liquid_material_name, - speed=speed, - temperature=temperature, - delay_time=delay_time, - hold_m_name=hold_m_name - ) - - # 解析返回结果以获取order_code和order_id - result_data = json.loads(result) if isinstance(result, str) else result - order_code = result_data.get("order_code") - order_id = result_data.get("order_id") - order_params = result_data.get("order_params", {}) - - results.append({ - "index": idx + 1, - "name": name, - "success": True, - "order_code": order_code, - "order_id": order_id, - "hold_m_name": hold_m_name, - "order_params": order_params - }) - success_count += 1 - self.hardware_interface._logger.info( - f"成功创建二胺溶液配置任务: {name}, order_code={order_code}, order_id={order_id}" - ) - - except BioyondException as e: - results.append({ - "index": idx + 1, - "name": solution.get("name", "unknown"), - "success": False, - "error": str(e) - }) - failed_count += 1 - self.hardware_interface._logger.error( - f"创建第 {idx + 1} 个任务失败: {str(e)}" - ) - except Exception as e: - results.append({ - "index": idx + 1, - "name": solution.get("name", "unknown"), - "success": False, - "error": f"未知错误: {str(e)}" - }) - failed_count += 1 - self.hardware_interface._logger.error( - f"创建第 {idx + 1} 个任务时发生未知错误: {str(e)}" - ) - - # 提取所有成功任务的order_code和order_id - order_codes = [r["order_code"] for r in results if r["success"]] - order_ids = [r["order_id"] for r in results if r["success"]] - - # 返回汇总结果 - summary = { - "total": len(solutions), - "success": success_count, - "failed": failed_count, - "order_codes": order_codes, - "order_ids": order_ids, - "details": results - } - - self.hardware_interface._logger.info( - f"批量创建二胺溶液配置任务完成: 总数={len(solutions)}, " - f"成功={success_count}, 失败={failed_count}" - ) - - # 构建返回结果 - summary["return_info"] = { - "order_codes": order_codes, - "order_ids": order_ids, - } - - return summary - - except BioyondException: - raise - except Exception as e: - error_msg = f"批量创建二胺溶液配置任务时发生未预期的错误: {str(e)}" - self.hardware_interface._logger.error(error_msg) - raise BioyondException(error_msg) - - def brief_step_parameters(self, data: Dict[str, Any]) -> Dict[str, Any]: - """获取简要步骤参数(站点项目接口) - - 参数: - data: 查询参数字典 - - 返回值: - dict: 接口返回数据 - """ - return self._post_project_api("/api/lims/order/brief-step-paramerers", data) - - def project_order_report(self, order_id: str) -> Dict[str, Any]: - """查询项目端订单报告(兼容旧路径) - - 参数: - order_id: 订单ID - - 返回值: - dict: 报告数据 - """ - return self._post_project_api("/api/lims/order/project-order-report", order_id) - - def workflow_sample_locations(self, workflow_id: str) -> Dict[str, Any]: - """查询工作流样品库位(站点项目接口) - - 参数: - workflow_id: 工作流ID - - 返回值: - dict: 位置信息数据 - """ - return self._post_project_api("/api/lims/storage/workflow-sample-locations", workflow_id) - - - # 批量创建90%10%小瓶投料任务 - def batch_create_90_10_vial_feeding_tasks(self, - titration, - hold_m_name: str = None, - speed: str = None, - temperature: str = None, - delay_time: str = None, - liquid_material_name: str = "NMP") -> str: - """ - 批量创建90%10%小瓶投料任务(仅创建1个任务,但包含所有90%和10%物料) - - 参数说明: - - titration: 滴定信息的字典或JSON字符串,格式如下: - { - "name": "BTDA", - "main_portion": 1.9152351915461294, # 主称固体质量(g) -> 90%物料 - "titration_portion": 0.05923407808905555, # 滴定固体质量(g) -> 10%物料固体 - "titration_solvent": 3.050555021586361 # 滴定溶液体积(mL) -> 10%物料液体 - } - - hold_m_name: 库位名称,如"C01"。必填参数 - - speed: 搅拌速度,如果为None则使用默认值400 - - temperature: 温度,如果为None则使用默认值40 - - delay_time: 延迟时间,如果为None则使用默认值600 - - liquid_material_name: 10%物料的液体物料名称,默认为"NMP" - - 返回: JSON字符串格式的任务创建结果 - - 异常: - - BioyondException: 各种错误情况下的统一异常 - """ - try: - # 参数类型转换:如果是字符串则解析为字典 - if isinstance(titration, str): - try: - titration = json.loads(titration) - except json.JSONDecodeError as e: - raise BioyondException(f"titration参数JSON解析失败: {str(e)}") - - # 参数验证 - if not isinstance(titration, dict): - raise BioyondException("titration 必须是字典类型或有效的JSON字符串") - - if not hold_m_name: - raise BioyondException("hold_m_name 是必填参数") - - if not titration: - raise BioyondException("titration 参数不能为空") - - # 提取滴定数据 - name = titration.get("name") - main_portion = titration.get("main_portion") # 主称固体质量 - titration_portion = titration.get("titration_portion") # 滴定固体质量 - titration_solvent = titration.get("titration_solvent") # 滴定溶液体积 - - if not all([name, main_portion is not None, titration_portion is not None, titration_solvent is not None]): - raise BioyondException("titration 数据缺少必要参数") - - # 调用单个任务创建方法 - result = self.create_90_10_vial_feeding_task( - order_name=f"90%10%小瓶投料-{name}", - speed=speed, - temperature=temperature, - delay_time=delay_time, - # 90%物料 - 主称固体直接使用main_portion - percent_90_1_assign_material_name=name, - percent_90_1_target_weigh=str(round(main_portion, 6)), - # 10%物料 - 滴定固体 + 滴定溶剂(只使用第1个10%小瓶) - percent_10_1_assign_material_name=name, - percent_10_1_target_weigh=str(round(titration_portion, 6)), - percent_10_1_volume=str(round(titration_solvent, 6)), - percent_10_1_liquid_material_name=liquid_material_name, - hold_m_name=hold_m_name - ) - - # 解析返回结果以获取order_code和order_id - result_data = json.loads(result) if isinstance(result, str) else result - order_code = result_data.get("order_code") - order_id = result_data.get("order_id") - order_params = result_data.get("order_params", {}) - - # 构建详细信息(保持原有结构) - detail = { - "index": 1, - "name": name, - "success": True, - "order_code": order_code, - "order_id": order_id, - "hold_m_name": hold_m_name, - "90_vials": { - "count": 1, - "weight_per_vial": round(main_portion, 6), - "total_weight": round(main_portion, 6) - }, - "10_vials": { - "count": 1, - "solid_weight": round(titration_portion, 6), - "liquid_volume": round(titration_solvent, 6) - }, - "order_params": order_params - } - - # 构建批量结果格式(与diamine_solution_tasks保持一致) - summary = { - "total": 1, - "success": 1, - "failed": 0, - "order_codes": [order_code], - "order_ids": [order_id], - "details": [detail] - } - - self.hardware_interface._logger.info( - f"成功创建90%10%小瓶投料任务: {name}, order_code={order_code}, order_id={order_id}" - ) - - # 构建返回结果 - summary["return_info"] = { - "order_codes": [order_code], - "order_ids": [order_id], - } - - return summary - - except BioyondException: - raise - except Exception as e: - error_msg = f"批量创建90%10%小瓶投料任务时发生未预期的错误: {str(e)}" - self.hardware_interface._logger.error(error_msg) - raise BioyondException(error_msg) - - def _extract_actuals_from_report(self, report) -> Dict[str, Any]: - data = report.get('data') if isinstance(report, dict) else None - actual_target_weigh = None - actual_volume = None - if data: - extra = data.get('extraProperties') or {} - if isinstance(extra, dict): - for v in extra.values(): - obj = None - try: - obj = json.loads(v) if isinstance(v, str) else v - except Exception: - obj = None - if isinstance(obj, dict): - tw = obj.get('targetWeigh') - vol = obj.get('volume') - if tw is not None: - try: - actual_target_weigh = float(tw) - except Exception: - pass - if vol is not None: - try: - actual_volume = float(vol) - except Exception: - pass - return { - 'actualTargetWeigh': actual_target_weigh, - 'actualVolume': actual_volume - } - - # 等待多个任务完成并获取实验报告 - def wait_for_multiple_orders_and_get_reports(self, - batch_create_result: str = None, - timeout: int = 7200, - check_interval: int = 10) -> Dict[str, Any]: - """ - 同时等待多个任务完成并获取实验报告 - - 参数说明: - - batch_create_result: 批量创建任务的返回结果JSON字符串,包含order_codes和order_ids数组 - - timeout: 超时时间(秒),默认7200秒(2小时) - - check_interval: 检查间隔(秒),默认10秒 - - 返回: 包含所有任务状态和报告的字典 - { - "total": 2, - "completed": 2, - "timeout": 0, - "elapsed_time": 120.5, - "reports": [ - { - "order_code": "task_vial_1", - "order_id": "uuid1", - "status": "completed", - "completion_status": 30, - "report": {...} - }, - ... - ] - } - - 异常: - - BioyondException: 所有任务都超时或发生错误 - """ - try: - # 参数类型转换 - timeout = int(timeout) if timeout else 7200 - check_interval = int(check_interval) if check_interval else 10 - - # 验证batch_create_result参数 - if not batch_create_result or batch_create_result == "": - raise BioyondException("batch_create_result参数为空,请确保从batch_create节点正确连接handle") - - # 解析batch_create_result JSON对象 - try: - # 清理可能存在的截断标记 [...] - if isinstance(batch_create_result, str) and '[...]' in batch_create_result: - batch_create_result = batch_create_result.replace('[...]', '[]') - - result_obj = json.loads(batch_create_result) if isinstance(batch_create_result, str) else batch_create_result - - # 兼容外层包装格式 {error, suc, return_value} - if isinstance(result_obj, dict) and "return_value" in result_obj: - inner = result_obj.get("return_value") - if isinstance(inner, str): - result_obj = json.loads(inner) - elif isinstance(inner, dict): - result_obj = inner - - # 从summary对象中提取order_codes和order_ids - order_codes = result_obj.get("order_codes", []) - order_ids = result_obj.get("order_ids", []) - - except json.JSONDecodeError as e: - raise BioyondException(f"解析batch_create_result失败: {e}") - except Exception as e: - raise BioyondException(f"处理batch_create_result时出错: {e}") - - # 验证提取的数据 - if not order_codes: - raise BioyondException("batch_create_result中未找到order_codes字段或为空") - if not order_ids: - raise BioyondException("batch_create_result中未找到order_ids字段或为空") - - # 确保order_codes和order_ids是列表类型 - if not isinstance(order_codes, list): - order_codes = [order_codes] if order_codes else [] - if not isinstance(order_ids, list): - order_ids = [order_ids] if order_ids else [] - - codes_list = order_codes - ids_list = order_ids - - if len(codes_list) != len(ids_list): - raise BioyondException( - f"order_codes数量({len(codes_list)})与order_ids数量({len(ids_list)})不匹配" - ) - - if not codes_list or not ids_list: - raise BioyondException("order_codes和order_ids不能为空") - - # 初始化跟踪变量 - total = len(codes_list) - pending_orders = {code: {"order_id": ids_list[i], "completed": False} - for i, code in enumerate(codes_list)} - reports = [] - - start_time = time.time() - self.hardware_interface._logger.info( - f"开始等待 {total} 个任务完成: {', '.join(codes_list)}" - ) - - # 轮询检查任务状态 - while pending_orders: - elapsed_time = time.time() - start_time - - # 检查超时 - if elapsed_time > timeout: - # 收集超时任务 - timeout_orders = list(pending_orders.keys()) - self.hardware_interface._logger.error( - f"等待任务完成超时,剩余未完成任务: {', '.join(timeout_orders)}" - ) - - # 为超时任务添加记录 - for order_code in timeout_orders: - reports.append({ - "order_code": order_code, - "order_id": pending_orders[order_code]["order_id"], - "status": "timeout", - "completion_status": None, - "report": None, - "extracted": None, - "elapsed_time": elapsed_time - }) - - break - - # 检查每个待完成的任务 - completed_in_this_round = [] - for order_code in list(pending_orders.keys()): - order_id = pending_orders[order_code]["order_id"] - - # 检查任务是否完成 - if order_code in self.order_completion_status: - completion_info = self.order_completion_status[order_code] - self.hardware_interface._logger.info( - f"检测到任务 {order_code} 已完成,状态: {completion_info.get('status')}" - ) - - # 获取实验报告 - try: - report = self.project_order_report(order_id) - - if not report: - self.hardware_interface._logger.warning( - f"任务 {order_code} 已完成但无法获取报告" - ) - report = {"error": "无法获取报告"} - else: - self.hardware_interface._logger.info( - f"成功获取任务 {order_code} 的实验报告" - ) - - reports.append({ - "order_code": order_code, - "order_id": order_id, - "status": "completed", - "completion_status": completion_info.get('status'), - "report": report, - "extracted": self._extract_actuals_from_report(report), - "elapsed_time": elapsed_time - }) - - # 标记为已完成 - completed_in_this_round.append(order_code) - - # 清理完成状态记录 - del self.order_completion_status[order_code] - - except Exception as e: - self.hardware_interface._logger.error( - f"查询任务 {order_code} 报告失败: {str(e)}" - ) - reports.append({ - "order_code": order_code, - "order_id": order_id, - "status": "error", - "completion_status": completion_info.get('status'), - "report": None, - "extracted": None, - "error": str(e), - "elapsed_time": elapsed_time - }) - completed_in_this_round.append(order_code) - - # 从待完成列表中移除已完成的任务 - for order_code in completed_in_this_round: - del pending_orders[order_code] - - # 如果还有待完成的任务,等待后继续 - if pending_orders: - time.sleep(check_interval) - - # 每分钟记录一次等待状态 - new_elapsed_time = time.time() - start_time - if int(new_elapsed_time) % 60 == 0 and new_elapsed_time > 0: - self.hardware_interface._logger.info( - f"批量等待任务中... 已完成 {len(reports)}/{total}, " - f"待完成: {', '.join(pending_orders.keys())}, " - f"已等待 {int(new_elapsed_time/60)} 分钟" - ) - - # 统计结果 - completed_count = sum(1 for r in reports if r['status'] == 'completed') - timeout_count = sum(1 for r in reports if r['status'] == 'timeout') - error_count = sum(1 for r in reports if r['status'] == 'error') - - final_elapsed_time = time.time() - start_time - - summary = { - "total": total, - "completed": completed_count, - "timeout": timeout_count, - "error": error_count, - "elapsed_time": round(final_elapsed_time, 2), - "reports": reports - } - - self.hardware_interface._logger.info( - f"批量等待任务完成: 总数={total}, 成功={completed_count}, " - f"超时={timeout_count}, 错误={error_count}, 耗时={final_elapsed_time:.1f}秒" - ) - - # 返回字典格式,在顶层包含统计信息 - return { - "return_info": json.dumps(summary, ensure_ascii=False) - } - - except BioyondException: - raise - except Exception as e: - error_msg = f"批量等待任务完成时发生未预期的错误: {str(e)}" - self.hardware_interface._logger.error(error_msg) - raise BioyondException(error_msg) - - def process_order_finish_report(self, report_request, used_materials) -> Dict[str, Any]: - """ - 重写父类方法,处理任务完成报送并记录到 order_completion_status - - Args: - report_request: WorkstationReportRequest 对象,包含任务完成信息 - used_materials: 物料使用记录列表 - - Returns: - Dict[str, Any]: 处理结果 - """ - try: - # 调用父类方法 - result = super().process_order_finish_report(report_request, used_materials) - - # 记录任务完成状态 - data = report_request.data - order_code = data.get('orderCode') - - if order_code: - self.order_completion_status[order_code] = { - 'status': data.get('status'), - 'order_name': data.get('orderName'), - 'timestamp': datetime.now().isoformat(), - 'start_time': data.get('startTime'), - 'end_time': data.get('endTime') - } - - self.hardware_interface._logger.info( - f"已记录任务完成状态: {order_code}, status={data.get('status')}" - ) - - return result - - except Exception as e: - self.hardware_interface._logger.error(f"处理任务完成报送失败: {e}") - return {"processed": False, "error": str(e)} - - def transfer_materials_to_reaction_station( - self, - target_device_id: str, - transfer_groups: list - ) -> dict: - """ - 将配液站完成的物料转移到指定反应站的堆栈库位 - 支持多组转移任务,每组包含物料名称、目标堆栈和目标库位 - - Args: - target_device_id: 目标反应站设备ID(所有转移组使用同一个设备) - transfer_groups: 转移任务组列表,每组包含: - - materials: 物料名称(字符串,将通过RPC查询) - - target_stack: 目标堆栈名称(如"堆栈1左") - - target_sites: 目标库位(如"A01") - - Returns: - dict: 转移结果 - { - "success": bool, - "total_groups": int, - "successful_groups": int, - "failed_groups": int, - "target_device_id": str, - "details": [...] - } - """ - try: - # 验证参数 - if not target_device_id: - raise ValueError("目标设备ID不能为空") - - if not transfer_groups: - raise ValueError("转移任务组列表不能为空") - - if not isinstance(transfer_groups, list): - raise ValueError("transfer_groups必须是列表类型") - - # 标准化设备ID格式: 确保以 /devices/ 开头 - if not target_device_id.startswith("/devices/"): - if target_device_id.startswith("/"): - target_device_id = f"/devices{target_device_id}" - else: - target_device_id = f"/devices/{target_device_id}" - - self.hardware_interface._logger.info( - f"目标设备ID标准化为: {target_device_id}" - ) - - self.hardware_interface._logger.info( - f"开始执行批量物料转移: {len(transfer_groups)}组任务 -> {target_device_id}" - ) - - from .config import WAREHOUSE_MAPPING - results = [] - successful_count = 0 - failed_count = 0 - - for idx, group in enumerate(transfer_groups, 1): - try: - # 提取参数 - material_name = group.get("materials", "") - target_stack = group.get("target_stack", "") - target_sites = group.get("target_sites", "") - - # 验证必填参数 - if not material_name: - raise ValueError(f"第{idx}组: 物料名称不能为空") - if not target_stack: - raise ValueError(f"第{idx}组: 目标堆栈不能为空") - if not target_sites: - raise ValueError(f"第{idx}组: 目标库位不能为空") - - self.hardware_interface._logger.info( - f"处理第{idx}组转移: {material_name} -> " - f"{target_device_id}/{target_stack}/{target_sites}" - ) - - # 通过物料名称从deck获取ResourcePLR对象 - try: - material_resource = self.deck.get_resource(material_name) - if not material_resource: - raise ValueError(f"在deck中未找到物料: {material_name}") - - self.hardware_interface._logger.info( - f"从deck获取到物料 {material_name}: {material_resource}" - ) - except Exception as e: - raise ValueError( - f"获取物料 {material_name} 失败: {str(e)},请确认物料已正确加载到deck中" - ) - - # 验证目标堆栈是否存在 - if target_stack not in WAREHOUSE_MAPPING: - raise ValueError( - f"未知的堆栈名称: {target_stack}," - f"可选值: {list(WAREHOUSE_MAPPING.keys())}" - ) - - # 验证库位是否有效 - stack_sites = WAREHOUSE_MAPPING[target_stack].get("site_uuids", {}) - if target_sites not in stack_sites: - raise ValueError( - f"库位 {target_sites} 不存在于堆栈 {target_stack} 中," - f"可选库位: {list(stack_sites.keys())}" - ) - - # 获取目标库位的UUID - target_site_uuid = stack_sites[target_sites] - if not target_site_uuid: - raise ValueError( - f"库位 {target_sites} 的 UUID 未配置,请在 WAREHOUSE_MAPPING 中完善" - ) - - # 目标位点(包含UUID) - future = ROS2DeviceNode.run_async_func( - self._ros_node.get_resource_with_dir, - True, - **{ - "resource_id": f"/reaction_station_bioyond/Bioyond_Deck/{target_stack}", - "with_children": True, - }, - ) - # 等待异步完成后再获取结果 - if not future: - raise ValueError(f"获取目标堆栈资源future无效: {target_stack}") - while not future.done(): - time.sleep(0.1) - target_site_resource = future.result() - - # 调用父类的 transfer_resource_to_another 方法 - # 传入ResourcePLR对象和目标位点资源 - future = self.transfer_resource_to_another( - resource=[material_resource], - mount_resource=[target_site_resource], - sites=[target_sites], - mount_device_id=target_device_id - ) - - # 等待异步任务完成(轮询直到完成,再取结果) - if future: - try: - while not future.done(): - time.sleep(0.1) - future.result() - self.hardware_interface._logger.info( - f"异步转移任务已完成: {material_name}" - ) - except Exception as e: - raise ValueError(f"转移任务执行失败: {str(e)}") - - self.hardware_interface._logger.info( - f"第{idx}组转移成功: {material_name} -> " - f"{target_device_id}/{target_stack}/{target_sites}" - ) - - successful_count += 1 - results.append({ - "group_index": idx, - "success": True, - "material_name": material_name, - "target_stack": target_stack, - "target_site": target_sites, - "message": "转移成功" - }) - - except Exception as e: - error_msg = f"第{idx}组转移失败: {str(e)}" - self.hardware_interface._logger.error(error_msg) - failed_count += 1 - results.append({ - "group_index": idx, - "success": False, - "material_name": group.get("materials", ""), - "error": str(e) - }) - - # 返回汇总结果 - return { - "success": failed_count == 0, - "total_groups": len(transfer_groups), - "successful_groups": successful_count, - "failed_groups": failed_count, - "target_device_id": target_device_id, - "details": results, - "message": f"完成 {len(transfer_groups)} 组转移任务到 {target_device_id}: " - f"{successful_count} 成功, {failed_count} 失败" - } - - except Exception as e: - error_msg = f"批量转移物料失败: {str(e)}" - self.hardware_interface._logger.error(error_msg) - return { - "success": False, - "total_groups": len(transfer_groups) if transfer_groups else 0, - "successful_groups": 0, - "failed_groups": len(transfer_groups) if transfer_groups else 0, - "target_device_id": target_device_id if target_device_id else "", - "error": error_msg - } - - def query_resource_by_name(self, material_name: str): - """ - 通过物料名称查询资源对象(适用于Bioyond系统) - - Args: - material_name: 物料名称 - - Returns: - 物料ID或None - """ - try: - # Bioyond系统使用material_cache存储物料信息 - if not hasattr(self.hardware_interface, 'material_cache'): - self.hardware_interface._logger.error( - "hardware_interface没有material_cache属性" - ) - return None - - material_cache = self.hardware_interface.material_cache - - self.hardware_interface._logger.info( - f"查询物料 '{material_name}', 缓存中共有 {len(material_cache)} 个物料" - ) - - # 调试: 打印前几个物料信息 - if material_cache: - cache_items = list(material_cache.items())[:5] - for name, material_id in cache_items: - self.hardware_interface._logger.debug( - f"缓存物料: name={name}, id={material_id}" - ) - - # 直接从缓存中查找 - if material_name in material_cache: - material_id = material_cache[material_name] - self.hardware_interface._logger.info( - f"找到物料: {material_name} -> ID: {material_id}" - ) - return material_id - - self.hardware_interface._logger.warning( - f"未找到物料: {material_name} (缓存中无此物料)" - ) - - # 打印所有可用物料名称供参考 - available_materials = list(material_cache.keys()) - if available_materials: - self.hardware_interface._logger.info( - f"可用物料列表(前10个): {available_materials[:10]}" - ) - - return None - - except Exception as e: - self.hardware_interface._logger.error( - f"查询物料失败 {material_name}: {str(e)}" - ) - return None - - -if __name__ == "__main__": - bioyond = BioyondDispensingStation(config={ - "api_key": "DE9BDDA0", - "api_host": "http://192.168.1.200:44388" - }) - - # ============ 原有示例代码 ============ - - # 示例1:使用material_id_query查询工作流对应的holdMID - workflow_id_1 = "3a15d4a1-3bbe-76f9-a458-292896a338f5" # 二胺溶液配置工作流ID - workflow_id_2 = "3a19310d-16b9-9d81-b109-0748e953694b" # 90%10%小瓶投料工作流ID - - #示例2:创建二胺溶液配置任务 - ODA,指定库位名称 - # bioyond.create_diamine_solution_task( - # order_code="task_oda_" + str(int(datetime.now().timestamp())), - # order_name="二胺溶液配置-ODA", - # material_name="ODA-1", - # target_weigh="12.000", - # volume="60", - # liquid_material_name= "NMP", - # speed="400", - # temperature="20", - # delay_time="600", - # hold_m_name="烧杯ODA" - # ) - - # bioyond.create_diamine_solution_task( - # order_code="task_pda_" + str(int(datetime.now().timestamp())), - # order_name="二胺溶液配置-PDA", - # material_name="PDA-1", - # target_weigh="4.178", - # volume="60", - # liquid_material_name= "NMP", - # speed="400", - # temperature="20", - # delay_time="600", - # hold_m_name="烧杯PDA-2" - # ) - - # bioyond.create_diamine_solution_task( - # order_code="task_mpda_" + str(int(datetime.now().timestamp())), - # order_name="二胺溶液配置-MPDA", - # material_name="MPDA-1", - # target_weigh="3.298", - # volume="50", - # liquid_material_name= "NMP", - # speed="400", - # temperature="20", - # delay_time="600", - # hold_m_name="烧杯MPDA" - # ) - - bioyond.material_id_query("3a19310d-16b9-9d81-b109-0748e953694b") - bioyond.material_id_query("3a15d4a1-3bbe-76f9-a458-292896a338f5") - - - #示例4:创建90%10%小瓶投料任务 - # vial_result = bioyond.create_90_10_vial_feeding_task( - # order_code="task_vial_" + str(int(datetime.now().timestamp())), - # order_name="90%10%小瓶投料-1", - # percent_90_1_assign_material_name="BTDA-1", - # percent_90_1_target_weigh="7.392", - # percent_90_2_assign_material_name="BTDA-1", - # percent_90_2_target_weigh="7.392", - # percent_90_3_assign_material_name="BTDA-2", - # percent_90_3_target_weigh="7.392", - # percent_10_1_assign_material_name="BTDA-2", - # percent_10_1_target_weigh="1.500", - # percent_10_1_volume="20", - # percent_10_1_liquid_material_name="NMP", - # # percent_10_2_assign_material_name="BTDA-c", - # # percent_10_2_target_weigh="1.2", - # # percent_10_2_volume="20", - # # percent_10_2_liquid_material_name="NMP", - # speed="400", - # temperature="60", - # delay_time="1200", - # hold_m_name="8.4分装板-1" - # ) - - # vial_result = bioyond.create_90_10_vial_feeding_task( - # order_code="task_vial_" + str(int(datetime.now().timestamp())), - # order_name="90%10%小瓶投料-2", - # percent_90_1_assign_material_name="BPDA-1", - # percent_90_1_target_weigh="5.006", - # percent_90_2_assign_material_name="PMDA-1", - # percent_90_2_target_weigh="3.810", - # percent_90_3_assign_material_name="BPDA-1", - # percent_90_3_target_weigh="8.399", - # percent_10_1_assign_material_name="BPDA-1", - # percent_10_1_target_weigh="1.200", - # percent_10_1_volume="20", - # percent_10_1_liquid_material_name="NMP", - # percent_10_2_assign_material_name="BPDA-1", - # percent_10_2_target_weigh="1.200", - # percent_10_2_volume="20", - # percent_10_2_liquid_material_name="NMP", - # speed="400", - # temperature="60", - # delay_time="1200", - # hold_m_name="8.4分装板-2" - # ) - - #启动调度器 - #bioyond.scheduler_start() - - #继续调度器 - #bioyond.scheduler_continue() - - result0 = bioyond.stock_material('{"typeMode": 0, "includeDetail": true}') - result1 = bioyond.stock_material('{"typeMode": 1, "includeDetail": true}') - result2 = bioyond.stock_material('{"typeMode": 2, "includeDetail": true}') - - matpos1 = bioyond.query_warehouse_by_material_type("3a14196e-b7a0-a5da-1931-35f3000281e9") - matpos2 = bioyond.query_warehouse_by_material_type("3a14196e-5dfe-6e21-0c79-fe2036d052c4") - matpos3 = bioyond.query_warehouse_by_material_type("3a14196b-24f2-ca49-9081-0cab8021bf1a") - - #样品板(里面有样品瓶) - material_data_yp = { - "typeId": "3a14196e-b7a0-a5da-1931-35f3000281e9", - #"code": "物料编码001", - #"barCode": "物料条码001", - "name": "8.4样品板", - "unit": "个", - "quantity": 1, - "details": [ - { - "typeId": "3a14196a-cf7d-8aea-48d8-b9662c7dba94", - #"code": "物料编码001", - "name": "BTDA-1", - "quantity": 20, - "x": 1, - "y": 1, - #"unit": "单位" - "molecular": 1, - "Parameters":"{\"molecular\": 1}" - }, - { - "typeId": "3a14196a-cf7d-8aea-48d8-b9662c7dba94", - #"code": "物料编码001", - "name": "BPDA-1", - "quantity": 20, - "x": 2, - "y": 1, #x1y2是A02 - #"unit": "单位" - "molecular": 1, - "Parameters":"{\"molecular\": 1}" - }, - { - "typeId": "3a14196a-cf7d-8aea-48d8-b9662c7dba94", - #"code": "物料编码001", - "name": "BTDA-2", - "quantity": 20, - "x": 1, - "y": 2, #x1y2是A02 - #"unit": "单位" - "molecular": 1, - "Parameters":"{\"molecular\": 1}" - }, - { - "typeId": "3a14196a-cf7d-8aea-48d8-b9662c7dba94", - #"code": "物料编码001", - "name": "PMDA-1", - "quantity": 20, - "x": 2, - "y": 2, #x1y2是A02 - #"unit": "单位" - "molecular": 1, - "Parameters":"{\"molecular\": 1}" - } - ], - "Parameters":"{}" - } - - material_data_yp = { - "typeId": "3a14196e-b7a0-a5da-1931-35f3000281e9", - #"code": "物料编码001", - #"barCode": "物料条码001", - "name": "8.7样品板", - "unit": "个", - "quantity": 1, - "details": [ - { - "typeId": "3a14196a-cf7d-8aea-48d8-b9662c7dba94", - #"code": "物料编码001", - "name": "mianfen", - "quantity": 13, - "x": 1, - "y": 1, - #"unit": "单位" - "molecular": 1, - "Parameters":"{\"molecular\": 1}" - }, - { - "typeId": "3a14196a-cf7d-8aea-48d8-b9662c7dba94", - #"code": "物料编码001", - "name": "mianfen2", - "quantity": 13, - "x": 1, - "y": 2, #x1y2是A02 - #"unit": "单位" - "molecular": 1, - "Parameters":"{\"molecular\": 1}" - } - ], - "Parameters":"{}" - } - - #分装板 - material_data_fzb_1 = { - "typeId": "3a14196e-5dfe-6e21-0c79-fe2036d052c4", - #"code": "物料编码001", - #"barCode": "物料条码001", - "name": "8.7分装板", - "unit": "个", - "quantity": 1, - "details": [ - { - "typeId": "3a14196c-76be-2279-4e22-7310d69aed68", - #"code": "物料编码001", - "name": "10%小瓶1", - "quantity": 1, - "x": 1, - "y": 1, - #"unit": "单位" - "molecular": 1, - "Parameters":"{\"molecular\": 1}" - }, - { - "typeId": "3a14196c-76be-2279-4e22-7310d69aed68", - #"code": "物料编码001", - "name": "10%小瓶2", - "quantity": 1, - "x": 1, - "y": 2, - #"unit": "单位" - "molecular": 1, - "Parameters":"{\"molecular\": 1}" - }, - { - "typeId": "3a14196c-76be-2279-4e22-7310d69aed68", - #"code": "物料编码001", - "name": "10%小瓶3", - "quantity": 1, - "x": 1, - "y": 3, - #"unit": "单位" - "molecular": 1, - "Parameters":"{\"molecular\": 1}" - }, - { - "typeId": "3a14196c-cdcf-088d-dc7d-5cf38f0ad9ea", - #"code": "物料编码001", - "name": "90%小瓶1", - "quantity": 1, - "x": 2, - "y": 1, #x1y2是A02 - #"unit": "单位" - "molecular": 1, - "Parameters":"{\"molecular\": 1}" - }, - { - "typeId": "3a14196c-cdcf-088d-dc7d-5cf38f0ad9ea", - #"code": "物料编码001", - "name": "90%小瓶2", - "quantity": 1, - "x": 2, - "y": 2, - #"unit": "单位" - "molecular": 1, - "Parameters":"{\"molecular\": 1}" - }, - { - "typeId": "3a14196c-cdcf-088d-dc7d-5cf38f0ad9ea", - #"code": "物料编码001", - "name": "90%小瓶3", - "quantity": 1, - "x": 2, - "y": 3, - "molecular": 1, - "Parameters":"{\"molecular\": 1}" - } - ], - "Parameters":"{}" - } - - material_data_fzb_2 = { - "typeId": "3a14196e-5dfe-6e21-0c79-fe2036d052c4", - #"code": "物料编码001", - #"barCode": "物料条码001", - "name": "8.4分装板-2", - "unit": "个", - "quantity": 1, - "details": [ - { - "typeId": "3a14196c-76be-2279-4e22-7310d69aed68", - #"code": "物料编码001", - "name": "10%小瓶1", - "quantity": 1, - "x": 1, - "y": 1, - #"unit": "单位" - "molecular": 1, - "Parameters":"{\"molecular\": 1}" - }, - { - "typeId": "3a14196c-76be-2279-4e22-7310d69aed68", - #"code": "物料编码001", - "name": "10%小瓶2", - "quantity": 1, - "x": 1, - "y": 2, - #"unit": "单位" - "molecular": 1, - "Parameters":"{\"molecular\": 1}" - }, - { - "typeId": "3a14196c-76be-2279-4e22-7310d69aed68", - #"code": "物料编码001", - "name": "10%小瓶3", - "quantity": 1, - "x": 1, - "y": 3, - #"unit": "单位" - "molecular": 1, - "Parameters":"{\"molecular\": 1}" - }, - { - "typeId": "3a14196c-cdcf-088d-dc7d-5cf38f0ad9ea", - #"code": "物料编码001", - "name": "90%小瓶1", - "quantity": 1, - "x": 2, - "y": 1, #x1y2是A02 - #"unit": "单位" - "molecular": 1, - "Parameters":"{\"molecular\": 1}" - }, - { - "typeId": "3a14196c-cdcf-088d-dc7d-5cf38f0ad9ea", - #"code": "物料编码001", - "name": "90%小瓶2", - "quantity": 1, - "x": 2, - "y": 2, - #"unit": "单位" - "molecular": 1, - "Parameters":"{\"molecular\": 1}" - }, - { - "typeId": "3a14196c-cdcf-088d-dc7d-5cf38f0ad9ea", - #"code": "物料编码001", - "name": "90%小瓶3", - "quantity": 1, - "x": 2, - "y": 3, - "molecular": 1, - "Parameters":"{\"molecular\": 1}" - } - ], - "Parameters":"{}" - } - - #烧杯 - material_data_sb_oda = { - "typeId": "3a14196b-24f2-ca49-9081-0cab8021bf1a", - #"code": "物料编码001", - #"barCode": "物料条码001", - "name": "mianfen1", - "unit": "个", - "quantity": 1, - "Parameters":"{}" - } - - material_data_sb_pda_2 = { - "typeId": "3a14196b-24f2-ca49-9081-0cab8021bf1a", - #"code": "物料编码001", - #"barCode": "物料条码001", - "name": "mianfen2", - "unit": "个", - "quantity": 1, - "Parameters":"{}" - } - - # material_data_sb_mpda = { - # "typeId": "3a14196b-24f2-ca49-9081-0cab8021bf1a", - # #"code": "物料编码001", - # #"barCode": "物料条码001", - # "name": "烧杯MPDA", - # "unit": "个", - # "quantity": 1, - # "Parameters":"{}" - # } - - - #result_1 = bioyond.add_material(json.dumps(material_data_yp, ensure_ascii=False)) - #result_2 = bioyond.add_material(json.dumps(material_data_fzb_1, ensure_ascii=False)) - # result_3 = bioyond.add_material(json.dumps(material_data_fzb_2, ensure_ascii=False)) - # result_4 = bioyond.add_material(json.dumps(material_data_sb_oda, ensure_ascii=False)) - # result_5 = bioyond.add_material(json.dumps(material_data_sb_pda_2, ensure_ascii=False)) - # #result会返回id - # #样品板1id:3a1b3e7d-339d-0291-dfd3-13e2a78fe521 - - - # #将指定物料入库到指定库位 - #bioyond.material_inbound(result_1, "3a14198e-6929-31f0-8a22-0f98f72260df") - #bioyond.material_inbound(result_2, "3a14198e-6929-46fe-841e-03dd753f1e4a") - # bioyond.material_inbound(result_3, "3a14198e-6929-72ac-32ce-9b50245682b8") - # bioyond.material_inbound(result_4, "3a14198e-d724-e036-afdc-2ae39a7f3383") - # bioyond.material_inbound(result_5, "3a14198e-d724-d818-6d4f-5725191a24b5") - - #bioyond.material_outbound(result_1, "3a14198e-6929-31f0-8a22-0f98f72260df") - - # bioyond.stock_material('{"typeMode": 2, "includeDetail": true}') - - query_order = {"status":"100", "pageCount": "10"} - bioyond.order_query(json.dumps(query_order, ensure_ascii=False)) - - # id = "3a1bce3c-4f31-c8f3-5525-f3b273bc34dc" - # bioyond.sample_waste_removal(id) diff --git a/unilabos/devices/workstation/bioyond_studio/experiment.py b/unilabos/devices/workstation/bioyond_studio/experiment.py deleted file mode 100644 index 28ef3323..00000000 --- a/unilabos/devices/workstation/bioyond_studio/experiment.py +++ /dev/null @@ -1,400 +0,0 @@ -""" -实验流程主程序 -""" - -import json -from unilabos.devices.workstation.bioyond_studio.reaction_station import BioyondReactionStation -from unilabos.devices.workstation.bioyond_studio.config import API_CONFIG, WORKFLOW_MAPPINGS, DECK_CONFIG, MATERIAL_TYPE_MAPPINGS - - -def run_experiment(): - """运行实验流程""" - - # 初始化Bioyond客户端 - config = { - **API_CONFIG, - "workflow_mappings": WORKFLOW_MAPPINGS, - "material_type_mappings": MATERIAL_TYPE_MAPPINGS - } - - # 创建BioyondReactionStation实例,传入deck配置 - Bioyond = BioyondReactionStation( - config=config, - deck=DECK_CONFIG - ) - - print("\n============= 多工作流参数测试(简化接口+材料缓存)=============") - - # 显示可用的材料名称(前20个) - available_materials = Bioyond.hardware_interface.get_available_materials() - print(f"可用材料名称(前20个): {available_materials[:20]}") - print(f"总共有 {len(available_materials)} 个材料可用\n") - - # 1. 反应器放入 - print("1. 添加反应器放入工作流,带参数...") - Bioyond.reactor_taken_in( - assign_material_name="BTDA-DD", - cutoff="10000", - temperature="-10" - ) - - # 2. 液体投料-烧杯 (第一个) - print("2. 添加液体投料-烧杯,带参数...") - Bioyond.liquid_feeding_beaker( - volume="34768.7", - assign_material_name="ODA", - time="0", - torque_variation="1", - titration_type="1", - temperature=-10 - ) - - # 3. 液体投料-烧杯 (第二个) - print("3. 添加液体投料-烧杯,带参数...") - Bioyond.liquid_feeding_beaker( - volume="34080.9", - assign_material_name="MPDA", - time="5", - torque_variation="2", - titration_type="1", - temperature=0 - ) - - # 4. 液体投料-小瓶非滴定 - print("4. 添加液体投料-小瓶非滴定,带参数...") - Bioyond.liquid_feeding_vials_non_titration( - volume_formula="639.5", - assign_material_name="SIDA", - titration_type="1", - time="0", - torque_variation="1", - temperature=-10 - ) - - # 5. 液体投料溶剂 - print("5. 添加液体投料溶剂,带参数...") - Bioyond.liquid_feeding_solvents( - assign_material_name="NMP", - volume="19000", - titration_type="1", - time="5", - torque_variation="2", - temperature=-10 - ) - - # 6-8. 固体进料小瓶 (三个) - print("6. 添加固体进料小瓶,带参数...") - Bioyond.solid_feeding_vials( - material_id="3", - time="180", - torque_variation="2", - assign_material_name="BTDA1", - temperature=-10.00 - ) - - print("7. 添加固体进料小瓶,带参数...") - Bioyond.solid_feeding_vials( - material_id="3", - time="180", - torque_variation="2", - assign_material_name="BTDA2", - temperature=25.00 - ) - - print("8. 添加固体进料小瓶,带参数...") - Bioyond.solid_feeding_vials( - material_id="3", - time="480", - torque_variation="2", - assign_material_name="BTDA3", - temperature=25.00 - ) - - # 液体投料滴定(第一个) - print("9. 添加液体投料滴定,带参数...") # ODPA - Bioyond.liquid_feeding_titration( - volume_formula="{{6-0-5}}+{{7-0-5}}+{{8-0-5}}", - assign_material_name="BTDA-DD", - titration_type="1", - time="360", - torque_variation="2", - temperature="25.00" - ) - - # 液体投料滴定(第二个) - print("10. 添加液体投料滴定,带参数...") # ODPA - Bioyond.liquid_feeding_titration( - volume_formula="500", - assign_material_name="BTDA-DD", - titration_type="1", - time="360", - torque_variation="2", - temperature="25.00" - ) - - # 液体投料滴定(第三个) - print("11. 添加液体投料滴定,带参数...") # ODPA - Bioyond.liquid_feeding_titration( - volume_formula="500", - assign_material_name="BTDA-DD", - titration_type="1", - time="360", - torque_variation="2", - temperature="25.00" - ) - - print("12. 添加液体投料滴定,带参数...") # ODPA - Bioyond.liquid_feeding_titration( - volume_formula="500", - assign_material_name="BTDA-DD", - titration_type="1", - time="360", - torque_variation="2", - temperature="25.00" - ) - - print("13. 添加液体投料滴定,带参数...") # ODPA - Bioyond.liquid_feeding_titration( - volume_formula="500", - assign_material_name="BTDA-DD", - titration_type="1", - time="360", - torque_variation="2", - temperature="25.00" - ) - - print("14. 添加液体投料滴定,带参数...") # ODPA - Bioyond.liquid_feeding_titration( - volume_formula="500", - assign_material_name="BTDA-DD", - titration_type="1", - time="360", - torque_variation="2", - temperature="25.00" - ) - - print("15. 添加液体投料溶剂,带参数...") - Bioyond.liquid_feeding_solvents( - assign_material_name="PGME", - volume="16894.6", - titration_type="1", - time="360", - torque_variation="2", - temperature=25.00 - ) - - # 16. 反应器取出 - print("16. 添加反应器取出工作流...") - Bioyond.reactor_taken_out() - - # 显示当前工作流序列 - sequence = Bioyond.get_workflow_sequence() - print("\n当前工作流执行顺序:") - print(sequence) - - # 执行process_and_execute_workflow,合并工作流并创建任务 - print("\n4. 执行process_and_execute_workflow...") - - result = Bioyond.process_and_execute_workflow( - workflow_name="test3", - task_name="实验3" - ) - - # 显示执行结果 - print("\n5. 执行结果:") - if isinstance(result, str): - try: - result_dict = json.loads(result) - if result_dict.get("success"): - print("任务创建成功!") - # print(f"- 工作流: {result_dict.get('workflow', {}).get('name')}") - # print(f"- 工作流ID: {result_dict.get('workflow', {}).get('id')}") - # print(f"- 任务结果: {result_dict.get('task')}") - else: - print(f"任务创建失败: {result_dict.get('error')}") - except: - print(f"结果解析失败: {result}") - else: - if result.get("success"): - print("任务创建成功!") - print(f"- 工作流: {result.get('workflow', {}).get('name')}") - print(f"- 工作流ID: {result.get('workflow', {}).get('id')}") - print(f"- 任务结果: {result.get('task')}") - else: - print(f"任务创建失败: {result.get('error')}") - - # 可选:启动调度器 - # Bioyond.scheduler_start() - - return Bioyond - - -# def prepare_materials(bioyond): -# """准备实验材料(可选)""" - -# # 样品板材料数据定义 -# material_data_yp_1 = { -# "typeId": "3a142339-80de-8f25-6093-1b1b1b6c322e", -# "name": "样品板-1", -# "unit": "个", -# "quantity": 1, -# "details": [ -# { -# "typeId": "3a14233a-84a3-088d-6676-7cb4acd57c64", -# "name": "BPDA-DD-1", -# "quantity": 1, -# "x": 1, -# "y": 1, -# "Parameters": "{\"molecular\": 1}" -# }, -# { -# "typeId": "3a14233a-84a3-088d-6676-7cb4acd57c64", -# "name": "PEPA", -# "quantity": 1, -# "x": 1, -# "y": 2, -# "Parameters": "{\"molecular\": 1}" -# }, -# { -# "typeId": "3a14233a-84a3-088d-6676-7cb4acd57c64", -# "name": "BPDA-DD-2", -# "quantity": 1, -# "x": 1, -# "y": 3, -# "Parameters": "{\"molecular\": 1}" -# }, -# { -# "typeId": "3a14233a-84a3-088d-6676-7cb4acd57c64", -# "name": "BPDA-1", -# "quantity": 1, -# "x": 2, -# "y": 1, -# "Parameters": "{\"molecular\": 1}" -# }, -# { -# "typeId": "3a14233a-84a3-088d-6676-7cb4acd57c64", -# "name": "PMDA", -# "quantity": 1, -# "x": 2, -# "y": 2, -# "Parameters": "{\"molecular\": 1}" -# }, -# { -# "typeId": "3a14233a-84a3-088d-6676-7cb4acd57c64", -# "name": "BPDA-2", -# "quantity": 1, -# "x": 2, -# "y": 3, -# "Parameters": "{\"molecular\": 1}" -# } -# ], -# "Parameters": "{}" -# } - -# material_data_yp_2 = { -# "typeId": "3a142339-80de-8f25-6093-1b1b1b6c322e", -# "name": "样品板-2", -# "unit": "个", -# "quantity": 1, -# "details": [ -# { -# "typeId": "3a14233a-84a3-088d-6676-7cb4acd57c64", -# "name": "BPDA-DD", -# "quantity": 1, -# "x": 1, -# "y": 1, -# "Parameters": "{\"molecular\": 1}" -# }, -# { -# "typeId": "3a14233a-84a3-088d-6676-7cb4acd57c64", -# "name": "SIDA", -# "quantity": 1, -# "x": 1, -# "y": 2, -# "Parameters": "{\"molecular\": 1}" -# }, -# { -# "typeId": "3a14233a-84a3-088d-6676-7cb4acd57c64", -# "name": "BTDA-1", -# "quantity": 1, -# "x": 2, -# "y": 1, -# "Parameters": "{\"molecular\": 1}" -# }, -# { -# "typeId": "3a14233a-84a3-088d-6676-7cb4acd57c64", -# "name": "BTDA-2", -# "quantity": 1, -# "x": 2, -# "y": 2, -# "Parameters": "{\"molecular\": 1}" -# }, -# { -# "typeId": "3a14233a-84a3-088d-6676-7cb4acd57c64", -# "name": "BTDA-3", -# "quantity": 1, -# "x": 2, -# "y": 3, -# "Parameters": "{\"molecular\": 1}" -# } -# ], -# "Parameters": "{}" -# } - -# # 烧杯材料数据定义 -# beaker_materials = [ -# { -# "typeId": "3a14233b-f0a9-ba84-eaa9-0d4718b361b6", -# "name": "PDA-1", -# "unit": "微升", -# "quantity": 1, -# "parameters": "{\"DeviceMaterialType\":\"NMP\"}" -# }, -# { -# "typeId": "3a14233b-f0a9-ba84-eaa9-0d4718b361b6", -# "name": "TFDB", -# "unit": "微升", -# "quantity": 1, -# "parameters": "{\"DeviceMaterialType\":\"NMP\"}" -# }, -# { -# "typeId": "3a14233b-f0a9-ba84-eaa9-0d4718b361b6", -# "name": "ODA", -# "unit": "微升", -# "quantity": 1, -# "parameters": "{\"DeviceMaterialType\":\"NMP\"}" -# }, -# { -# "typeId": "3a14233b-f0a9-ba84-eaa9-0d4718b361b6", -# "name": "MPDA", -# "unit": "微升", -# "quantity": 1, -# "parameters": "{\"DeviceMaterialType\":\"NMP\"}" -# }, -# { -# "typeId": "3a14233b-f0a9-ba84-eaa9-0d4718b361b6", -# "name": "PDA-2", -# "unit": "微升", -# "quantity": 1, -# "parameters": "{\"DeviceMaterialType\":\"NMP\"}" -# } -# ] - -# # 如果需要,可以在这里调用add_material方法添加材料 -# # 例如: -# # result = bioyond.add_material(json.dumps(material_data_yp_1)) -# # print(f"添加材料结果: {result}") - -# return { -# "sample_plates": [material_data_yp_1, material_data_yp_2], -# "beakers": beaker_materials -# } - - -if __name__ == "__main__": - # 运行主实验流程 - bioyond_client = run_experiment() - - # 可选:准备材料数据 - # materials = prepare_materials(bioyond_client) - # print(f"\n准备的材料数据: {materials}") diff --git a/unilabos/devices/workstation/bioyond_studio/reaction_station.py b/unilabos/devices/workstation/bioyond_studio/reaction_station.py deleted file mode 100644 index ffb83fd3..00000000 --- a/unilabos/devices/workstation/bioyond_studio/reaction_station.py +++ /dev/null @@ -1,1330 +0,0 @@ -import json -import time -import requests -from typing import List, Dict, Any -from pathlib import Path -from datetime import datetime -from unilabos.devices.workstation.bioyond_studio.station import BioyondWorkstation -from unilabos.devices.workstation.bioyond_studio.bioyond_rpc import MachineState -from unilabos.ros.msgs.message_converter import convert_to_ros_msg, Float64, String -from unilabos.devices.workstation.bioyond_studio.config import ( - WORKFLOW_STEP_IDS, - WORKFLOW_TO_SECTION_MAP, - ACTION_NAMES -) -from unilabos.devices.workstation.bioyond_studio.config import API_CONFIG - - -class BioyondReactor: - def __init__(self, config: dict = None, deck=None, protocol_type=None, **kwargs): - self.in_temperature = 0.0 - self.out_temperature = 0.0 - self.pt100_temperature = 0.0 - self.sensor_average_temperature = 0.0 - self.target_temperature = 0.0 - self.setting_temperature = 0.0 - self.viscosity = 0.0 - self.average_viscosity = 0.0 - self.speed = 0.0 - self.force = 0.0 - - def update_metrics(self, payload: Dict[str, Any]): - def _f(v): - try: - return float(v) - except Exception: - return 0.0 - self.target_temperature = _f(payload.get("targetTemperature")) - self.setting_temperature = _f(payload.get("settingTemperature")) - self.in_temperature = _f(payload.get("inTemperature")) - self.out_temperature = _f(payload.get("outTemperature")) - self.pt100_temperature = _f(payload.get("pt100Temperature")) - self.sensor_average_temperature = _f(payload.get("sensorAverageTemperature")) - self.speed = _f(payload.get("speed")) - self.force = _f(payload.get("force")) - self.viscosity = _f(payload.get("viscosity")) - self.average_viscosity = _f(payload.get("averageViscosity")) - - -class BioyondReactionStation(BioyondWorkstation): - """Bioyond反应站类 - - 继承自BioyondWorkstation,提供反应站特定的业务方法 - """ - - def __init__(self, config: dict = None, deck=None, protocol_type=None, **kwargs): - """初始化反应站 - - Args: - config: 配置字典,应包含workflow_mappings等配置 - deck: Deck对象 - protocol_type: 协议类型(由ROS系统传递,此处忽略) - **kwargs: 其他可能的参数 - """ - if deck is None and config: - deck = config.get('deck') - - print(f"BioyondReactionStation初始化 - config包含workflow_mappings: {'workflow_mappings' in (config or {})}") - if config and 'workflow_mappings' in config: - print(f"workflow_mappings内容: {config['workflow_mappings']}") - - super().__init__(bioyond_config=config, deck=deck) - - print(f"BioyondReactionStation初始化完成 - workflow_mappings: {self.workflow_mappings}") - print(f"workflow_mappings长度: {len(self.workflow_mappings)}") - - self.in_temperature = 0.0 - self.out_temperature = 0.0 - self.pt100_temperature = 0.0 - self.sensor_average_temperature = 0.0 - self.target_temperature = 0.0 - self.setting_temperature = 0.0 - self.viscosity = 0.0 - self.average_viscosity = 0.0 - self.speed = 0.0 - self.force = 0.0 - - self._frame_to_reactor_id = {1: "reactor_1", 2: "reactor_2", 3: "reactor_3", 4: "reactor_4", 5: "reactor_5"} - - # ==================== 工作流方法 ==================== - - def reactor_taken_out(self): - """反应器取出""" - self.append_to_workflow_sequence('{"web_workflow_name": "reactor_taken_out"}') - reactor_taken_out_params = {"param_values": {}} - self.pending_task_params.append(reactor_taken_out_params) - print(f"成功添加反应器取出工作流") - print(f"当前队列长度: {len(self.pending_task_params)}") - return json.dumps({"suc": True}) - - def reactor_taken_in( - self, - assign_material_name: str, - cutoff: str = "900000", - temperature: float = -10.00 - ): - """反应器放入 - - Args: - assign_material_name: 物料名称(不能为空) - cutoff: 粘度上限(需为有效数字字符串,默认 "900000") - temperature: 温度设定(°C,范围:-50.00 至 100.00) - - Returns: - str: JSON 字符串,格式为 {"suc": True} - - Raises: - ValueError: 若物料名称无效或 cutoff 格式错误 - """ - if not assign_material_name: - raise ValueError("物料名称不能为空") - try: - float(cutoff) - except ValueError: - raise ValueError("cutoff 必须是有效的数字字符串") - - self.append_to_workflow_sequence('{"web_workflow_name": "reactor_taken_in"}') - material_id = self.hardware_interface._get_material_id_by_name(assign_material_name) - if material_id is None: - raise ValueError(f"无法找到物料 {assign_material_name} 的 ID") - - if isinstance(temperature, str): - temperature = float(temperature) - - step_id = WORKFLOW_STEP_IDS["reactor_taken_in"]["config"] - reactor_taken_in_params = { - "param_values": { - step_id: { - ACTION_NAMES["reactor_taken_in"]["config"]: [ - {"m": 0, "n": 3, "Key": "cutoff", "Value": cutoff}, - {"m": 0, "n": 3, "Key": "assignMaterialName", "Value": material_id} - ], - ACTION_NAMES["reactor_taken_in"]["stirring"]: [ - {"m": 0, "n": 3, "Key": "temperature", "Value": f"{temperature:.2f}"} - ] - } - } - } - - self.pending_task_params.append(reactor_taken_in_params) - print(f"成功添加反应器放入参数: material={assign_material_name}->ID:{material_id}, cutoff={cutoff}, temp={temperature:.2f}") - print(f"当前队列长度: {len(self.pending_task_params)}") - return json.dumps({"suc": True}) - - def solid_feeding_vials( - self, - material_id: str, - time: str = "0", - torque_variation: int = 1, - assign_material_name: str = None, - temperature: float = 25.00 - ): - """固体进料小瓶 - - Args: - material_id: 粉末类型ID,1=盐(21分钟),2=面粉(27分钟),3=BTDA(38分钟) - time: 观察时间(分钟) - torque_variation: 是否观察(int类型, 1=否, 2=是) - assign_material_name: 物料名称(用于获取试剂瓶位ID) - temperature: 温度设定(°C) - """ - self.append_to_workflow_sequence('{"web_workflow_name": "Solid_feeding_vials"}') - material_id_m = self.hardware_interface._get_material_id_by_name(assign_material_name) if assign_material_name else None - - if isinstance(temperature, str): - temperature = float(temperature) - - feeding_step_id = WORKFLOW_STEP_IDS["solid_feeding_vials"]["feeding"] - observe_step_id = WORKFLOW_STEP_IDS["solid_feeding_vials"]["observe"] - - solid_feeding_vials_params = { - "param_values": { - feeding_step_id: { - ACTION_NAMES["solid_feeding_vials"]["feeding"]: [ - {"m": 0, "n": 3, "Key": "materialId", "Value": material_id}, - {"m": 0, "n": 3, "Key": "assignMaterialName", "Value": material_id_m} if material_id_m else {} - ] - }, - observe_step_id: { - ACTION_NAMES["solid_feeding_vials"]["observe"]: [ - {"m": 1, "n": 0, "Key": "time", "Value": time}, - {"m": 1, "n": 0, "Key": "torqueVariation", "Value": str(torque_variation)}, - {"m": 1, "n": 0, "Key": "temperature", "Value": f"{temperature:.2f}"} - ] - } - } - } - - self.pending_task_params.append(solid_feeding_vials_params) - print(f"成功添加固体进料小瓶参数: material_id={material_id}, time={time}min, torque={torque_variation}, temp={temperature:.2f}°C") - print(f"当前队列长度: {len(self.pending_task_params)}") - return json.dumps({"suc": True}) - - def liquid_feeding_vials_non_titration( - self, - volume_formula: str, - assign_material_name: str, - titration_type: str = "1", - time: str = "0", - torque_variation: int = 1, - temperature: float = 25.00 - ): - """液体进料小瓶(非滴定) - - Args: - volume_formula: 分液公式(μL) - assign_material_name: 物料名称 - titration_type: 是否滴定(1=否, 2=是) - time: 观察时间(分钟) - torque_variation: 是否观察(int类型, 1=否, 2=是) - temperature: 温度(°C) - """ - self.append_to_workflow_sequence('{"web_workflow_name": "Liquid_feeding_vials(non-titration)"}') - material_id = self.hardware_interface._get_material_id_by_name(assign_material_name) - if material_id is None: - raise ValueError(f"无法找到物料 {assign_material_name} 的 ID") - - if isinstance(temperature, str): - temperature = float(temperature) - - liquid_step_id = WORKFLOW_STEP_IDS["liquid_feeding_vials_non_titration"]["liquid"] - observe_step_id = WORKFLOW_STEP_IDS["liquid_feeding_vials_non_titration"]["observe"] - - params = { - "param_values": { - liquid_step_id: { - ACTION_NAMES["liquid_feeding_vials_non_titration"]["liquid"]: [ - {"m": 0, "n": 3, "Key": "volumeFormula", "Value": volume_formula}, - {"m": 0, "n": 3, "Key": "assignMaterialName", "Value": material_id}, - {"m": 0, "n": 3, "Key": "titrationType", "Value": titration_type} - ] - }, - observe_step_id: { - ACTION_NAMES["liquid_feeding_vials_non_titration"]["observe"]: [ - {"m": 1, "n": 0, "Key": "time", "Value": time}, - {"m": 1, "n": 0, "Key": "torqueVariation", "Value": str(torque_variation)}, - {"m": 1, "n": 0, "Key": "temperature", "Value": f"{temperature:.2f}"} - ] - } - } - } - - self.pending_task_params.append(params) - print(f"成功添加液体进料小瓶(非滴定)参数: volume={volume_formula}μL, material={assign_material_name}->ID:{material_id}") - print(f"当前队列长度: {len(self.pending_task_params)}") - return json.dumps({"suc": True}) - - def liquid_feeding_solvents( - self, - assign_material_name: str, - volume: str = None, - solvents = None, - titration_type: str = "1", - time: str = "360", - torque_variation: int = 2, - temperature: float = 25.00 - ): - """液体进料-溶剂 - - Args: - assign_material_name: 物料名称 - volume: 分液量(μL),直接指定体积(可选,如果提供solvents则自动计算) - solvents: 溶剂信息的字典或JSON字符串(可选),格式如下: - { - "additional_solvent": 33.55092503597727, # 溶剂体积(mL) - "total_liquid_volume": 48.00916988195499 - } - 如果提供solvents,则从中提取additional_solvent并转换为μL - titration_type: 是否滴定(1=否, 2=是) - time: 观察时间(分钟) - torque_variation: 是否观察(int类型, 1=否, 2=是) - temperature: 温度设定(°C) - """ - # 处理 volume 参数:优先使用直接传入的 volume,否则从 solvents 中提取 - if not volume and solvents is not None: - # 参数类型转换:如果是字符串则解析为字典 - if isinstance(solvents, str): - try: - solvents = json.loads(solvents) - except json.JSONDecodeError as e: - raise ValueError(f"solvents参数JSON解析失败: {str(e)}") - - # 参数验证 - if not isinstance(solvents, dict): - raise ValueError("solvents 必须是字典类型或有效的JSON字符串") - - # 提取 additional_solvent 值 - additional_solvent = solvents.get("additional_solvent") - if additional_solvent is None: - raise ValueError("solvents 中没有找到 additional_solvent 字段") - - # 转换为微升(μL) - 从毫升(mL)转换 - volume = str(float(additional_solvent) * 1000) - elif volume is None: - raise ValueError("必须提供 volume 或 solvents 参数之一") - - self.append_to_workflow_sequence('{"web_workflow_name": "Liquid_feeding_solvents"}') - material_id = self.hardware_interface._get_material_id_by_name(assign_material_name) - if material_id is None: - raise ValueError(f"无法找到物料 {assign_material_name} 的 ID") - - if isinstance(temperature, str): - temperature = float(temperature) - - liquid_step_id = WORKFLOW_STEP_IDS["liquid_feeding_solvents"]["liquid"] - observe_step_id = WORKFLOW_STEP_IDS["liquid_feeding_solvents"]["observe"] - - params = { - "param_values": { - liquid_step_id: { - ACTION_NAMES["liquid_feeding_solvents"]["liquid"]: [ - {"m": 0, "n": 1, "Key": "titrationType", "Value": titration_type}, - {"m": 0, "n": 1, "Key": "volume", "Value": volume}, - {"m": 0, "n": 1, "Key": "assignMaterialName", "Value": material_id} - ] - }, - observe_step_id: { - ACTION_NAMES["liquid_feeding_solvents"]["observe"]: [ - {"m": 1, "n": 0, "Key": "time", "Value": time}, - {"m": 1, "n": 0, "Key": "torqueVariation", "Value": str(torque_variation)}, - {"m": 1, "n": 0, "Key": "temperature", "Value": f"{temperature:.2f}"} - ] - } - } - } - - self.pending_task_params.append(params) - print(f"成功添加液体进料溶剂参数: material={assign_material_name}->ID:{material_id}, volume={volume}μL") - print(f"当前队列长度: {len(self.pending_task_params)}") - return json.dumps({"suc": True}) - - def liquid_feeding_titration( - self, - assign_material_name: str, - volume_formula: str = None, - x_value: str = None, - feeding_order_data: str = None, - extracted_actuals: str = None, - titration_type: str = "2", - time: str = "90", - torque_variation: int = 2, - temperature: float = 25.00 - ): - """液体进料(滴定) - - 支持两种模式: - 1. 直接提供 volume_formula (传统方式) - 2. 自动计算公式: 提供 x_value, feeding_order_data, extracted_actuals (新方式) - - Args: - assign_material_name: 物料名称 - volume_formula: 分液公式(μL),如果提供则直接使用,否则自动计算 - x_value: 手工输入的x值,格式如 "1-2-3" - feeding_order_data: feeding_order JSON字符串或对象,用于获取m二酐值 - extracted_actuals: 从报告提取的实际加料量JSON字符串,包含actualTargetWeigh和actualVolume - titration_type: 是否滴定(1=否, 2=是),默认2 - time: 观察时间(分钟) - torque_variation: 是否观察(int类型, 1=否, 2=是) - temperature: 温度(°C) - - 自动公式模板: 1000*(m二酐-x)*V二酐滴定/m二酐滴定 - 其中: - - m二酐滴定 = actualTargetWeigh (从extracted_actuals获取) - - V二酐滴定 = actualVolume (从extracted_actuals获取) - - x = x_value (手工输入) - - m二酐 = feeding_order中type为"main_anhydride"的amount值 - """ - self.append_to_workflow_sequence('{"web_workflow_name": "Liquid_feeding(titration)"}') - material_id = self.hardware_interface._get_material_id_by_name(assign_material_name) - if material_id is None: - raise ValueError(f"无法找到物料 {assign_material_name} 的 ID") - - if isinstance(temperature, str): - temperature = float(temperature) - - # 如果没有直接提供volume_formula,则自动计算 - if not volume_formula and x_value and feeding_order_data and extracted_actuals: - # 1. 解析 feeding_order_data 获取 m二酐 - if isinstance(feeding_order_data, str): - try: - feeding_order_data = json.loads(feeding_order_data) - except json.JSONDecodeError as e: - raise ValueError(f"feeding_order_data JSON解析失败: {str(e)}") - - # 支持两种格式: - # 格式1: 直接是数组 [{...}, {...}] - # 格式2: 对象包裹 {"feeding_order": [{...}, {...}]} - if isinstance(feeding_order_data, list): - feeding_order_list = feeding_order_data - elif isinstance(feeding_order_data, dict): - feeding_order_list = feeding_order_data.get("feeding_order", []) - else: - raise ValueError("feeding_order_data 必须是数组或包含feeding_order的字典") - - # 从feeding_order中找到main_anhydride的amount - m_anhydride = None - for item in feeding_order_list: - if item.get("type") == "main_anhydride": - m_anhydride = item.get("amount") - break - - if m_anhydride is None: - raise ValueError("在feeding_order中未找到type为'main_anhydride'的条目") - - # 2. 解析 extracted_actuals 获取 actualTargetWeigh 和 actualVolume - if isinstance(extracted_actuals, str): - try: - extracted_actuals_obj = json.loads(extracted_actuals) - except json.JSONDecodeError as e: - raise ValueError(f"extracted_actuals JSON解析失败: {str(e)}") - else: - extracted_actuals_obj = extracted_actuals - - # 获取actuals数组 - actuals_list = extracted_actuals_obj.get("actuals", []) - if not actuals_list: - # actuals为空,无法自动生成公式,回退到手动模式 - print(f"警告: extracted_actuals中actuals数组为空,无法自动生成公式,请手动提供volume_formula") - volume_formula = None # 清空,触发后续的错误检查 - else: - # 根据assign_material_name匹配对应的actual数据 - # 假设order_code中包含物料名称 - matched_actual = None - for actual in actuals_list: - order_code = actual.get("order_code", "") - # 简单匹配:如果order_code包含物料名称 - if assign_material_name in order_code: - matched_actual = actual - break - - # 如果没有匹配到,使用第一个 - if not matched_actual and actuals_list: - matched_actual = actuals_list[0] - - if not matched_actual: - raise ValueError("无法从extracted_actuals中获取实际加料量数据") - - m_anhydride_titration = matched_actual.get("actualTargetWeigh") # m二酐滴定 - v_anhydride_titration = matched_actual.get("actualVolume") # V二酐滴定 - - if m_anhydride_titration is None or v_anhydride_titration is None: - raise ValueError(f"实际加料量数据不完整: actualTargetWeigh={m_anhydride_titration}, actualVolume={v_anhydride_titration}") - - # 3. 构建公式: 1000*(m二酐-x)*V二酐滴定/m二酐滴定 - # x_value 格式如 "{{1-2-3}}",保留完整格式(包括花括号)直接替换到公式中 - volume_formula = f"1000*({m_anhydride}-{x_value})*{v_anhydride_titration}/{m_anhydride_titration}" - - print(f"自动生成滴定公式: {volume_formula}") - print(f" m二酐={m_anhydride}, x={x_value}, V二酐滴定={v_anhydride_titration}, m二酐滴定={m_anhydride_titration}") - - elif not volume_formula: - raise ValueError("必须提供 volume_formula 或 (x_value + feeding_order_data + extracted_actuals)") - - liquid_step_id = WORKFLOW_STEP_IDS["liquid_feeding_titration"]["liquid"] - observe_step_id = WORKFLOW_STEP_IDS["liquid_feeding_titration"]["observe"] - - params = { - "param_values": { - liquid_step_id: { - ACTION_NAMES["liquid_feeding_titration"]["liquid"]: [ - {"m": 0, "n": 3, "Key": "volumeFormula", "Value": volume_formula}, - {"m": 0, "n": 3, "Key": "titrationType", "Value": titration_type}, - {"m": 0, "n": 3, "Key": "assignMaterialName", "Value": material_id} - ] - }, - observe_step_id: { - ACTION_NAMES["liquid_feeding_titration"]["observe"]: [ - {"m": 1, "n": 0, "Key": "time", "Value": time}, - {"m": 1, "n": 0, "Key": "torqueVariation", "Value": str(torque_variation)}, - {"m": 1, "n": 0, "Key": "temperature", "Value": f"{temperature:.2f}"} - ] - } - } - } - - self.pending_task_params.append(params) - print(f"成功添加液体进料滴定参数: volume={volume_formula}μL, material={assign_material_name}->ID:{material_id}") - print(f"当前队列长度: {len(self.pending_task_params)}") - return json.dumps({"suc": True}) - - def _extract_actuals_from_report(self, report) -> Dict[str, Any]: - data = report.get('data') if isinstance(report, dict) else None - actual_target_weigh = None - actual_volume = None - if data: - extra = data.get('extraProperties') or {} - if isinstance(extra, dict): - for v in extra.values(): - obj = None - try: - obj = json.loads(v) if isinstance(v, str) else v - except Exception: - obj = None - if isinstance(obj, dict): - tw = obj.get('targetWeigh') - vol = obj.get('volume') - if tw is not None: - try: - actual_target_weigh = float(tw) - except Exception: - pass - if vol is not None: - try: - actual_volume = float(vol) - except Exception: - pass - return { - 'actualTargetWeigh': actual_target_weigh, - 'actualVolume': actual_volume - } - - def extract_actuals_from_batch_reports(self, batch_reports_result: str) -> dict: - print(f"[DEBUG] extract_actuals 收到原始数据: {batch_reports_result[:500]}...") # 打印前500字符 - try: - obj = json.loads(batch_reports_result) if isinstance(batch_reports_result, str) else batch_reports_result - if isinstance(obj, dict) and "return_info" in obj: - inner = obj["return_info"] - obj = json.loads(inner) if isinstance(inner, str) else inner - reports = obj.get("reports", []) if isinstance(obj, dict) else [] - print(f"[DEBUG] 解析后的 reports 数组长度: {len(reports)}") - except Exception as e: - print(f"[DEBUG] 解析异常: {e}") - reports = [] - - actuals = [] - for i, r in enumerate(reports): - print(f"[DEBUG] 处理 report[{i}]: order_code={r.get('order_code')}, has_extracted={r.get('extracted') is not None}, has_report={r.get('report') is not None}") - order_code = r.get("order_code") - order_id = r.get("order_id") - ex = r.get("extracted") - if isinstance(ex, dict) and (ex.get("actualTargetWeigh") is not None or ex.get("actualVolume") is not None): - print(f"[DEBUG] 从 extracted 字段提取: actualTargetWeigh={ex.get('actualTargetWeigh')}, actualVolume={ex.get('actualVolume')}") - actuals.append({ - "order_code": order_code, - "order_id": order_id, - "actualTargetWeigh": ex.get("actualTargetWeigh"), - "actualVolume": ex.get("actualVolume") - }) - continue - report = r.get("report") - vals = self._extract_actuals_from_report(report) if report else {"actualTargetWeigh": None, "actualVolume": None} - print(f"[DEBUG] 从 report 字段提取: {vals}") - actuals.append({ - "order_code": order_code, - "order_id": order_id, - **vals - }) - - print(f"[DEBUG] 最终提取的 actuals 数组长度: {len(actuals)}") - result = { - "return_info": json.dumps({"actuals": actuals}, ensure_ascii=False) - } - print(f"[DEBUG] 返回结果: {result}") - return result - - def process_temperature_cutoff_report(self, report_request) -> Dict[str, Any]: - try: - data = report_request.data - def _f(v): - try: - return float(v) - except Exception: - return 0.0 - self.target_temperature = _f(data.get("targetTemperature")) - self.setting_temperature = _f(data.get("settingTemperature")) - self.in_temperature = _f(data.get("inTemperature")) - self.out_temperature = _f(data.get("outTemperature")) - self.pt100_temperature = _f(data.get("pt100Temperature")) - self.sensor_average_temperature = _f(data.get("sensorAverageTemperature")) - self.speed = _f(data.get("speed")) - self.force = _f(data.get("force")) - self.viscosity = _f(data.get("viscosity")) - self.average_viscosity = _f(data.get("averageViscosity")) - - try: - if hasattr(self, "_ros_node") and self._ros_node is not None: - props = [ - "in_temperature","out_temperature","pt100_temperature","sensor_average_temperature", - "target_temperature","setting_temperature","viscosity","average_viscosity", - "speed","force" - ] - for name in props: - pub = self._ros_node._property_publishers.get(name) - if pub: - pub.publish_property() - frame = data.get("frameCode") - reactor_id = None - try: - reactor_id = self._frame_to_reactor_id.get(int(frame)) - except Exception: - reactor_id = None - if reactor_id and hasattr(self._ros_node, "sub_devices"): - child = self._ros_node.sub_devices.get(reactor_id) - if child and hasattr(child, "driver_instance"): - child.driver_instance.update_metrics(data) - pubs = getattr(child.ros_node_instance, "_property_publishers", {}) - for name in props: - p = pubs.get(name) - if p: - p.publish_property() - except Exception: - pass - event = { - "frameCode": data.get("frameCode"), - "generateTime": data.get("generateTime"), - "targetTemperature": data.get("targetTemperature"), - "settingTemperature": data.get("settingTemperature"), - "inTemperature": data.get("inTemperature"), - "outTemperature": data.get("outTemperature"), - "pt100Temperature": data.get("pt100Temperature"), - "sensorAverageTemperature": data.get("sensorAverageTemperature"), - "speed": data.get("speed"), - "force": data.get("force"), - "viscosity": data.get("viscosity"), - "averageViscosity": data.get("averageViscosity"), - "request_time": report_request.request_time, - "timestamp": datetime.now().isoformat(), - "reactor_id": self._frame_to_reactor_id.get(int(data.get("frameCode", 0))) if str(data.get("frameCode", "")).isdigit() else None, - } - - base_dir = Path(__file__).resolve().parents[3] / "unilabos_data" - base_dir.mkdir(parents=True, exist_ok=True) - out_file = base_dir / "temperature_cutoff_events.json" - try: - existing = json.loads(out_file.read_text(encoding="utf-8")) if out_file.exists() else [] - if not isinstance(existing, list): - existing = [] - except Exception: - existing = [] - existing.append(event) - out_file.write_text(json.dumps(existing, ensure_ascii=False, indent=2), encoding="utf-8") - - if hasattr(self, "_ros_node") and self._ros_node is not None: - ns = self._ros_node.namespace - topics = { - "targetTemperature": f"{ns}/metrics/temperature_cutoff/target_temperature", - "settingTemperature": f"{ns}/metrics/temperature_cutoff/setting_temperature", - "inTemperature": f"{ns}/metrics/temperature_cutoff/in_temperature", - "outTemperature": f"{ns}/metrics/temperature_cutoff/out_temperature", - "pt100Temperature": f"{ns}/metrics/temperature_cutoff/pt100_temperature", - "sensorAverageTemperature": f"{ns}/metrics/temperature_cutoff/sensor_average_temperature", - "speed": f"{ns}/metrics/temperature_cutoff/speed", - "force": f"{ns}/metrics/temperature_cutoff/force", - "viscosity": f"{ns}/metrics/temperature_cutoff/viscosity", - "averageViscosity": f"{ns}/metrics/temperature_cutoff/average_viscosity", - } - for k, t in topics.items(): - v = data.get(k) - if v is not None: - pub = self._ros_node.create_publisher(Float64, t, 10) - pub.publish(convert_to_ros_msg(Float64, float(v))) - - evt_pub = self._ros_node.create_publisher(String, f"{ns}/events/temperature_cutoff", 10) - evt_pub.publish(convert_to_ros_msg(String, json.dumps(event, ensure_ascii=False))) - - return {"processed": True, "frame": data.get("frameCode")} - except Exception as e: - return {"processed": False, "error": str(e)} - - def wait_for_multiple_orders_and_get_reports(self, batch_create_result: str = None, timeout: int = 7200, check_interval: int = 10) -> Dict[str, Any]: - try: - timeout = int(timeout) if timeout else 7200 - check_interval = int(check_interval) if check_interval else 10 - if not batch_create_result or batch_create_result == "": - raise ValueError("batch_create_result为空") - try: - if isinstance(batch_create_result, str) and '[...]' in batch_create_result: - batch_create_result = batch_create_result.replace('[...]', '[]') - result_obj = json.loads(batch_create_result) if isinstance(batch_create_result, str) else batch_create_result - if isinstance(result_obj, dict) and "return_value" in result_obj: - inner = result_obj.get("return_value") - if isinstance(inner, str): - result_obj = json.loads(inner) - elif isinstance(inner, dict): - result_obj = inner - order_codes = result_obj.get("order_codes", []) - order_ids = result_obj.get("order_ids", []) - except Exception as e: - raise ValueError(f"解析batch_create_result失败: {e}") - if not order_codes or not order_ids: - raise ValueError("缺少order_codes或order_ids") - if not isinstance(order_codes, list): - order_codes = [order_codes] - if not isinstance(order_ids, list): - order_ids = [order_ids] - if len(order_codes) != len(order_ids): - raise ValueError("order_codes与order_ids数量不匹配") - total = len(order_codes) - pending = {c: {"order_id": order_ids[i], "completed": False} for i, c in enumerate(order_codes)} - reports = [] - start_time = time.time() - while pending: - elapsed_time = time.time() - start_time - if elapsed_time > timeout: - for oc in list(pending.keys()): - reports.append({ - "order_code": oc, - "order_id": pending[oc]["order_id"], - "status": "timeout", - "completion_status": None, - "report": None, - "extracted": None, - "elapsed_time": elapsed_time - }) - break - completed_round = [] - for oc in list(pending.keys()): - oid = pending[oc]["order_id"] - if oc in self.order_completion_status: - info = self.order_completion_status[oc] - try: - rep = self.hardware_interface.order_report(oid) - if not rep: - rep = {"error": "无法获取报告"} - reports.append({ - "order_code": oc, - "order_id": oid, - "status": "completed", - "completion_status": info.get('status'), - "report": rep, - "extracted": self._extract_actuals_from_report(rep), - "elapsed_time": elapsed_time - }) - completed_round.append(oc) - del self.order_completion_status[oc] - except Exception as e: - reports.append({ - "order_code": oc, - "order_id": oid, - "status": "error", - "completion_status": info.get('status') if 'info' in locals() else None, - "report": None, - "extracted": None, - "error": str(e), - "elapsed_time": elapsed_time - }) - completed_round.append(oc) - for oc in completed_round: - del pending[oc] - if pending: - time.sleep(check_interval) - completed_count = sum(1 for r in reports if r['status'] == 'completed') - timeout_count = sum(1 for r in reports if r['status'] == 'timeout') - error_count = sum(1 for r in reports if r['status'] == 'error') - final_elapsed_time = time.time() - start_time - summary = { - "total": total, - "completed": completed_count, - "timeout": timeout_count, - "error": error_count, - "elapsed_time": round(final_elapsed_time, 2), - "reports": reports - } - return { - "return_info": json.dumps(summary, ensure_ascii=False) - } - except Exception as e: - raise - - def liquid_feeding_beaker( - self, - volume: str = "350", - assign_material_name: str = "BAPP", - time: str = "0", - torque_variation: int = 1, - titration_type: str = "1", - temperature: float = 25.00 - ): - """液体进料烧杯 - - Args: - volume: 分液质量(g) - assign_material_name: 物料名称(试剂瓶位) - time: 观察时间(分钟) - torque_variation: 是否观察(int类型, 1=否, 2=是) - titration_type: 是否滴定(1=否, 2=是) - temperature: 温度设定(°C) - """ - self.append_to_workflow_sequence('{"web_workflow_name": "liquid_feeding_beaker"}') - material_id = self.hardware_interface._get_material_id_by_name(assign_material_name) - if material_id is None: - raise ValueError(f"无法找到物料 {assign_material_name} 的 ID") - - if isinstance(temperature, str): - temperature = float(temperature) - - liquid_step_id = WORKFLOW_STEP_IDS["liquid_feeding_beaker"]["liquid"] - observe_step_id = WORKFLOW_STEP_IDS["liquid_feeding_beaker"]["observe"] - - params = { - "param_values": { - liquid_step_id: { - ACTION_NAMES["liquid_feeding_beaker"]["liquid"]: [ - {"m": 0, "n": 2, "Key": "volume", "Value": volume}, - {"m": 0, "n": 2, "Key": "assignMaterialName", "Value": material_id}, - {"m": 0, "n": 2, "Key": "titrationType", "Value": titration_type} - ] - }, - observe_step_id: { - ACTION_NAMES["liquid_feeding_beaker"]["observe"]: [ - {"m": 1, "n": 0, "Key": "time", "Value": time}, - {"m": 1, "n": 0, "Key": "torqueVariation", "Value": str(torque_variation)}, - {"m": 1, "n": 0, "Key": "temperature", "Value": f"{temperature:.2f}"} - ] - } - } - } - - self.pending_task_params.append(params) - print(f"成功添加液体进料烧杯参数: volume={volume}μL, material={assign_material_name}->ID:{material_id}") - print(f"当前队列长度: {len(self.pending_task_params)}") - return json.dumps({"suc": True}) - - def drip_back( - self, - assign_material_name: str, - volume: str, - titration_type: str = "1", - time: str = "90", - torque_variation: int = 2, - temperature: float = 25.00 - ): - """滴回去 - - Args: - assign_material_name: 物料名称(液体种类) - volume: 分液量(μL) - titration_type: 是否滴定(1=否, 2=是) - time: 观察时间(分钟) - torque_variation: 是否观察(int类型, 1=否, 2=是) - temperature: 温度(°C) - """ - self.append_to_workflow_sequence('{"web_workflow_name": "drip_back"}') - material_id = self.hardware_interface._get_material_id_by_name(assign_material_name) - if material_id is None: - raise ValueError(f"无法找到物料 {assign_material_name} 的 ID") - - if isinstance(temperature, str): - temperature = float(temperature) - - liquid_step_id = WORKFLOW_STEP_IDS["drip_back"]["liquid"] - observe_step_id = WORKFLOW_STEP_IDS["drip_back"]["observe"] - - params = { - "param_values": { - liquid_step_id: { - ACTION_NAMES["drip_back"]["liquid"]: [ - {"m": 0, "n": 1, "Key": "titrationType", "Value": titration_type}, - {"m": 0, "n": 1, "Key": "assignMaterialName", "Value": material_id}, - {"m": 0, "n": 1, "Key": "volume", "Value": volume} - ] - }, - observe_step_id: { - ACTION_NAMES["drip_back"]["observe"]: [ - {"m": 1, "n": 0, "Key": "time", "Value": time}, - {"m": 1, "n": 0, "Key": "torqueVariation", "Value": str(torque_variation)}, - {"m": 1, "n": 0, "Key": "temperature", "Value": f"{temperature:.2f}"} - ] - } - } - } - - self.pending_task_params.append(params) - print(f"成功添加滴回去参数: material={assign_material_name}->ID:{material_id}, volume={volume}μL") - print(f"当前队列长度: {len(self.pending_task_params)}") - return json.dumps({"suc": True}) - - # ==================== 工作流管理方法 ==================== - - def get_workflow_sequence(self) -> List[str]: - """获取当前工作流执行顺序 - - Returns: - 工作流名称列表 - """ - id_to_name = {workflow_id: name for name, workflow_id in self.workflow_mappings.items()} - workflow_names = [] - for workflow_id in self.workflow_sequence: - workflow_name = id_to_name.get(workflow_id, workflow_id) - workflow_names.append(workflow_name) - print(f"工作流序列: {workflow_names}") - return workflow_names - - def workflow_step_query(self, workflow_id: str) -> dict: - """查询工作流步骤参数 - - Args: - workflow_id: 工作流ID - - Returns: - 工作流步骤参数字典 - """ - return self.hardware_interface.workflow_step_query(workflow_id) - - def create_order(self, json_str: str) -> dict: - """创建订单 - - Args: - json_str: 订单参数的JSON字符串 - - Returns: - 创建结果 - """ - return self.hardware_interface.create_order(json_str) - - def hard_delete_merged_workflows(self, workflow_ids: List[str]) -> Dict[str, Any]: - """ - 调用新接口:硬删除合并后的工作流 - - Args: - workflow_ids: 要删除的工作流ID数组 - - Returns: - 删除结果 - """ - try: - if not isinstance(workflow_ids, list): - raise ValueError("workflow_ids必须是字符串数组") - return self._delete_project_api("/api/lims/order/workflows", workflow_ids) - except Exception as e: - print(f"❌ 硬删除异常: {str(e)}") - return {"code": 0, "message": str(e), "timestamp": int(time.time())} - - # ==================== 项目接口通用方法 ==================== - - def _post_project_api(self, endpoint: str, data: Any) -> Dict[str, Any]: - """项目接口通用POST调用 - - 参数: - endpoint: 接口路径(例如 /api/lims/order/skip-titration-steps) - data: 请求体中的 data 字段内容 - - 返回: - dict: 服务端响应,失败时返回 {code:0,message,...} - """ - request_data = { - "apiKey": API_CONFIG["api_key"], - "requestTime": self.hardware_interface.get_current_time_iso8601(), - "data": data - } - print(f"\n📤 项目POST请求: {self.hardware_interface.host}{endpoint}") - print(json.dumps(request_data, indent=4, ensure_ascii=False)) - try: - response = requests.post( - f"{self.hardware_interface.host}{endpoint}", - json=request_data, - headers={"Content-Type": "application/json"}, - timeout=30 - ) - result = response.json() - if result.get("code") == 1: - print("✅ 请求成功") - else: - print(f"❌ 请求失败: {result.get('message','未知错误')}") - return result - except json.JSONDecodeError: - print("❌ 非JSON响应") - return {"code": 0, "message": "非JSON响应", "timestamp": int(time.time())} - except requests.exceptions.Timeout: - print("❌ 请求超时") - return {"code": 0, "message": "请求超时", "timestamp": int(time.time())} - except requests.exceptions.RequestException as e: - print(f"❌ 网络异常: {str(e)}") - return {"code": 0, "message": str(e), "timestamp": int(time.time())} - - def _delete_project_api(self, endpoint: str, data: Any) -> Dict[str, Any]: - """项目接口通用DELETE调用 - - 参数: - endpoint: 接口路径(例如 /api/lims/order/workflows) - data: 请求体中的 data 字段内容 - - 返回: - dict: 服务端响应,失败时返回 {code:0,message,...} - """ - request_data = { - "apiKey": API_CONFIG["api_key"], - "requestTime": self.hardware_interface.get_current_time_iso8601(), - "data": data - } - print(f"\n📤 项目DELETE请求: {self.hardware_interface.host}{endpoint}") - print(json.dumps(request_data, indent=4, ensure_ascii=False)) - try: - response = requests.delete( - f"{self.hardware_interface.host}{endpoint}", - json=request_data, - headers={"Content-Type": "application/json"}, - timeout=30 - ) - result = response.json() - if result.get("code") == 1: - print("✅ 请求成功") - else: - print(f"❌ 请求失败: {result.get('message','未知错误')}") - return result - except json.JSONDecodeError: - print("❌ 非JSON响应") - return {"code": 0, "message": "非JSON响应", "timestamp": int(time.time())} - except requests.exceptions.Timeout: - print("❌ 请求超时") - return {"code": 0, "message": "请求超时", "timestamp": int(time.time())} - except requests.exceptions.RequestException as e: - print(f"❌ 网络异常: {str(e)}") - return {"code": 0, "message": str(e), "timestamp": int(time.time())} - - # ==================== 工作流执行核心方法 ==================== - - def process_web_workflows(self, web_workflow_json: str) -> List[Dict[str, str]]: - """处理网页工作流列表 - - Args: - web_workflow_json: JSON 格式的网页工作流列表 - - Returns: - List[Dict[str, str]]: 包含工作流 ID 和名称的字典列表 - """ - try: - web_workflow_data = json.loads(web_workflow_json) - web_workflow_list = web_workflow_data.get("web_workflow_list", []) - workflows_result = [] - for name in web_workflow_list: - workflow_id = self.workflow_mappings.get(name, "") - if not workflow_id: - print(f"警告:未找到工作流名称 {name} 对应的 ID") - continue - workflows_result.append({"id": workflow_id, "name": name}) - print(f"process_web_workflows 输出: {workflows_result}") - return workflows_result - except json.JSONDecodeError as e: - print(f"错误:无法解析 web_workflow_json: {e}") - return [] - except Exception as e: - print(f"错误:处理工作流失败: {e}") - return [] - - def _build_workflows_with_parameters(self, workflows_result: list) -> list: - """ - 构建带参数的工作流列表 - - Args: - workflows_result: 处理后的工作流列表(应为包含 id 和 name 的字典列表) - - Returns: - 符合新接口格式的工作流参数结构 - """ - workflows_with_params = [] - total_params = 0 - successful_params = 0 - failed_params = [] - - for idx, workflow_info in enumerate(workflows_result): - if not isinstance(workflow_info, dict): - print(f"错误:workflows_result[{idx}] 不是字典,而是 {type(workflow_info)}: {workflow_info}") - continue - workflow_id = workflow_info.get("id") - if not workflow_id: - print(f"警告:workflows_result[{idx}] 缺少 'id' 键") - continue - workflow_name = workflow_info.get("name", "") - # print(f"\n🔧 处理工作流 [{idx}]: {workflow_name} (ID: {workflow_id})") - - if idx >= len(self.pending_task_params): - # print(f" ⚠️ 无对应参数,跳过") - workflows_with_params.append({"id": workflow_id}) - continue - - param_data = self.pending_task_params[idx] - param_values = param_data.get("param_values", {}) - if not param_values: - # print(f" ⚠️ 参数为空,跳过") - workflows_with_params.append({"id": workflow_id}) - continue - - step_parameters = {} - for step_id, actions_dict in param_values.items(): - # print(f" 📍 步骤ID: {step_id}") - for action_name, param_list in actions_dict.items(): - # print(f" 🔹 模块: {action_name}, 参数数量: {len(param_list)}") - if step_id not in step_parameters: - step_parameters[step_id] = {} - if action_name not in step_parameters[step_id]: - step_parameters[step_id][action_name] = [] - for param_item in param_list: - param_key = param_item.get("Key", "") - param_value = param_item.get("Value", "") - total_params += 1 - step_parameters[step_id][action_name].append({ - "Key": param_key, - "DisplayValue": param_value, - "Value": param_value - }) - successful_params += 1 - # print(f" ✓ {param_key} = {param_value}") - - workflows_with_params.append({ - "id": workflow_id, - "stepParameters": step_parameters - }) - - self._print_mapping_stats(total_params, successful_params, failed_params) - return workflows_with_params - - def _print_mapping_stats(self, total: int, success: int, failed: list): - """打印参数映射统计""" - print(f"\n{'='*20} 参数映射统计 {'='*20}") - print(f"📊 总参数数量: {total}") - print(f"✅ 成功映射: {success}") - print(f"❌ 映射失败: {len(failed)}") - if not failed: - print("🎉 成功映射所有参数!") - else: - print(f"⚠️ 失败的参数: {', '.join(failed)}") - success_rate = (success/total*100) if total > 0 else 0 - print(f"📈 映射成功率: {success_rate:.1f}%") - print("="*60) - - def _create_error_result(self, error_msg: str, step: str) -> str: - """创建统一的错误返回格式""" - print(f"❌ {error_msg}") - return json.dumps({ - "success": False, - "error": f"process_and_execute_workflow: {error_msg}", - "method": "process_and_execute_workflow", - "step": step - }) - - def merge_workflow_with_parameters(self, json_str: str) -> dict: - """ - 调用新接口:合并工作流并传递参数 - - Args: - json_str: JSON格式的字符串,包含: - - name: 工作流名称 - - workflows: [{"id": "工作流ID", "stepParameters": {...}}] - - Returns: - 合并后的工作流信息 - """ - try: - data = json.loads(json_str) - - # 在工作流名称后面添加时间戳,避免重复 - if "name" in data and data["name"]: - timestamp = self.hardware_interface.get_current_time_iso8601().replace(":", "-").replace(".", "-") - original_name = data["name"] - data["name"] = f"{original_name}_{timestamp}" - print(f"🕒 工作流名称已添加时间戳: {original_name} -> {data['name']}") - - request_data = { - "apiKey": API_CONFIG["api_key"], - "requestTime": self.hardware_interface.get_current_time_iso8601(), - "data": data - } - print(f"\n📤 发送合并请求:") - print(f" 工作流名称: {data.get('name')}") - print(f" 子工作流数量: {len(data.get('workflows', []))}") - - # 打印完整的POST请求内容 - print(f"\n🔍 POST请求详细内容:") - print(f" URL: {self.hardware_interface.host}/api/lims/workflow/merge-workflow-with-parameters") - print(f" Headers: {{'Content-Type': 'application/json'}}") - print(f" Request Data:") - print(f" {json.dumps(request_data, indent=4, ensure_ascii=False)}") - # - response = requests.post( - f"{self.hardware_interface.host}/api/lims/workflow/merge-workflow-with-parameters", - json=request_data, - headers={"Content-Type": "application/json"}, - timeout=30 - ) - - # # 打印响应详细内容 - # print(f"\n📥 POST响应详细内容:") - # print(f" 状态码: {response.status_code}") - # print(f" 响应头: {dict(response.headers)}") - # print(f" 响应体: {response.text}") - # # - try: - result = response.json() - # # - # print(f"\n📋 解析后的响应JSON:") - # print(f" {json.dumps(result, indent=4, ensure_ascii=False)}") - # # - except json.JSONDecodeError: - print(f"❌ 服务器返回非 JSON 格式响应: {response.text}") - return None - - if result.get("code") == 1: - print(f"✅ 工作流合并成功(带参数)") - return result.get("data", {}) - else: - error_msg = result.get('message', '未知错误') - print(f"❌ 工作流合并失败: {error_msg}") - return None - - except requests.exceptions.Timeout: - print(f"❌ 合并工作流请求超时") - return None - except requests.exceptions.RequestException as e: - print(f"❌ 合并工作流网络异常: {str(e)}") - return None - except json.JSONDecodeError as e: - print(f"❌ 合并工作流响应解析失败: {str(e)}") - return None - except Exception as e: - print(f"❌ 合并工作流异常: {str(e)}") - return None - - def _validate_and_refresh_workflow_if_needed(self, workflow_name: str) -> bool: - """验证工作流ID是否有效,如果无效则重新合并 - - Args: - workflow_name: 工作流名称 - - Returns: - bool: 验证或刷新是否成功 - """ - print(f"\n🔍 验证工作流ID有效性...") - if not self.workflow_sequence: - print(f" ⚠️ 工作流序列为空,需要重新合并") - return False - first_workflow_id = self.workflow_sequence[0] - try: - structure = self.workflow_step_query(first_workflow_id) - if structure: - print(f" ✅ 工作流ID有效") - return True - else: - print(f" ⚠️ 工作流ID已过期,需要重新合并") - return False - except Exception as e: - print(f" ❌ 工作流ID验证失败: {e}") - print(f" 💡 将重新合并工作流") - return False - - def process_and_execute_workflow(self, workflow_name: str, task_name: str) -> dict: - """ - 一站式处理工作流程:解析网页工作流列表,合并工作流(带参数),然后发布任务 - - Args: - workflow_name: 合并后的工作流名称 - task_name: 任务名称 - - Returns: - 任务创建结果 - """ - web_workflow_list = self.get_workflow_sequence() - print(f"\n{'='*60}") - print(f"📋 处理网页工作流列表: {web_workflow_list}") - print(f"{'='*60}") - - web_workflow_json = json.dumps({"web_workflow_list": web_workflow_list}) - workflows_result = self.process_web_workflows(web_workflow_json) - - if not workflows_result: - return self._create_error_result("处理网页工作流列表失败", "process_web_workflows") - - print(f"workflows_result 类型: {type(workflows_result)}") - print(f"workflows_result 内容: {workflows_result}") - - workflows_with_params = self._build_workflows_with_parameters(workflows_result) - - merge_data = { - "name": workflow_name, - "workflows": workflows_with_params - } - - # print(f"\n🔄 合并工作流(带参数),名称: {workflow_name}") - merged_workflow = self.merge_workflow_with_parameters(json.dumps(merge_data)) - - if not merged_workflow: - return self._create_error_result("合并工作流失败", "merge_workflow_with_parameters") - - workflow_id = merged_workflow.get("subWorkflows", [{}])[0].get("id", "") - # print(f"\n📤 使用工作流创建任务: {workflow_name} (ID: {workflow_id})") - - order_params = [{ - "orderCode": f"task_{self.hardware_interface.get_current_time_iso8601()}", - "orderName": task_name, - "workFlowId": workflow_id, - "borderNumber": 1, - "paramValues": {} - }] - - result = self.create_order(json.dumps(order_params)) - - if not result: - return self._create_error_result("创建任务失败", "create_order") - - # 清空工作流序列和参数,防止下次执行时累积重复 - self.pending_task_params = [] - self.clear_workflows() # 清空工作流序列,避免重复累积 - - # print(f"\n✅ 任务创建成功: {result}") - # print(f"\n✅ 任务创建成功") - print(f"{'='*60}\n") - - # 返回结果,包含合并后的工作流数据和订单参数 - return json.dumps({ - "success": True, - "result": result, - "merged_workflow": merged_workflow, - "order_params": order_params - }) - - # ==================== 反应器操作接口 ==================== - - def skip_titration_steps(self, preintake_id: str) -> Dict[str, Any]: - """跳过当前正在进行的滴定步骤 - - Args: - preintake_id: 通量ID - - Returns: - Dict[str, Any]: 服务器响应,包含状态码、消息和时间戳 - """ - try: - return self._post_project_api("/api/lims/order/skip-titration-steps", preintake_id) - except Exception as e: - print(f"❌ 跳过滴定异常: {str(e)}") - return {"code": 0, "message": str(e), "timestamp": int(time.time())} diff --git a/unilabos/devices/workstation/bioyond_studio/station.py b/unilabos/devices/workstation/bioyond_studio/station.py deleted file mode 100644 index e349b083..00000000 --- a/unilabos/devices/workstation/bioyond_studio/station.py +++ /dev/null @@ -1,1444 +0,0 @@ -""" -Bioyond工作站实现 -Bioyond Workstation Implementation - -集成Bioyond物料管理的工作站示例 -""" -import time -import traceback -from datetime import datetime -from typing import Dict, Any, List, Optional, Union -import json -from pathlib import Path - -from unilabos.devices.workstation.workstation_base import WorkstationBase, ResourceSynchronizer -from unilabos.devices.workstation.bioyond_studio.bioyond_rpc import BioyondV1RPC -from unilabos.registry.placeholder_type import ResourceSlot, DeviceSlot -from unilabos.resources.warehouse import WareHouse -from unilabos.utils.log import logger -from unilabos.resources.graphio import resource_bioyond_to_plr, resource_plr_to_bioyond - -from unilabos.ros.nodes.base_device_node import ROS2DeviceNode, BaseROS2DeviceNode -from unilabos.ros.nodes.presets.workstation import ROS2WorkstationNode -from unilabos.ros.msgs.message_converter import convert_to_ros_msg, Float64, String -from pylabrobot.resources.resource import Resource as ResourcePLR - -from unilabos.devices.workstation.bioyond_studio.config import ( - API_CONFIG, WORKFLOW_MAPPINGS, MATERIAL_TYPE_MAPPINGS, WAREHOUSE_MAPPING, HTTP_SERVICE_CONFIG -) -from unilabos.devices.workstation.workstation_http_service import WorkstationHTTPService - - -class BioyondResourceSynchronizer(ResourceSynchronizer): - """Bioyond资源同步器 - - 负责与Bioyond系统进行物料数据的同步 - """ - - def __init__(self, workstation: 'BioyondWorkstation'): - super().__init__(workstation) - self.bioyond_api_client = None - self.sync_interval = 60 # 默认60秒同步一次 - self.last_sync_time = 0 - self.initialize() - - def initialize(self) -> bool: - """初始化Bioyond资源同步器""" - try: - self.bioyond_api_client = self.workstation.hardware_interface - if self.bioyond_api_client is None: - logger.error("Bioyond API客户端未初始化") - return False - - # 设置同步间隔 - self.sync_interval = self.workstation.bioyond_config.get("sync_interval", 600) - - logger.info("Bioyond资源同步器初始化完成") - return True - except Exception as e: - logger.error(f"Bioyond资源同步器初始化失败: {e}") - return False - - def sync_from_external(self) -> bool: - """从Bioyond系统同步物料数据""" - try: - if self.bioyond_api_client is None: - logger.error("Bioyond API客户端未初始化") - return False - - # 同时查询耗材类型(typeMode=0)、样品类型(typeMode=1)和试剂类型(typeMode=2) - all_bioyond_data = [] - - # 查询耗材类型物料(例如:枪头盒) - bioyond_data_type0 = self.bioyond_api_client.stock_material('{"typeMode": 0, "includeDetail": true}') - if bioyond_data_type0: - all_bioyond_data.extend(bioyond_data_type0) - logger.debug(f"从Bioyond查询到 {len(bioyond_data_type0)} 个耗材类型物料") - - # 查询样品类型物料(烧杯、试剂瓶、分装板等) - bioyond_data_type1 = self.bioyond_api_client.stock_material('{"typeMode": 1, "includeDetail": true}') - if bioyond_data_type1: - all_bioyond_data.extend(bioyond_data_type1) - logger.debug(f"从Bioyond查询到 {len(bioyond_data_type1)} 个样品类型物料") - - # 查询试剂类型物料(样品板、样品瓶等) - bioyond_data_type2 = self.bioyond_api_client.stock_material('{"typeMode": 2, "includeDetail": true}') - if bioyond_data_type2: - all_bioyond_data.extend(bioyond_data_type2) - logger.debug(f"从Bioyond查询到 {len(bioyond_data_type2)} 个试剂类型物料") - - if not all_bioyond_data: - logger.warning("从Bioyond获取的物料数据为空") - return False - - # 转换为UniLab格式 - unilab_resources = resource_bioyond_to_plr( - all_bioyond_data, - type_mapping=self.workstation.bioyond_config["material_type_mappings"], - deck=self.workstation.deck - ) - - logger.info(f"从Bioyond同步了 {len(unilab_resources)} 个资源") - return True - except Exception as e: - logger.error(f"从Bioyond同步物料数据失败: {e}") - return False - - def sync_to_external(self, resource: Any) -> bool: - """将本地物料数据变更同步到Bioyond系统""" - try: - # ✅ 跳过仓库类型的资源 - 仓库是容器,不是物料 - resource_category = getattr(resource, "category", None) - if resource_category == "warehouse": - logger.debug(f"[同步→Bioyond] 跳过仓库类型资源: {resource.name} (仓库是容器,不需要同步为物料)") - return True - - logger.info(f"[同步→Bioyond] 收到物料变更: {resource.name}") - - # 获取物料的 Bioyond ID - extra_info = getattr(resource, "unilabos_extra", {}) - material_bioyond_id = extra_info.get("material_bioyond_id") - - # 🔥 查询所有物料,用于获取物料当前位置等信息 - existing_materials = [] - try: - import json - logger.info(f"[同步→Bioyond] 查询 Bioyond 系统中的所有物料...") - all_materials = [] - - for type_mode in [0, 1, 2]: # 0=耗材, 1=样品, 2=试剂 - query_params = json.dumps({ - "typeMode": type_mode, - "filter": "", - "includeDetail": True - }) - materials = self.bioyond_api_client.stock_material(query_params) - if materials: - all_materials.extend(materials) - - existing_materials = all_materials - logger.info(f"[同步→Bioyond] 查询到 {len(all_materials)} 个物料") - except Exception as e: - logger.error(f"查询 Bioyond 物料失败: {e}") - return False - - # ⭐ 如果没有 Bioyond ID,尝试从查询结果中按名称匹配 - if not material_bioyond_id: - logger.warning(f"[同步→Bioyond] 物料 {resource.name} 没有 Bioyond ID,尝试按名称查询...") - for mat in existing_materials: - if mat.get("name") == resource.name: - material_bioyond_id = mat.get("id") - mat_type = mat.get("typeName", "未知") - logger.info(f"✅ 找到物料 {resource.name} ({mat_type}) 的 Bioyond ID: {material_bioyond_id[:8]}...") - # 保存 ID 到资源对象 - extra_info["material_bioyond_id"] = material_bioyond_id - setattr(resource, "unilabos_extra", extra_info) - break - - if not material_bioyond_id: - logger.warning(f"⚠️ 在 Bioyond 系统中未找到名为 {resource.name} 的物料") - logger.info(f"[同步→Bioyond] 这是一个新物料,将创建并入库到 Bioyond 系统") - - # 检查是否有位置更新请求 - update_site = extra_info.get("update_resource_site") - - if not update_site: - logger.debug(f"[同步→Bioyond] 物料 {resource.name} 无位置更新请求,跳过同步") - return True - - # ===== 物料移动/创建流程 ===== - logger.info(f"[同步→Bioyond] 📍 物料 {resource.name} 目标库位: {update_site}") - - if material_bioyond_id: - logger.info(f"[同步→Bioyond] 🔄 物料已存在于 Bioyond (ID: {material_bioyond_id[:8]}...),执行移动操作") - else: - logger.info(f"[同步→Bioyond] ➕ 物料不存在于 Bioyond,将创建新物料并入库") - - # 第1步:获取仓库配置 - from .config import WAREHOUSE_MAPPING - warehouse_mapping = WAREHOUSE_MAPPING - - # 确定目标仓库名称 - parent_name = None - target_location_uuid = None - current_warehouse = None - - # 🔥 优先级1: 从 Bioyond 查询结果中获取物料当前所在的仓库 - if material_bioyond_id: - for mat in existing_materials: - if mat.get("name") == resource.name or mat.get("id") == material_bioyond_id: - locations = mat.get("locations", []) - if locations and len(locations) > 0: - current_warehouse = locations[0].get("whName") - logger.info(f"[同步→Bioyond] 💡 物料当前位于 Bioyond 仓库: {current_warehouse}") - break - - # 优先在当前仓库中查找目标库位 - if current_warehouse and current_warehouse in warehouse_mapping: - site_uuids = warehouse_mapping[current_warehouse].get("site_uuids", {}) - if update_site in site_uuids: - parent_name = current_warehouse - target_location_uuid = site_uuids[update_site] - logger.info(f"[同步→Bioyond] ✅ 在当前仓库找到目标库位: {parent_name}/{update_site}") - logger.info(f"[同步→Bioyond] 目标库位UUID: {target_location_uuid[:8]}...") - else: - logger.warning(f"⚠️ [同步→Bioyond] 当前仓库 {current_warehouse} 中没有库位 {update_site},将搜索其他仓库") - - # 🔥 优先级2: 检查 PLR 父节点名称 - if not parent_name or not target_location_uuid: - if resource.parent is not None: - parent_name_candidate = resource.parent.name - logger.info(f"[同步→Bioyond] 从 PLR 父节点获取仓库名称: {parent_name_candidate}") - - if parent_name_candidate in warehouse_mapping: - site_uuids = warehouse_mapping[parent_name_candidate].get("site_uuids", {}) - if update_site in site_uuids: - parent_name = parent_name_candidate - target_location_uuid = site_uuids[update_site] - logger.info(f"[同步→Bioyond] ✅ 在父节点仓库找到目标库位: {parent_name}/{update_site}") - logger.info(f"[同步→Bioyond] 目标库位UUID: {target_location_uuid[:8]}...") - - # 🔥 优先级3: 遍历所有仓库查找(兜底方案) - if not parent_name or not target_location_uuid: - logger.info(f"[同步→Bioyond] 从所有仓库中查找库位 {update_site}...") - for warehouse_name, warehouse_info in warehouse_mapping.items(): - site_uuids = warehouse_info.get("site_uuids", {}) - if update_site in site_uuids: - parent_name = warehouse_name - target_location_uuid = site_uuids[update_site] - logger.warning(f"[同步→Bioyond] ⚠️ 在其他仓库找到目标库位: {parent_name}/{update_site}") - logger.info(f"[同步→Bioyond] 目标库位UUID: {target_location_uuid[:8]}...") - break - - if not parent_name or not target_location_uuid: - logger.error(f"❌ [同步→Bioyond] 库位 {update_site} 没有在 WAREHOUSE_MAPPING 中配置") - logger.debug(f"[同步→Bioyond] 可用仓库: {list(warehouse_mapping.keys())}") - return False - - # 第2步:转换为 Bioyond 格式 - logger.info(f"[同步→Bioyond] 🔄 转换物料为 Bioyond 格式...") - - # 导入物料默认参数配置 - from .config import MATERIAL_DEFAULT_PARAMETERS - - bioyond_material = resource_plr_to_bioyond( - [resource], - type_mapping=self.workstation.bioyond_config["material_type_mappings"], - warehouse_mapping=self.workstation.bioyond_config["warehouse_mapping"], - material_params=MATERIAL_DEFAULT_PARAMETERS - )[0] - - logger.info(f"[同步→Bioyond] 🔧 准备覆盖locations字段,目标仓库: {parent_name}, 库位: {update_site}, UUID: {target_location_uuid[:8]}...") - - # 🔥 强制覆盖 locations 信息,使用正确的目标库位 UUID - # resource_plr_to_bioyond 可能会生成错误的仓库信息,这里直接覆盖 - bioyond_material["locations"] = [{ - "id": target_location_uuid, - "whid": "", - "whName": parent_name, - "x": ord(update_site[0]) - ord('A') + 1, # A→1, B→2, ... - "y": int(update_site[1:]), # 01→1, 02→2, ... - "z": 1, - "quantity": 0 - }] - logger.info(f"[同步→Bioyond] ✅ 已覆盖库位信息: {parent_name}/{update_site} (UUID: {target_location_uuid[:8]}...)") - - logger.debug(f"[同步→Bioyond] Bioyond 物料数据: {bioyond_material}") - - location_info = bioyond_material.get("locations") - logger.debug(f"[同步→Bioyond] 库位信息: {location_info}, 类型: {type(location_info)}") - - # 第3步:根据是否已有 Bioyond ID 决定创建还是使用现有物料 - if material_bioyond_id: - # 物料已存在,直接使用现有 ID - material_id = material_bioyond_id - logger.info(f"✅ [同步→Bioyond] 使用已有物料 ID: {material_id[:8]}...") - else: - # 物料不存在,调用 API 创建新物料 - logger.info(f"[同步→Bioyond] 📤 调用 Bioyond API 添加物料...") - material_id = self.bioyond_api_client.add_material(bioyond_material) - - if not material_id: - logger.error(f"❌ [同步→Bioyond] 添加物料失败,API 返回空") - return False - - logger.info(f"✅ [同步→Bioyond] 物料添加成功,Bioyond ID: {material_id[:8]}...") - - # 保存新创建的物料 ID 到资源对象 - extra_info["material_bioyond_id"] = material_id - setattr(resource, "unilabos_extra", extra_info) - - # 第4步:物料入库前先检查目标库位是否被占用 - if location_info: - logger.info(f"[同步→Bioyond] 📥 准备入库到库位 {update_site}...") - - # 处理不同的 location_info 数据结构 - if isinstance(location_info, list) and len(location_info) > 0: - location_id = location_info[0]["id"] - elif isinstance(location_info, dict): - location_id = location_info["id"] - else: - logger.warning(f"⚠️ [同步→Bioyond] 无效的库位信息格式: {location_info}") - location_id = None - - if location_id: - # 查询目标库位是否已有物料 - logger.info(f"[同步→Bioyond] 🔍 检查库位 {update_site} (UUID: {location_id[:8]}...) 是否被占用...") - - # 查询所有物料,检查是否有物料在目标库位 - try: - all_materials_type1 = self.bioyond_api_client.stock_material('{"typeMode": 1, "includeDetail": true}') - all_materials_type2 = self.bioyond_api_client.stock_material('{"typeMode": 2, "includeDetail": true}') - all_materials = (all_materials_type1 or []) + (all_materials_type2 or []) - - # 检查是否有物料已经在目标库位 - location_occupied = False - occupying_material = None - - # 同时检查当前物料是否在其他位置(需要先出库) - current_material_location = None - current_location_uuid = None - - for material in all_materials: - locations = material.get("locations", []) - - # 检查目标库位占用情况 - for loc in locations: - if loc.get("id") == location_id: - location_occupied = True - occupying_material = material - logger.warning(f"⚠️ [同步→Bioyond] 库位 {update_site} 已被占用!") - logger.warning(f" 占用物料: {material.get('name')} (ID: {material.get('id', '')[:8]}...)") - logger.warning(f" 占用位置: code={loc.get('code')}, x={loc.get('x')}, y={loc.get('y')}") - logger.warning(f" 🔍 详细信息: location_id={loc.get('id')[:8]}..., 目标UUID={location_id[:8]}...") - logger.warning(f" 🔍 完整location数据: {loc}") - break - - # 检查当前物料是否在其他位置 - if material.get("id") == material_id and locations: - current_material_location = locations[0] - current_location_uuid = current_material_location.get("id") - logger.info(f"📍 [同步→Bioyond] 物料当前位置: {current_material_location.get('whName')}/{current_material_location.get('code')} (UUID: {current_location_uuid[:8]}...)") - - if location_occupied: - break - - if location_occupied: - # 如果是同一个物料(ID相同),说明已经在目标位置了,跳过 - if occupying_material and occupying_material.get("id") == material_id: - logger.info(f"✅ [同步→Bioyond] 物料 {resource.name} 已经在库位 {update_site},跳过重复入库") - return True - else: - logger.error(f"❌ [同步→Bioyond] 库位 {update_site} 已被其他物料占用,拒绝入库") - return False - - logger.info(f"✅ [同步→Bioyond] 库位 {update_site} 可用,准备入库...") - - except Exception as e: - logger.warning(f"⚠️ [同步→Bioyond] 检查库位状态时发生异常: {e},继续尝试入库...") - - # 🔧 如果物料当前在其他位置,先出库再入库 - if current_location_uuid and current_location_uuid != location_id: - logger.info(f"[同步→Bioyond] 🚚 物料需要移动,先从当前位置出库...") - logger.info(f" 当前位置 UUID: {current_location_uuid[:8]}...") - logger.info(f" 目标位置 UUID: {location_id[:8]}...") - - try: - # 获取物料数量用于出库 - material_quantity = current_material_location.get("totalNumber", 1) - logger.info(f" 出库数量: {material_quantity}") - - # 调用出库 API - outbound_response = self.bioyond_api_client.material_outbound_by_id( - material_id, - current_location_uuid, - material_quantity - ) - logger.info(f"✅ [同步→Bioyond] 物料从 {current_material_location.get('code')} 出库成功") - except Exception as e: - logger.error(f"❌ [同步→Bioyond] 物料出库失败: {e}") - return False - - # 执行入库 - logger.info(f"[同步→Bioyond] 📥 调用 Bioyond API 物料入库...") - response = self.bioyond_api_client.material_inbound(material_id, location_id) - - # 注意:Bioyond API 成功时返回空字典 {},所以不能用 if not response 判断 - # 只要没有抛出异常,就认为成功(response 是 dict 类型,即使是 {} 也不是 None) - if response is not None: - logger.info(f"✅ [同步→Bioyond] 物料 {resource.name} 成功入库到 {update_site}") - - # 入库成功后,重新查询验证物料实际入库位置 - logger.info(f"[同步→Bioyond] 🔍 验证物料实际入库位置...") - try: - all_materials_type1 = self.bioyond_api_client.stock_material('{"typeMode": 1, "includeDetail": true}') - all_materials_type2 = self.bioyond_api_client.stock_material('{"typeMode": 2, "includeDetail": true}') - all_materials = (all_materials_type1 or []) + (all_materials_type2 or []) - - for material in all_materials: - if material.get("id") == material_id: - locations = material.get("locations", []) - if locations: - actual_loc = locations[0] - logger.info(f"📍 [同步→Bioyond] 物料实际位置: code={actual_loc.get('code')}, " - f"warehouse={actual_loc.get('whName')}, " - f"x={actual_loc.get('x')}, y={actual_loc.get('y')}") - - # 验证 UUID 是否匹配 - if actual_loc.get("id") != location_id: - logger.error(f"❌ [同步→Bioyond] UUID 不匹配!") - logger.error(f" 预期 UUID: {location_id}") - logger.error(f" 实际 UUID: {actual_loc.get('id')}") - logger.error(f" 这说明配置文件中的 UUID 映射有误,请检查 config.py 中的 WAREHOUSE_MAPPING") - break - except Exception as e: - logger.warning(f"⚠️ [同步→Bioyond] 验证入库位置时发生异常: {e}") - else: - logger.error(f"❌ [同步→Bioyond] 物料入库失败") - return False - else: - logger.warning(f"⚠️ [同步→Bioyond] 无法获取库位 ID,跳过入库操作") - else: - logger.warning(f"⚠️ [同步→Bioyond] 物料没有库位信息,跳过入库操作") - return True - - except Exception as e: - logger.error(f"❌ [同步→Bioyond] 同步物料 {resource.name} 时发生异常: {e}") - import traceback - traceback.print_exc() - return False - - def handle_external_change(self, change_info: Dict[str, Any]) -> bool: - """处理Bioyond系统的变更通知""" - try: - # 这里可以实现对Bioyond变更的处理逻辑 - logger.info(f"处理Bioyond变更通知: {change_info}") - - return True - except Exception as e: - logger.error(f"处理Bioyond变更通知失败: {e}") - return False - - def _create_material_only(self, resource: Any) -> Optional[str]: - """只创建物料到 Bioyond 系统(不入库) - - Transfer 阶段使用:只调用 add_material API 创建物料记录 - - Args: - resource: 要创建的资源对象 - - Returns: - str: 创建成功返回 Bioyond 物料 ID,失败返回 None - """ - try: - # 跳过仓库类型的资源 - resource_category = getattr(resource, "category", None) - if resource_category == "warehouse": - logger.debug(f"[创建物料] 跳过仓库类型资源: {resource.name}") - return None - - logger.info(f"[创建物料] 开始创建物料: {resource.name}") - - # 检查是否已经有 Bioyond ID - extra_info = getattr(resource, "unilabos_extra", {}) - material_bioyond_id = extra_info.get("material_bioyond_id") - - if material_bioyond_id: - logger.info(f"[创建物料] 物料 {resource.name} 已存在 (ID: {material_bioyond_id[:8]}...),跳过创建") - return material_bioyond_id - - # 转换为 Bioyond 格式 - from .config import MATERIAL_DEFAULT_PARAMETERS - - bioyond_material = resource_plr_to_bioyond( - [resource], - type_mapping=self.workstation.bioyond_config["material_type_mappings"], - warehouse_mapping=self.workstation.bioyond_config["warehouse_mapping"], - material_params=MATERIAL_DEFAULT_PARAMETERS - )[0] - - # ⚠️ 关键:创建物料时不设置 locations,让 Bioyond 系统暂不分配库位 - # locations 字段在后续的入库操作中才会指定 - bioyond_material.pop("locations", None) - - logger.info(f"[创建物料] 调用 Bioyond API 创建物料(不指定库位)...") - material_id = self.bioyond_api_client.add_material(bioyond_material) - - if not material_id: - logger.error(f"[创建物料] 创建物料失败,API 返回空") - return None - - logger.info(f"✅ [创建物料] 物料创建成功,ID: {material_id[:8]}...") - - # 保存 Bioyond ID 到资源对象 - extra_info["material_bioyond_id"] = material_id - setattr(resource, "unilabos_extra", extra_info) - - return material_id - - except Exception as e: - logger.error(f"❌ [创建物料] 创建物料 {resource.name} 时发生异常: {e}") - import traceback - traceback.print_exc() - return None - - def _inbound_material_only(self, resource: Any, material_id: str) -> bool: - """只执行物料入库操作(物料已存在于 Bioyond 系统) - - Add 阶段使用:调用 material_inbound API 将物料入库到指定库位 - - Args: - resource: 要入库的资源对象 - material_id: Bioyond 物料 ID - - Returns: - bool: 入库成功返回 True,失败返回 False - """ - try: - logger.info(f"[物料入库] 开始入库物料: {resource.name} (ID: {material_id[:8]}...)") - - # 获取目标库位信息 - extra_info = getattr(resource, "unilabos_extra", {}) - update_site = extra_info.get("update_resource_site") - - if not update_site: - logger.warning(f"[物料入库] 物料 {resource.name} 没有指定目标库位,跳过入库") - return True - - logger.info(f"[物料入库] 目标库位: {update_site}") - - # 获取仓库配置和目标库位 UUID - from .config import WAREHOUSE_MAPPING - warehouse_mapping = WAREHOUSE_MAPPING - - parent_name = None - target_location_uuid = None - - # 查找目标库位的 UUID - if resource.parent is not None: - parent_name_candidate = resource.parent.name - if parent_name_candidate in warehouse_mapping: - site_uuids = warehouse_mapping[parent_name_candidate].get("site_uuids", {}) - if update_site in site_uuids: - parent_name = parent_name_candidate - target_location_uuid = site_uuids[update_site] - logger.info(f"[物料入库] 从父节点找到库位: {parent_name}/{update_site}") - - # 兜底:遍历所有仓库查找 - if not target_location_uuid: - for warehouse_name, warehouse_info in warehouse_mapping.items(): - site_uuids = warehouse_info.get("site_uuids", {}) - if update_site in site_uuids: - parent_name = warehouse_name - target_location_uuid = site_uuids[update_site] - logger.info(f"[物料入库] 从所有仓库找到库位: {parent_name}/{update_site}") - break - - if not target_location_uuid: - logger.error(f"❌ [物料入库] 库位 {update_site} 未在配置中找到") - return False - - logger.info(f"[物料入库] 库位 UUID: {target_location_uuid[:8]}...") - - # 调用入库 API - logger.info(f"[物料入库] 调用 Bioyond API 执行入库...") - response = self.bioyond_api_client.material_inbound(material_id, target_location_uuid) - - if response: # 空字典 {} 表示失败,非空字典表示成功 - logger.info(f"✅ [物料入库] 物料 {resource.name} 成功入库到 {update_site}") - return True - else: - logger.error(f"❌ [物料入库] 物料入库失败,API返回空响应或失败") - return False - - except Exception as e: - logger.error(f"❌ [物料入库] 入库物料 {resource.name} 时发生异常: {e}") - import traceback - traceback.print_exc() - return False - - -class BioyondWorkstation(WorkstationBase): - """Bioyond工作站 - - 集成Bioyond物料管理的工作站实现 - """ - - def __init__( - self, - bioyond_config: Optional[Dict[str, Any]] = None, - deck: Optional[Any] = None, - *args, - **kwargs, - ): - # 初始化父类 - super().__init__( - # 桌子 - deck=deck, - *args, - **kwargs, - ) - - # 检查 deck 是否为 None,防止 AttributeError - if self.deck is None: - logger.error("❌ Deck 配置为空,请检查配置文件中的 deck 参数") - raise ValueError("Deck 配置不能为空,请在配置文件中添加正确的 deck 配置") - - # 初始化 warehouses 属性 - self.deck.warehouses = {} - for resource in self.deck.children: - if isinstance(resource, WareHouse): - self.deck.warehouses[resource.name] = resource - - # 创建通信模块 - self._create_communication_module(bioyond_config) - self.resource_synchronizer = BioyondResourceSynchronizer(self) - self.resource_synchronizer.sync_from_external() - - # TODO: self._ros_node里面拿属性 - - # 工作流加载 - self.is_running = False - self.workflow_mappings = {} - self.workflow_sequence = [] - self.pending_task_params = [] - - if "workflow_mappings" in bioyond_config: - self._set_workflow_mappings(bioyond_config["workflow_mappings"]) - - # 准备 HTTP 报送接收服务配置(延迟到 post_init 启动) - # 从 bioyond_config 中获取,如果没有则使用 HTTP_SERVICE_CONFIG 的默认值 - self._http_service_config = { - "host": bioyond_config.get("http_service_host", HTTP_SERVICE_CONFIG["http_service_host"]), - "port": bioyond_config.get("http_service_port", HTTP_SERVICE_CONFIG["http_service_port"]) - } - self.http_service = None # 将在 post_init 中启动 - - logger.info(f"Bioyond工作站初始化完成") - - def __del__(self): - """析构函数:清理资源,停止 HTTP 服务""" - try: - if hasattr(self, 'http_service') and self.http_service is not None: - logger.info("正在停止 HTTP 报送服务...") - self.http_service.stop() - except Exception as e: - logger.error(f"停止 HTTP 服务时发生错误: {e}") - - def post_init(self, ros_node: ROS2WorkstationNode): - self._ros_node = ros_node - - # 启动 HTTP 报送接收服务(现在 device_id 已可用) - if hasattr(self, '_http_service_config'): - try: - self.http_service = WorkstationHTTPService( - workstation_instance=self, - host=self._http_service_config["host"], - port=self._http_service_config["port"] - ) - self.http_service.start() - logger.info(f"Bioyond工作站HTTP报送服务已启动: {self.http_service.service_url}") - except Exception as e: - logger.error(f"启动HTTP报送服务失败: {e}") - import traceback - traceback.print_exc() - self.http_service = None - - # ⭐ 上传 deck(包括所有 warehouses 及其中的物料) - # 注意:如果有从 Bioyond 同步的物料,它们已经被放置到 warehouse 中了 - # 所以只需要上传 deck,物料会作为 warehouse 的 children 一起上传 - logger.info("正在上传 deck(包括 warehouses 和物料)到云端...") - ROS2DeviceNode.run_async_func(self._ros_node.update_resource, True, **{ - "resources": [self.deck] - }) - - # 清理临时变量(物料已经在 deck 的 warehouse children 中,不需要单独上传) - if hasattr(self, "_synced_resources"): - logger.info(f"✅ {len(self._synced_resources)} 个从Bioyond同步的物料已包含在 deck 中") - self._synced_resources = [] - - def transfer_resource_to_another(self, resource: List[ResourceSlot], mount_resource: List[ResourceSlot], sites: List[str], mount_device_id: DeviceSlot): - future = ROS2DeviceNode.run_async_func(self._ros_node.transfer_resource_to_another, True, **{ - "plr_resources": resource, - "target_device_id": mount_device_id, - "target_resources": mount_resource, - "sites": sites, - }) - return future - - def _create_communication_module(self, config: Optional[Dict[str, Any]] = None) -> None: - """创建Bioyond通信模块""" - # 创建默认配置 - default_config = { - **API_CONFIG, - "workflow_mappings": WORKFLOW_MAPPINGS, - "material_type_mappings": MATERIAL_TYPE_MAPPINGS, - "warehouse_mapping": WAREHOUSE_MAPPING - } - - # 如果传入了 config,合并配置(config 中的值会覆盖默认值) - if config: - self.bioyond_config = {**default_config, **config} - else: - self.bioyond_config = default_config - - self.hardware_interface = BioyondV1RPC(self.bioyond_config) - - def resource_tree_add(self, resources: List[ResourcePLR]) -> None: - """添加资源到资源树并更新ROS节点 - - Args: - resources (List[ResourcePLR]): 要添加的资源列表 - """ - logger.info(f"[resource_tree_add] 开始同步 {len(resources)} 个资源到 Bioyond 系统") - for resource in resources: - try: - # 🔍 检查资源是否已有 Bioyond ID - extra_info = getattr(resource, "unilabos_extra", {}) - material_bioyond_id = extra_info.get("material_bioyond_id") - - if material_bioyond_id: - # ⭐ 已有 Bioyond ID,说明 transfer 已经创建了物料 - # 现在只需要执行入库操作 - logger.info(f"✅ [resource_tree_add] 物料 {resource.name} 已有 Bioyond ID ({material_bioyond_id[:8]}...),执行入库操作") - self.resource_synchronizer._inbound_material_only(resource, material_bioyond_id) - else: - # ⚠️ 没有 Bioyond ID,说明是直接添加的物料(兜底逻辑) - # 需要先创建再入库 - logger.info(f"⚠️ [resource_tree_add] 物料 {resource.name} 无 Bioyond ID,执行创建+入库操作") - self.resource_synchronizer.sync_to_external(resource) - - except Exception as e: - logger.error(f"[resource_tree_add] 同步资源失败 {resource}: {e}") - import traceback - traceback.print_exc() - - def resource_tree_remove(self, resources: List[ResourcePLR]) -> None: - """处理资源删除时的同步(出库操作) - - 当 UniLab 前端删除物料时,需要将删除操作同步到 Bioyond 系统(出库) - - Args: - resources: 要删除的资源列表 - """ - logger.info(f"[resource_tree_remove] 收到 {len(resources)} 个资源的移除请求(出库操作)") - - # ⭐ 关键优化:先找出所有的顶层容器(BottleCarrier),只对它们进行出库 - # 因为在 Bioyond 中,容器(如分装板 1105-12)是一个完整的物料 - # 里面的小瓶子是它的 detail 字段,不需要单独出库 - - top_level_resources = [] - child_resource_names = set() - - # 第一步:识别所有子资源的名称 - for resource in resources: - resource_category = getattr(resource, "category", None) - if resource_category == "bottle_carrier": - children = list(resource.children) if hasattr(resource, 'children') else [] - for child in children: - child_resource_names.add(child.name) - - # 第二步:筛选出顶层资源(不是任何容器的子资源) - for resource in resources: - resource_category = getattr(resource, "category", None) - - # 跳过仓库类型的资源 - if resource_category == "warehouse": - logger.debug(f"[resource_tree_remove] 跳过仓库类型资源: {resource.name}") - continue - - # 如果是容器,它就是顶层资源 - if resource_category == "bottle_carrier": - top_level_resources.append(resource) - logger.info(f"[resource_tree_remove] 识别到顶层容器资源: {resource.name}") - # 如果不是任何容器的子资源,它也是顶层资源 - elif resource.name not in child_resource_names: - top_level_resources.append(resource) - logger.info(f"[resource_tree_remove] 识别到顶层独立资源: {resource.name}") - else: - logger.debug(f"[resource_tree_remove] 跳过子资源(将随容器一起出库): {resource.name}") - - logger.info(f"[resource_tree_remove] 实际需要处理的顶层资源: {len(top_level_resources)} 个") - - # 第三步:对每个顶层资源执行出库操作 - for resource in top_level_resources: - try: - self._outbound_single_resource(resource) - except Exception as e: - logger.error(f"❌ [resource_tree_remove] 处理资源 {resource.name} 出库失败: {e}") - import traceback - traceback.print_exc() - - logger.info(f"[resource_tree_remove] 资源移除(出库)操作完成") - - def _outbound_single_resource(self, resource: ResourcePLR) -> bool: - """对单个资源执行 Bioyond 出库操作 - - Args: - resource: 要出库的资源 - - Returns: - bool: 出库是否成功 - """ - try: - logger.info(f"[resource_tree_remove] 🎯 开始处理资源出库: {resource.name}") - - # 获取资源的 Bioyond 信息 - extra_info = getattr(resource, "unilabos_extra", {}) - material_bioyond_id = extra_info.get("material_bioyond_id") - material_bioyond_name = extra_info.get("material_bioyond_name") # ⭐ 原始 Bioyond 名称 - - # ⭐ 优先使用保存的 Bioyond ID,避免重复查询 - if material_bioyond_id: - logger.info(f"✅ [resource_tree_remove] 从资源中获取到 Bioyond ID: {material_bioyond_id[:8]}...") - if material_bioyond_name and material_bioyond_name != resource.name: - logger.info(f" 原始 Bioyond 名称: {material_bioyond_name} (当前名称: {resource.name})") - else: - # 如果没有 Bioyond ID,尝试按名称查询 - logger.info(f"[resource_tree_remove] 资源 {resource.name} 没有保存 Bioyond ID,尝试查询...") - - # ⭐ 优先使用保存的原始 Bioyond 名称,如果没有则使用当前名称 - query_name = material_bioyond_name if material_bioyond_name else resource.name - logger.info(f"[resource_tree_remove] 查询 Bioyond 系统中的物料: {query_name}") - - # 查询所有类型的物料:0=耗材, 1=样品, 2=试剂 - all_materials = [] - for type_mode in [0, 1, 2]: - query_params = json.dumps({ - "typeMode": type_mode, - "filter": query_name, # ⭐ 使用原始 Bioyond 名称查询 - "includeDetail": True - }) - materials = self.hardware_interface.stock_material(query_params) - if materials: - all_materials.extend(materials) - - # 精确匹配物料名称 - matched_material = None - for mat in all_materials: - if mat.get("name") == query_name: - matched_material = mat - material_bioyond_id = mat.get("id") - logger.info(f"✅ [resource_tree_remove] 找到物料 {query_name} 的 Bioyond ID: {material_bioyond_id[:8]}...") - break - - if not matched_material: - logger.warning(f"⚠️ [resource_tree_remove] Bioyond 系统中未找到物料: {query_name}") - logger.info(f"[resource_tree_remove] 该物料可能尚未入库或已被删除,跳过出库操作") - return True - - # 获取物料当前所在的库位信息 - logger.info(f"[resource_tree_remove] 📍 查询物料的库位信息...") - - # 重新查询物料详情以获取最新的库位信息 - all_materials_type1 = self.hardware_interface.stock_material('{"typeMode": 1, "includeDetail": true}') - all_materials_type2 = self.hardware_interface.stock_material('{"typeMode": 2, "includeDetail": true}') - all_materials_type0 = self.hardware_interface.stock_material('{"typeMode": 0, "includeDetail": true}') - all_materials = (all_materials_type0 or []) + (all_materials_type1 or []) + (all_materials_type2 or []) - - location_id = None - current_quantity = 0 - - for material in all_materials: - if material.get("id") == material_bioyond_id: - locations = material.get("locations", []) - if locations: - # 取第一个库位 - location = locations[0] - location_id = location.get("id") - current_quantity = location.get("quantity", 1) - logger.info(f"📍 [resource_tree_remove] 物料位于库位:") - logger.info(f" - 库位代码: {location.get('code')}") - logger.info(f" - 仓库名称: {location.get('whName')}") - logger.info(f" - 数量: {current_quantity}") - logger.info(f" - 库位ID: {location_id[:8]}...") - break - else: - logger.warning(f"⚠️ [resource_tree_remove] 物料没有库位信息,可能尚未入库") - return True - - if not location_id: - logger.warning(f"⚠️ [resource_tree_remove] 无法获取物料的库位信息,跳过出库") - return False - - # 调用 Bioyond 出库 API - logger.info(f"[resource_tree_remove] 📤 调用 Bioyond API 出库物料...") - logger.info(f" UniLab 名称: {resource.name}") - if material_bioyond_name and material_bioyond_name != resource.name: - logger.info(f" Bioyond 名称: {material_bioyond_name}") - logger.info(f" 物料ID: {material_bioyond_id[:8]}...") - logger.info(f" 库位ID: {location_id[:8]}...") - logger.info(f" 出库数量: {current_quantity}") - - response = self.hardware_interface.material_outbound_by_id( - material_id=material_bioyond_id, - location_id=location_id, - quantity=current_quantity - ) - - if response is not None: - logger.info(f"✅ [resource_tree_remove] 物料成功从 Bioyond 系统出库") - return True - else: - logger.error(f"❌ [resource_tree_remove] 物料出库失败,API 返回空") - return False - - except Exception as e: - logger.error(f"❌ [resource_tree_remove] 物料 {resource.name} 出库时发生异常: {e}") - import traceback - traceback.print_exc() - return False - - def resource_tree_transfer(self, old_parent: Optional[ResourcePLR], resource: ResourcePLR, new_parent: ResourcePLR) -> None: - """处理资源在设备间迁移时的同步 - - 当资源从一个设备迁移到 BioyondWorkstation 时,只创建物料(不入库) - 入库操作由后续的 resource_tree_add 完成 - - Args: - old_parent: 资源的原父节点(可能为 None) - resource: 要迁移的资源 - new_parent: 资源的新父节点 - """ - logger.info(f"[resource_tree_transfer] 资源迁移: {resource.name}") - logger.info(f" 旧父节点: {old_parent.name if old_parent else 'None'}") - logger.info(f" 新父节点: {new_parent.name}") - - try: - # ⭐ Transfer 阶段:只创建物料到 Bioyond 系统,不执行入库 - logger.info(f"[resource_tree_transfer] 开始创建物料 {resource.name} 到 Bioyond 系统(不入库)") - result = self.resource_synchronizer._create_material_only(resource) - - if result: - logger.info(f"✅ [resource_tree_transfer] 物料 {resource.name} 创建成功,Bioyond ID: {result[:8]}...") - else: - logger.warning(f"⚠️ [resource_tree_transfer] 物料 {resource.name} 创建失败") - - except Exception as e: - logger.error(f"❌ [resource_tree_transfer] 资源 {resource.name} 创建异常: {e}") - import traceback - traceback.print_exc() - - def resource_tree_update(self, resources: List[ResourcePLR]) -> None: - """处理资源更新时的同步(位置移动、属性修改等) - - 当 UniLab 前端更新物料信息时(如修改位置),需要将更新操作同步到 Bioyond 系统 - - Args: - resources: 要更新的资源列表 - """ - logger.info(f"[resource_tree_update] 开始同步 {len(resources)} 个资源更新到 Bioyond 系统") - - for resource in resources: - try: - logger.info(f"[resource_tree_update] 同步资源更新: {resource.name}") - - # 调用同步器的 sync_to_external 方法 - # 该方法会检查 unilabos_extra 中的 update_resource_site 字段 - # 如果存在,会执行位置移动操作 - result = self.resource_synchronizer.sync_to_external(resource) - - if result: - logger.info(f"✅ [resource_tree_update] 资源 {resource.name} 成功同步到 Bioyond 系统") - else: - logger.warning(f"⚠️ [resource_tree_update] 资源 {resource.name} 同步到 Bioyond 系统失败") - - except Exception as e: - logger.error(f"❌ [resource_tree_update] 同步资源 {resource.name} 时发生异常: {e}") - import traceback - traceback.print_exc() - - logger.info(f"[resource_tree_update] 资源更新同步完成") - - @property - def bioyond_status(self) -> Dict[str, Any]: - """获取 Bioyond 系统状态信息 - - 这个属性被 ROS 节点用来发布设备状态 - - Returns: - Dict[str, Any]: Bioyond 系统的状态信息 - - 连接成功时返回 {"connected": True} - - 连接失败时返回 {"connected": False, "error": "错误信息"} - """ - try: - # 检查硬件接口是否存在 - if not self.hardware_interface: - return {"connected": False, "error": "hardware_interface not initialized"} - - # 尝试获取调度器状态来验证连接 - scheduler_status = self.hardware_interface.scheduler_status() - - # 如果能成功获取状态,说明连接正常 - if scheduler_status: - return {"connected": True} - else: - return {"connected": False, "error": "scheduler_status returned None"} - - except Exception as e: - logger.warning(f"获取Bioyond状态失败: {e}") - return {"connected": False, "error": str(e)} - - # ==================== 工作流合并与参数设置 API ==================== - - def append_to_workflow_sequence(self, web_workflow_name: str) -> bool: - # 检查是否为JSON格式的字符串 - actual_workflow_name = web_workflow_name - if web_workflow_name.startswith('{') and web_workflow_name.endswith('}'): - try: - data = json.loads(web_workflow_name) - actual_workflow_name = data.get("web_workflow_name", web_workflow_name) - print(f"解析JSON格式工作流名称: {web_workflow_name} -> {actual_workflow_name}") - except json.JSONDecodeError: - print(f"JSON解析失败,使用原始字符串: {web_workflow_name}") - - workflow_id = self._get_workflow(actual_workflow_name) - if workflow_id: - self.workflow_sequence.append(workflow_id) - print(f"添加工作流到执行顺序: {actual_workflow_name} -> {workflow_id}") - return True - return False - - def set_workflow_sequence(self, json_str: str) -> List[str]: - try: - data = json.loads(json_str) - web_workflow_names = data.get("web_workflow_names", []) - except: - return [] - - sequence = [] - for web_name in web_workflow_names: - workflow_id = self._get_workflow(web_name) - if workflow_id: - sequence.append(workflow_id) - - def get_all_workflows(self) -> Dict[str, str]: - return self.workflow_mappings.copy() - - def _get_workflow(self, web_workflow_name: str) -> str: - if web_workflow_name not in self.workflow_mappings: - print(f"未找到工作流映射配置: {web_workflow_name}") - return "" - workflow_id = self.workflow_mappings[web_workflow_name] - print(f"获取工作流: {web_workflow_name} -> {workflow_id}") - return workflow_id - - def _set_workflow_mappings(self, mappings: Dict[str, str]): - self.workflow_mappings = mappings - print(f"设置工作流映射配置: {mappings}") - - def process_web_workflows(self, json_str: str) -> Dict[str, str]: - try: - data = json.loads(json_str) - web_workflow_list = data.get("web_workflow_list", []) - except json.JSONDecodeError: - print(f"无效的JSON字符串: {json_str}") - return {} - result = {} - - self.workflow_sequence = [] - for web_name in web_workflow_list: - workflow_id = self._get_workflow(web_name) - if workflow_id: - result[web_name] = workflow_id - self.workflow_sequence.append(workflow_id) - else: - print(f"无法获取工作流ID: {web_name}") - print(f"工作流执行顺序: {self.workflow_sequence}") - return result - - def clear_workflows(self): - self.workflow_sequence = [] - print("清空工作流执行顺序") - - # ==================== 基础物料管理接口 ==================== - - # ============ 工作站状态管理 ============ - def get_station_info(self) -> Dict[str, Any]: - """获取工作站基础信息 - - Returns: - Dict[str, Any]: 工作站基础信息,包括设备ID、状态等 - """ - return { - "device_id": getattr(self._ros_node, 'device_id', 'unknown'), - "station_type": "BioyondWorkstation", - "workflow_status": self.current_workflow_status.value if hasattr(self, 'current_workflow_status') else "unknown", - "is_busy": getattr(self, 'is_busy', False), - "deck_info": { - "name": self.deck.name if self.deck and hasattr(self.deck, 'name') else "unknown", - "children_count": len(self.deck.children) if self.deck and hasattr(self.deck, 'children') else 0 - } if self.deck else None, - "hardware_interface": type(self.hardware_interface).__name__ if self.hardware_interface else None - } - - def get_workstation_status(self) -> Dict[str, Any]: - """获取工作站状态 - - Returns: - Dict[str, Any]: 工作站状态信息 - """ - try: - # 获取基础工作站状态 - base_status = { - "station_info": self.get_station_info(), - "bioyond_status": self.bioyond_status - } - - # 如果有接口,获取设备列表 - if self.hardware_interface: - try: - devices = self.hardware_interface.device_list() - base_status["devices"] = devices - except Exception as e: - logger.warning(f"获取设备列表失败: {e}") - base_status["devices"] = [] - - return { - "success": True, - "data": base_status, - "action": "get_workstation_status" - } - - except Exception as e: - error_msg = f"获取工作站状态失败: {str(e)}" - logger.error(error_msg) - return { - "success": False, - "message": error_msg, - "action": "get_workstation_status" - } - - def get_bioyond_status(self) -> Dict[str, Any]: - """获取完整的 Bioyond 状态信息 - - 这个方法提供了比 bioyond_status 属性更详细的状态信息, - 包括错误处理和格式化的响应结构 - - Returns: - Dict[str, Any]: 格式化的 Bioyond 状态响应 - """ - try: - status = self.bioyond_status - return { - "success": True, - "data": status, - "action": "get_bioyond_status" - } - - except Exception as e: - error_msg = f"获取 Bioyond 状态失败: {str(e)}" - logger.error(error_msg) - return { - "success": False, - "message": error_msg, - "action": "get_bioyond_status" - } - - def reset_workstation(self) -> Dict[str, Any]: - """重置工作站 - - 重置工作站到初始状态 - - Returns: - Dict[str, Any]: 操作结果 - """ - try: - logger.info("开始重置工作站") - - # 重置调度器 - if self.hardware_interface: - self.hardware_interface.scheduler_reset() - - # 刷新物料缓存 - if self.hardware_interface: - self.hardware_interface.refresh_material_cache() - - # 重新同步资源 - if self.resource_synchronizer: - self.resource_synchronizer.sync_from_external() - - logger.info("工作站重置完成") - return { - "success": True, - "message": "工作站重置成功", - "action": "reset_workstation" - } - - except Exception as e: - error_msg = f"重置工作站失败: {str(e)}" - logger.error(error_msg) - return { - "success": False, - "message": error_msg, - "action": "reset_workstation" - } - - # ==================== HTTP 报送处理方法 ==================== - - def process_step_finish_report(self, report_request) -> Dict[str, Any]: - """处理步骤完成报送 - - Args: - report_request: WorkstationReportRequest 对象,包含步骤完成信息 - - Returns: - Dict[str, Any]: 处理结果 - """ - try: - data = report_request.data - logger.info(f"[步骤完成报送] 订单: {data.get('orderCode')}, 步骤: {data.get('stepName')}") - logger.info(f" 样品ID: {data.get('sampleId')}") - logger.info(f" 开始时间: {data.get('startTime')}") - logger.info(f" 结束时间: {data.get('endTime')}") - - # TODO: 根据实际业务需求处理步骤完成逻辑 - # 例如:更新数据库、触发后续流程等 - - return { - "processed": True, - "step_id": data.get('stepId'), - "timestamp": datetime.now().isoformat() - } - - except Exception as e: - logger.error(f"处理步骤完成报送失败: {e}") - return {"processed": False, "error": str(e)} - - def process_sample_finish_report(self, report_request) -> Dict[str, Any]: - """处理通量完成报送 - - Args: - report_request: WorkstationReportRequest 对象,包含通量完成信息 - - Returns: - Dict[str, Any]: 处理结果 - """ - try: - data = report_request.data - status_names = { - "0": "待生产", "2": "进样", "10": "开始", - "20": "完成", "-2": "异常停止", "-3": "人工停止" - } - status_desc = status_names.get(str(data.get('status')), f"状态{data.get('status')}") - - logger.info(f"[通量完成报送] 订单: {data.get('orderCode')}, 样品: {data.get('sampleId')}") - logger.info(f" 状态: {status_desc}") - logger.info(f" 开始时间: {data.get('startTime')}") - logger.info(f" 结束时间: {data.get('endTime')}") - - # TODO: 根据实际业务需求处理通量完成逻辑 - - return { - "processed": True, - "sample_id": data.get('sampleId'), - "status": data.get('status'), - "timestamp": datetime.now().isoformat() - } - - except Exception as e: - logger.error(f"处理通量完成报送失败: {e}") - return {"processed": False, "error": str(e)} - - def process_order_finish_report(self, report_request, used_materials: List) -> Dict[str, Any]: - """处理任务完成报送 - - Args: - report_request: WorkstationReportRequest 对象,包含任务完成信息 - used_materials: 物料使用记录列表 - - Returns: - Dict[str, Any]: 处理结果 - """ - try: - data = report_request.data - status_names = {"30": "完成", "-11": "异常停止", "-12": "人工停止"} - status_desc = status_names.get(str(data.get('status')), f"状态{data.get('status')}") - - logger.info(f"[任务完成报送] 订单: {data.get('orderCode')} - {data.get('orderName')}") - logger.info(f" 状态: {status_desc}") - logger.info(f" 开始时间: {data.get('startTime')}") - logger.info(f" 结束时间: {data.get('endTime')}") - logger.info(f" 使用物料数量: {len(used_materials)}") - - # 记录物料使用情况 - for material in used_materials: - logger.debug(f" 物料: {material.materialId}, 用量: {material.usedQuantity}") - - # TODO: 根据实际业务需求处理任务完成逻辑 - # 例如:更新物料库存、生成报表等 - - return { - "processed": True, - "order_code": data.get('orderCode'), - "status": data.get('status'), - "materials_count": len(used_materials), - "timestamp": datetime.now().isoformat() - } - - except Exception as e: - logger.error(f"处理任务完成报送失败: {e}") - return {"processed": False, "error": str(e)} - - def process_material_change_report(self, report_data: Dict[str, Any]) -> Dict[str, Any]: - """处理物料变更报送 - - Args: - report_data: 物料变更数据 - - Returns: - Dict[str, Any]: 处理结果 - """ - try: - logger.info(f"[物料变更报送] 工作站: {report_data.get('workstation_id')}") - logger.info(f" 资源ID: {report_data.get('resource_id')}") - logger.info(f" 变更类型: {report_data.get('change_type')}") - logger.info(f" 时间戳: {report_data.get('timestamp')}") - - # TODO: 根据实际业务需求处理物料变更逻辑 - # 例如:同步到资源树、更新Bioyond系统等 - - return { - "processed": True, - "resource_id": report_data.get('resource_id'), - "change_type": report_data.get('change_type'), - "timestamp": datetime.now().isoformat() - } - - except Exception as e: - logger.error(f"处理物料变更报送失败: {e}") - return {"processed": False, "error": str(e)} - - - def handle_external_error(self, error_data: Dict[str, Any]) -> Dict[str, Any]: - """处理错误处理报送 - - Args: - error_data: 错误数据(可能是奔曜格式或标准格式) - - Returns: - Dict[str, Any]: 处理结果 - """ - try: - # 检查是否为奔曜格式 - if 'task' in error_data and 'code' in error_data: - # 奔曜格式 - logger.error(f"[错误处理报送-奔曜] 任务: {error_data.get('task')}") - logger.error(f" 错误代码: {error_data.get('code')}") - logger.error(f" 错误信息: {error_data.get('message', '无')}") - error_type = "bioyond_error" - else: - # 标准格式 - logger.error(f"[错误处理报送] 工作站: {error_data.get('workstation_id')}") - logger.error(f" 错误类型: {error_data.get('error_type')}") - logger.error(f" 错误信息: {error_data.get('error_message')}") - error_type = error_data.get('error_type', 'unknown') - - # TODO: 根据实际业务需求处理错误 - # 例如:记录日志、发送告警、触发恢复流程等 - - return { - "handled": True, - "error_type": error_type, - "timestamp": datetime.now().isoformat() - } - - except Exception as e: - logger.error(f"处理错误报送失败: {e}") - return {"handled": False, "error": str(e)} - - # ==================== 文件加载与其他功能 ==================== - - def load_bioyond_data_from_file(self, file_path: str) -> bool: - """从文件加载Bioyond数据(用于测试)""" - try: - with open(file_path, "r", encoding="utf-8") as f: - bioyond_data = json.load(f) - - logger.info(f"从文件加载Bioyond数据: {file_path}") - - # 转换为UniLab格式 - unilab_resources = resource_bioyond_to_plr( - bioyond_data, - type_mapping=self.bioyond_config["material_type_mappings"], - deck=self.deck - ) - - logger.info(f"成功加载 {len(unilab_resources)} 个资源") - return True - - except Exception as e: - logger.error(f"从文件加载Bioyond数据失败: {e}") - return False - - -# 使用示例 -def create_bioyond_workstation_example(): - """创建Bioyond工作站示例""" - - # 配置参数 - device_id = "bioyond_workstation_001" - - # 子资源配置 - children = { - "plate_1": { - "name": "plate_1", - "type": "plate", - "position": {"x": 100, "y": 100, "z": 0}, - "config": { - "size_x": 127.76, - "size_y": 85.48, - "size_z": 14.35, - "model": "Generic 96 Well Plate" - } - } - } - - # Bioyond配置 - bioyond_config = { - "base_url": "http://bioyond.example.com/api", - "api_key": "your_api_key_here", - "sync_interval": 60, # 60秒同步一次 - "timeout": 30 - } - - # Deck配置 - deck_config = { - "size_x": 1000.0, - "size_y": 1000.0, - "size_z": 100.0, - "model": "BioyondDeck" - } - - # 创建工作站 - workstation = BioyondWorkstation( - station_resource=deck_config, - bioyond_config=bioyond_config, - deck_config=deck_config, - ) - - return workstation - - -if __name__ == "__main__": - pass diff --git a/unilabos/devices/workstation/coin_cell_assembly/__init__.py b/unilabos/devices/workstation/coin_cell_assembly/__init__.py deleted file mode 100644 index e69de29b..00000000 diff --git a/unilabos/devices/workstation/coin_cell_assembly/button_battery_station.py b/unilabos/devices/workstation/coin_cell_assembly/button_battery_station.py deleted file mode 100644 index f663a217..00000000 --- a/unilabos/devices/workstation/coin_cell_assembly/button_battery_station.py +++ /dev/null @@ -1,1289 +0,0 @@ -""" -纽扣电池组装工作站物料类定义 -Button Battery Assembly Station Resource Classes -""" - -from __future__ import annotations - -from collections import OrderedDict -from typing import Any, Dict, List, Optional, TypedDict, Union, cast - -from pylabrobot.resources.coordinate import Coordinate -from pylabrobot.resources.container import Container -from pylabrobot.resources.deck import Deck -from pylabrobot.resources.itemized_resource import ItemizedResource -from pylabrobot.resources.resource import Resource -from pylabrobot.resources.resource_stack import ResourceStack -from pylabrobot.resources.tip_rack import TipRack, TipSpot -from pylabrobot.resources.trash import Trash -from pylabrobot.resources.utils import create_ordered_items_2d - - -class ElectrodeSheetState(TypedDict): - diameter: float # 直径 (mm) - thickness: float # 厚度 (mm) - mass: float # 质量 (g) - material_type: str # 材料类型(正极、负极、隔膜、弹片、垫片、铝箔等) - info: Optional[str] # 附加信息 - -class ElectrodeSheet(Resource): - """极片类 - 包含正负极片、隔膜、弹片、垫片、铝箔等所有片状材料""" - - def __init__( - self, - name: str = "极片", - size_x=10, - size_y=10, - size_z=10, - category: str = "electrode_sheet", - model: Optional[str] = None, - ): - """初始化极片 - - Args: - name: 极片名称 - category: 类别 - model: 型号 - """ - super().__init__( - name=name, - size_x=size_x, - size_y=size_y, - size_z=size_z, - category=category, - model=model, - ) - self._unilabos_state: ElectrodeSheetState = ElectrodeSheetState( - diameter=14, - thickness=0.1, - mass=0.5, - material_type="copper", - info=None - ) - - def load_state(self, state: Dict[str, Any]) -> None: - """格式不变""" - super().load_state(state) - self._unilabos_state = state - #序列化 - def serialize_state(self) -> Dict[str, Dict[str, Any]]: - """格式不变""" - data = super().serialize_state() - data.update(self._unilabos_state) # Container自身的信息,云端物料将保存这一data,本地也通过这里的data进行读写,当前类用来表示这个物料的长宽高大小的属性,而data(state用来表示物料的内容,细节等) - return data - -# TODO: 这个应该只能放一个极片 -class MaterialHoleState(TypedDict): - diameter: int - depth: int - max_sheets: int - info: Optional[str] # 附加信息 - -class MaterialHole(Resource): - """料板洞位类""" - children: List[ElectrodeSheet] = [] - - def __init__( - self, - name: str, - size_x: float, - size_y: float, - size_z: float, - category: str = "material_hole", - **kwargs - ): - super().__init__( - name=name, - size_x=size_x, - size_y=size_y, - size_z=size_z, - category=category, - ) - self._unilabos_state: MaterialHoleState = MaterialHoleState( - diameter=20, - depth=10, - max_sheets=1, - info=None - ) - - def get_all_sheet_info(self): - info_list = [] - for sheet in self.children: - info_list.append(sheet._unilabos_state["info"]) - return info_list - - #这个函数函数好像没用,一般不会集中赋值质量 - def set_all_sheet_mass(self): - for sheet in self.children: - sheet._unilabos_state["mass"] = 0.5 # 示例:设置质量为0.5g - - def load_state(self, state: Dict[str, Any]) -> None: - """格式不变""" - super().load_state(state) - self._unilabos_state = state - - def serialize_state(self) -> Dict[str, Dict[str, Any]]: - """格式不变""" - data = super().serialize_state() - data.update(self._unilabos_state) # Container自身的信息,云端物料将保存这一data,本地也通过这里的data进行读写,当前类用来表示这个物料的长宽高大小的属性,而data(state用来表示物料的内容,细节等) - return data - #移动极片前先取出对象 - def get_sheet_with_name(self, name: str) -> Optional[ElectrodeSheet]: - for sheet in self.children: - if sheet.name == name: - return sheet - return None - - def has_electrode_sheet(self) -> bool: - """检查洞位是否有极片""" - return len(self.children) > 0 - - def assign_child_resource( - self, - resource: ElectrodeSheet, - location: Optional[Coordinate], - reassign: bool = True, - ): - """放置极片""" - # TODO: 这里要改,diameter找不到,加入._unilabos_state后应该没问题 - if resource._unilabos_state["diameter"] > self._unilabos_state["diameter"]: - raise ValueError(f"极片直径 {resource._unilabos_state['diameter']} 超过洞位直径 {self._unilabos_state['diameter']}") - if len(self.children) >= self._unilabos_state["max_sheets"]: - raise ValueError(f"洞位已满,无法放置更多极片") - super().assign_child_resource(resource, location, reassign) - - # 根据children的编号取物料对象。 - def get_electrode_sheet_info(self, index: int) -> ElectrodeSheet: - return self.children[index] - - - -class MaterialPlateState(TypedDict): - hole_spacing_x: float - hole_spacing_y: float - hole_diameter: float - info: Optional[str] # 附加信息 - - - -class MaterialPlate(ItemizedResource[MaterialHole]): - """料板类 - 4x4个洞位,每个洞位放1个极片""" - - children: List[MaterialHole] - - def __init__( - self, - name: str, - size_x: float, - size_y: float, - size_z: float, - ordered_items: Optional[Dict[str, MaterialHole]] = None, - ordering: Optional[OrderedDict[str, str]] = None, - category: str = "material_plate", - model: Optional[str] = None, - fill: bool = False - ): - """初始化料板 - - Args: - name: 料板名称 - size_x: 长度 (mm) - size_y: 宽度 (mm) - size_z: 高度 (mm) - hole_diameter: 洞直径 (mm) - hole_depth: 洞深度 (mm) - hole_spacing_x: X方向洞位间距 (mm) - hole_spacing_y: Y方向洞位间距 (mm) - number: 编号 - category: 类别 - model: 型号 - """ - self._unilabos_state: MaterialPlateState = MaterialPlateState( - hole_spacing_x=24.0, - hole_spacing_y=24.0, - hole_diameter=20.0, - info="", - ) - # 创建4x4的洞位 - # TODO: 这里要改,对应不同形状 - holes = create_ordered_items_2d( - klass=MaterialHole, - num_items_x=4, - num_items_y=4, - dx=(size_x - 4 * self._unilabos_state["hole_spacing_x"]) / 2, # 居中 - dy=(size_y - 4 * self._unilabos_state["hole_spacing_y"]) / 2, # 居中 - dz=size_z, - item_dx=self._unilabos_state["hole_spacing_x"], - item_dy=self._unilabos_state["hole_spacing_y"], - size_x = 16, - size_y = 16, - size_z = 16, - ) - if fill: - super().__init__( - name=name, - size_x=size_x, - size_y=size_y, - size_z=size_z, - ordered_items=holes, - category=category, - model=model, - ) - else: - super().__init__( - name=name, - size_x=size_x, - size_y=size_y, - size_z=size_z, - ordered_items=ordered_items, - ordering=ordering, - category=category, - model=model, - ) - - def update_locations(self): - # TODO:调多次相加 - holes = create_ordered_items_2d( - klass=MaterialHole, - num_items_x=4, - num_items_y=4, - dx=(self._size_x - 3 * self._unilabos_state["hole_spacing_x"]) / 2, # 居中 - dy=(self._size_y - 3 * self._unilabos_state["hole_spacing_y"]) / 2, # 居中 - dz=self._size_z, - item_dx=self._unilabos_state["hole_spacing_x"], - item_dy=self._unilabos_state["hole_spacing_y"], - size_x = 1, - size_y = 1, - size_z = 1, - ) - for item, original_item in zip(holes.items(), self.children): - original_item.location = item[1].location - - -class PlateSlot(ResourceStack): - """板槽位类 - 1个槽上能堆放8个板,移板只能操作最上方的板""" - - def __init__( - self, - name: str, - size_x: float, - size_y: float, - size_z: float, - max_plates: int = 8, - category: str = "plate_slot", - model: Optional[str] = None - ): - """初始化板槽位 - - Args: - name: 槽位名称 - max_plates: 最大板数量 - category: 类别 - """ - super().__init__( - name=name, - direction="z", # Z方向堆叠 - resources=[], - ) - self.max_plates = max_plates - self.category = category - - def can_add_plate(self) -> bool: - """检查是否可以添加板""" - return len(self.children) < self.max_plates - - def add_plate(self, plate: MaterialPlate) -> None: - """添加料板""" - if not self.can_add_plate(): - raise ValueError(f"槽位 {self.name} 已满,无法添加更多板") - self.assign_child_resource(plate) - - def get_top_plate(self) -> MaterialPlate: - """获取最上方的板""" - if len(self.children) == 0: - raise ValueError(f"槽位 {self.name} 为空") - return cast(MaterialPlate, self.get_top_item()) - - def take_top_plate(self) -> MaterialPlate: - """取出最上方的板""" - top_plate = self.get_top_plate() - self.unassign_child_resource(top_plate) - return top_plate - - def can_access_for_picking(self) -> bool: - """检查是否可以进行取料操作(只有最上方的板能进行取料操作)""" - return len(self.children) > 0 - - def serialize(self) -> dict: - return { - **super().serialize(), - "max_plates": self.max_plates, - } - - -class ClipMagazineHole(Container): - """子弹夹洞位类""" - children: List[ElectrodeSheet] = [] - def __init__( - self, - name: str, - diameter: float, - depth: float, - category: str = "clip_magazine_hole", - ): - """初始化子弹夹洞位 - - Args: - name: 洞位名称 - diameter: 洞直径 (mm) - depth: 洞深度 (mm) - category: 类别 - """ - super().__init__( - name=name, - size_x=diameter, - size_y=diameter, - size_z=depth, - category=category, - ) - self.diameter = diameter - self.depth = depth - - def can_add_sheet(self, sheet: ElectrodeSheet) -> bool: - """检查是否可以添加极片 - - 根据洞的深度和极片的厚度来判断是否可以添加极片 - """ - # 检查极片直径是否适合洞的直径 - if sheet._unilabos_state["diameter"] > self.diameter: - return False - - # 计算当前已添加极片的总厚度 - current_thickness = sum(s._unilabos_state["thickness"] for s in self.children) - - # 检查添加新极片后总厚度是否超过洞的深度 - if current_thickness + sheet._unilabos_state["thickness"] > self.depth: - return False - - return True - - - def assign_child_resource( - self, - resource: ElectrodeSheet, - location: Optional[Coordinate] = None, - reassign: bool = True, - ): - """放置极片到洞位中 - - Args: - resource: 要放置的极片 - location: 极片在洞位中的位置(对于洞位,通常为None) - reassign: 是否允许重新分配 - """ - # 检查是否可以添加极片 - if not self.can_add_sheet(resource): - raise ValueError(f"无法向洞位 {self.name} 添加极片:直径或厚度不匹配") - - # 调用父类方法实际执行分配 - super().assign_child_resource(resource, location, reassign) - - def unassign_child_resource(self, resource: ElectrodeSheet): - """从洞位中移除极片 - - Args: - resource: 要移除的极片 - """ - if resource not in self.children: - raise ValueError(f"极片 {resource.name} 不在洞位 {self.name} 中") - - # 调用父类方法实际执行移除 - super().unassign_child_resource(resource) - - - - def serialize_state(self) -> Dict[str, Any]: - return { - "sheet_count": len(self.children), - "sheets": [sheet.serialize() for sheet in self.children], - } -class ClipMagazine_four(ItemizedResource[ClipMagazineHole]): - """子弹夹类 - 有4个洞位,每个洞位放多个极片""" - children: List[ClipMagazineHole] - def __init__( - self, - name: str, - size_x: float, - size_y: float, - size_z: float, - hole_diameter: float = 14.0, - hole_depth: float = 10.0, - hole_spacing: float = 25.0, - max_sheets_per_hole: int = 100, - category: str = "clip_magazine_four", - model: Optional[str] = None, - ): - """初始化子弹夹 - - Args: - name: 子弹夹名称 - size_x: 长度 (mm) - size_y: 宽度 (mm) - size_z: 高度 (mm) - hole_diameter: 洞直径 (mm) - hole_depth: 洞深度 (mm) - hole_spacing: 洞位间距 (mm) - max_sheets_per_hole: 每个洞位最大极片数量 - category: 类别 - model: 型号 - """ - # 创建4个洞位,排成2x2布局 - holes = create_ordered_items_2d( - klass=ClipMagazineHole, - num_items_x=2, - num_items_y=2, - dx=(size_x - 2 * hole_spacing) / 2, # 居中 - dy=(size_y - hole_spacing) / 2, # 居中 - dz=size_z - 0, - item_dx=hole_spacing, - item_dy=hole_spacing, - diameter=hole_diameter, - depth=hole_depth, - ) - - super().__init__( - name=name, - size_x=size_x, - size_y=size_y, - size_z=size_z, - ordered_items=holes, - category=category, - model=model, - ) - - # 保存洞位的直径和深度 - self.hole_diameter = hole_diameter - self.hole_depth = hole_depth - self.max_sheets_per_hole = max_sheets_per_hole - - def serialize(self) -> dict: - return { - **super().serialize(), - "hole_diameter": self.hole_diameter, - "hole_depth": self.hole_depth, - "max_sheets_per_hole": self.max_sheets_per_hole, - } -# TODO: 这个要改 -class ClipMagazine(ItemizedResource[ClipMagazineHole]): - """子弹夹类 - 有6个洞位,每个洞位放多个极片""" - children: List[ClipMagazineHole] - def __init__( - self, - name: str, - size_x: float, - size_y: float, - size_z: float, - hole_diameter: float = 14.0, - hole_depth: float = 10.0, - hole_spacing: float = 25.0, - max_sheets_per_hole: int = 100, - category: str = "clip_magazine", - model: Optional[str] = None, - ): - """初始化子弹夹 - - Args: - name: 子弹夹名称 - size_x: 长度 (mm) - size_y: 宽度 (mm) - size_z: 高度 (mm) - hole_diameter: 洞直径 (mm) - hole_depth: 洞深度 (mm) - hole_spacing: 洞位间距 (mm) - max_sheets_per_hole: 每个洞位最大极片数量 - category: 类别 - model: 型号 - """ - # 创建6个洞位,排成2x3布局 - holes = create_ordered_items_2d( - klass=ClipMagazineHole, - num_items_x=3, - num_items_y=2, - dx=(size_x - 2 * hole_spacing) / 2, # 居中 - dy=(size_y - hole_spacing) / 2, # 居中 - dz=size_z - 0, - item_dx=hole_spacing, - item_dy=hole_spacing, - diameter=hole_diameter, - depth=hole_depth, - ) - - super().__init__( - name=name, - size_x=size_x, - size_y=size_y, - size_z=size_z, - ordered_items=holes, - category=category, - model=model, - ) - - # 保存洞位的直径和深度 - self.hole_diameter = hole_diameter - self.hole_depth = hole_depth - self.max_sheets_per_hole = max_sheets_per_hole - - def serialize(self) -> dict: - return { - **super().serialize(), - "hole_diameter": self.hole_diameter, - "hole_depth": self.hole_depth, - "max_sheets_per_hole": self.max_sheets_per_hole, - } -#是一种类型注解,不用self -class BatteryState(TypedDict): - """电池状态字典""" - diameter: float - height: float - - electrolyte_name: str - electrolyte_volume: float - -class Battery(Resource): - """电池类 - 可容纳极片""" - children: List[ElectrodeSheet] = [] - - def __init__( - self, - name: str, - category: str = "battery", - ): - """初始化电池 - - Args: - name: 电池名称 - diameter: 直径 (mm) - height: 高度 (mm) - max_volume: 最大容量 (μL) - barcode: 二维码编号 - category: 类别 - model: 型号 - """ - super().__init__( - name=name, - size_x=1, - size_y=1, - size_z=1, - category=category, - ) - self._unilabos_state: BatteryState = BatteryState() - - def add_electrolyte_with_bottle(self, bottle: Bottle) -> bool: - to_add_name = bottle._unilabos_state["electrolyte_name"] - if bottle.aspirate_electrolyte(10): - if self.add_electrolyte(to_add_name, 10): - pass - else: - bottle._unilabos_state["electrolyte_volume"] += 10 - - def set_electrolyte(self, name: str, volume: float) -> None: - """设置电解液信息""" - self._unilabos_state["electrolyte_name"] = name - self._unilabos_state["electrolyte_volume"] = volume - #这个应该没用,不会有加了后再加的事情 - def add_electrolyte(self, name: str, volume: float) -> bool: - """添加电解液信息""" - if name != self._unilabos_state["electrolyte_name"]: - return False - self._unilabos_state["electrolyte_volume"] += volume - - def load_state(self, state: Dict[str, Any]) -> None: - """格式不变""" - super().load_state(state) - self._unilabos_state = state - - def serialize_state(self) -> Dict[str, Dict[str, Any]]: - """格式不变""" - data = super().serialize_state() - data.update(self._unilabos_state) # Container自身的信息,云端物料将保存这一data,本地也通过这里的data进行读写,当前类用来表示这个物料的长宽高大小的属性,而data(state用来表示物料的内容,细节等) - return data - -# 电解液作为属性放进去 - -class BatteryPressSlotState(TypedDict): - """电池状态字典""" - diameter: float =20.0 - depth: float = 4.0 - -class BatteryPressSlot(Resource): - """电池压制槽类 - 设备,可容纳一个电池""" - children: List[Battery] = [] - - def __init__( - self, - name: str = "BatteryPressSlot", - category: str = "battery_press_slot", - ): - """初始化电池压制槽 - - Args: - name: 压制槽名称 - diameter: 直径 (mm) - depth: 深度 (mm) - category: 类别 - model: 型号 - """ - super().__init__( - name=name, - size_x=10, - size_y=12, - size_z=13, - category=category, - ) - self._unilabos_state: BatteryPressSlotState = BatteryPressSlotState() - - def has_battery(self) -> bool: - """检查是否有电池""" - return len(self.children) > 0 - - def load_state(self, state: Dict[str, Any]) -> None: - """格式不变""" - super().load_state(state) - self._unilabos_state = state - - def serialize_state(self) -> Dict[str, Dict[str, Any]]: - """格式不变""" - data = super().serialize_state() - data.update(self._unilabos_state) # Container自身的信息,云端物料将保存这一data,本地也通过这里的data进行读写,当前类用来表示这个物料的长宽高大小的属性,而data(state用来表示物料的内容,细节等) - return data - - def assign_child_resource( - self, - resource: Battery, - location: Optional[Coordinate], - reassign: bool = True, - ): - """放置极片""" - if self.has_battery(): - raise ValueError(f"槽位已含有一个电池,无法再放置其他电池") - super().assign_child_resource(resource, location, reassign) - - # 根据children的编号取物料对象。 - def get_battery_info(self, index: int) -> Battery: - return self.children[0] - -class TipBox64State(TypedDict): - """电池状态字典""" - tip_diameter: float = 5.0 - tip_length: float = 50.0 - with_tips: bool = True - -class TipBox64(TipRack): - """64孔枪头盒类""" - - children: List[TipSpot] = [] - def __init__( - self, - name: str, - size_x: float = 127.8, - size_y: float = 85.5, - size_z: float = 60.0, - category: str = "tip_box_64", - model: Optional[str] = None, - ): - """初始化64孔枪头盒 - - Args: - name: 枪头盒名称 - size_x: 长度 (mm) - size_y: 宽度 (mm) - size_z: 高度 (mm) - tip_diameter: 枪头直径 (mm) - tip_length: 枪头长度 (mm) - category: 类别 - model: 型号 - with_tips: 是否带枪头 - """ - from pylabrobot.resources.tip import Tip - - # 创建8x8=64个枪头位 - def make_tip(): - return Tip( - has_filter=False, - total_tip_length=20.0, - maximal_volume=1000, # 1mL - fitting_depth=8.0, - ) - - tip_spots = create_ordered_items_2d( - klass=TipSpot, - num_items_x=8, - num_items_y=8, - dx=8.0, - dy=8.0, - dz=0.0, - item_dx=9.0, - item_dy=9.0, - size_x=10, - size_y=10, - size_z=0.0, - make_tip=make_tip, - ) - self._unilabos_state: WasteTipBoxstate = WasteTipBoxstate() - # 记录网格参数用于前端渲染 - self._grid_params = { - "num_items_x": 8, - "num_items_y": 8, - "dx": 8.0, - "dy": 8.0, - "item_dx": 9.0, - "item_dy": 9.0, - } - super().__init__( - name=name, - size_x=size_x, - size_y=size_y, - size_z=size_z, - ordered_items=tip_spots, - category=category, - model=model, - with_tips=True, - ) - - def serialize(self) -> dict: - return { - **super().serialize(), - **self._grid_params, - } - - - -class WasteTipBoxstate(TypedDict): - """"废枪头盒状态字典""" - max_tips: int = 100 - tip_count: int = 0 - -#枪头不是一次性的(同一溶液则反复使用),根据寄存器判断 -class WasteTipBox(Trash): - """废枪头盒类 - 100个枪头容量""" - - def __init__( - self, - name: str, - size_x: float = 127.8, - size_y: float = 85.5, - size_z: float = 60.0, - category: str = "waste_tip_box", - model: Optional[str] = None, - ): - """初始化废枪头盒 - - Args: - name: 废枪头盒名称 - size_x: 长度 (mm) - size_y: 宽度 (mm) - size_z: 高度 (mm) - max_tips: 最大枪头容量 - category: 类别 - model: 型号 - """ - super().__init__( - name=name, - size_x=size_x, - size_y=size_y, - size_z=size_z, - category=category, - model=model, - ) - self._unilabos_state: WasteTipBoxstate = WasteTipBoxstate() - - def add_tip(self) -> None: - """添加废枪头""" - if self._unilabos_state["tip_count"] >= self._unilabos_state["max_tips"]: - raise ValueError(f"废枪头盒 {self.name} 已满") - self._unilabos_state["tip_count"] += 1 - - def get_tip_count(self) -> int: - """获取枪头数量""" - return self._unilabos_state["tip_count"] - - def empty(self) -> None: - """清空废枪头盒""" - self._unilabos_state["tip_count"] = 0 - - - def load_state(self, state: Dict[str, Any]) -> None: - """格式不变""" - super().load_state(state) - self._unilabos_state = state - - def serialize_state(self) -> Dict[str, Dict[str, Any]]: - """格式不变""" - data = super().serialize_state() - data.update(self._unilabos_state) # Container自身的信息,云端物料将保存这一data,本地也通过这里的data进行读写,当前类用来表示这个物料的长宽高大小的属性,而data(state用来表示物料的内容,细节等) - return data - - -class BottleRackState(TypedDict): - """ bottle_diameter: 瓶子直径 (mm) - bottle_height: 瓶子高度 (mm) - position_spacing: 位置间距 (mm)""" - bottle_diameter: float - bottle_height: float - name_to_index: dict - - -class BottleRackState(TypedDict): - """ bottle_diameter: 瓶子直径 (mm) - bottle_height: 瓶子高度 (mm) - position_spacing: 位置间距 (mm)""" - bottle_diameter: float - bottle_height: float - position_spacing: float - name_to_index: dict - - -class BottleRack(Resource): - """瓶架类 - 12个待配位置+12个已配位置""" - children: List[Resource] = [] - - def __init__( - self, - name: str, - size_x: float, - size_y: float, - size_z: float, - category: str = "bottle_rack", - model: Optional[str] = None, - num_items_x: int = 3, - num_items_y: int = 4, - position_spacing: float = 35.0, - orientation: str = "horizontal", - padding_x: float = 20.0, - padding_y: float = 20.0, - ): - """初始化瓶架 - - Args: - name: 瓶架名称 - size_x: 长度 (mm) - size_y: 宽度 (mm) - size_z: 高度 (mm) - category: 类别 - model: 型号 - """ - super().__init__( - name=name, - size_x=size_x, - size_y=size_y, - size_z=size_z, - category=category, - model=model, - ) - # 初始化状态 - self._unilabos_state: BottleRackState = BottleRackState( - bottle_diameter=30.0, - bottle_height=100.0, - position_spacing=position_spacing, - name_to_index={}, - ) - # 基于网格生成瓶位坐标映射(居中摆放) - # 使用内边距,避免点跑到容器外(前端渲染不按mm等比缩放时更稳妥) - origin_x = padding_x - origin_y = padding_y - self.index_to_pos = {} - for j in range(num_items_y): - for i in range(num_items_x): - idx = j * num_items_x + i - if orientation == "vertical": - # 纵向:沿 y 方向优先排列 - self.index_to_pos[idx] = Coordinate( - x=origin_x + j * position_spacing, - y=origin_y + i * position_spacing, - z=0, - ) - else: - # 横向(默认):沿 x 方向优先排列 - self.index_to_pos[idx] = Coordinate( - x=origin_x + i * position_spacing, - y=origin_y + j * position_spacing, - z=0, - ) - self.name_to_index = {} - self.name_to_pos = {} - self.num_items_x = num_items_x - self.num_items_y = num_items_y - self.orientation = orientation - self.padding_x = padding_x - self.padding_y = padding_y - - def load_state(self, state: Dict[str, Any]) -> None: - """格式不变""" - super().load_state(state) - self._unilabos_state = state - - def serialize_state(self) -> Dict[str, Dict[str, Any]]: - """格式不变""" - data = super().serialize_state() - data.update( - self._unilabos_state) # Container自身的信息,云端物料将保存这一data,本地也通过这里的data进行读写,当前类用来表示这个物料的长宽高大小的属性,而data(state用来表示物料的内容,细节等) - return data - - # TODO: 这里有些问题要重新写一下 - def assign_child_resource_old(self, resource: Resource, location=Coordinate.zero(), reassign=True): - capacity = self.num_items_x * self.num_items_y - assert len(self.children) < capacity, "瓶架已满,无法添加更多瓶子" - index = len(self.children) - location = self.index_to_pos.get(index, Coordinate.zero()) - self.name_to_pos[resource.name] = location - self.name_to_index[resource.name] = index - return super().assign_child_resource(resource, location, reassign) - - def assign_child_resource(self, resource: Resource, index: int): - capacity = self.num_items_x * self.num_items_y - assert 0 <= index < capacity, "无效的瓶子索引" - self.name_to_index[resource.name] = index - location = self.index_to_pos[index] - return super().assign_child_resource(resource, location) - - def unassign_child_resource(self, resource: Bottle): - super().unassign_child_resource(resource) - self.index_to_pos.pop(self.name_to_index.pop(resource.name, None), None) - - def serialize(self) -> dict: - return { - **super().serialize(), - "num_items_x": self.num_items_x, - "num_items_y": self.num_items_y, - "position_spacing": self._unilabos_state.get("position_spacing", 35.0), - "orientation": self.orientation, - "padding_x": self.padding_x, - "padding_y": self.padding_y, - } - - -class BottleState(TypedDict): - diameter: float - height: float - electrolyte_name: str - electrolyte_volume: float - max_volume: float - -class Bottle(Resource): - """瓶子类 - 容纳电解液""" - - def __init__( - self, - name: str, - category: str = "bottle", - ): - """初始化瓶子 - - Args: - name: 瓶子名称 - diameter: 直径 (mm) - height: 高度 (mm) - max_volume: 最大体积 (μL) - barcode: 二维码 - category: 类别 - model: 型号 - """ - super().__init__( - name=name, - size_x=1, - size_y=1, - size_z=1, - category=category, - ) - self._unilabos_state: BottleState = BottleState() - - def aspirate_electrolyte(self, volume: float) -> bool: - current_volume = self._unilabos_state["electrolyte_volume"] - assert current_volume > volume, f"Cannot aspirate {volume}μL, only {current_volume}μL available." - self._unilabos_state["electrolyte_volume"] -= volume - return True - - def load_state(self, state: Dict[str, Any]) -> None: - """格式不变""" - super().load_state(state) - self._unilabos_state = state - - def serialize_state(self) -> Dict[str, Dict[str, Any]]: - """格式不变""" - data = super().serialize_state() - data.update(self._unilabos_state) # Container自身的信息,云端物料将保存这一data,本地也通过这里的data进行读写,当前类用来表示这个物料的长宽高大小的属性,而data(state用来表示物料的内容,细节等) - return data - -class CoincellDeck(Deck): - """纽扣电池组装工作站台面类""" - - def __init__( - self, - name: str = "coin_cell_deck", - size_x: float = 1620.0, # 3.66m - size_y: float = 1270.0, # 1.23m - size_z: float = 500.0, - origin: Coordinate = Coordinate(0, 0, 0), - category: str = "coin_cell_deck", - ): - """初始化纽扣电池组装工作站台面 - - Args: - name: 台面名称 - size_x: 长度 (mm) - 3.66m - size_y: 宽度 (mm) - 1.23m - size_z: 高度 (mm) - origin: 原点坐标 - category: 类别 - """ - super().__init__( - name=name, - size_x=size_x, - size_y=size_y, - size_z=size_z, - origin=origin, - category=category, - ) - -#if __name__ == "__main__": -# # 转移极片的测试代码 -# deck = CoincellDeck("coin_cell_deck") -# ban_cao_wei = PlateSlot("ban_cao_wei", max_plates=8) -# deck.assign_child_resource(ban_cao_wei, Coordinate(x=0, y=0, z=0)) -# -# plate_1 = MaterialPlate("plate_1", 1,1,1, fill=True) -# for i, hole in enumerate(plate_1.children): -# sheet = ElectrodeSheet(f"hole_{i}_sheet_1") -# sheet._unilabos_state = { -# "diameter": 14, -# "info": "NMC", -# "mass": 5.0, -# "material_type": "positive_electrode", -# "thickness": 0.1 -# } -# hole._unilabos_state = { -# "depth": 1.0, -# "diameter": 14, -# "info": "", -# "max_sheets": 1 -# } -# hole.assign_child_resource(sheet, Coordinate.zero()) -# plate_1._unilabos_state = { -# "hole_spacing_x": 20.0, -# "hole_spacing_y": 20.0, -# "hole_diameter": 5, -# "info": "这是第一块料板" -# } -# plate_1.update_locations() -# ban_cao_wei.assign_child_resource(plate_1, Coordinate.zero()) -# # zi_dan_jia = ClipMagazine("zi_dan_jia", 1, 1, 1) -# # deck.assign_child_resource(ban_cao_wei, Coordinate(x=200, y=200, z=0)) -# -# from unilabos.resources.graphio import * -# A = tree_to_list([resource_plr_to_ulab(deck)]) -# with open("test.json", "w") as f: -# json.dump(A, f) -# -# -#def get_plate_with_14mm_hole(name=""): -# plate = MaterialPlate(name=name) -# for i in range(4): -# for j in range(4): -# hole = MaterialHole(f"{i+1}x{j+1}") -# hole._unilabos_state["diameter"] = 14 -# hole._unilabos_state["max_sheets"] = 1 -# plate.assign_child_resource(hole) -# return plate - -def create_a_liaopan(): - liaopan = MaterialPlate(name="liaopan", size_x=120.8, size_y=120.5, size_z=10.0, fill=True) - for i in range(16): - jipian = ElectrodeSheet(name=f"jipian_{i}", size_x= 12, size_y=12, size_z=0.1) - liaopan1.children[i].assign_child_resource(jipian, location=None) - return liaopan - -def create_a_coin_cell_deck(): - deck = Deck(size_x=1200, - size_y=800, - size_z=900) - - #liaopan = TipBox64(name="liaopan") - - #创建一个4*4的物料板 - liaopan1 = MaterialPlate(name="liaopan1", size_x=120.8, size_y=120.5, size_z=10.0, fill=True) - #把物料板放到桌子上 - deck.assign_child_resource(liaopan1, Coordinate(x=0, y=0, z=0)) - #创建一个极片 - for i in range(16): - jipian = ElectrodeSheet(name=f"jipian_{i}", size_x= 12, size_y=12, size_z=0.1) - liaopan1.children[i].assign_child_resource(jipian, location=None) - #创建一个4*4的物料板 - liaopan2 = MaterialPlate(name="liaopan2", size_x=120.8, size_y=120.5, size_z=10.0, fill=True) - #把物料板放到桌子上 - deck.assign_child_resource(liaopan2, Coordinate(x=500, y=0, z=0)) - - #创建一个4*4的物料板 - liaopan3 = MaterialPlate(name="liaopan3", size_x=120.8, size_y=120.5, size_z=10.0, fill=True) - #把物料板放到桌子上 - deck.assign_child_resource(liaopan3, Coordinate(x=1000, y=0, z=0)) - - print(deck) - - return deck - - -import json - -if __name__ == "__main__": - electrode1 = BatteryPressSlot() - #print(electrode1.get_size_x()) - #print(electrode1.get_size_y()) - #print(electrode1.get_size_z()) - #jipian = ElectrodeSheet() - #jipian._unilabos_state["diameter"] = 18 - #print(jipian.serialize()) - #print(jipian.serialize_state()) - - deck = CoincellDeck() - """======================================子弹夹============================================""" - zip_dan_jia = ClipMagazine_four("zi_dan_jia", 80, 80, 10) - deck.assign_child_resource(zip_dan_jia, Coordinate(x=1400, y=50, z=0)) - zip_dan_jia2 = ClipMagazine_four("zi_dan_jia2", 80, 80, 10) - deck.assign_child_resource(zip_dan_jia2, Coordinate(x=1600, y=200, z=0)) - zip_dan_jia3 = ClipMagazine("zi_dan_jia3", 80, 80, 10) - deck.assign_child_resource(zip_dan_jia3, Coordinate(x=1500, y=200, z=0)) - zip_dan_jia4 = ClipMagazine("zi_dan_jia4", 80, 80, 10) - deck.assign_child_resource(zip_dan_jia4, Coordinate(x=1500, y=300, z=0)) - zip_dan_jia5 = ClipMagazine("zi_dan_jia5", 80, 80, 10) - deck.assign_child_resource(zip_dan_jia5, Coordinate(x=1600, y=300, z=0)) - zip_dan_jia6 = ClipMagazine("zi_dan_jia6", 80, 80, 10) - deck.assign_child_resource(zip_dan_jia6, Coordinate(x=1530, y=500, z=0)) - zip_dan_jia7 = ClipMagazine("zi_dan_jia7", 80, 80, 10) - deck.assign_child_resource(zip_dan_jia7, Coordinate(x=1180, y=400, z=0)) - zip_dan_jia8 = ClipMagazine("zi_dan_jia8", 80, 80, 10) - deck.assign_child_resource(zip_dan_jia8, Coordinate(x=1280, y=400, z=0)) - for i in range(4): - jipian = ElectrodeSheet(name=f"zi_dan_jia_jipian_{i}", size_x=12, size_y=12, size_z=0.1) - zip_dan_jia2.children[i].assign_child_resource(jipian, location=None) - for i in range(4): - jipian2 = ElectrodeSheet(name=f"zi_dan_jia2_jipian_{i}", size_x=12, size_y=12, size_z=0.1) - zip_dan_jia.children[i].assign_child_resource(jipian2, location=None) - for i in range(6): - jipian3 = ElectrodeSheet(name=f"zi_dan_jia3_jipian_{i}", size_x=12, size_y=12, size_z=0.1) - zip_dan_jia3.children[i].assign_child_resource(jipian3, location=None) - for i in range(6): - jipian4 = ElectrodeSheet(name=f"zi_dan_jia4_jipian_{i}", size_x=12, size_y=12, size_z=0.1) - zip_dan_jia4.children[i].assign_child_resource(jipian4, location=None) - for i in range(6): - jipian5 = ElectrodeSheet(name=f"zi_dan_jia5_jipian_{i}", size_x=12, size_y=12, size_z=0.1) - zip_dan_jia5.children[i].assign_child_resource(jipian5, location=None) - for i in range(6): - jipian6 = ElectrodeSheet(name=f"zi_dan_jia6_jipian_{i}", size_x=12, size_y=12, size_z=0.1) - zip_dan_jia6.children[i].assign_child_resource(jipian6, location=None) - for i in range(6): - jipian7 = ElectrodeSheet(name=f"zi_dan_jia7_jipian_{i}", size_x=12, size_y=12, size_z=0.1) - zip_dan_jia7.children[i].assign_child_resource(jipian7, location=None) - for i in range(6): - jipian8 = ElectrodeSheet(name=f"zi_dan_jia8_jipian_{i}", size_x=12, size_y=12, size_z=0.1) - zip_dan_jia8.children[i].assign_child_resource(jipian8, location=None) - """======================================子弹夹============================================""" - #liaopan = TipBox64(name="liaopan") - """======================================物料板============================================""" - #创建一个4*4的物料板 - liaopan1 = MaterialPlate(name="liaopan1", size_x=120, size_y=100, size_z=10.0, fill=True) - deck.assign_child_resource(liaopan1, Coordinate(x=1010, y=50, z=0)) - for i in range(16): - jipian_1 = ElectrodeSheet(name=f"{liaopan1.name}_jipian_{i}", size_x=12, size_y=12, size_z=0.1) - liaopan1.children[i].assign_child_resource(jipian_1, location=None) - - liaopan2 = MaterialPlate(name="liaopan2", size_x=120, size_y=100, size_z=10.0, fill=True) - deck.assign_child_resource(liaopan2, Coordinate(x=1130, y=50, z=0)) - - liaopan3 = MaterialPlate(name="liaopan3", size_x=120, size_y=100, size_z=10.0, fill=True) - deck.assign_child_resource(liaopan3, Coordinate(x=1250, y=50, z=0)) - - liaopan4 = MaterialPlate(name="liaopan4", size_x=120, size_y=100, size_z=10.0, fill=True) - deck.assign_child_resource(liaopan4, Coordinate(x=1010, y=150, z=0)) - for i in range(16): - jipian_4 = ElectrodeSheet(name=f"{liaopan4.name}_jipian_{i}", size_x=12, size_y=12, size_z=0.1) - liaopan4.children[i].assign_child_resource(jipian_4, location=None) - liaopan5 = MaterialPlate(name="liaopan5", size_x=120, size_y=100, size_z=10.0, fill=True) - deck.assign_child_resource(liaopan5, Coordinate(x=1130, y=150, z=0)) - liaopan6 = MaterialPlate(name="liaopan6", size_x=120, size_y=100, size_z=10.0, fill=True) - deck.assign_child_resource(liaopan6, Coordinate(x=1250, y=150, z=0)) - #liaopan.children[3].assign_child_resource(jipian, location=None) - """======================================物料板============================================""" - """======================================瓶架,移液枪============================================""" - # 在台面上放置 3x4 瓶架、6x2 瓶架 与 64孔移液枪头盒 - bottle_rack_3x4 = BottleRack( - name="bottle_rack_3x4", - size_x=210.0, - size_y=140.0, - size_z=100.0, - num_items_x=3, - num_items_y=4, - position_spacing=35.0, - orientation="vertical", - ) - deck.assign_child_resource(bottle_rack_3x4, Coordinate(x=100, y=200, z=0)) - - bottle_rack_6x2 = BottleRack( - name="bottle_rack_6x2", - size_x=120.0, - size_y=250.0, - size_z=100.0, - num_items_x=6, - num_items_y=2, - position_spacing=35.0, - orientation="vertical", - ) - deck.assign_child_resource(bottle_rack_6x2, Coordinate(x=300, y=300, z=0)) - - bottle_rack_6x2_2 = BottleRack( - name="bottle_rack_6x2_2", - size_x=120.0, - size_y=250.0, - size_z=100.0, - num_items_x=6, - num_items_y=2, - position_spacing=35.0, - orientation="vertical", - ) - deck.assign_child_resource(bottle_rack_6x2_2, Coordinate(x=430, y=300, z=0)) - - - # 将 ElectrodeSheet 放满 3x4 与 6x2 的所有孔位 - for idx in range(bottle_rack_3x4.num_items_x * bottle_rack_3x4.num_items_y): - sheet = ElectrodeSheet(name=f"sheet_3x4_{idx}", size_x=12, size_y=12, size_z=0.1) - bottle_rack_3x4.assign_child_resource(sheet, index=idx) - - for idx in range(bottle_rack_6x2.num_items_x * bottle_rack_6x2.num_items_y): - sheet = ElectrodeSheet(name=f"sheet_6x2_{idx}", size_x=12, size_y=12, size_z=0.1) - bottle_rack_6x2.assign_child_resource(sheet, index=idx) - - tip_box = TipBox64(name="tip_box_64") - deck.assign_child_resource(tip_box, Coordinate(x=300, y=100, z=0)) - - waste_tip_box = WasteTipBox(name="waste_tip_box") - deck.assign_child_resource(waste_tip_box, Coordinate(x=300, y=200, z=0)) - """======================================瓶架,移液枪============================================""" - print(deck) - - - from unilabos.resources.graphio import convert_resources_from_type - from unilabos.config.config import BasicConfig - BasicConfig.ak = "56bbed5b-6e30-438c-b06d-f69eaa63bb45" - BasicConfig.sk = "238222fe-0bf7-4350-a426-e5ced8011dcf" - from unilabos.app.web.client import http_client - - resources = convert_resources_from_type([deck], [Resource]) - - # 检查序列化后的资源 - - json.dump({"nodes": resources, "links": []}, open("button_battery_decks_unilab.json", "w"), indent=2) - - - #print(resources) - http_client.remote_addr = "https://uni-lab.test.bohrium.com/api/v1" - - http_client.resource_add(resources) \ No newline at end of file diff --git a/unilabos/devices/workstation/coin_cell_assembly/coin_cell_assembly.py b/unilabos/devices/workstation/coin_cell_assembly/coin_cell_assembly.py deleted file mode 100644 index 4758bdda..00000000 --- a/unilabos/devices/workstation/coin_cell_assembly/coin_cell_assembly.py +++ /dev/null @@ -1,1142 +0,0 @@ -import csv -import json -import os -import threading -import time -from datetime import datetime -from typing import Any, Dict, Optional -from pylabrobot.resources import Resource as PLRResource -from unilabos_msgs.msg import Resource -from unilabos.device_comms.modbus_plc.client import ModbusTcpClient -from unilabos.devices.workstation.coin_cell_assembly.button_battery_station import MaterialHole, MaterialPlate -from unilabos.devices.workstation.workstation_base import WorkstationBase -from unilabos.device_comms.modbus_plc.client import TCPClient, ModbusNode, PLCWorkflow, ModbusWorkflow, WorkflowAction, BaseClient -from unilabos.device_comms.modbus_plc.modbus import DeviceType, Base as ModbusNodeBase, DataType, WorderOrder -from unilabos.devices.workstation.coin_cell_assembly.button_battery_station import * -from unilabos.ros.nodes.base_device_node import ROS2DeviceNode, BaseROS2DeviceNode -from unilabos.ros.nodes.presets.workstation import ROS2WorkstationNode - -#构建物料系统 - -class CoinCellAssemblyWorkstation(WorkstationBase): - def __init__( - self, - deck: CoincellDeck, - address: str = "192.168.1.20", - port: str = "502", - debug_mode: bool = True, - *args, - **kwargs, - ): - super().__init__( - #桌子 - deck=deck, - *args, - **kwargs, - ) - self.debug_mode = debug_mode - self.deck = deck - """ 连接初始化 """ - modbus_client = TCPClient(addr=address, port=port) - print("modbus_client", modbus_client) - if not debug_mode: - modbus_client.client.connect() - count = 100 - while count >0: - count -=1 - if modbus_client.client.is_socket_open(): - break - time.sleep(2) - if not modbus_client.client.is_socket_open(): - raise ValueError('modbus tcp connection failed') - else: - print("测试模式,跳过连接") - - """ 工站的配置 """ - self.nodes = BaseClient.load_csv(os.path.join(os.path.dirname(__file__), 'coin_cell_assembly_a.csv')) - self.client = modbus_client.register_node_list(self.nodes) - self.success = False - self.allow_data_read = False #允许读取函数运行标志位 - self.csv_export_thread = None - self.csv_export_running = False - self.csv_export_file = None - #创建一个物料台面,包含两个极片板 - #self.deck = create_a_coin_cell_deck() - - #self._ros_node.update_resource(self.deck) - - #ROS2DeviceNode.run_async_func(self._ros_node.update_resource, True, **{ - # "resources": [self.deck] - #}) - - - def post_init(self, ros_node: ROS2WorkstationNode): - self._ros_node = ros_node - #self.deck = create_a_coin_cell_deck() - ROS2DeviceNode.run_async_func(self._ros_node.update_resource, True, **{ - "resources": [self.deck] - }) - - # 批量操作在这里写 - async def change_hole_sheet_to_2(self, hole: MaterialHole): - hole._unilabos_state["max_sheets"] = 2 - return await self._ros_node.update_resource(hole) - - - async def fill_plate(self): - plate_1: MaterialPlate = self.deck.children[0].children[0] - #plate_1 - return await self._ros_node.update_resource(plate_1) - - #def run_assembly(self, wf_name: str, resource: PLRResource, params: str = "\{\}"): - # """启动工作流""" - # self.current_workflow_status = WorkflowStatus.RUNNING - # logger.info(f"工作站 {self.device_id} 启动工作流: {wf_name}") -# - # # TODO: 实现工作流逻辑 -# - # anode_sheet = self.deck.get_resource("anode_sheet") - - """ Action逻辑代码 """ - def _sys_start_cmd(self, cmd=None): - """设备启动命令 (可读写)""" - if cmd is not None: # 写入模式 - self.success = False - node = self.client.use_node('COIL_SYS_START_CMD') - ret = node.write(cmd) - print(ret) - self.success = True - return self.success - else: # 读取模式 - cmd_feedback, read_err = self.client.use_node('COIL_SYS_START_CMD').read(1) - return cmd_feedback[0] - - def _sys_stop_cmd(self, cmd=None): - """设备停止命令 (可读写)""" - if cmd is not None: # 写入模式 - self.success = False - node = self.client.use_node('COIL_SYS_STOP_CMD') - node.write(cmd) - self.success = True - return self.success - else: # 读取模式 - cmd_feedback, read_err = self.client.use_node('COIL_SYS_STOP_CMD').read(1) - return cmd_feedback[0] - - def _sys_reset_cmd(self, cmd=None): - """设备复位命令 (可读写)""" - if cmd is not None: - self.success = False - self.client.use_node('COIL_SYS_RESET_CMD').write(cmd) - self.success = True - return self.success - else: - cmd_feedback, read_err = self.client.use_node('COIL_SYS_RESET_CMD').read(1) - return cmd_feedback[0] - - def _sys_hand_cmd(self, cmd=None): - """手动模式命令 (可读写)""" - if cmd is not None: - self.success = False - self.client.use_node('COIL_SYS_HAND_CMD').write(cmd) - self.success = True - print("步骤0") - return self.success - else: - cmd_feedback, read_err = self.client.use_node('COIL_SYS_HAND_CMD').read(1) - return cmd_feedback[0] - - def _sys_auto_cmd(self, cmd=None): - """自动模式命令 (可读写)""" - if cmd is not None: - self.success = False - self.client.use_node('COIL_SYS_AUTO_CMD').write(cmd) - self.success = True - return self.success - else: - cmd_feedback, read_err = self.client.use_node('COIL_SYS_AUTO_CMD').read(1) - return cmd_feedback[0] - - def _sys_init_cmd(self, cmd=None): - """初始化命令 (可读写)""" - if cmd is not None: - self.success = False - self.client.use_node('COIL_SYS_INIT_CMD').write(cmd) - self.success = True - return self.success - else: - cmd_feedback, read_err = self.client.use_node('COIL_SYS_INIT_CMD').read(1) - return cmd_feedback[0] - - def _unilab_send_msg_succ_cmd(self, cmd=None): - """UNILAB发送配方完毕 (可读写)""" - if cmd is not None: - self.success = False - self.client.use_node('COIL_UNILAB_SEND_MSG_SUCC_CMD').write(cmd) - self.success = True - return self.success - else: - cmd_feedback, read_err = self.client.use_node('COIL_UNILAB_SEND_MSG_SUCC_CMD').read(1) - return cmd_feedback[0] - - def _unilab_rec_msg_succ_cmd(self, cmd=None): - """UNILAB接收测试电池数据完毕 (可读写)""" - if cmd is not None: - self.success = False - self.client.use_node('COIL_UNILAB_REC_MSG_SUCC_CMD').write(cmd) - self.success = True - return self.success - else: - cmd_feedback, read_err = self.client.use_node('COIL_UNILAB_REC_MSG_SUCC_CMD').read(1) - return cmd_feedback - - - # ====================== 命令类指令(REG_x_) ====================== - def _unilab_send_msg_electrolyte_num(self, num=None): - """UNILAB写电解液使用瓶数(可读写)""" - if num is not None: - self.success = False - ret = self.client.use_node('REG_MSG_ELECTROLYTE_NUM').write(num) - print(ret) - self.success = True - return self.success - else: - cmd_feedback, read_err = self.client.use_node('REG_MSG_ELECTROLYTE_NUM').read(1) - return cmd_feedback[0] - - def _unilab_send_msg_electrolyte_use_num(self, use_num=None): - """UNILAB写单次电解液使用瓶数(可读写)""" - if use_num is not None: - self.success = False - self.client.use_node('REG_MSG_ELECTROLYTE_USE_NUM').write(use_num) - self.success = True - return self.success - else: - return False - - def _unilab_send_msg_assembly_type(self, num=None): - """UNILAB写组装参数""" - if num is not None: - self.success = False - self.client.use_node('REG_MSG_ASSEMBLY_TYPE').write(num) - self.success = True - return self.success - else: - cmd_feedback, read_err = self.client.use_node('REG_MSG_ASSEMBLY_TYPE').read(1) - return cmd_feedback[0] - - def _unilab_send_msg_electrolyte_vol(self, vol=None): - """UNILAB写电解液吸取量参数""" - if vol is not None: - self.success = False - self.client.use_node('REG_MSG_ELECTROLYTE_VOLUME').write(vol, data_type=DataType.FLOAT32, word_order=WorderOrder.LITTLE) - self.success = True - return self.success - else: - cmd_feedback, read_err = self.client.use_node('REG_MSG_ELECTROLYTE_VOLUME').read(2, word_order=WorderOrder.LITTLE) - return cmd_feedback[0] - - def _unilab_send_msg_assembly_pressure(self, vol=None): - """UNILAB写电池压制力""" - if vol is not None: - self.success = False - self.client.use_node('REG_MSG_ASSEMBLY_PRESSURE').write(vol, data_type=DataType.FLOAT32, word_order=WorderOrder.LITTLE) - self.success = True - return self.success - else: - cmd_feedback, read_err = self.client.use_node('REG_MSG_ASSEMBLY_PRESSURE').read(2, word_order=WorderOrder.LITTLE) - return cmd_feedback[0] - - # ==================== 0905新增内容(COIL_x_STATUS) ==================== - def _unilab_send_electrolyte_bottle_num(self, num=None): - """UNILAB发送电解液瓶数完毕""" - if num is not None: - self.success = False - self.client.use_node('UNILAB_SEND_ELECTROLYTE_BOTTLE_NUM').write(num) - self.success = True - return self.success - else: - cmd_feedback, read_err = self.client.use_node('UNILAB_SEND_ELECTROLYTE_BOTTLE_NUM').read(1) - return cmd_feedback[0] - - def _unilab_rece_electrolyte_bottle_num(self, num=None): - """设备请求接受电解液瓶数""" - if num is not None: - self.success = False - self.client.use_node('UNILAB_RECE_ELECTROLYTE_BOTTLE_NUM').write(num) - self.success = True - return self.success - else: - cmd_feedback, read_err = self.client.use_node('UNILAB_RECE_ELECTROLYTE_BOTTLE_NUM').read(1) - return cmd_feedback[0] - - def _reg_msg_electrolyte_num(self, num=None): - """电解液已使用瓶数""" - if num is not None: - self.success = False - self.client.use_node('REG_MSG_ELECTROLYTE_NUM').write(num) - self.success = True - return self.success - else: - cmd_feedback, read_err = self.client.use_node('REG_MSG_ELECTROLYTE_NUM').read(1) - return cmd_feedback[0] - - def _reg_data_electrolyte_use_num(self, num=None): - """单瓶电解液完成组装数""" - if num is not None: - self.success = False - self.client.use_node('REG_DATA_ELECTROLYTE_USE_NUM').write(num) - self.success = True - return self.success - else: - cmd_feedback, read_err = self.client.use_node('REG_DATA_ELECTROLYTE_USE_NUM').read(1) - return cmd_feedback[0] - - def _unilab_send_finished_cmd(self, num=None): - """Unilab发送已知一组组装完成信号""" - if num is not None: - self.success = False - self.client.use_node('UNILAB_SEND_FINISHED_CMD').write(num) - self.success = True - return self.success - else: - cmd_feedback, read_err = self.client.use_node('UNILAB_SEND_FINISHED_CMD').read(1) - return cmd_feedback[0] - - def _unilab_rece_finished_cmd(self, num=None): - """Unilab接收已知一组组装完成信号""" - if num is not None: - self.success = False - self.client.use_node('UNILAB_RECE_FINISHED_CMD').write(num) - self.success = True - return self.success - else: - cmd_feedback, read_err = self.client.use_node('UNILAB_RECE_FINISHED_CMD').read(1) - return cmd_feedback[0] - - - - # ==================== 状态类属性(COIL_x_STATUS) ==================== - def _sys_start_status(self) -> bool: - """设备启动中( BOOL)""" - status, read_err = self.client.use_node('COIL_SYS_START_STATUS').read(1) - return status[0] - - def _sys_stop_status(self) -> bool: - """设备停止中( BOOL)""" - status, read_err = self.client.use_node('COIL_SYS_STOP_STATUS').read(1) - return status[0] - - def _sys_reset_status(self) -> bool: - """设备复位中( BOOL)""" - status, read_err = self.client.use_node('COIL_SYS_RESET_STATUS').read(1) - return status[0] - - def _sys_init_status(self) -> bool: - """设备初始化完成( BOOL)""" - status, read_err = self.client.use_node('COIL_SYS_INIT_STATUS').read(1) - return status[0] - - # 查找资源 - def modify_deck_name(self, resource_name: str): - # figure_res = self._ros_node.resource_tracker.figure_resource({"name": resource_name}) - # print(f"!!! figure_res: {type(figure_res)}") - self.deck.children[1] - return - - @property - def sys_status(self) -> str: - if self.debug_mode: - return "设备调试模式" - if self._sys_start_status(): - return "设备启动中" - elif self._sys_stop_status(): - return "设备停止中" - elif self._sys_reset_status(): - return "设备复位中" - elif self._sys_init_status(): - return "设备初始化中" - else: - return "未知状态" - - def _sys_hand_status(self) -> bool: - """设备手动模式( BOOL)""" - status, read_err = self.client.use_node('COIL_SYS_HAND_STATUS').read(1) - return status[0] - - def _sys_auto_status(self) -> bool: - """设备自动模式( BOOL)""" - status, read_err = self.client.use_node('COIL_SYS_AUTO_STATUS').read(1) - return status[0] - - @property - def sys_mode(self) -> str: - if self.debug_mode: - return "设备调试模式" - if self._sys_hand_status(): - return "设备手动模式" - elif self._sys_auto_status(): - return "设备自动模式" - else: - return "未知模式" - - @property - def request_rec_msg_status(self) -> bool: - """设备请求接受配方( BOOL)""" - if self.debug_mode: - return True - status, read_err = self.client.use_node('COIL_REQUEST_REC_MSG_STATUS').read(1) - return status[0] - - @property - def request_send_msg_status(self) -> bool: - """设备请求发送测试数据( BOOL)""" - if self.debug_mode: - return True - status, read_err = self.client.use_node('COIL_REQUEST_SEND_MSG_STATUS').read(1) - return status[0] - - # ======================= 其他属性(特殊功能) ======================== - ''' - @property - def warning_1(self) -> bool: - status, read_err = self.client.use_node('COIL_WARNING_1').read(1) - return status[0] - ''' - # ===================== 生产数据区 ====================== - - @property - def data_assembly_coin_cell_num(self) -> int: - """已完成电池数量 (INT16)""" - if self.debug_mode: - return 0 - num, read_err = self.client.use_node('REG_DATA_ASSEMBLY_COIN_CELL_NUM').read(1) - return num - - @property - def data_assembly_time(self) -> float: - """单颗电池组装时间 (秒, REAL/FLOAT32)""" - if self.debug_mode: - return 0 - time, read_err = self.client.use_node('REG_DATA_ASSEMBLY_PER_TIME').read(2, word_order=WorderOrder.LITTLE) - return time - - @property - def data_open_circuit_voltage(self) -> float: - """开路电压值 (FLOAT32)""" - if self.debug_mode: - return 0 - vol, read_err = self.client.use_node('REG_DATA_OPEN_CIRCUIT_VOLTAGE').read(2, word_order=WorderOrder.LITTLE) - return vol - - @property - def data_axis_x_pos(self) -> float: - """分液X轴当前位置 (FLOAT32)""" - if self.debug_mode: - return 0 - pos, read_err = self.client.use_node('REG_DATA_AXIS_X_POS').read(2, word_order=WorderOrder.LITTLE) - return pos - - @property - def data_axis_y_pos(self) -> float: - """分液Y轴当前位置 (FLOAT32)""" - if self.debug_mode: - return 0 - pos, read_err = self.client.use_node('REG_DATA_AXIS_Y_POS').read(2, word_order=WorderOrder.LITTLE) - return pos - - @property - def data_axis_z_pos(self) -> float: - """分液Z轴当前位置 (FLOAT32)""" - if self.debug_mode: - return 0 - pos, read_err = self.client.use_node('REG_DATA_AXIS_Z_POS').read(2, word_order=WorderOrder.LITTLE) - return pos - - @property - def data_pole_weight(self) -> float: - """当前电池正极片称重数据 (FLOAT32)""" - if self.debug_mode: - return 0 - weight, read_err = self.client.use_node('REG_DATA_POLE_WEIGHT').read(2, word_order=WorderOrder.LITTLE) - return weight - - @property - def data_assembly_pressure(self) -> int: - """当前电池压制力 (INT16)""" - if self.debug_mode: - return 0 - pressure, read_err = self.client.use_node('REG_DATA_ASSEMBLY_PRESSURE').read(1) - return pressure - - @property - def data_electrolyte_volume(self) -> int: - """当前电解液加注量 (INT16)""" - if self.debug_mode: - return 0 - vol, read_err = self.client.use_node('REG_DATA_ELECTROLYTE_VOLUME').read(1) - return vol - - @property - def data_coin_num(self) -> int: - """当前电池数量 (INT16)""" - if self.debug_mode: - return 0 - num, read_err = self.client.use_node('REG_DATA_COIN_NUM').read(1) - return num - - @property - def data_coin_cell_code(self) -> str: - """电池二维码序列号 (STRING)""" - try: - # 尝试不同的字节序读取 - code_little, read_err = self.client.use_node('REG_DATA_COIN_CELL_CODE').read(10, word_order=WorderOrder.LITTLE) - print(code_little) - clean_code = code_little[-8:][::-1] - return clean_code - except Exception as e: - print(f"读取电池二维码失败: {e}") - return "N/A" - - - @property - def data_electrolyte_code(self) -> str: - try: - # 尝试不同的字节序读取 - code_little, read_err = self.client.use_node('REG_DATA_ELECTROLYTE_CODE').read(10, word_order=WorderOrder.LITTLE) - print(code_little) - clean_code = code_little[-8:][::-1] - return clean_code - except Exception as e: - print(f"读取电解液二维码失败: {e}") - return "N/A" - - # ===================== 环境监控区 ====================== - @property - def data_glove_box_pressure(self) -> float: - """手套箱压力 (bar, FLOAT32)""" - if self.debug_mode: - return 0 - status, read_err = self.client.use_node('REG_DATA_GLOVE_BOX_PRESSURE').read(2, word_order=WorderOrder.LITTLE) - return status - - @property - def data_glove_box_o2_content(self) -> float: - """手套箱氧含量 (ppm, FLOAT32)""" - if self.debug_mode: - return 0 - value, read_err = self.client.use_node('REG_DATA_GLOVE_BOX_O2_CONTENT').read(2, word_order=WorderOrder.LITTLE) - return value - - @property - def data_glove_box_water_content(self) -> float: - """手套箱水含量 (ppm, FLOAT32)""" - if self.debug_mode: - return 0 - value, read_err = self.client.use_node('REG_DATA_GLOVE_BOX_WATER_CONTENT').read(2, word_order=WorderOrder.LITTLE) - return value - -# @property -# def data_stack_vision_code(self) -> int: -# """物料堆叠复检图片编码 (INT16)""" -# if self.debug_mode: -# return 0 -# code, read_err = self.client.use_node('REG_DATA_STACK_VISON_CODE').read(1) -# #code, _ = self.client.use_node('REG_DATA_STACK_VISON_CODE').read(1).type -# print(f"读取物料堆叠复检图片编码", {code}, "error", type(code)) -# #print(code.type) -# # print(read_err) -# return int(code) - - def func_pack_device_init(self): - #切换手动模式 - print("切换手动模式") - self._sys_hand_cmd(True) - time.sleep(1) - while (self._sys_hand_status()) == False: - print("waiting for hand_cmd") - time.sleep(1) - #设备初始化 - self._sys_init_cmd(True) - time.sleep(1) - #sys_init_status为bool值,不加括号 - while (self._sys_init_status())== False: - print("waiting for init_cmd") - time.sleep(1) - #手动按钮置回False - self._sys_hand_cmd(False) - time.sleep(1) - while (self._sys_hand_cmd()) == True: - print("waiting for hand_cmd to False") - time.sleep(1) - #初始化命令置回False - self._sys_init_cmd(False) - time.sleep(1) - while (self._sys_init_cmd()) == True: - print("waiting for init_cmd to False") - time.sleep(1) - - def func_pack_device_auto(self): - #切换自动 - print("切换自动模式") - self._sys_auto_cmd(True) - time.sleep(1) - while (self._sys_auto_status()) == False: - print("waiting for auto_status") - time.sleep(1) - #自动按钮置False - self._sys_auto_cmd(False) - time.sleep(1) - while (self._sys_auto_cmd()) == True: - print("waiting for auto_cmd") - time.sleep(1) - - def func_pack_device_start(self): - #切换自动 - print("启动") - self._sys_start_cmd(True) - time.sleep(1) - while (self._sys_start_status()) == False: - print("waiting for start_status") - time.sleep(1) - #自动按钮置False - self._sys_start_cmd(False) - time.sleep(1) - while (self._sys_start_cmd()) == True: - print("waiting for start_cmd") - time.sleep(1) - - def func_pack_send_bottle_num(self, bottle_num: int): - #发送电解液平台数 - print("启动") - while (self._unilab_rece_electrolyte_bottle_num()) == False: - print("waiting for rece_electrolyte_bottle_num to True") - # self.client.use_node('8520').write(True) - time.sleep(1) - #发送电解液瓶数为2 - self._reg_msg_electrolyte_num(bottle_num) - time.sleep(1) - #完成信号置True - self._unilab_send_electrolyte_bottle_num(True) - time.sleep(1) - #检测到依华已接收 - while (self._unilab_rece_electrolyte_bottle_num()) == True: - print("waiting for rece_electrolyte_bottle_num to False") - time.sleep(1) - #完成信号置False - self._unilab_send_electrolyte_bottle_num(False) - time.sleep(1) - #自动按钮置False - - - # 下发参数 - #def func_pack_send_msg_cmd(self, elec_num: int, elec_use_num: int, elec_vol: float, assembly_type: int, assembly_pressure: int) -> bool: - # """UNILAB写参数""" - # while (self.request_rec_msg_status) == False: - # print("wait for res_msg") - # time.sleep(1) - # self.success = False - # self._unilab_send_msg_electrolyte_num(elec_num) - # time.sleep(1) - # self._unilab_send_msg_electrolyte_use_num(elec_use_num) - # time.sleep(1) - # self._unilab_send_msg_electrolyte_vol(elec_vol) - # time.sleep(1) - # self._unilab_send_msg_assembly_type(assembly_type) - # time.sleep(1) - # self._unilab_send_msg_assembly_pressure(assembly_pressure) - # time.sleep(1) - # self._unilab_send_msg_succ_cmd(True) - # time.sleep(1) - # self._unilab_send_msg_succ_cmd(False) - # #将允许读取标志位置True - # self.allow_data_read = True - # self.success = True - # return self.success - - def func_pack_send_msg_cmd(self, elec_use_num) -> bool: - """UNILAB写参数""" - while (self.request_rec_msg_status) == False: - print("wait for request_rec_msg_status to True") - time.sleep(1) - self.success = False - #self._unilab_send_msg_electrolyte_num(elec_num) - time.sleep(1) - self._unilab_send_msg_electrolyte_use_num(elec_use_num) - time.sleep(1) - self._unilab_send_msg_succ_cmd(True) - time.sleep(1) - while (self.request_rec_msg_status) == True: - print("wait for request_rec_msg_status to False") - time.sleep(1) - self._unilab_send_msg_succ_cmd(False) - #将允许读取标志位置True - self.allow_data_read = True - self.success = True - return self.success - - def func_pack_get_msg_cmd(self, file_path: str="D:\\coin_cell_data") -> bool: - """UNILAB读参数""" - while self.request_send_msg_status == False: - print("waiting for send_read_msg_status to True") - time.sleep(1) - data_open_circuit_voltage = self.data_open_circuit_voltage - data_pole_weight = self.data_pole_weight - data_assembly_time = self.data_assembly_time - data_assembly_pressure = self.data_assembly_pressure - data_electrolyte_volume = self.data_electrolyte_volume - data_coin_num = self.data_coin_num - data_electrolyte_code = self.data_electrolyte_code - data_coin_cell_code = self.data_coin_cell_code - print("data_open_circuit_voltage", data_open_circuit_voltage) - print("data_pole_weight", data_pole_weight) - print("data_assembly_time", data_assembly_time) - print("data_assembly_pressure", data_assembly_pressure) - print("data_electrolyte_volume", data_electrolyte_volume) - print("data_coin_num", data_coin_num) - print("data_electrolyte_code", data_electrolyte_code) - print("data_coin_cell_code", data_coin_cell_code) - #接收完信息后,读取完毕标志位置True - self._unilab_rec_msg_succ_cmd(True) - time.sleep(1) - #等待允许读取标志位置False - while self.request_send_msg_status == True: - print("waiting for send_msg_status to False") - time.sleep(1) - self._unilab_rec_msg_succ_cmd(False) - time.sleep(1) - #将允许读取标志位置True - time_date = datetime.now().strftime("%Y%m%d") - #秒级时间戳用于标记每一行电池数据 - timestamp = datetime.now().strftime("%Y%m%d_%H%M%S") - #生成输出文件的变量 - self.csv_export_file = os.path.join(file_path, f"date_{time_date}.csv") - #将数据存入csv文件 - if not os.path.exists(self.csv_export_file): - #创建一个表头 - with open(self.csv_export_file, 'w', newline='', encoding='utf-8') as csvfile: - writer = csv.writer(csvfile) - writer.writerow([ - 'Time', 'open_circuit_voltage', 'pole_weight', - 'assembly_time', 'assembly_pressure', 'electrolyte_volume', - 'coin_num', 'electrolyte_code', 'coin_cell_code' - ]) - #立刻写入磁盘 - csvfile.flush() - #开始追加电池信息 - with open(self.csv_export_file, 'a', newline='', encoding='utf-8') as csvfile: - writer = csv.writer(csvfile) - writer.writerow([ - timestamp, data_open_circuit_voltage, data_pole_weight, - data_assembly_time, data_assembly_pressure, data_electrolyte_volume, - data_coin_num, data_electrolyte_code, data_coin_cell_code - ]) - #立刻写入磁盘 - csvfile.flush() - self.success = True - return self.success - - - - def func_pack_send_finished_cmd(self) -> bool: - """UNILAB写参数""" - while (self._unilab_rece_finished_cmd()) == False: - print("wait for rece_finished_cmd to True") - time.sleep(1) - self.success = False - self._unilab_send_finished_cmd(True) - time.sleep(1) - while (self._unilab_rece_finished_cmd()) == True: - print("wait for rece_finished_cmd to False") - time.sleep(1) - self._unilab_send_finished_cmd(False) - #将允许读取标志位置True - self.success = True - return self.success - - - - def func_allpack_cmd(self, elec_num, elec_use_num, file_path: str="D:\\coin_cell_data") -> bool: - summary_csv_file = os.path.join(file_path, "duandian.csv") - # 如果断点文件存在,先读取之前的进度 - if os.path.exists(summary_csv_file): - read_status_flag = True - with open(summary_csv_file, 'r', newline='', encoding='utf-8') as csvfile: - reader = csv.reader(csvfile) - header = next(reader) # 跳过标题行 - data_row = next(reader) # 读取数据行 - if len(data_row) >= 2: - elec_num_r = int(data_row[0]) - elec_use_num_r = int(data_row[1]) - elec_num_N = int(data_row[2]) - elec_use_num_N = int(data_row[3]) - coin_num_N = int(data_row[4]) - if elec_num_r == elec_num and elec_use_num_r == elec_use_num: - print("断点文件与当前任务匹配,继续") - else: - print("断点文件中elec_num、elec_use_num与当前任务不匹配,请检查任务下发参数或修改断点文件") - return False - print(f"从断点文件读取进度: elec_num_N={elec_num_N}, elec_use_num_N={elec_use_num_N}, coin_num_N={coin_num_N}") - - else: - read_status_flag = False - print("未找到断点文件,从头开始") - elec_num_N = 0 - elec_use_num_N = 0 - coin_num_N = 0 - - print(f"剩余电解液瓶数: {elec_num}, 已组装电池数: {elec_use_num}") - - - #如果是第一次运行,则进行初始化、切换自动、启动, 如果是断点重启则跳过。 - if read_status_flag == False: - #初始化 - self.func_pack_device_init() - #切换自动 - self.func_pack_device_auto() - #启动,小车收回 - self.func_pack_device_start() - #发送电解液瓶数量,启动搬运,多搬运没事 - self.func_pack_send_bottle_num(elec_num) - last_i = elec_num_N - last_j = elec_use_num_N - for i in range(last_i, elec_num): - print(f"开始第{last_i+i+1}瓶电解液的组装") - #第一个循环从上次断点继续,后续循环从0开始 - j_start = last_j if i == last_i else 0 - self.func_pack_send_msg_cmd(elec_use_num-j_start) - - for j in range(j_start, elec_use_num): - print(f"开始第{last_i+i+1}瓶电解液的第{j+j_start+1}个电池组装") - #读取电池组装数据并存入csv - self.func_pack_get_msg_cmd(file_path) - time.sleep(1) - - #这里定义物料系统 - # TODO:读完再将电池数加一还是进入循环就将电池数加一需要考虑 - liaopan1 = self.deck.get_resource("liaopan1") - liaopan4 = self.deck.get_resource("liaopan4") - jipian1 = liaopan1.children[coin_num_N].children[0] - jipian4 = liaopan4.children[coin_num_N].children[0] - #print(jipian1) - #从料盘上去物料解绑后放到另一盘上 - jipian1.parent.unassign_child_resource(jipian1) - jipian4.parent.unassign_child_resource(jipian4) - - #print(jipian2.parent) - battery = Battery(name = f"battery_{coin_num_N}") - battery.assign_child_resource(jipian1, location=None) - battery.assign_child_resource(jipian4, location=None) - - zidanjia6 = self.deck.get_resource("zi_dan_jia6") - - zidanjia6.children[0].assign_child_resource(battery, location=None) - - - # 生成断点文件 - # 生成包含elec_num_N、coin_num_N、timestamp的CSV文件 - timestamp = datetime.now().strftime("%Y%m%d_%H%M%S") - with open(summary_csv_file, 'w', newline='', encoding='utf-8') as csvfile: - writer = csv.writer(csvfile) - writer.writerow(['elec_num','elec_use_num', 'elec_num_N', 'elec_use_num_N', 'coin_num_N', 'timestamp']) - writer.writerow([elec_num, elec_use_num, elec_num_N, elec_use_num_N, coin_num_N, timestamp]) - csvfile.flush() - coin_num_N += 1 - elec_use_num_N += 1 - elec_num_N += 1 - elec_use_num_N = 0 - - #循环正常结束,则删除断点文件 - os.remove(summary_csv_file) - #全部完成后等待依华发送完成信号 - self.func_pack_send_finished_cmd() - - - def func_pack_device_stop(self) -> bool: - """打包指令:设备停止""" - for i in range(3): - time.sleep(2) - print(f"输出{i}") - #print("_sys_hand_cmd", self._sys_hand_cmd()) - #time.sleep(1) - #print("_sys_hand_status", self._sys_hand_status()) - #time.sleep(1) - #print("_sys_init_cmd", self._sys_init_cmd()) - #time.sleep(1) - #print("_sys_init_status", self._sys_init_status()) - #time.sleep(1) - #print("_sys_auto_status", self._sys_auto_status()) - #time.sleep(1) - #print("data_axis_y_pos", self.data_axis_y_pos) - #time.sleep(1) - #self.success = False - #with open('action_device_stop.json', 'r', encoding='utf-8') as f: - # action_json = json.load(f) - #self.client.execute_procedure_from_json(action_json) - #self.success = True - #return self.success - - def fun_wuliao_test(self) -> bool: - #找到data_init中构建的2个物料盘 - #liaopan1 = self.deck.get_resource("liaopan1") - #liaopan4 = self.deck.get_resource("liaopan4") - #for coin_num_N in range(16): - # liaopan1 = self.deck.get_resource("liaopan1") - # liaopan4 = self.deck.get_resource("liaopan4") - # jipian1 = liaopan1.children[coin_num_N].children[0] - # jipian4 = liaopan4.children[coin_num_N].children[0] - # #print(jipian1) - # #从料盘上去物料解绑后放到另一盘上 - # jipian1.parent.unassign_child_resource(jipian1) - # jipian4.parent.unassign_child_resource(jipian4) - # - # #print(jipian2.parent) - # battery = Battery(name = f"battery_{coin_num_N}") - # battery.assign_child_resource(jipian1, location=None) - # battery.assign_child_resource(jipian4, location=None) - # - # zidanjia6 = self.deck.get_resource("zi_dan_jia6") - # zidanjia6.children[0].assign_child_resource(battery, location=None) - # ROS2DeviceNode.run_async_func(self._ros_node.update_resource, True, **{ - # "resources": [self.deck] - # }) - # time.sleep(2) - for i in range(20): - print(f"输出{i}") - time.sleep(2) - - - # 数据读取与输出 - def func_read_data_and_output(self, file_path: str="D:\\coin_cell_data"): - # 检查CSV导出是否正在运行,已运行则跳出,防止同时启动两个while循环 - if self.csv_export_running: - return False, "读取已在运行中" - - #若不存在该目录则创建 - if not os.path.exists(file_path): - os.makedirs(file_path) - print(f"创建目录: {file_path}") - - # 只要允许读取标志位为true,就持续运行该函数,直到触发停止条件 - while self.allow_data_read: - - #函数运行标志位,确保只同时启动一个导出函数 - self.csv_export_running = True - - #等待接收结果标志位置True - while self.request_send_msg_status == False: - print("waiting for send_msg_status to True") - time.sleep(1) - #日期时间戳用于按天存放csv文件 - time_date = datetime.now().strftime("%Y%m%d") - #秒级时间戳用于标记每一行电池数据 - timestamp = datetime.now().strftime("%Y%m%d_%H%M%S") - #生成输出文件的变量 - self.csv_export_file = os.path.join(file_path, f"date_{time_date}.csv") - - #接收信息 - data_open_circuit_voltage = self.data_open_circuit_voltage - data_pole_weight = self.data_pole_weight - data_assembly_time = self.data_assembly_time - data_assembly_pressure = self.data_assembly_pressure - data_electrolyte_volume = self.data_electrolyte_volume - data_coin_num = self.data_coin_num - data_electrolyte_code = self.data_electrolyte_code - data_coin_cell_code = self.data_coin_cell_code - # 电解液瓶位置 - elec_bottle_site = 2 - # 极片夹取位置(应当通过寄存器读光标) - Pos_elec_site = 0 - Al_elec_site = 0 - Gasket_site = 0 - - #接收完信息后,读取完毕标志位置True - self._unilab_rec_msg_succ_cmd()# = True - #等待允许读取标志位置False - while self.request_send_msg_status == True: - print("waiting for send_msg_status to False") - time.sleep(1) - self._unilab_rec_msg_succ_cmd()# = False - - #此处操作物料信息(如果中途报错停止,如何) - #报错怎么办(加个判断标志位,如果发生错误,则根据停止位置扣除物料) - #根据物料光标判断取哪个物料(人工摆盘,电解液瓶,移液枪头都有光标位置,寄存器读即可) - - #物料读取操作写在这里 - #在这里进行物料调取 - #转移物料瓶,elec_bottle_site对应第几瓶电解液(从依华寄存器读取) - # transfer_bottle(deck, elec_bottle_site) - # #找到电解液瓶的对象 - # electrolyte_rack = deck.get_resource("electrolyte_rack") - # pending_positions = electrolyte_rack.get_pending_positions()[elec_bottle_site] - # # TODO: 瓶子取液体操作需要加入 -# -# - # #找到压制工站对应的对象 - # battery_press_slot = deck.get_resource("battery_press_1") - # #创建一个新电池 - # test_battery = Battery( - # name=f"test_battery_{data_coin_num}", - # diameter=20.0, # 与压制槽直径匹配 - # height=3.0, # 电池高度 - # max_volume=100.0, # 100μL容量 - # barcode=data_coin_cell_code, # 电池条码 - # ) - # if battery_press_slot.has_battery(): - # return False, "压制工站已有电池,无法放置新电池" - # #在压制位放置电池 - # battery_press_slot.place_battery(test_battery) - # #从第一个子弹夹中取料 - # clip_magazine_1_hole = self.deck.get_resource("clip_magazine_1").get_item(Pos_elec_site) - # clip_magazine_2_hole = self.deck.get_resource("clip_magazine_2").get_item(Al_elec_site) - # clip_magazine_3_hole = self.deck.get_resource("clip_magazine_3").get_item(Gasket_site) - # - # if clip_magazine_1_hole.get_sheet_count() > 0: # 检查洞位是否有极片 - # electrode_sheet_1 = clip_magazine_1_hole.take_sheet() # 从洞位取出极片 - # test_battery.add_electrode_sheet(electrode_sheet_1) # 添加到电池中 - # print(f"已将极片 {electrode_sheet_1.name} 从子弹夹转移到电池") - # else: - # print("子弹夹洞位0没有极片") -# - # if clip_magazine_2_hole.get_sheet_count() > 0: # 检查洞位是否有极片 - # electrode_sheet_2 = clip_magazine_2_hole.take_sheet() # 从洞位取出极片 - # test_battery.add_electrode_sheet(electrode_sheet_2) # 添加到电池中 - # print(f"已将极片 {electrode_sheet_2.name} 从子弹夹转移到电池") - # else: - # print("子弹夹洞位0没有极片") -# - # if clip_magazine_3_hole.get_sheet_count() > 0: # 检查洞位是否有极片 - # electrode_sheet_3 = clip_magazine_3_hole.take_sheet() # 从洞位取出极片 - # test_battery.add_electrode_sheet(electrode_sheet_3) # 添加到电池中 - # print(f"已将极片 {electrode_sheet_3.name} 从子弹夹转移到电池") - # else: - # print("子弹夹洞位0没有极片") - # - # #把电解液从瓶中取到电池夹子中 - # battery_site = deck.get_resource("battery_press_1") - # clip_magazine_battery = deck.get_resource("clip_magazine_battery") - # if battery_site.has_battery(): - # battery = battery_site.take_battery() #从压制槽取出电池 - # clip_magazine_battery.add_battery(battery) #从压制槽取出电池 -# -# -# -# - # # 保存配置到文件 - # self.deck.save("button_battery_station_layout.json", indent=2) - # print("\n台面配置已保存到: button_battery_station_layout.json") - # - # # 保存状态到文件 - # self.deck.save_state_to_file("button_battery_station_state.json", indent=2) - # print("台面状态已保存到: button_battery_station_state.json") - - - - - - - #将数据写入csv中 - #如当前目录下无同名文件则新建一个csv用于存放数据 - if not os.path.exists(self.csv_export_file): - #创建一个表头 - with open(self.csv_export_file, 'w', newline='', encoding='utf-8') as csvfile: - writer = csv.writer(csvfile) - writer.writerow([ - 'Time', 'open_circuit_voltage', 'pole_weight', - 'assembly_time', 'assembly_pressure', 'electrolyte_volume', - 'coin_num', 'electrolyte_code', 'coin_cell_code' - ]) - #立刻写入磁盘 - csvfile.flush() - #开始追加电池信息 - with open(self.csv_export_file, 'a', newline='', encoding='utf-8') as csvfile: - writer = csv.writer(csvfile) - writer.writerow([ - timestamp, data_open_circuit_voltage, data_pole_weight, - data_assembly_time, data_assembly_pressure, data_electrolyte_volume, - data_coin_num, data_electrolyte_code, data_coin_cell_code - ]) - #立刻写入磁盘 - csvfile.flush() - - # 只要不在自动模式运行中,就将允许标志位置False - if self.sys_auto_status == False or self.sys_start_status == False: - self.allow_data_read = False - self.csv_export_running = False - time.sleep(1) - - def func_stop_read_data(self): - """停止CSV导出""" - if not self.csv_export_running: - return False, "read data未在运行" - - self.csv_export_running = False - self.allow_data_read = False - - if self.csv_export_thread and self.csv_export_thread.is_alive(): - self.csv_export_thread.join(timeout=5) - - def func_get_csv_export_status(self): - """获取CSV导出状态""" - return { - 'allow_read': self.allow_data_read, - 'running': self.csv_export_running, - 'thread_alive': self.csv_export_thread.is_alive() if self.csv_export_thread else False - } - - - ''' - # ===================== 物料管理区 ====================== - @property - def data_material_inventory(self) -> int: - """主物料库存 (数量, INT16)""" - inventory, read_err = self.client.use_node('REG_DATA_MATERIAL_INVENTORY').read(1) - return inventory - - @property - def data_tips_inventory(self) -> int: - """移液枪头库存 (数量, INT16)""" - inventory, read_err = self.client.register_node_list(self.nodes).use_node('REG_DATA_TIPS_INVENTORY').read(1) - return inventory - - ''' - - -if __name__ == "__main__": - from pylabrobot.resources import Resource - Coin_Cell = CoinCellAssemblyWorkstation(Resource("1", 1, 1, 1), debug_mode=True) - #Coin_Cell.func_pack_device_init() - #Coin_Cell.func_pack_device_auto() - #Coin_Cell.func_pack_device_start() - #Coin_Cell.func_pack_send_bottle_num(2) - #Coin_Cell.func_pack_send_msg_cmd(2) - #Coin_Cell.func_pack_get_msg_cmd() - #Coin_Cell.func_pack_get_msg_cmd() - #Coin_Cell.func_pack_send_finished_cmd() -# - #Coin_Cell.func_allpack_cmd(3, 2) - #print(Coin_Cell.data_stack_vision_code) - #print("success") - #创建一个物料台面 - - #deck = create_a_coin_cell_deck() - - ##在台面上找到料盘和极片 - #liaopan1 = deck.get_resource("liaopan1") - #liaopan2 = deck.get_resource("liaopan2") - #jipian1 = liaopan1.children[1].children[0] -# - ##print(jipian1) - ##把物料解绑后放到另一盘上 - #jipian1.parent.unassign_child_resource(jipian1) - #liaopan2.children[1].assign_child_resource(jipian1, location=None) - ##print(jipian2.parent) - from unilabos.resources.graphio import resource_ulab_to_plr, convert_resources_to_type - - with open("./button_battery_decks_unilab.json", "r", encoding="utf-8") as f: - bioyond_resources_unilab = json.load(f) - print(f"成功读取 JSON 文件,包含 {len(bioyond_resources_unilab)} 个资源") - ulab_resources = convert_resources_to_type(bioyond_resources_unilab, List[PLRResource]) - print(f"转换结果类型: {type(ulab_resources)}") - print(ulab_resources) - diff --git a/unilabos/devices/workstation/coin_cell_assembly/new_cellconfig4.json b/unilabos/devices/workstation/coin_cell_assembly/new_cellconfig4.json deleted file mode 100644 index 7e371327..00000000 --- a/unilabos/devices/workstation/coin_cell_assembly/new_cellconfig4.json +++ /dev/null @@ -1,14472 +0,0 @@ -{ - "nodes": [ - { - "id": "BatteryStation", - "name": "扣电工作站", - "children": [ - "coin_cell_deck" - ], - "parent": null, - "type": "device", - "class": "bettery_station_registry", - "position": { - "x": 600, - "y": 400, - "z": 0 - }, - "config": { - "debug_mode": false, - "_comment": "protocol_type接外部工站固定写法字段,一般为空,deck写法也固定", - "protocol_type": [], - "deck": { - "data": { - "_resource_child_name": "coin_cell_deck", - "_resource_type": "unilabos.devices.workstation.coin_cell_assembly.button_battery_station:CoincellDeck" - } - }, - - "address": "192.168.1.20", - "port": 502 - }, - "data": {} - }, - { - "id": "coin_cell_deck", - "name": "coin_cell_deck", - "sample_id": null, - "children": [ - "zi_dan_jia", - "zi_dan_jia2", - "zi_dan_jia3", - "zi_dan_jia4", - "zi_dan_jia5", - "zi_dan_jia6", - "zi_dan_jia7", - "zi_dan_jia8", - "liaopan1", - "liaopan2", - "liaopan3", - "liaopan4", - "liaopan5", - "liaopan6", - "bottle_rack_3x4", - "bottle_rack_6x2", - "bottle_rack_6x2_2", - "tip_box_64", - "waste_tip_box" - ], - "parent": null, - "type": "container", - "class": "", - "position": { - "x": 0, - "y": 0, - "z": 0 - }, - "config": { - "type": "CoincellDeck", - "size_x": 1620.0, - "size_y": 1270.0, - "size_z": 500.0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "coin_cell_deck", - "barcode": null - }, - "data": {} - }, - { - "id": "zi_dan_jia", - "name": "zi_dan_jia", - "sample_id": null, - "children": [ - "zi_dan_jia_clipmagazinehole_0_0", - "zi_dan_jia_clipmagazinehole_0_1", - "zi_dan_jia_clipmagazinehole_1_0", - "zi_dan_jia_clipmagazinehole_1_1" - ], - "parent": "coin_cell_deck", - "type": "container", - "class": "", - "position": { - "x": 1400, - "y": 50, - "z": 0 - }, - "config": { - "type": "ClipMagazine_four", - "size_x": 80, - "size_y": 80, - "size_z": 10, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "clip_magazine_four", - "model": null, - "barcode": null, - "ordering": { - "A1": "zi_dan_jia_clipmagazinehole_0_0", - "B1": "zi_dan_jia_clipmagazinehole_0_1", - "A2": "zi_dan_jia_clipmagazinehole_1_0", - "B2": "zi_dan_jia_clipmagazinehole_1_1" - }, - "hole_diameter": 14.0, - "hole_depth": 10.0, - "max_sheets_per_hole": 100 - }, - "data": {} - }, - { - "id": "zi_dan_jia_clipmagazinehole_0_0", - "name": "zi_dan_jia_clipmagazinehole_0_0", - "sample_id": null, - "children": [ - "zi_dan_jia2_jipian_0" - ], - "parent": "zi_dan_jia", - "type": "container", - "class": "", - "position": { - "x": 15.0, - "y": 52.5, - "z": 10 - }, - "config": { - "type": "ClipMagazineHole", - "size_x": 14.0, - "size_y": 14.0, - "size_z": 10.0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "clip_magazine_hole", - "model": null, - "barcode": null, - "max_volume": 1960.0, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null - }, - "data": { - "sheet_count": 1, - "sheets": [ - { - "name": "zi_dan_jia2_jipian_0", - "type": "ElectrodeSheet", - "size_x": 12, - "size_y": 12, - "size_z": 0.1, - "location": null, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "electrode_sheet", - "model": null, - "barcode": null, - "children": [], - "parent_name": "zi_dan_jia_clipmagazinehole_0_0" - } - ] - } - }, - { - "id": "zi_dan_jia2_jipian_0", - "name": "zi_dan_jia2_jipian_0", - "sample_id": null, - "children": [], - "parent": "zi_dan_jia_clipmagazinehole_0_0", - "type": "container", - "class": "", - "position": { - "x": 0, - "y": 0, - "z": 0 - }, - "config": { - "type": "ElectrodeSheet", - "size_x": 12, - "size_y": 12, - "size_z": 0.1, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "electrode_sheet", - "model": null, - "barcode": null - }, - "data": { - "diameter": 14, - "thickness": 0.1, - "mass": 0.5, - "material_type": "copper", - "info": null - } - }, - { - "id": "zi_dan_jia_clipmagazinehole_0_1", - "name": "zi_dan_jia_clipmagazinehole_0_1", - "sample_id": null, - "children": [ - "zi_dan_jia2_jipian_1" - ], - "parent": "zi_dan_jia", - "type": "container", - "class": "", - "position": { - "x": 15.0, - "y": 27.5, - "z": 10 - }, - "config": { - "type": "ClipMagazineHole", - "size_x": 14.0, - "size_y": 14.0, - "size_z": 10.0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "clip_magazine_hole", - "model": null, - "barcode": null, - "max_volume": 1960.0, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null - }, - "data": { - "sheet_count": 1, - "sheets": [ - { - "name": "zi_dan_jia2_jipian_1", - "type": "ElectrodeSheet", - "size_x": 12, - "size_y": 12, - "size_z": 0.1, - "location": null, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "electrode_sheet", - "model": null, - "barcode": null, - "children": [], - "parent_name": "zi_dan_jia_clipmagazinehole_0_1" - } - ] - } - }, - { - "id": "zi_dan_jia2_jipian_1", - "name": "zi_dan_jia2_jipian_1", - "sample_id": null, - "children": [], - "parent": "zi_dan_jia_clipmagazinehole_0_1", - "type": "container", - "class": "", - "position": { - "x": 0, - "y": 0, - "z": 0 - }, - "config": { - "type": "ElectrodeSheet", - "size_x": 12, - "size_y": 12, - "size_z": 0.1, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "electrode_sheet", - "model": null, - "barcode": null - }, - "data": { - "diameter": 14, - "thickness": 0.1, - "mass": 0.5, - "material_type": "copper", - "info": null - } - }, - { - "id": "zi_dan_jia_clipmagazinehole_1_0", - "name": "zi_dan_jia_clipmagazinehole_1_0", - "sample_id": null, - "children": [ - "zi_dan_jia2_jipian_2" - ], - "parent": "zi_dan_jia", - "type": "container", - "class": "", - "position": { - "x": 40.0, - "y": 52.5, - "z": 10 - }, - "config": { - "type": "ClipMagazineHole", - "size_x": 14.0, - "size_y": 14.0, - "size_z": 10.0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "clip_magazine_hole", - "model": null, - "barcode": null, - "max_volume": 1960.0, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null - }, - "data": { - "sheet_count": 1, - "sheets": [ - { - "name": "zi_dan_jia2_jipian_2", - "type": "ElectrodeSheet", - "size_x": 12, - "size_y": 12, - "size_z": 0.1, - "location": null, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "electrode_sheet", - "model": null, - "barcode": null, - "children": [], - "parent_name": "zi_dan_jia_clipmagazinehole_1_0" - } - ] - } - }, - { - "id": "zi_dan_jia2_jipian_2", - "name": "zi_dan_jia2_jipian_2", - "sample_id": null, - "children": [], - "parent": "zi_dan_jia_clipmagazinehole_1_0", - "type": "container", - "class": "", - "position": { - "x": 0, - "y": 0, - "z": 0 - }, - "config": { - "type": "ElectrodeSheet", - "size_x": 12, - "size_y": 12, - "size_z": 0.1, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "electrode_sheet", - "model": null, - "barcode": null - }, - "data": { - "diameter": 14, - "thickness": 0.1, - "mass": 0.5, - "material_type": "copper", - "info": null - } - }, - { - "id": "zi_dan_jia_clipmagazinehole_1_1", - "name": "zi_dan_jia_clipmagazinehole_1_1", - "sample_id": null, - "children": [ - "zi_dan_jia2_jipian_3" - ], - "parent": "zi_dan_jia", - "type": "container", - "class": "", - "position": { - "x": 40.0, - "y": 27.5, - "z": 10 - }, - "config": { - "type": "ClipMagazineHole", - "size_x": 14.0, - "size_y": 14.0, - "size_z": 10.0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "clip_magazine_hole", - "model": null, - "barcode": null, - "max_volume": 1960.0, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null - }, - "data": { - "sheet_count": 1, - "sheets": [ - { - "name": "zi_dan_jia2_jipian_3", - "type": "ElectrodeSheet", - "size_x": 12, - "size_y": 12, - "size_z": 0.1, - "location": null, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "electrode_sheet", - "model": null, - "barcode": null, - "children": [], - "parent_name": "zi_dan_jia_clipmagazinehole_1_1" - } - ] - } - }, - { - "id": "zi_dan_jia2_jipian_3", - "name": "zi_dan_jia2_jipian_3", - "sample_id": null, - "children": [], - "parent": "zi_dan_jia_clipmagazinehole_1_1", - "type": "container", - "class": "", - "position": { - "x": 0, - "y": 0, - "z": 0 - }, - "config": { - "type": "ElectrodeSheet", - "size_x": 12, - "size_y": 12, - "size_z": 0.1, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "electrode_sheet", - "model": null, - "barcode": null - }, - "data": { - "diameter": 14, - "thickness": 0.1, - "mass": 0.5, - "material_type": "copper", - "info": null - } - }, - { - "id": "zi_dan_jia2", - "name": "zi_dan_jia2", - "sample_id": null, - "children": [ - "zi_dan_jia2_clipmagazinehole_0_0", - "zi_dan_jia2_clipmagazinehole_0_1", - "zi_dan_jia2_clipmagazinehole_1_0", - "zi_dan_jia2_clipmagazinehole_1_1" - ], - "parent": "coin_cell_deck", - "type": "container", - "class": "", - "position": { - "x": 1600, - "y": 200, - "z": 0 - }, - "config": { - "type": "ClipMagazine_four", - "size_x": 80, - "size_y": 80, - "size_z": 10, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "clip_magazine_four", - "model": null, - "barcode": null, - "ordering": { - "A1": "zi_dan_jia2_clipmagazinehole_0_0", - "B1": "zi_dan_jia2_clipmagazinehole_0_1", - "A2": "zi_dan_jia2_clipmagazinehole_1_0", - "B2": "zi_dan_jia2_clipmagazinehole_1_1" - }, - "hole_diameter": 14.0, - "hole_depth": 10.0, - "max_sheets_per_hole": 100 - }, - "data": {} - }, - { - "id": "zi_dan_jia2_clipmagazinehole_0_0", - "name": "zi_dan_jia2_clipmagazinehole_0_0", - "sample_id": null, - "children": [ - "zi_dan_jia_jipian_0" - ], - "parent": "zi_dan_jia2", - "type": "container", - "class": "", - "position": { - "x": 15.0, - "y": 52.5, - "z": 10 - }, - "config": { - "type": "ClipMagazineHole", - "size_x": 14.0, - "size_y": 14.0, - "size_z": 10.0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "clip_magazine_hole", - "model": null, - "barcode": null, - "max_volume": 1960.0, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null - }, - "data": { - "sheet_count": 1, - "sheets": [ - { - "name": "zi_dan_jia_jipian_0", - "type": "ElectrodeSheet", - "size_x": 12, - "size_y": 12, - "size_z": 0.1, - "location": null, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "electrode_sheet", - "model": null, - "barcode": null, - "children": [], - "parent_name": "zi_dan_jia2_clipmagazinehole_0_0" - } - ] - } - }, - { - "id": "zi_dan_jia_jipian_0", - "name": "zi_dan_jia_jipian_0", - "sample_id": null, - "children": [], - "parent": "zi_dan_jia2_clipmagazinehole_0_0", - "type": "container", - "class": "", - "position": { - "x": 0, - "y": 0, - "z": 0 - }, - "config": { - "type": "ElectrodeSheet", - "size_x": 12, - "size_y": 12, - "size_z": 0.1, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "electrode_sheet", - "model": null, - "barcode": null - }, - "data": { - "diameter": 14, - "thickness": 0.1, - "mass": 0.5, - "material_type": "copper", - "info": null - } - }, - { - "id": "zi_dan_jia2_clipmagazinehole_0_1", - "name": "zi_dan_jia2_clipmagazinehole_0_1", - "sample_id": null, - "children": [ - "zi_dan_jia_jipian_1" - ], - "parent": "zi_dan_jia2", - "type": "container", - "class": "", - "position": { - "x": 15.0, - "y": 27.5, - "z": 10 - }, - "config": { - "type": "ClipMagazineHole", - "size_x": 14.0, - "size_y": 14.0, - "size_z": 10.0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "clip_magazine_hole", - "model": null, - "barcode": null, - "max_volume": 1960.0, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null - }, - "data": { - "sheet_count": 1, - "sheets": [ - { - "name": "zi_dan_jia_jipian_1", - "type": "ElectrodeSheet", - "size_x": 12, - "size_y": 12, - "size_z": 0.1, - "location": null, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "electrode_sheet", - "model": null, - "barcode": null, - "children": [], - "parent_name": "zi_dan_jia2_clipmagazinehole_0_1" - } - ] - } - }, - { - "id": "zi_dan_jia_jipian_1", - "name": "zi_dan_jia_jipian_1", - "sample_id": null, - "children": [], - "parent": "zi_dan_jia2_clipmagazinehole_0_1", - "type": "container", - "class": "", - "position": { - "x": 0, - "y": 0, - "z": 0 - }, - "config": { - "type": "ElectrodeSheet", - "size_x": 12, - "size_y": 12, - "size_z": 0.1, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "electrode_sheet", - "model": null, - "barcode": null - }, - "data": { - "diameter": 14, - "thickness": 0.1, - "mass": 0.5, - "material_type": "copper", - "info": null - } - }, - { - "id": "zi_dan_jia2_clipmagazinehole_1_0", - "name": "zi_dan_jia2_clipmagazinehole_1_0", - "sample_id": null, - "children": [ - "zi_dan_jia_jipian_2" - ], - "parent": "zi_dan_jia2", - "type": "container", - "class": "", - "position": { - "x": 40.0, - "y": 52.5, - "z": 10 - }, - "config": { - "type": "ClipMagazineHole", - "size_x": 14.0, - "size_y": 14.0, - "size_z": 10.0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "clip_magazine_hole", - "model": null, - "barcode": null, - "max_volume": 1960.0, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null - }, - "data": { - "sheet_count": 1, - "sheets": [ - { - "name": "zi_dan_jia_jipian_2", - "type": "ElectrodeSheet", - "size_x": 12, - "size_y": 12, - "size_z": 0.1, - "location": null, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "electrode_sheet", - "model": null, - "barcode": null, - "children": [], - "parent_name": "zi_dan_jia2_clipmagazinehole_1_0" - } - ] - } - }, - { - "id": "zi_dan_jia_jipian_2", - "name": "zi_dan_jia_jipian_2", - "sample_id": null, - "children": [], - "parent": "zi_dan_jia2_clipmagazinehole_1_0", - "type": "container", - "class": "", - "position": { - "x": 0, - "y": 0, - "z": 0 - }, - "config": { - "type": "ElectrodeSheet", - "size_x": 12, - "size_y": 12, - "size_z": 0.1, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "electrode_sheet", - "model": null, - "barcode": null - }, - "data": { - "diameter": 14, - "thickness": 0.1, - "mass": 0.5, - "material_type": "copper", - "info": null - } - }, - { - "id": "zi_dan_jia2_clipmagazinehole_1_1", - "name": "zi_dan_jia2_clipmagazinehole_1_1", - "sample_id": null, - "children": [ - "zi_dan_jia_jipian_3" - ], - "parent": "zi_dan_jia2", - "type": "container", - "class": "", - "position": { - "x": 40.0, - "y": 27.5, - "z": 10 - }, - "config": { - "type": "ClipMagazineHole", - "size_x": 14.0, - "size_y": 14.0, - "size_z": 10.0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "clip_magazine_hole", - "model": null, - "barcode": null, - "max_volume": 1960.0, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null - }, - "data": { - "sheet_count": 1, - "sheets": [ - { - "name": "zi_dan_jia_jipian_3", - "type": "ElectrodeSheet", - "size_x": 12, - "size_y": 12, - "size_z": 0.1, - "location": null, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "electrode_sheet", - "model": null, - "barcode": null, - "children": [], - "parent_name": "zi_dan_jia2_clipmagazinehole_1_1" - } - ] - } - }, - { - "id": "zi_dan_jia_jipian_3", - "name": "zi_dan_jia_jipian_3", - "sample_id": null, - "children": [], - "parent": "zi_dan_jia2_clipmagazinehole_1_1", - "type": "container", - "class": "", - "position": { - "x": 0, - "y": 0, - "z": 0 - }, - "config": { - "type": "ElectrodeSheet", - "size_x": 12, - "size_y": 12, - "size_z": 0.1, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "electrode_sheet", - "model": null, - "barcode": null - }, - "data": { - "diameter": 14, - "thickness": 0.1, - "mass": 0.5, - "material_type": "copper", - "info": null - } - }, - { - "id": "zi_dan_jia3", - "name": "zi_dan_jia3", - "sample_id": null, - "children": [ - "zi_dan_jia3_clipmagazinehole_0_0", - "zi_dan_jia3_clipmagazinehole_0_1", - "zi_dan_jia3_clipmagazinehole_1_0", - "zi_dan_jia3_clipmagazinehole_1_1", - "zi_dan_jia3_clipmagazinehole_2_0", - "zi_dan_jia3_clipmagazinehole_2_1" - ], - "parent": "coin_cell_deck", - "type": "container", - "class": "", - "position": { - "x": 1500, - "y": 200, - "z": 0 - }, - "config": { - "type": "ClipMagazine", - "size_x": 80, - "size_y": 80, - "size_z": 10, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "clip_magazine", - "model": null, - "barcode": null, - "ordering": { - "A1": "zi_dan_jia3_clipmagazinehole_0_0", - "B1": "zi_dan_jia3_clipmagazinehole_0_1", - "A2": "zi_dan_jia3_clipmagazinehole_1_0", - "B2": "zi_dan_jia3_clipmagazinehole_1_1", - "A3": "zi_dan_jia3_clipmagazinehole_2_0", - "B3": "zi_dan_jia3_clipmagazinehole_2_1" - }, - "hole_diameter": 14.0, - "hole_depth": 10.0, - "max_sheets_per_hole": 100 - }, - "data": {} - }, - { - "id": "zi_dan_jia3_clipmagazinehole_0_0", - "name": "zi_dan_jia3_clipmagazinehole_0_0", - "sample_id": null, - "children": [ - "zi_dan_jia3_jipian_0" - ], - "parent": "zi_dan_jia3", - "type": "container", - "class": "", - "position": { - "x": 15.0, - "y": 52.5, - "z": 10 - }, - "config": { - "type": "ClipMagazineHole", - "size_x": 14.0, - "size_y": 14.0, - "size_z": 10.0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "clip_magazine_hole", - "model": null, - "barcode": null, - "max_volume": 1960.0, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null - }, - "data": { - "sheet_count": 1, - "sheets": [ - { - "name": "zi_dan_jia3_jipian_0", - "type": "ElectrodeSheet", - "size_x": 12, - "size_y": 12, - "size_z": 0.1, - "location": null, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "electrode_sheet", - "model": null, - "barcode": null, - "children": [], - "parent_name": "zi_dan_jia3_clipmagazinehole_0_0" - } - ] - } - }, - { - "id": "zi_dan_jia3_jipian_0", - "name": "zi_dan_jia3_jipian_0", - "sample_id": null, - "children": [], - "parent": "zi_dan_jia3_clipmagazinehole_0_0", - "type": "container", - "class": "", - "position": { - "x": 0, - "y": 0, - "z": 0 - }, - "config": { - "type": "ElectrodeSheet", - "size_x": 12, - "size_y": 12, - "size_z": 0.1, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "electrode_sheet", - "model": null, - "barcode": null - }, - "data": { - "diameter": 14, - "thickness": 0.1, - "mass": 0.5, - "material_type": "copper", - "info": null - } - }, - { - "id": "zi_dan_jia3_clipmagazinehole_0_1", - "name": "zi_dan_jia3_clipmagazinehole_0_1", - "sample_id": null, - "children": [ - "zi_dan_jia3_jipian_1" - ], - "parent": "zi_dan_jia3", - "type": "container", - "class": "", - "position": { - "x": 15.0, - "y": 27.5, - "z": 10 - }, - "config": { - "type": "ClipMagazineHole", - "size_x": 14.0, - "size_y": 14.0, - "size_z": 10.0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "clip_magazine_hole", - "model": null, - "barcode": null, - "max_volume": 1960.0, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null - }, - "data": { - "sheet_count": 1, - "sheets": [ - { - "name": "zi_dan_jia3_jipian_1", - "type": "ElectrodeSheet", - "size_x": 12, - "size_y": 12, - "size_z": 0.1, - "location": null, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "electrode_sheet", - "model": null, - "barcode": null, - "children": [], - "parent_name": "zi_dan_jia3_clipmagazinehole_0_1" - } - ] - } - }, - { - "id": "zi_dan_jia3_jipian_1", - "name": "zi_dan_jia3_jipian_1", - "sample_id": null, - "children": [], - "parent": "zi_dan_jia3_clipmagazinehole_0_1", - "type": "container", - "class": "", - "position": { - "x": 0, - "y": 0, - "z": 0 - }, - "config": { - "type": "ElectrodeSheet", - "size_x": 12, - "size_y": 12, - "size_z": 0.1, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "electrode_sheet", - "model": null, - "barcode": null - }, - "data": { - "diameter": 14, - "thickness": 0.1, - "mass": 0.5, - "material_type": "copper", - "info": null - } - }, - { - "id": "zi_dan_jia3_clipmagazinehole_1_0", - "name": "zi_dan_jia3_clipmagazinehole_1_0", - "sample_id": null, - "children": [ - "zi_dan_jia3_jipian_2" - ], - "parent": "zi_dan_jia3", - "type": "container", - "class": "", - "position": { - "x": 40.0, - "y": 52.5, - "z": 10 - }, - "config": { - "type": "ClipMagazineHole", - "size_x": 14.0, - "size_y": 14.0, - "size_z": 10.0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "clip_magazine_hole", - "model": null, - "barcode": null, - "max_volume": 1960.0, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null - }, - "data": { - "sheet_count": 1, - "sheets": [ - { - "name": "zi_dan_jia3_jipian_2", - "type": "ElectrodeSheet", - "size_x": 12, - "size_y": 12, - "size_z": 0.1, - "location": null, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "electrode_sheet", - "model": null, - "barcode": null, - "children": [], - "parent_name": "zi_dan_jia3_clipmagazinehole_1_0" - } - ] - } - }, - { - "id": "zi_dan_jia3_jipian_2", - "name": "zi_dan_jia3_jipian_2", - "sample_id": null, - "children": [], - "parent": "zi_dan_jia3_clipmagazinehole_1_0", - "type": "container", - "class": "", - "position": { - "x": 0, - "y": 0, - "z": 0 - }, - "config": { - "type": "ElectrodeSheet", - "size_x": 12, - "size_y": 12, - "size_z": 0.1, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "electrode_sheet", - "model": null, - "barcode": null - }, - "data": { - "diameter": 14, - "thickness": 0.1, - "mass": 0.5, - "material_type": "copper", - "info": null - } - }, - { - "id": "zi_dan_jia3_clipmagazinehole_1_1", - "name": "zi_dan_jia3_clipmagazinehole_1_1", - "sample_id": null, - "children": [ - "zi_dan_jia3_jipian_3" - ], - "parent": "zi_dan_jia3", - "type": "container", - "class": "", - "position": { - "x": 40.0, - "y": 27.5, - "z": 10 - }, - "config": { - "type": "ClipMagazineHole", - "size_x": 14.0, - "size_y": 14.0, - "size_z": 10.0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "clip_magazine_hole", - "model": null, - "barcode": null, - "max_volume": 1960.0, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null - }, - "data": { - "sheet_count": 1, - "sheets": [ - { - "name": "zi_dan_jia3_jipian_3", - "type": "ElectrodeSheet", - "size_x": 12, - "size_y": 12, - "size_z": 0.1, - "location": null, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "electrode_sheet", - "model": null, - "barcode": null, - "children": [], - "parent_name": "zi_dan_jia3_clipmagazinehole_1_1" - } - ] - } - }, - { - "id": "zi_dan_jia3_jipian_3", - "name": "zi_dan_jia3_jipian_3", - "sample_id": null, - "children": [], - "parent": "zi_dan_jia3_clipmagazinehole_1_1", - "type": "container", - "class": "", - "position": { - "x": 0, - "y": 0, - "z": 0 - }, - "config": { - "type": "ElectrodeSheet", - "size_x": 12, - "size_y": 12, - "size_z": 0.1, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "electrode_sheet", - "model": null, - "barcode": null - }, - "data": { - "diameter": 14, - "thickness": 0.1, - "mass": 0.5, - "material_type": "copper", - "info": null - } - }, - { - "id": "zi_dan_jia3_clipmagazinehole_2_0", - "name": "zi_dan_jia3_clipmagazinehole_2_0", - "sample_id": null, - "children": [ - "zi_dan_jia3_jipian_4" - ], - "parent": "zi_dan_jia3", - "type": "container", - "class": "", - "position": { - "x": 65.0, - "y": 52.5, - "z": 10 - }, - "config": { - "type": "ClipMagazineHole", - "size_x": 14.0, - "size_y": 14.0, - "size_z": 10.0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "clip_magazine_hole", - "model": null, - "barcode": null, - "max_volume": 1960.0, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null - }, - "data": { - "sheet_count": 1, - "sheets": [ - { - "name": "zi_dan_jia3_jipian_4", - "type": "ElectrodeSheet", - "size_x": 12, - "size_y": 12, - "size_z": 0.1, - "location": null, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "electrode_sheet", - "model": null, - "barcode": null, - "children": [], - "parent_name": "zi_dan_jia3_clipmagazinehole_2_0" - } - ] - } - }, - { - "id": "zi_dan_jia3_jipian_4", - "name": "zi_dan_jia3_jipian_4", - "sample_id": null, - "children": [], - "parent": "zi_dan_jia3_clipmagazinehole_2_0", - "type": "container", - "class": "", - "position": { - "x": 0, - "y": 0, - "z": 0 - }, - "config": { - "type": "ElectrodeSheet", - "size_x": 12, - "size_y": 12, - "size_z": 0.1, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "electrode_sheet", - "model": null, - "barcode": null - }, - "data": { - "diameter": 14, - "thickness": 0.1, - "mass": 0.5, - "material_type": "copper", - "info": null - } - }, - { - "id": "zi_dan_jia3_clipmagazinehole_2_1", - "name": "zi_dan_jia3_clipmagazinehole_2_1", - "sample_id": null, - "children": [ - "zi_dan_jia3_jipian_5" - ], - "parent": "zi_dan_jia3", - "type": "container", - "class": "", - "position": { - "x": 65.0, - "y": 27.5, - "z": 10 - }, - "config": { - "type": "ClipMagazineHole", - "size_x": 14.0, - "size_y": 14.0, - "size_z": 10.0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "clip_magazine_hole", - "model": null, - "barcode": null, - "max_volume": 1960.0, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null - }, - "data": { - "sheet_count": 1, - "sheets": [ - { - "name": "zi_dan_jia3_jipian_5", - "type": "ElectrodeSheet", - "size_x": 12, - "size_y": 12, - "size_z": 0.1, - "location": null, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "electrode_sheet", - "model": null, - "barcode": null, - "children": [], - "parent_name": "zi_dan_jia3_clipmagazinehole_2_1" - } - ] - } - }, - { - "id": "zi_dan_jia3_jipian_5", - "name": "zi_dan_jia3_jipian_5", - "sample_id": null, - "children": [], - "parent": "zi_dan_jia3_clipmagazinehole_2_1", - "type": "container", - "class": "", - "position": { - "x": 0, - "y": 0, - "z": 0 - }, - "config": { - "type": "ElectrodeSheet", - "size_x": 12, - "size_y": 12, - "size_z": 0.1, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "electrode_sheet", - "model": null, - "barcode": null - }, - "data": { - "diameter": 14, - "thickness": 0.1, - "mass": 0.5, - "material_type": "copper", - "info": null - } - }, - { - "id": "zi_dan_jia4", - "name": "zi_dan_jia4", - "sample_id": null, - "children": [ - "zi_dan_jia4_clipmagazinehole_0_0", - "zi_dan_jia4_clipmagazinehole_0_1", - "zi_dan_jia4_clipmagazinehole_1_0", - "zi_dan_jia4_clipmagazinehole_1_1", - "zi_dan_jia4_clipmagazinehole_2_0", - "zi_dan_jia4_clipmagazinehole_2_1" - ], - "parent": "coin_cell_deck", - "type": "container", - "class": "", - "position": { - "x": 1500, - "y": 300, - "z": 0 - }, - "config": { - "type": "ClipMagazine", - "size_x": 80, - "size_y": 80, - "size_z": 10, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "clip_magazine", - "model": null, - "barcode": null, - "ordering": { - "A1": "zi_dan_jia4_clipmagazinehole_0_0", - "B1": "zi_dan_jia4_clipmagazinehole_0_1", - "A2": "zi_dan_jia4_clipmagazinehole_1_0", - "B2": "zi_dan_jia4_clipmagazinehole_1_1", - "A3": "zi_dan_jia4_clipmagazinehole_2_0", - "B3": "zi_dan_jia4_clipmagazinehole_2_1" - }, - "hole_diameter": 14.0, - "hole_depth": 10.0, - "max_sheets_per_hole": 100 - }, - "data": {} - }, - { - "id": "zi_dan_jia4_clipmagazinehole_0_0", - "name": "zi_dan_jia4_clipmagazinehole_0_0", - "sample_id": null, - "children": [ - "zi_dan_jia4_jipian_0" - ], - "parent": "zi_dan_jia4", - "type": "container", - "class": "", - "position": { - "x": 15.0, - "y": 52.5, - "z": 10 - }, - "config": { - "type": "ClipMagazineHole", - "size_x": 14.0, - "size_y": 14.0, - "size_z": 10.0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "clip_magazine_hole", - "model": null, - "barcode": null, - "max_volume": 1960.0, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null - }, - "data": { - "sheet_count": 1, - "sheets": [ - { - "name": "zi_dan_jia4_jipian_0", - "type": "ElectrodeSheet", - "size_x": 12, - "size_y": 12, - "size_z": 0.1, - "location": null, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "electrode_sheet", - "model": null, - "barcode": null, - "children": [], - "parent_name": "zi_dan_jia4_clipmagazinehole_0_0" - } - ] - } - }, - { - "id": "zi_dan_jia4_jipian_0", - "name": "zi_dan_jia4_jipian_0", - "sample_id": null, - "children": [], - "parent": "zi_dan_jia4_clipmagazinehole_0_0", - "type": "container", - "class": "", - "position": { - "x": 0, - "y": 0, - "z": 0 - }, - "config": { - "type": "ElectrodeSheet", - "size_x": 12, - "size_y": 12, - "size_z": 0.1, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "electrode_sheet", - "model": null, - "barcode": null - }, - "data": { - "diameter": 14, - "thickness": 0.1, - "mass": 0.5, - "material_type": "copper", - "info": null - } - }, - { - "id": "zi_dan_jia4_clipmagazinehole_0_1", - "name": "zi_dan_jia4_clipmagazinehole_0_1", - "sample_id": null, - "children": [ - "zi_dan_jia4_jipian_1" - ], - "parent": "zi_dan_jia4", - "type": "container", - "class": "", - "position": { - "x": 15.0, - "y": 27.5, - "z": 10 - }, - "config": { - "type": "ClipMagazineHole", - "size_x": 14.0, - "size_y": 14.0, - "size_z": 10.0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "clip_magazine_hole", - "model": null, - "barcode": null, - "max_volume": 1960.0, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null - }, - "data": { - "sheet_count": 1, - "sheets": [ - { - "name": "zi_dan_jia4_jipian_1", - "type": "ElectrodeSheet", - "size_x": 12, - "size_y": 12, - "size_z": 0.1, - "location": null, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "electrode_sheet", - "model": null, - "barcode": null, - "children": [], - "parent_name": "zi_dan_jia4_clipmagazinehole_0_1" - } - ] - } - }, - { - "id": "zi_dan_jia4_jipian_1", - "name": "zi_dan_jia4_jipian_1", - "sample_id": null, - "children": [], - "parent": "zi_dan_jia4_clipmagazinehole_0_1", - "type": "container", - "class": "", - "position": { - "x": 0, - "y": 0, - "z": 0 - }, - "config": { - "type": "ElectrodeSheet", - "size_x": 12, - "size_y": 12, - "size_z": 0.1, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "electrode_sheet", - "model": null, - "barcode": null - }, - "data": { - "diameter": 14, - "thickness": 0.1, - "mass": 0.5, - "material_type": "copper", - "info": null - } - }, - { - "id": "zi_dan_jia4_clipmagazinehole_1_0", - "name": "zi_dan_jia4_clipmagazinehole_1_0", - "sample_id": null, - "children": [ - "zi_dan_jia4_jipian_2" - ], - "parent": "zi_dan_jia4", - "type": "container", - "class": "", - "position": { - "x": 40.0, - "y": 52.5, - "z": 10 - }, - "config": { - "type": "ClipMagazineHole", - "size_x": 14.0, - "size_y": 14.0, - "size_z": 10.0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "clip_magazine_hole", - "model": null, - "barcode": null, - "max_volume": 1960.0, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null - }, - "data": { - "sheet_count": 1, - "sheets": [ - { - "name": "zi_dan_jia4_jipian_2", - "type": "ElectrodeSheet", - "size_x": 12, - "size_y": 12, - "size_z": 0.1, - "location": null, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "electrode_sheet", - "model": null, - "barcode": null, - "children": [], - "parent_name": "zi_dan_jia4_clipmagazinehole_1_0" - } - ] - } - }, - { - "id": "zi_dan_jia4_jipian_2", - "name": "zi_dan_jia4_jipian_2", - "sample_id": null, - "children": [], - "parent": "zi_dan_jia4_clipmagazinehole_1_0", - "type": "container", - "class": "", - "position": { - "x": 0, - "y": 0, - "z": 0 - }, - "config": { - "type": "ElectrodeSheet", - "size_x": 12, - "size_y": 12, - "size_z": 0.1, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "electrode_sheet", - "model": null, - "barcode": null - }, - "data": { - "diameter": 14, - "thickness": 0.1, - "mass": 0.5, - "material_type": "copper", - "info": null - } - }, - { - "id": "zi_dan_jia4_clipmagazinehole_1_1", - "name": "zi_dan_jia4_clipmagazinehole_1_1", - "sample_id": null, - "children": [ - "zi_dan_jia4_jipian_3" - ], - "parent": "zi_dan_jia4", - "type": "container", - "class": "", - "position": { - "x": 40.0, - "y": 27.5, - "z": 10 - }, - "config": { - "type": "ClipMagazineHole", - "size_x": 14.0, - "size_y": 14.0, - "size_z": 10.0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "clip_magazine_hole", - "model": null, - "barcode": null, - "max_volume": 1960.0, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null - }, - "data": { - "sheet_count": 1, - "sheets": [ - { - "name": "zi_dan_jia4_jipian_3", - "type": "ElectrodeSheet", - "size_x": 12, - "size_y": 12, - "size_z": 0.1, - "location": null, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "electrode_sheet", - "model": null, - "barcode": null, - "children": [], - "parent_name": "zi_dan_jia4_clipmagazinehole_1_1" - } - ] - } - }, - { - "id": "zi_dan_jia4_jipian_3", - "name": "zi_dan_jia4_jipian_3", - "sample_id": null, - "children": [], - "parent": "zi_dan_jia4_clipmagazinehole_1_1", - "type": "container", - "class": "", - "position": { - "x": 0, - "y": 0, - "z": 0 - }, - "config": { - "type": "ElectrodeSheet", - "size_x": 12, - "size_y": 12, - "size_z": 0.1, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "electrode_sheet", - "model": null, - "barcode": null - }, - "data": { - "diameter": 14, - "thickness": 0.1, - "mass": 0.5, - "material_type": "copper", - "info": null - } - }, - { - "id": "zi_dan_jia4_clipmagazinehole_2_0", - "name": "zi_dan_jia4_clipmagazinehole_2_0", - "sample_id": null, - "children": [ - "zi_dan_jia4_jipian_4" - ], - "parent": "zi_dan_jia4", - "type": "container", - "class": "", - "position": { - "x": 65.0, - "y": 52.5, - "z": 10 - }, - "config": { - "type": "ClipMagazineHole", - "size_x": 14.0, - "size_y": 14.0, - "size_z": 10.0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "clip_magazine_hole", - "model": null, - "barcode": null, - "max_volume": 1960.0, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null - }, - "data": { - "sheet_count": 1, - "sheets": [ - { - "name": "zi_dan_jia4_jipian_4", - "type": "ElectrodeSheet", - "size_x": 12, - "size_y": 12, - "size_z": 0.1, - "location": null, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "electrode_sheet", - "model": null, - "barcode": null, - "children": [], - "parent_name": "zi_dan_jia4_clipmagazinehole_2_0" - } - ] - } - }, - { - "id": "zi_dan_jia4_jipian_4", - "name": "zi_dan_jia4_jipian_4", - "sample_id": null, - "children": [], - "parent": "zi_dan_jia4_clipmagazinehole_2_0", - "type": "container", - "class": "", - "position": { - "x": 0, - "y": 0, - "z": 0 - }, - "config": { - "type": "ElectrodeSheet", - "size_x": 12, - "size_y": 12, - "size_z": 0.1, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "electrode_sheet", - "model": null, - "barcode": null - }, - "data": { - "diameter": 14, - "thickness": 0.1, - "mass": 0.5, - "material_type": "copper", - "info": null - } - }, - { - "id": "zi_dan_jia4_clipmagazinehole_2_1", - "name": "zi_dan_jia4_clipmagazinehole_2_1", - "sample_id": null, - "children": [ - "zi_dan_jia4_jipian_5" - ], - "parent": "zi_dan_jia4", - "type": "container", - "class": "", - "position": { - "x": 65.0, - "y": 27.5, - "z": 10 - }, - "config": { - "type": "ClipMagazineHole", - "size_x": 14.0, - "size_y": 14.0, - "size_z": 10.0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "clip_magazine_hole", - "model": null, - "barcode": null, - "max_volume": 1960.0, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null - }, - "data": { - "sheet_count": 1, - "sheets": [ - { - "name": "zi_dan_jia4_jipian_5", - "type": "ElectrodeSheet", - "size_x": 12, - "size_y": 12, - "size_z": 0.1, - "location": null, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "electrode_sheet", - "model": null, - "barcode": null, - "children": [], - "parent_name": "zi_dan_jia4_clipmagazinehole_2_1" - } - ] - } - }, - { - "id": "zi_dan_jia4_jipian_5", - "name": "zi_dan_jia4_jipian_5", - "sample_id": null, - "children": [], - "parent": "zi_dan_jia4_clipmagazinehole_2_1", - "type": "container", - "class": "", - "position": { - "x": 0, - "y": 0, - "z": 0 - }, - "config": { - "type": "ElectrodeSheet", - "size_x": 12, - "size_y": 12, - "size_z": 0.1, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "electrode_sheet", - "model": null, - "barcode": null - }, - "data": { - "diameter": 14, - "thickness": 0.1, - "mass": 0.5, - "material_type": "copper", - "info": null - } - }, - { - "id": "zi_dan_jia5", - "name": "zi_dan_jia5", - "sample_id": null, - "children": [ - "zi_dan_jia5_clipmagazinehole_0_0", - "zi_dan_jia5_clipmagazinehole_0_1", - "zi_dan_jia5_clipmagazinehole_1_0", - "zi_dan_jia5_clipmagazinehole_1_1", - "zi_dan_jia5_clipmagazinehole_2_0", - "zi_dan_jia5_clipmagazinehole_2_1" - ], - "parent": "coin_cell_deck", - "type": "container", - "class": "", - "position": { - "x": 1600, - "y": 300, - "z": 0 - }, - "config": { - "type": "ClipMagazine", - "size_x": 80, - "size_y": 80, - "size_z": 10, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "clip_magazine", - "model": null, - "barcode": null, - "ordering": { - "A1": "zi_dan_jia5_clipmagazinehole_0_0", - "B1": "zi_dan_jia5_clipmagazinehole_0_1", - "A2": "zi_dan_jia5_clipmagazinehole_1_0", - "B2": "zi_dan_jia5_clipmagazinehole_1_1", - "A3": "zi_dan_jia5_clipmagazinehole_2_0", - "B3": "zi_dan_jia5_clipmagazinehole_2_1" - }, - "hole_diameter": 14.0, - "hole_depth": 10.0, - "max_sheets_per_hole": 100 - }, - "data": {} - }, - { - "id": "zi_dan_jia5_clipmagazinehole_0_0", - "name": "zi_dan_jia5_clipmagazinehole_0_0", - "sample_id": null, - "children": [ - "zi_dan_jia5_jipian_0" - ], - "parent": "zi_dan_jia5", - "type": "container", - "class": "", - "position": { - "x": 15.0, - "y": 52.5, - "z": 10 - }, - "config": { - "type": "ClipMagazineHole", - "size_x": 14.0, - "size_y": 14.0, - "size_z": 10.0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "clip_magazine_hole", - "model": null, - "barcode": null, - "max_volume": 1960.0, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null - }, - "data": { - "sheet_count": 1, - "sheets": [ - { - "name": "zi_dan_jia5_jipian_0", - "type": "ElectrodeSheet", - "size_x": 12, - "size_y": 12, - "size_z": 0.1, - "location": null, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "electrode_sheet", - "model": null, - "barcode": null, - "children": [], - "parent_name": "zi_dan_jia5_clipmagazinehole_0_0" - } - ] - } - }, - { - "id": "zi_dan_jia5_jipian_0", - "name": "zi_dan_jia5_jipian_0", - "sample_id": null, - "children": [], - "parent": "zi_dan_jia5_clipmagazinehole_0_0", - "type": "container", - "class": "", - "position": { - "x": 0, - "y": 0, - "z": 0 - }, - "config": { - "type": "ElectrodeSheet", - "size_x": 12, - "size_y": 12, - "size_z": 0.1, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "electrode_sheet", - "model": null, - "barcode": null - }, - "data": { - "diameter": 14, - "thickness": 0.1, - "mass": 0.5, - "material_type": "copper", - "info": null - } - }, - { - "id": "zi_dan_jia5_clipmagazinehole_0_1", - "name": "zi_dan_jia5_clipmagazinehole_0_1", - "sample_id": null, - "children": [ - "zi_dan_jia5_jipian_1" - ], - "parent": "zi_dan_jia5", - "type": "container", - "class": "", - "position": { - "x": 15.0, - "y": 27.5, - "z": 10 - }, - "config": { - "type": "ClipMagazineHole", - "size_x": 14.0, - "size_y": 14.0, - "size_z": 10.0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "clip_magazine_hole", - "model": null, - "barcode": null, - "max_volume": 1960.0, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null - }, - "data": { - "sheet_count": 1, - "sheets": [ - { - "name": "zi_dan_jia5_jipian_1", - "type": "ElectrodeSheet", - "size_x": 12, - "size_y": 12, - "size_z": 0.1, - "location": null, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "electrode_sheet", - "model": null, - "barcode": null, - "children": [], - "parent_name": "zi_dan_jia5_clipmagazinehole_0_1" - } - ] - } - }, - { - "id": "zi_dan_jia5_jipian_1", - "name": "zi_dan_jia5_jipian_1", - "sample_id": null, - "children": [], - "parent": "zi_dan_jia5_clipmagazinehole_0_1", - "type": "container", - "class": "", - "position": { - "x": 0, - "y": 0, - "z": 0 - }, - "config": { - "type": "ElectrodeSheet", - "size_x": 12, - "size_y": 12, - "size_z": 0.1, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "electrode_sheet", - "model": null, - "barcode": null - }, - "data": { - "diameter": 14, - "thickness": 0.1, - "mass": 0.5, - "material_type": "copper", - "info": null - } - }, - { - "id": "zi_dan_jia5_clipmagazinehole_1_0", - "name": "zi_dan_jia5_clipmagazinehole_1_0", - "sample_id": null, - "children": [ - "zi_dan_jia5_jipian_2" - ], - "parent": "zi_dan_jia5", - "type": "container", - "class": "", - "position": { - "x": 40.0, - "y": 52.5, - "z": 10 - }, - "config": { - "type": "ClipMagazineHole", - "size_x": 14.0, - "size_y": 14.0, - "size_z": 10.0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "clip_magazine_hole", - "model": null, - "barcode": null, - "max_volume": 1960.0, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null - }, - "data": { - "sheet_count": 1, - "sheets": [ - { - "name": "zi_dan_jia5_jipian_2", - "type": "ElectrodeSheet", - "size_x": 12, - "size_y": 12, - "size_z": 0.1, - "location": null, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "electrode_sheet", - "model": null, - "barcode": null, - "children": [], - "parent_name": "zi_dan_jia5_clipmagazinehole_1_0" - } - ] - } - }, - { - "id": "zi_dan_jia5_jipian_2", - "name": "zi_dan_jia5_jipian_2", - "sample_id": null, - "children": [], - "parent": "zi_dan_jia5_clipmagazinehole_1_0", - "type": "container", - "class": "", - "position": { - "x": 0, - "y": 0, - "z": 0 - }, - "config": { - "type": "ElectrodeSheet", - "size_x": 12, - "size_y": 12, - "size_z": 0.1, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "electrode_sheet", - "model": null, - "barcode": null - }, - "data": { - "diameter": 14, - "thickness": 0.1, - "mass": 0.5, - "material_type": "copper", - "info": null - } - }, - { - "id": "zi_dan_jia5_clipmagazinehole_1_1", - "name": "zi_dan_jia5_clipmagazinehole_1_1", - "sample_id": null, - "children": [ - "zi_dan_jia5_jipian_3" - ], - "parent": "zi_dan_jia5", - "type": "container", - "class": "", - "position": { - "x": 40.0, - "y": 27.5, - "z": 10 - }, - "config": { - "type": "ClipMagazineHole", - "size_x": 14.0, - "size_y": 14.0, - "size_z": 10.0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "clip_magazine_hole", - "model": null, - "barcode": null, - "max_volume": 1960.0, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null - }, - "data": { - "sheet_count": 1, - "sheets": [ - { - "name": "zi_dan_jia5_jipian_3", - "type": "ElectrodeSheet", - "size_x": 12, - "size_y": 12, - "size_z": 0.1, - "location": null, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "electrode_sheet", - "model": null, - "barcode": null, - "children": [], - "parent_name": "zi_dan_jia5_clipmagazinehole_1_1" - } - ] - } - }, - { - "id": "zi_dan_jia5_jipian_3", - "name": "zi_dan_jia5_jipian_3", - "sample_id": null, - "children": [], - "parent": "zi_dan_jia5_clipmagazinehole_1_1", - "type": "container", - "class": "", - "position": { - "x": 0, - "y": 0, - "z": 0 - }, - "config": { - "type": "ElectrodeSheet", - "size_x": 12, - "size_y": 12, - "size_z": 0.1, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "electrode_sheet", - "model": null, - "barcode": null - }, - "data": { - "diameter": 14, - "thickness": 0.1, - "mass": 0.5, - "material_type": "copper", - "info": null - } - }, - { - "id": "zi_dan_jia5_clipmagazinehole_2_0", - "name": "zi_dan_jia5_clipmagazinehole_2_0", - "sample_id": null, - "children": [ - "zi_dan_jia5_jipian_4" - ], - "parent": "zi_dan_jia5", - "type": "container", - "class": "", - "position": { - "x": 65.0, - "y": 52.5, - "z": 10 - }, - "config": { - "type": "ClipMagazineHole", - "size_x": 14.0, - "size_y": 14.0, - "size_z": 10.0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "clip_magazine_hole", - "model": null, - "barcode": null, - "max_volume": 1960.0, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null - }, - "data": { - "sheet_count": 1, - "sheets": [ - { - "name": "zi_dan_jia5_jipian_4", - "type": "ElectrodeSheet", - "size_x": 12, - "size_y": 12, - "size_z": 0.1, - "location": null, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "electrode_sheet", - "model": null, - "barcode": null, - "children": [], - "parent_name": "zi_dan_jia5_clipmagazinehole_2_0" - } - ] - } - }, - { - "id": "zi_dan_jia5_jipian_4", - "name": "zi_dan_jia5_jipian_4", - "sample_id": null, - "children": [], - "parent": "zi_dan_jia5_clipmagazinehole_2_0", - "type": "container", - "class": "", - "position": { - "x": 0, - "y": 0, - "z": 0 - }, - "config": { - "type": "ElectrodeSheet", - "size_x": 12, - "size_y": 12, - "size_z": 0.1, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "electrode_sheet", - "model": null, - "barcode": null - }, - "data": { - "diameter": 14, - "thickness": 0.1, - "mass": 0.5, - "material_type": "copper", - "info": null - } - }, - { - "id": "zi_dan_jia5_clipmagazinehole_2_1", - "name": "zi_dan_jia5_clipmagazinehole_2_1", - "sample_id": null, - "children": [ - "zi_dan_jia5_jipian_5" - ], - "parent": "zi_dan_jia5", - "type": "container", - "class": "", - "position": { - "x": 65.0, - "y": 27.5, - "z": 10 - }, - "config": { - "type": "ClipMagazineHole", - "size_x": 14.0, - "size_y": 14.0, - "size_z": 10.0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "clip_magazine_hole", - "model": null, - "barcode": null, - "max_volume": 1960.0, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null - }, - "data": { - "sheet_count": 1, - "sheets": [ - { - "name": "zi_dan_jia5_jipian_5", - "type": "ElectrodeSheet", - "size_x": 12, - "size_y": 12, - "size_z": 0.1, - "location": null, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "electrode_sheet", - "model": null, - "barcode": null, - "children": [], - "parent_name": "zi_dan_jia5_clipmagazinehole_2_1" - } - ] - } - }, - { - "id": "zi_dan_jia5_jipian_5", - "name": "zi_dan_jia5_jipian_5", - "sample_id": null, - "children": [], - "parent": "zi_dan_jia5_clipmagazinehole_2_1", - "type": "container", - "class": "", - "position": { - "x": 0, - "y": 0, - "z": 0 - }, - "config": { - "type": "ElectrodeSheet", - "size_x": 12, - "size_y": 12, - "size_z": 0.1, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "electrode_sheet", - "model": null, - "barcode": null - }, - "data": { - "diameter": 14, - "thickness": 0.1, - "mass": 0.5, - "material_type": "copper", - "info": null - } - }, - { - "id": "zi_dan_jia6", - "name": "zi_dan_jia6", - "sample_id": null, - "children": [ - "zi_dan_jia6_clipmagazinehole_0_0", - "zi_dan_jia6_clipmagazinehole_0_1", - "zi_dan_jia6_clipmagazinehole_1_0", - "zi_dan_jia6_clipmagazinehole_1_1", - "zi_dan_jia6_clipmagazinehole_2_0", - "zi_dan_jia6_clipmagazinehole_2_1" - ], - "parent": "coin_cell_deck", - "type": "container", - "class": "", - "position": { - "x": 1530, - "y": 500, - "z": 0 - }, - "config": { - "type": "ClipMagazine", - "size_x": 80, - "size_y": 80, - "size_z": 10, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "clip_magazine", - "model": null, - "barcode": null, - "ordering": { - "A1": "zi_dan_jia6_clipmagazinehole_0_0", - "B1": "zi_dan_jia6_clipmagazinehole_0_1", - "A2": "zi_dan_jia6_clipmagazinehole_1_0", - "B2": "zi_dan_jia6_clipmagazinehole_1_1", - "A3": "zi_dan_jia6_clipmagazinehole_2_0", - "B3": "zi_dan_jia6_clipmagazinehole_2_1" - }, - "hole_diameter": 14.0, - "hole_depth": 10.0, - "max_sheets_per_hole": 100 - }, - "data": {} - }, - { - "id": "zi_dan_jia6_clipmagazinehole_0_0", - "name": "zi_dan_jia6_clipmagazinehole_0_0", - "sample_id": null, - "children": [ - "zi_dan_jia6_jipian_0" - ], - "parent": "zi_dan_jia6", - "type": "container", - "class": "", - "position": { - "x": 15.0, - "y": 52.5, - "z": 10 - }, - "config": { - "type": "ClipMagazineHole", - "size_x": 14.0, - "size_y": 14.0, - "size_z": 10.0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "clip_magazine_hole", - "model": null, - "barcode": null, - "max_volume": 1960.0, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null - }, - "data": { - "sheet_count": 1, - "sheets": [ - { - "name": "zi_dan_jia6_jipian_0", - "type": "ElectrodeSheet", - "size_x": 12, - "size_y": 12, - "size_z": 0.1, - "location": null, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "electrode_sheet", - "model": null, - "barcode": null, - "children": [], - "parent_name": "zi_dan_jia6_clipmagazinehole_0_0" - } - ] - } - }, - { - "id": "zi_dan_jia6_jipian_0", - "name": "zi_dan_jia6_jipian_0", - "sample_id": null, - "children": [], - "parent": "zi_dan_jia6_clipmagazinehole_0_0", - "type": "container", - "class": "", - "position": { - "x": 0, - "y": 0, - "z": 0 - }, - "config": { - "type": "ElectrodeSheet", - "size_x": 12, - "size_y": 12, - "size_z": 0.1, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "electrode_sheet", - "model": null, - "barcode": null - }, - "data": { - "diameter": 14, - "thickness": 0.1, - "mass": 0.5, - "material_type": "copper", - "info": null - } - }, - { - "id": "zi_dan_jia6_clipmagazinehole_0_1", - "name": "zi_dan_jia6_clipmagazinehole_0_1", - "sample_id": null, - "children": [ - "zi_dan_jia6_jipian_1" - ], - "parent": "zi_dan_jia6", - "type": "container", - "class": "", - "position": { - "x": 15.0, - "y": 27.5, - "z": 10 - }, - "config": { - "type": "ClipMagazineHole", - "size_x": 14.0, - "size_y": 14.0, - "size_z": 10.0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "clip_magazine_hole", - "model": null, - "barcode": null, - "max_volume": 1960.0, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null - }, - "data": { - "sheet_count": 1, - "sheets": [ - { - "name": "zi_dan_jia6_jipian_1", - "type": "ElectrodeSheet", - "size_x": 12, - "size_y": 12, - "size_z": 0.1, - "location": null, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "electrode_sheet", - "model": null, - "barcode": null, - "children": [], - "parent_name": "zi_dan_jia6_clipmagazinehole_0_1" - } - ] - } - }, - { - "id": "zi_dan_jia6_jipian_1", - "name": "zi_dan_jia6_jipian_1", - "sample_id": null, - "children": [], - "parent": "zi_dan_jia6_clipmagazinehole_0_1", - "type": "container", - "class": "", - "position": { - "x": 0, - "y": 0, - "z": 0 - }, - "config": { - "type": "ElectrodeSheet", - "size_x": 12, - "size_y": 12, - "size_z": 0.1, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "electrode_sheet", - "model": null, - "barcode": null - }, - "data": { - "diameter": 14, - "thickness": 0.1, - "mass": 0.5, - "material_type": "copper", - "info": null - } - }, - { - "id": "zi_dan_jia6_clipmagazinehole_1_0", - "name": "zi_dan_jia6_clipmagazinehole_1_0", - "sample_id": null, - "children": [ - "zi_dan_jia6_jipian_2" - ], - "parent": "zi_dan_jia6", - "type": "container", - "class": "", - "position": { - "x": 40.0, - "y": 52.5, - "z": 10 - }, - "config": { - "type": "ClipMagazineHole", - "size_x": 14.0, - "size_y": 14.0, - "size_z": 10.0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "clip_magazine_hole", - "model": null, - "barcode": null, - "max_volume": 1960.0, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null - }, - "data": { - "sheet_count": 1, - "sheets": [ - { - "name": "zi_dan_jia6_jipian_2", - "type": "ElectrodeSheet", - "size_x": 12, - "size_y": 12, - "size_z": 0.1, - "location": null, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "electrode_sheet", - "model": null, - "barcode": null, - "children": [], - "parent_name": "zi_dan_jia6_clipmagazinehole_1_0" - } - ] - } - }, - { - "id": "zi_dan_jia6_jipian_2", - "name": "zi_dan_jia6_jipian_2", - "sample_id": null, - "children": [], - "parent": "zi_dan_jia6_clipmagazinehole_1_0", - "type": "container", - "class": "", - "position": { - "x": 0, - "y": 0, - "z": 0 - }, - "config": { - "type": "ElectrodeSheet", - "size_x": 12, - "size_y": 12, - "size_z": 0.1, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "electrode_sheet", - "model": null, - "barcode": null - }, - "data": { - "diameter": 14, - "thickness": 0.1, - "mass": 0.5, - "material_type": "copper", - "info": null - } - }, - { - "id": "zi_dan_jia6_clipmagazinehole_1_1", - "name": "zi_dan_jia6_clipmagazinehole_1_1", - "sample_id": null, - "children": [ - "zi_dan_jia6_jipian_3" - ], - "parent": "zi_dan_jia6", - "type": "container", - "class": "", - "position": { - "x": 40.0, - "y": 27.5, - "z": 10 - }, - "config": { - "type": "ClipMagazineHole", - "size_x": 14.0, - "size_y": 14.0, - "size_z": 10.0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "clip_magazine_hole", - "model": null, - "barcode": null, - "max_volume": 1960.0, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null - }, - "data": { - "sheet_count": 1, - "sheets": [ - { - "name": "zi_dan_jia6_jipian_3", - "type": "ElectrodeSheet", - "size_x": 12, - "size_y": 12, - "size_z": 0.1, - "location": null, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "electrode_sheet", - "model": null, - "barcode": null, - "children": [], - "parent_name": "zi_dan_jia6_clipmagazinehole_1_1" - } - ] - } - }, - { - "id": "zi_dan_jia6_jipian_3", - "name": "zi_dan_jia6_jipian_3", - "sample_id": null, - "children": [], - "parent": "zi_dan_jia6_clipmagazinehole_1_1", - "type": "container", - "class": "", - "position": { - "x": 0, - "y": 0, - "z": 0 - }, - "config": { - "type": "ElectrodeSheet", - "size_x": 12, - "size_y": 12, - "size_z": 0.1, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "electrode_sheet", - "model": null, - "barcode": null - }, - "data": { - "diameter": 14, - "thickness": 0.1, - "mass": 0.5, - "material_type": "copper", - "info": null - } - }, - { - "id": "zi_dan_jia6_clipmagazinehole_2_0", - "name": "zi_dan_jia6_clipmagazinehole_2_0", - "sample_id": null, - "children": [ - "zi_dan_jia6_jipian_4" - ], - "parent": "zi_dan_jia6", - "type": "container", - "class": "", - "position": { - "x": 65.0, - "y": 52.5, - "z": 10 - }, - "config": { - "type": "ClipMagazineHole", - "size_x": 14.0, - "size_y": 14.0, - "size_z": 10.0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "clip_magazine_hole", - "model": null, - "barcode": null, - "max_volume": 1960.0, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null - }, - "data": { - "sheet_count": 1, - "sheets": [ - { - "name": "zi_dan_jia6_jipian_4", - "type": "ElectrodeSheet", - "size_x": 12, - "size_y": 12, - "size_z": 0.1, - "location": null, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "electrode_sheet", - "model": null, - "barcode": null, - "children": [], - "parent_name": "zi_dan_jia6_clipmagazinehole_2_0" - } - ] - } - }, - { - "id": "zi_dan_jia6_jipian_4", - "name": "zi_dan_jia6_jipian_4", - "sample_id": null, - "children": [], - "parent": "zi_dan_jia6_clipmagazinehole_2_0", - "type": "container", - "class": "", - "position": { - "x": 0, - "y": 0, - "z": 0 - }, - "config": { - "type": "ElectrodeSheet", - "size_x": 12, - "size_y": 12, - "size_z": 0.1, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "electrode_sheet", - "model": null, - "barcode": null - }, - "data": { - "diameter": 14, - "thickness": 0.1, - "mass": 0.5, - "material_type": "copper", - "info": null - } - }, - { - "id": "zi_dan_jia6_clipmagazinehole_2_1", - "name": "zi_dan_jia6_clipmagazinehole_2_1", - "sample_id": null, - "children": [ - "zi_dan_jia6_jipian_5" - ], - "parent": "zi_dan_jia6", - "type": "container", - "class": "", - "position": { - "x": 65.0, - "y": 27.5, - "z": 10 - }, - "config": { - "type": "ClipMagazineHole", - "size_x": 14.0, - "size_y": 14.0, - "size_z": 10.0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "clip_magazine_hole", - "model": null, - "barcode": null, - "max_volume": 1960.0, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null - }, - "data": { - "sheet_count": 1, - "sheets": [ - { - "name": "zi_dan_jia6_jipian_5", - "type": "ElectrodeSheet", - "size_x": 12, - "size_y": 12, - "size_z": 0.1, - "location": null, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "electrode_sheet", - "model": null, - "barcode": null, - "children": [], - "parent_name": "zi_dan_jia6_clipmagazinehole_2_1" - } - ] - } - }, - { - "id": "zi_dan_jia6_jipian_5", - "name": "zi_dan_jia6_jipian_5", - "sample_id": null, - "children": [], - "parent": "zi_dan_jia6_clipmagazinehole_2_1", - "type": "container", - "class": "", - "position": { - "x": 0, - "y": 0, - "z": 0 - }, - "config": { - "type": "ElectrodeSheet", - "size_x": 12, - "size_y": 12, - "size_z": 0.1, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "electrode_sheet", - "model": null, - "barcode": null - }, - "data": { - "diameter": 14, - "thickness": 0.1, - "mass": 0.5, - "material_type": "copper", - "info": null - } - }, - { - "id": "zi_dan_jia7", - "name": "zi_dan_jia7", - "sample_id": null, - "children": [ - "zi_dan_jia7_clipmagazinehole_0_0", - "zi_dan_jia7_clipmagazinehole_0_1", - "zi_dan_jia7_clipmagazinehole_1_0", - "zi_dan_jia7_clipmagazinehole_1_1", - "zi_dan_jia7_clipmagazinehole_2_0", - "zi_dan_jia7_clipmagazinehole_2_1" - ], - "parent": "coin_cell_deck", - "type": "container", - "class": "", - "position": { - "x": 1180, - "y": 400, - "z": 0 - }, - "config": { - "type": "ClipMagazine", - "size_x": 80, - "size_y": 80, - "size_z": 10, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "clip_magazine", - "model": null, - "barcode": null, - "ordering": { - "A1": "zi_dan_jia7_clipmagazinehole_0_0", - "B1": "zi_dan_jia7_clipmagazinehole_0_1", - "A2": "zi_dan_jia7_clipmagazinehole_1_0", - "B2": "zi_dan_jia7_clipmagazinehole_1_1", - "A3": "zi_dan_jia7_clipmagazinehole_2_0", - "B3": "zi_dan_jia7_clipmagazinehole_2_1" - }, - "hole_diameter": 14.0, - "hole_depth": 10.0, - "max_sheets_per_hole": 100 - }, - "data": {} - }, - { - "id": "zi_dan_jia7_clipmagazinehole_0_0", - "name": "zi_dan_jia7_clipmagazinehole_0_0", - "sample_id": null, - "children": [ - "zi_dan_jia7_jipian_0" - ], - "parent": "zi_dan_jia7", - "type": "container", - "class": "", - "position": { - "x": 15.0, - "y": 52.5, - "z": 10 - }, - "config": { - "type": "ClipMagazineHole", - "size_x": 14.0, - "size_y": 14.0, - "size_z": 10.0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "clip_magazine_hole", - "model": null, - "barcode": null, - "max_volume": 1960.0, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null - }, - "data": { - "sheet_count": 1, - "sheets": [ - { - "name": "zi_dan_jia7_jipian_0", - "type": "ElectrodeSheet", - "size_x": 12, - "size_y": 12, - "size_z": 0.1, - "location": null, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "electrode_sheet", - "model": null, - "barcode": null, - "children": [], - "parent_name": "zi_dan_jia7_clipmagazinehole_0_0" - } - ] - } - }, - { - "id": "zi_dan_jia7_jipian_0", - "name": "zi_dan_jia7_jipian_0", - "sample_id": null, - "children": [], - "parent": "zi_dan_jia7_clipmagazinehole_0_0", - "type": "container", - "class": "", - "position": { - "x": 0, - "y": 0, - "z": 0 - }, - "config": { - "type": "ElectrodeSheet", - "size_x": 12, - "size_y": 12, - "size_z": 0.1, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "electrode_sheet", - "model": null, - "barcode": null - }, - "data": { - "diameter": 14, - "thickness": 0.1, - "mass": 0.5, - "material_type": "copper", - "info": null - } - }, - { - "id": "zi_dan_jia7_clipmagazinehole_0_1", - "name": "zi_dan_jia7_clipmagazinehole_0_1", - "sample_id": null, - "children": [ - "zi_dan_jia7_jipian_1" - ], - "parent": "zi_dan_jia7", - "type": "container", - "class": "", - "position": { - "x": 15.0, - "y": 27.5, - "z": 10 - }, - "config": { - "type": "ClipMagazineHole", - "size_x": 14.0, - "size_y": 14.0, - "size_z": 10.0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "clip_magazine_hole", - "model": null, - "barcode": null, - "max_volume": 1960.0, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null - }, - "data": { - "sheet_count": 1, - "sheets": [ - { - "name": "zi_dan_jia7_jipian_1", - "type": "ElectrodeSheet", - "size_x": 12, - "size_y": 12, - "size_z": 0.1, - "location": null, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "electrode_sheet", - "model": null, - "barcode": null, - "children": [], - "parent_name": "zi_dan_jia7_clipmagazinehole_0_1" - } - ] - } - }, - { - "id": "zi_dan_jia7_jipian_1", - "name": "zi_dan_jia7_jipian_1", - "sample_id": null, - "children": [], - "parent": "zi_dan_jia7_clipmagazinehole_0_1", - "type": "container", - "class": "", - "position": { - "x": 0, - "y": 0, - "z": 0 - }, - "config": { - "type": "ElectrodeSheet", - "size_x": 12, - "size_y": 12, - "size_z": 0.1, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "electrode_sheet", - "model": null, - "barcode": null - }, - "data": { - "diameter": 14, - "thickness": 0.1, - "mass": 0.5, - "material_type": "copper", - "info": null - } - }, - { - "id": "zi_dan_jia7_clipmagazinehole_1_0", - "name": "zi_dan_jia7_clipmagazinehole_1_0", - "sample_id": null, - "children": [ - "zi_dan_jia7_jipian_2" - ], - "parent": "zi_dan_jia7", - "type": "container", - "class": "", - "position": { - "x": 40.0, - "y": 52.5, - "z": 10 - }, - "config": { - "type": "ClipMagazineHole", - "size_x": 14.0, - "size_y": 14.0, - "size_z": 10.0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "clip_magazine_hole", - "model": null, - "barcode": null, - "max_volume": 1960.0, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null - }, - "data": { - "sheet_count": 1, - "sheets": [ - { - "name": "zi_dan_jia7_jipian_2", - "type": "ElectrodeSheet", - "size_x": 12, - "size_y": 12, - "size_z": 0.1, - "location": null, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "electrode_sheet", - "model": null, - "barcode": null, - "children": [], - "parent_name": "zi_dan_jia7_clipmagazinehole_1_0" - } - ] - } - }, - { - "id": "zi_dan_jia7_jipian_2", - "name": "zi_dan_jia7_jipian_2", - "sample_id": null, - "children": [], - "parent": "zi_dan_jia7_clipmagazinehole_1_0", - "type": "container", - "class": "", - "position": { - "x": 0, - "y": 0, - "z": 0 - }, - "config": { - "type": "ElectrodeSheet", - "size_x": 12, - "size_y": 12, - "size_z": 0.1, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "electrode_sheet", - "model": null, - "barcode": null - }, - "data": { - "diameter": 14, - "thickness": 0.1, - "mass": 0.5, - "material_type": "copper", - "info": null - } - }, - { - "id": "zi_dan_jia7_clipmagazinehole_1_1", - "name": "zi_dan_jia7_clipmagazinehole_1_1", - "sample_id": null, - "children": [ - "zi_dan_jia7_jipian_3" - ], - "parent": "zi_dan_jia7", - "type": "container", - "class": "", - "position": { - "x": 40.0, - "y": 27.5, - "z": 10 - }, - "config": { - "type": "ClipMagazineHole", - "size_x": 14.0, - "size_y": 14.0, - "size_z": 10.0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "clip_magazine_hole", - "model": null, - "barcode": null, - "max_volume": 1960.0, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null - }, - "data": { - "sheet_count": 1, - "sheets": [ - { - "name": "zi_dan_jia7_jipian_3", - "type": "ElectrodeSheet", - "size_x": 12, - "size_y": 12, - "size_z": 0.1, - "location": null, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "electrode_sheet", - "model": null, - "barcode": null, - "children": [], - "parent_name": "zi_dan_jia7_clipmagazinehole_1_1" - } - ] - } - }, - { - "id": "zi_dan_jia7_jipian_3", - "name": "zi_dan_jia7_jipian_3", - "sample_id": null, - "children": [], - "parent": "zi_dan_jia7_clipmagazinehole_1_1", - "type": "container", - "class": "", - "position": { - "x": 0, - "y": 0, - "z": 0 - }, - "config": { - "type": "ElectrodeSheet", - "size_x": 12, - "size_y": 12, - "size_z": 0.1, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "electrode_sheet", - "model": null, - "barcode": null - }, - "data": { - "diameter": 14, - "thickness": 0.1, - "mass": 0.5, - "material_type": "copper", - "info": null - } - }, - { - "id": "zi_dan_jia7_clipmagazinehole_2_0", - "name": "zi_dan_jia7_clipmagazinehole_2_0", - "sample_id": null, - "children": [ - "zi_dan_jia7_jipian_4" - ], - "parent": "zi_dan_jia7", - "type": "container", - "class": "", - "position": { - "x": 65.0, - "y": 52.5, - "z": 10 - }, - "config": { - "type": "ClipMagazineHole", - "size_x": 14.0, - "size_y": 14.0, - "size_z": 10.0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "clip_magazine_hole", - "model": null, - "barcode": null, - "max_volume": 1960.0, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null - }, - "data": { - "sheet_count": 1, - "sheets": [ - { - "name": "zi_dan_jia7_jipian_4", - "type": "ElectrodeSheet", - "size_x": 12, - "size_y": 12, - "size_z": 0.1, - "location": null, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "electrode_sheet", - "model": null, - "barcode": null, - "children": [], - "parent_name": "zi_dan_jia7_clipmagazinehole_2_0" - } - ] - } - }, - { - "id": "zi_dan_jia7_jipian_4", - "name": "zi_dan_jia7_jipian_4", - "sample_id": null, - "children": [], - "parent": "zi_dan_jia7_clipmagazinehole_2_0", - "type": "container", - "class": "", - "position": { - "x": 0, - "y": 0, - "z": 0 - }, - "config": { - "type": "ElectrodeSheet", - "size_x": 12, - "size_y": 12, - "size_z": 0.1, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "electrode_sheet", - "model": null, - "barcode": null - }, - "data": { - "diameter": 14, - "thickness": 0.1, - "mass": 0.5, - "material_type": "copper", - "info": null - } - }, - { - "id": "zi_dan_jia7_clipmagazinehole_2_1", - "name": "zi_dan_jia7_clipmagazinehole_2_1", - "sample_id": null, - "children": [ - "zi_dan_jia7_jipian_5" - ], - "parent": "zi_dan_jia7", - "type": "container", - "class": "", - "position": { - "x": 65.0, - "y": 27.5, - "z": 10 - }, - "config": { - "type": "ClipMagazineHole", - "size_x": 14.0, - "size_y": 14.0, - "size_z": 10.0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "clip_magazine_hole", - "model": null, - "barcode": null, - "max_volume": 1960.0, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null - }, - "data": { - "sheet_count": 1, - "sheets": [ - { - "name": "zi_dan_jia7_jipian_5", - "type": "ElectrodeSheet", - "size_x": 12, - "size_y": 12, - "size_z": 0.1, - "location": null, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "electrode_sheet", - "model": null, - "barcode": null, - "children": [], - "parent_name": "zi_dan_jia7_clipmagazinehole_2_1" - } - ] - } - }, - { - "id": "zi_dan_jia7_jipian_5", - "name": "zi_dan_jia7_jipian_5", - "sample_id": null, - "children": [], - "parent": "zi_dan_jia7_clipmagazinehole_2_1", - "type": "container", - "class": "", - "position": { - "x": 0, - "y": 0, - "z": 0 - }, - "config": { - "type": "ElectrodeSheet", - "size_x": 12, - "size_y": 12, - "size_z": 0.1, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "electrode_sheet", - "model": null, - "barcode": null - }, - "data": { - "diameter": 14, - "thickness": 0.1, - "mass": 0.5, - "material_type": "copper", - "info": null - } - }, - { - "id": "zi_dan_jia8", - "name": "zi_dan_jia8", - "sample_id": null, - "children": [ - "zi_dan_jia8_clipmagazinehole_0_0", - "zi_dan_jia8_clipmagazinehole_0_1", - "zi_dan_jia8_clipmagazinehole_1_0", - "zi_dan_jia8_clipmagazinehole_1_1", - "zi_dan_jia8_clipmagazinehole_2_0", - "zi_dan_jia8_clipmagazinehole_2_1" - ], - "parent": "coin_cell_deck", - "type": "container", - "class": "", - "position": { - "x": 1280, - "y": 400, - "z": 0 - }, - "config": { - "type": "ClipMagazine", - "size_x": 80, - "size_y": 80, - "size_z": 10, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "clip_magazine", - "model": null, - "barcode": null, - "ordering": { - "A1": "zi_dan_jia8_clipmagazinehole_0_0", - "B1": "zi_dan_jia8_clipmagazinehole_0_1", - "A2": "zi_dan_jia8_clipmagazinehole_1_0", - "B2": "zi_dan_jia8_clipmagazinehole_1_1", - "A3": "zi_dan_jia8_clipmagazinehole_2_0", - "B3": "zi_dan_jia8_clipmagazinehole_2_1" - }, - "hole_diameter": 14.0, - "hole_depth": 10.0, - "max_sheets_per_hole": 100 - }, - "data": {} - }, - { - "id": "zi_dan_jia8_clipmagazinehole_0_0", - "name": "zi_dan_jia8_clipmagazinehole_0_0", - "sample_id": null, - "children": [ - "zi_dan_jia8_jipian_0" - ], - "parent": "zi_dan_jia8", - "type": "container", - "class": "", - "position": { - "x": 15.0, - "y": 52.5, - "z": 10 - }, - "config": { - "type": "ClipMagazineHole", - "size_x": 14.0, - "size_y": 14.0, - "size_z": 10.0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "clip_magazine_hole", - "model": null, - "barcode": null, - "max_volume": 1960.0, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null - }, - "data": { - "sheet_count": 1, - "sheets": [ - { - "name": "zi_dan_jia8_jipian_0", - "type": "ElectrodeSheet", - "size_x": 12, - "size_y": 12, - "size_z": 0.1, - "location": null, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "electrode_sheet", - "model": null, - "barcode": null, - "children": [], - "parent_name": "zi_dan_jia8_clipmagazinehole_0_0" - } - ] - } - }, - { - "id": "zi_dan_jia8_jipian_0", - "name": "zi_dan_jia8_jipian_0", - "sample_id": null, - "children": [], - "parent": "zi_dan_jia8_clipmagazinehole_0_0", - "type": "container", - "class": "", - "position": { - "x": 0, - "y": 0, - "z": 0 - }, - "config": { - "type": "ElectrodeSheet", - "size_x": 12, - "size_y": 12, - "size_z": 0.1, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "electrode_sheet", - "model": null, - "barcode": null - }, - "data": { - "diameter": 14, - "thickness": 0.1, - "mass": 0.5, - "material_type": "copper", - "info": null - } - }, - { - "id": "zi_dan_jia8_clipmagazinehole_0_1", - "name": "zi_dan_jia8_clipmagazinehole_0_1", - "sample_id": null, - "children": [ - "zi_dan_jia8_jipian_1" - ], - "parent": "zi_dan_jia8", - "type": "container", - "class": "", - "position": { - "x": 15.0, - "y": 27.5, - "z": 10 - }, - "config": { - "type": "ClipMagazineHole", - "size_x": 14.0, - "size_y": 14.0, - "size_z": 10.0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "clip_magazine_hole", - "model": null, - "barcode": null, - "max_volume": 1960.0, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null - }, - "data": { - "sheet_count": 1, - "sheets": [ - { - "name": "zi_dan_jia8_jipian_1", - "type": "ElectrodeSheet", - "size_x": 12, - "size_y": 12, - "size_z": 0.1, - "location": null, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "electrode_sheet", - "model": null, - "barcode": null, - "children": [], - "parent_name": "zi_dan_jia8_clipmagazinehole_0_1" - } - ] - } - }, - { - "id": "zi_dan_jia8_jipian_1", - "name": "zi_dan_jia8_jipian_1", - "sample_id": null, - "children": [], - "parent": "zi_dan_jia8_clipmagazinehole_0_1", - "type": "container", - "class": "", - "position": { - "x": 0, - "y": 0, - "z": 0 - }, - "config": { - "type": "ElectrodeSheet", - "size_x": 12, - "size_y": 12, - "size_z": 0.1, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "electrode_sheet", - "model": null, - "barcode": null - }, - "data": { - "diameter": 14, - "thickness": 0.1, - "mass": 0.5, - "material_type": "copper", - "info": null - } - }, - { - "id": "zi_dan_jia8_clipmagazinehole_1_0", - "name": "zi_dan_jia8_clipmagazinehole_1_0", - "sample_id": null, - "children": [ - "zi_dan_jia8_jipian_2" - ], - "parent": "zi_dan_jia8", - "type": "container", - "class": "", - "position": { - "x": 40.0, - "y": 52.5, - "z": 10 - }, - "config": { - "type": "ClipMagazineHole", - "size_x": 14.0, - "size_y": 14.0, - "size_z": 10.0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "clip_magazine_hole", - "model": null, - "barcode": null, - "max_volume": 1960.0, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null - }, - "data": { - "sheet_count": 1, - "sheets": [ - { - "name": "zi_dan_jia8_jipian_2", - "type": "ElectrodeSheet", - "size_x": 12, - "size_y": 12, - "size_z": 0.1, - "location": null, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "electrode_sheet", - "model": null, - "barcode": null, - "children": [], - "parent_name": "zi_dan_jia8_clipmagazinehole_1_0" - } - ] - } - }, - { - "id": "zi_dan_jia8_jipian_2", - "name": "zi_dan_jia8_jipian_2", - "sample_id": null, - "children": [], - "parent": "zi_dan_jia8_clipmagazinehole_1_0", - "type": "container", - "class": "", - "position": { - "x": 0, - "y": 0, - "z": 0 - }, - "config": { - "type": "ElectrodeSheet", - "size_x": 12, - "size_y": 12, - "size_z": 0.1, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "electrode_sheet", - "model": null, - "barcode": null - }, - "data": { - "diameter": 14, - "thickness": 0.1, - "mass": 0.5, - "material_type": "copper", - "info": null - } - }, - { - "id": "zi_dan_jia8_clipmagazinehole_1_1", - "name": "zi_dan_jia8_clipmagazinehole_1_1", - "sample_id": null, - "children": [ - "zi_dan_jia8_jipian_3" - ], - "parent": "zi_dan_jia8", - "type": "container", - "class": "", - "position": { - "x": 40.0, - "y": 27.5, - "z": 10 - }, - "config": { - "type": "ClipMagazineHole", - "size_x": 14.0, - "size_y": 14.0, - "size_z": 10.0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "clip_magazine_hole", - "model": null, - "barcode": null, - "max_volume": 1960.0, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null - }, - "data": { - "sheet_count": 1, - "sheets": [ - { - "name": "zi_dan_jia8_jipian_3", - "type": "ElectrodeSheet", - "size_x": 12, - "size_y": 12, - "size_z": 0.1, - "location": null, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "electrode_sheet", - "model": null, - "barcode": null, - "children": [], - "parent_name": "zi_dan_jia8_clipmagazinehole_1_1" - } - ] - } - }, - { - "id": "zi_dan_jia8_jipian_3", - "name": "zi_dan_jia8_jipian_3", - "sample_id": null, - "children": [], - "parent": "zi_dan_jia8_clipmagazinehole_1_1", - "type": "container", - "class": "", - "position": { - "x": 0, - "y": 0, - "z": 0 - }, - "config": { - "type": "ElectrodeSheet", - "size_x": 12, - "size_y": 12, - "size_z": 0.1, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "electrode_sheet", - "model": null, - "barcode": null - }, - "data": { - "diameter": 14, - "thickness": 0.1, - "mass": 0.5, - "material_type": "copper", - "info": null - } - }, - { - "id": "zi_dan_jia8_clipmagazinehole_2_0", - "name": "zi_dan_jia8_clipmagazinehole_2_0", - "sample_id": null, - "children": [ - "zi_dan_jia8_jipian_4" - ], - "parent": "zi_dan_jia8", - "type": "container", - "class": "", - "position": { - "x": 65.0, - "y": 52.5, - "z": 10 - }, - "config": { - "type": "ClipMagazineHole", - "size_x": 14.0, - "size_y": 14.0, - "size_z": 10.0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "clip_magazine_hole", - "model": null, - "barcode": null, - "max_volume": 1960.0, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null - }, - "data": { - "sheet_count": 1, - "sheets": [ - { - "name": "zi_dan_jia8_jipian_4", - "type": "ElectrodeSheet", - "size_x": 12, - "size_y": 12, - "size_z": 0.1, - "location": null, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "electrode_sheet", - "model": null, - "barcode": null, - "children": [], - "parent_name": "zi_dan_jia8_clipmagazinehole_2_0" - } - ] - } - }, - { - "id": "zi_dan_jia8_jipian_4", - "name": "zi_dan_jia8_jipian_4", - "sample_id": null, - "children": [], - "parent": "zi_dan_jia8_clipmagazinehole_2_0", - "type": "container", - "class": "", - "position": { - "x": 0, - "y": 0, - "z": 0 - }, - "config": { - "type": "ElectrodeSheet", - "size_x": 12, - "size_y": 12, - "size_z": 0.1, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "electrode_sheet", - "model": null, - "barcode": null - }, - "data": { - "diameter": 14, - "thickness": 0.1, - "mass": 0.5, - "material_type": "copper", - "info": null - } - }, - { - "id": "zi_dan_jia8_clipmagazinehole_2_1", - "name": "zi_dan_jia8_clipmagazinehole_2_1", - "sample_id": null, - "children": [ - "zi_dan_jia8_jipian_5" - ], - "parent": "zi_dan_jia8", - "type": "container", - "class": "", - "position": { - "x": 65.0, - "y": 27.5, - "z": 10 - }, - "config": { - "type": "ClipMagazineHole", - "size_x": 14.0, - "size_y": 14.0, - "size_z": 10.0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "clip_magazine_hole", - "model": null, - "barcode": null, - "max_volume": 1960.0, - "material_z_thickness": null, - "compute_volume_from_height": null, - "compute_height_from_volume": null - }, - "data": { - "sheet_count": 1, - "sheets": [ - { - "name": "zi_dan_jia8_jipian_5", - "type": "ElectrodeSheet", - "size_x": 12, - "size_y": 12, - "size_z": 0.1, - "location": null, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "electrode_sheet", - "model": null, - "barcode": null, - "children": [], - "parent_name": "zi_dan_jia8_clipmagazinehole_2_1" - } - ] - } - }, - { - "id": "zi_dan_jia8_jipian_5", - "name": "zi_dan_jia8_jipian_5", - "sample_id": null, - "children": [], - "parent": "zi_dan_jia8_clipmagazinehole_2_1", - "type": "container", - "class": "", - "position": { - "x": 0, - "y": 0, - "z": 0 - }, - "config": { - "type": "ElectrodeSheet", - "size_x": 12, - "size_y": 12, - "size_z": 0.1, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "electrode_sheet", - "model": null, - "barcode": null - }, - "data": { - "diameter": 14, - "thickness": 0.1, - "mass": 0.5, - "material_type": "copper", - "info": null - } - }, - { - "id": "liaopan1", - "name": "liaopan1", - "sample_id": null, - "children": [ - "liaopan1_materialhole_0_0", - "liaopan1_materialhole_0_1", - "liaopan1_materialhole_0_2", - "liaopan1_materialhole_0_3", - "liaopan1_materialhole_1_0", - "liaopan1_materialhole_1_1", - "liaopan1_materialhole_1_2", - "liaopan1_materialhole_1_3", - "liaopan1_materialhole_2_0", - "liaopan1_materialhole_2_1", - "liaopan1_materialhole_2_2", - "liaopan1_materialhole_2_3", - "liaopan1_materialhole_3_0", - "liaopan1_materialhole_3_1", - "liaopan1_materialhole_3_2", - "liaopan1_materialhole_3_3" - ], - "parent": "coin_cell_deck", - "type": "container", - "class": "", - "position": { - "x": 1010, - "y": 50, - "z": 0 - }, - "config": { - "type": "MaterialPlate", - "size_x": 120, - "size_y": 100, - "size_z": 10.0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "material_plate", - "model": null, - "barcode": null, - "ordering": { - "A1": "liaopan1_materialhole_0_0", - "B1": "liaopan1_materialhole_0_1", - "C1": "liaopan1_materialhole_0_2", - "D1": "liaopan1_materialhole_0_3", - "A2": "liaopan1_materialhole_1_0", - "B2": "liaopan1_materialhole_1_1", - "C2": "liaopan1_materialhole_1_2", - "D2": "liaopan1_materialhole_1_3", - "A3": "liaopan1_materialhole_2_0", - "B3": "liaopan1_materialhole_2_1", - "C3": "liaopan1_materialhole_2_2", - "D3": "liaopan1_materialhole_2_3", - "A4": "liaopan1_materialhole_3_0", - "B4": "liaopan1_materialhole_3_1", - "C4": "liaopan1_materialhole_3_2", - "D4": "liaopan1_materialhole_3_3" - } - }, - "data": {} - }, - { - "id": "liaopan1_materialhole_0_0", - "name": "liaopan1_materialhole_0_0", - "sample_id": null, - "children": [ - "liaopan1_jipian_0" - ], - "parent": "liaopan1", - "type": "container", - "class": "", - "position": { - "x": 12.0, - "y": 74.0, - "z": 10.0 - }, - "config": { - "type": "MaterialHole", - "size_x": 16, - "size_y": 16, - "size_z": 16, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "material_hole", - "model": null, - "barcode": null - }, - "data": { - "diameter": 20, - "depth": 10, - "max_sheets": 1, - "info": null - } - }, - { - "id": "liaopan1_jipian_0", - "name": "liaopan1_jipian_0", - "sample_id": null, - "children": [], - "parent": "liaopan1_materialhole_0_0", - "type": "container", - "class": "", - "position": { - "x": 0, - "y": 0, - "z": 0 - }, - "config": { - "type": "ElectrodeSheet", - "size_x": 12, - "size_y": 12, - "size_z": 0.1, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "electrode_sheet", - "model": null, - "barcode": null - }, - "data": { - "diameter": 14, - "thickness": 0.1, - "mass": 0.5, - "material_type": "copper", - "info": null - } - }, - { - "id": "liaopan1_materialhole_0_1", - "name": "liaopan1_materialhole_0_1", - "sample_id": null, - "children": [ - "liaopan1_jipian_1" - ], - "parent": "liaopan1", - "type": "container", - "class": "", - "position": { - "x": 12.0, - "y": 50.0, - "z": 10.0 - }, - "config": { - "type": "MaterialHole", - "size_x": 16, - "size_y": 16, - "size_z": 16, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "material_hole", - "model": null, - "barcode": null - }, - "data": { - "diameter": 20, - "depth": 10, - "max_sheets": 1, - "info": null - } - }, - { - "id": "liaopan1_jipian_1", - "name": "liaopan1_jipian_1", - "sample_id": null, - "children": [], - "parent": "liaopan1_materialhole_0_1", - "type": "container", - "class": "", - "position": { - "x": 0, - "y": 0, - "z": 0 - }, - "config": { - "type": "ElectrodeSheet", - "size_x": 12, - "size_y": 12, - "size_z": 0.1, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "electrode_sheet", - "model": null, - "barcode": null - }, - "data": { - "diameter": 14, - "thickness": 0.1, - "mass": 0.5, - "material_type": "copper", - "info": null - } - }, - { - "id": "liaopan1_materialhole_0_2", - "name": "liaopan1_materialhole_0_2", - "sample_id": null, - "children": [ - "liaopan1_jipian_2" - ], - "parent": "liaopan1", - "type": "container", - "class": "", - "position": { - "x": 12.0, - "y": 26.0, - "z": 10.0 - }, - "config": { - "type": "MaterialHole", - "size_x": 16, - "size_y": 16, - "size_z": 16, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "material_hole", - "model": null, - "barcode": null - }, - "data": { - "diameter": 20, - "depth": 10, - "max_sheets": 1, - "info": null - } - }, - { - "id": "liaopan1_jipian_2", - "name": "liaopan1_jipian_2", - "sample_id": null, - "children": [], - "parent": "liaopan1_materialhole_0_2", - "type": "container", - "class": "", - "position": { - "x": 0, - "y": 0, - "z": 0 - }, - "config": { - "type": "ElectrodeSheet", - "size_x": 12, - "size_y": 12, - "size_z": 0.1, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "electrode_sheet", - "model": null, - "barcode": null - }, - "data": { - "diameter": 14, - "thickness": 0.1, - "mass": 0.5, - "material_type": "copper", - "info": null - } - }, - { - "id": "liaopan1_materialhole_0_3", - "name": "liaopan1_materialhole_0_3", - "sample_id": null, - "children": [ - "liaopan1_jipian_3" - ], - "parent": "liaopan1", - "type": "container", - "class": "", - "position": { - "x": 12.0, - "y": 2.0, - "z": 10.0 - }, - "config": { - "type": "MaterialHole", - "size_x": 16, - "size_y": 16, - "size_z": 16, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "material_hole", - "model": null, - "barcode": null - }, - "data": { - "diameter": 20, - "depth": 10, - "max_sheets": 1, - "info": null - } - }, - { - "id": "liaopan1_jipian_3", - "name": "liaopan1_jipian_3", - "sample_id": null, - "children": [], - "parent": "liaopan1_materialhole_0_3", - "type": "container", - "class": "", - "position": { - "x": 0, - "y": 0, - "z": 0 - }, - "config": { - "type": "ElectrodeSheet", - "size_x": 12, - "size_y": 12, - "size_z": 0.1, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "electrode_sheet", - "model": null, - "barcode": null - }, - "data": { - "diameter": 14, - "thickness": 0.1, - "mass": 0.5, - "material_type": "copper", - "info": null - } - }, - { - "id": "liaopan1_materialhole_1_0", - "name": "liaopan1_materialhole_1_0", - "sample_id": null, - "children": [ - "liaopan1_jipian_4" - ], - "parent": "liaopan1", - "type": "container", - "class": "", - "position": { - "x": 36.0, - "y": 74.0, - "z": 10.0 - }, - "config": { - "type": "MaterialHole", - "size_x": 16, - "size_y": 16, - "size_z": 16, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "material_hole", - "model": null, - "barcode": null - }, - "data": { - "diameter": 20, - "depth": 10, - "max_sheets": 1, - "info": null - } - }, - { - "id": "liaopan1_jipian_4", - "name": "liaopan1_jipian_4", - "sample_id": null, - "children": [], - "parent": "liaopan1_materialhole_1_0", - "type": "container", - "class": "", - "position": { - "x": 0, - "y": 0, - "z": 0 - }, - "config": { - "type": "ElectrodeSheet", - "size_x": 12, - "size_y": 12, - "size_z": 0.1, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "electrode_sheet", - "model": null, - "barcode": null - }, - "data": { - "diameter": 14, - "thickness": 0.1, - "mass": 0.5, - "material_type": "copper", - "info": null - } - }, - { - "id": "liaopan1_materialhole_1_1", - "name": "liaopan1_materialhole_1_1", - "sample_id": null, - "children": [ - "liaopan1_jipian_5" - ], - "parent": "liaopan1", - "type": "container", - "class": "", - "position": { - "x": 36.0, - "y": 50.0, - "z": 10.0 - }, - "config": { - "type": "MaterialHole", - "size_x": 16, - "size_y": 16, - "size_z": 16, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "material_hole", - "model": null, - "barcode": null - }, - "data": { - "diameter": 20, - "depth": 10, - "max_sheets": 1, - "info": null - } - }, - { - "id": "liaopan1_jipian_5", - "name": "liaopan1_jipian_5", - "sample_id": null, - "children": [], - "parent": "liaopan1_materialhole_1_1", - "type": "container", - "class": "", - "position": { - "x": 0, - "y": 0, - "z": 0 - }, - "config": { - "type": "ElectrodeSheet", - "size_x": 12, - "size_y": 12, - "size_z": 0.1, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "electrode_sheet", - "model": null, - "barcode": null - }, - "data": { - "diameter": 14, - "thickness": 0.1, - "mass": 0.5, - "material_type": "copper", - "info": null - } - }, - { - "id": "liaopan1_materialhole_1_2", - "name": "liaopan1_materialhole_1_2", - "sample_id": null, - "children": [ - "liaopan1_jipian_6" - ], - "parent": "liaopan1", - "type": "container", - "class": "", - "position": { - "x": 36.0, - "y": 26.0, - "z": 10.0 - }, - "config": { - "type": "MaterialHole", - "size_x": 16, - "size_y": 16, - "size_z": 16, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "material_hole", - "model": null, - "barcode": null - }, - "data": { - "diameter": 20, - "depth": 10, - "max_sheets": 1, - "info": null - } - }, - { - "id": "liaopan1_jipian_6", - "name": "liaopan1_jipian_6", - "sample_id": null, - "children": [], - "parent": "liaopan1_materialhole_1_2", - "type": "container", - "class": "", - "position": { - "x": 0, - "y": 0, - "z": 0 - }, - "config": { - "type": "ElectrodeSheet", - "size_x": 12, - "size_y": 12, - "size_z": 0.1, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "electrode_sheet", - "model": null, - "barcode": null - }, - "data": { - "diameter": 14, - "thickness": 0.1, - "mass": 0.5, - "material_type": "copper", - "info": null - } - }, - { - "id": "liaopan1_materialhole_1_3", - "name": "liaopan1_materialhole_1_3", - "sample_id": null, - "children": [ - "liaopan1_jipian_7" - ], - "parent": "liaopan1", - "type": "container", - "class": "", - "position": { - "x": 36.0, - "y": 2.0, - "z": 10.0 - }, - "config": { - "type": "MaterialHole", - "size_x": 16, - "size_y": 16, - "size_z": 16, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "material_hole", - "model": null, - "barcode": null - }, - "data": { - "diameter": 20, - "depth": 10, - "max_sheets": 1, - "info": null - } - }, - { - "id": "liaopan1_jipian_7", - "name": "liaopan1_jipian_7", - "sample_id": null, - "children": [], - "parent": "liaopan1_materialhole_1_3", - "type": "container", - "class": "", - "position": { - "x": 0, - "y": 0, - "z": 0 - }, - "config": { - "type": "ElectrodeSheet", - "size_x": 12, - "size_y": 12, - "size_z": 0.1, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "electrode_sheet", - "model": null, - "barcode": null - }, - "data": { - "diameter": 14, - "thickness": 0.1, - "mass": 0.5, - "material_type": "copper", - "info": null - } - }, - { - "id": "liaopan1_materialhole_2_0", - "name": "liaopan1_materialhole_2_0", - "sample_id": null, - "children": [ - "liaopan1_jipian_8" - ], - "parent": "liaopan1", - "type": "container", - "class": "", - "position": { - "x": 60.0, - "y": 74.0, - "z": 10.0 - }, - "config": { - "type": "MaterialHole", - "size_x": 16, - "size_y": 16, - "size_z": 16, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "material_hole", - "model": null, - "barcode": null - }, - "data": { - "diameter": 20, - "depth": 10, - "max_sheets": 1, - "info": null - } - }, - { - "id": "liaopan1_jipian_8", - "name": "liaopan1_jipian_8", - "sample_id": null, - "children": [], - "parent": "liaopan1_materialhole_2_0", - "type": "container", - "class": "", - "position": { - "x": 0, - "y": 0, - "z": 0 - }, - "config": { - "type": "ElectrodeSheet", - "size_x": 12, - "size_y": 12, - "size_z": 0.1, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "electrode_sheet", - "model": null, - "barcode": null - }, - "data": { - "diameter": 14, - "thickness": 0.1, - "mass": 0.5, - "material_type": "copper", - "info": null - } - }, - { - "id": "liaopan1_materialhole_2_1", - "name": "liaopan1_materialhole_2_1", - "sample_id": null, - "children": [ - "liaopan1_jipian_9" - ], - "parent": "liaopan1", - "type": "container", - "class": "", - "position": { - "x": 60.0, - "y": 50.0, - "z": 10.0 - }, - "config": { - "type": "MaterialHole", - "size_x": 16, - "size_y": 16, - "size_z": 16, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "material_hole", - "model": null, - "barcode": null - }, - "data": { - "diameter": 20, - "depth": 10, - "max_sheets": 1, - "info": null - } - }, - { - "id": "liaopan1_jipian_9", - "name": "liaopan1_jipian_9", - "sample_id": null, - "children": [], - "parent": "liaopan1_materialhole_2_1", - "type": "container", - "class": "", - "position": { - "x": 0, - "y": 0, - "z": 0 - }, - "config": { - "type": "ElectrodeSheet", - "size_x": 12, - "size_y": 12, - "size_z": 0.1, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "electrode_sheet", - "model": null, - "barcode": null - }, - "data": { - "diameter": 14, - "thickness": 0.1, - "mass": 0.5, - "material_type": "copper", - "info": null - } - }, - { - "id": "liaopan1_materialhole_2_2", - "name": "liaopan1_materialhole_2_2", - "sample_id": null, - "children": [ - "liaopan1_jipian_10" - ], - "parent": "liaopan1", - "type": "container", - "class": "", - "position": { - "x": 60.0, - "y": 26.0, - "z": 10.0 - }, - "config": { - "type": "MaterialHole", - "size_x": 16, - "size_y": 16, - "size_z": 16, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "material_hole", - "model": null, - "barcode": null - }, - "data": { - "diameter": 20, - "depth": 10, - "max_sheets": 1, - "info": null - } - }, - { - "id": "liaopan1_jipian_10", - "name": "liaopan1_jipian_10", - "sample_id": null, - "children": [], - "parent": "liaopan1_materialhole_2_2", - "type": "container", - "class": "", - "position": { - "x": 0, - "y": 0, - "z": 0 - }, - "config": { - "type": "ElectrodeSheet", - "size_x": 12, - "size_y": 12, - "size_z": 0.1, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "electrode_sheet", - "model": null, - "barcode": null - }, - "data": { - "diameter": 14, - "thickness": 0.1, - "mass": 0.5, - "material_type": "copper", - "info": null - } - }, - { - "id": "liaopan1_materialhole_2_3", - "name": "liaopan1_materialhole_2_3", - "sample_id": null, - "children": [ - "liaopan1_jipian_11" - ], - "parent": "liaopan1", - "type": "container", - "class": "", - "position": { - "x": 60.0, - "y": 2.0, - "z": 10.0 - }, - "config": { - "type": "MaterialHole", - "size_x": 16, - "size_y": 16, - "size_z": 16, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "material_hole", - "model": null, - "barcode": null - }, - "data": { - "diameter": 20, - "depth": 10, - "max_sheets": 1, - "info": null - } - }, - { - "id": "liaopan1_jipian_11", - "name": "liaopan1_jipian_11", - "sample_id": null, - "children": [], - "parent": "liaopan1_materialhole_2_3", - "type": "container", - "class": "", - "position": { - "x": 0, - "y": 0, - "z": 0 - }, - "config": { - "type": "ElectrodeSheet", - "size_x": 12, - "size_y": 12, - "size_z": 0.1, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "electrode_sheet", - "model": null, - "barcode": null - }, - "data": { - "diameter": 14, - "thickness": 0.1, - "mass": 0.5, - "material_type": "copper", - "info": null - } - }, - { - "id": "liaopan1_materialhole_3_0", - "name": "liaopan1_materialhole_3_0", - "sample_id": null, - "children": [ - "liaopan1_jipian_12" - ], - "parent": "liaopan1", - "type": "container", - "class": "", - "position": { - "x": 84.0, - "y": 74.0, - "z": 10.0 - }, - "config": { - "type": "MaterialHole", - "size_x": 16, - "size_y": 16, - "size_z": 16, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "material_hole", - "model": null, - "barcode": null - }, - "data": { - "diameter": 20, - "depth": 10, - "max_sheets": 1, - "info": null - } - }, - { - "id": "liaopan1_jipian_12", - "name": "liaopan1_jipian_12", - "sample_id": null, - "children": [], - "parent": "liaopan1_materialhole_3_0", - "type": "container", - "class": "", - "position": { - "x": 0, - "y": 0, - "z": 0 - }, - "config": { - "type": "ElectrodeSheet", - "size_x": 12, - "size_y": 12, - "size_z": 0.1, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "electrode_sheet", - "model": null, - "barcode": null - }, - "data": { - "diameter": 14, - "thickness": 0.1, - "mass": 0.5, - "material_type": "copper", - "info": null - } - }, - { - "id": "liaopan1_materialhole_3_1", - "name": "liaopan1_materialhole_3_1", - "sample_id": null, - "children": [ - "liaopan1_jipian_13" - ], - "parent": "liaopan1", - "type": "container", - "class": "", - "position": { - "x": 84.0, - "y": 50.0, - "z": 10.0 - }, - "config": { - "type": "MaterialHole", - "size_x": 16, - "size_y": 16, - "size_z": 16, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "material_hole", - "model": null, - "barcode": null - }, - "data": { - "diameter": 20, - "depth": 10, - "max_sheets": 1, - "info": null - } - }, - { - "id": "liaopan1_jipian_13", - "name": "liaopan1_jipian_13", - "sample_id": null, - "children": [], - "parent": "liaopan1_materialhole_3_1", - "type": "container", - "class": "", - "position": { - "x": 0, - "y": 0, - "z": 0 - }, - "config": { - "type": "ElectrodeSheet", - "size_x": 12, - "size_y": 12, - "size_z": 0.1, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "electrode_sheet", - "model": null, - "barcode": null - }, - "data": { - "diameter": 14, - "thickness": 0.1, - "mass": 0.5, - "material_type": "copper", - "info": null - } - }, - { - "id": "liaopan1_materialhole_3_2", - "name": "liaopan1_materialhole_3_2", - "sample_id": null, - "children": [ - "liaopan1_jipian_14" - ], - "parent": "liaopan1", - "type": "container", - "class": "", - "position": { - "x": 84.0, - "y": 26.0, - "z": 10.0 - }, - "config": { - "type": "MaterialHole", - "size_x": 16, - "size_y": 16, - "size_z": 16, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "material_hole", - "model": null, - "barcode": null - }, - "data": { - "diameter": 20, - "depth": 10, - "max_sheets": 1, - "info": null - } - }, - { - "id": "liaopan1_jipian_14", - "name": "liaopan1_jipian_14", - "sample_id": null, - "children": [], - "parent": "liaopan1_materialhole_3_2", - "type": "container", - "class": "", - "position": { - "x": 0, - "y": 0, - "z": 0 - }, - "config": { - "type": "ElectrodeSheet", - "size_x": 12, - "size_y": 12, - "size_z": 0.1, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "electrode_sheet", - "model": null, - "barcode": null - }, - "data": { - "diameter": 14, - "thickness": 0.1, - "mass": 0.5, - "material_type": "copper", - "info": null - } - }, - { - "id": "liaopan1_materialhole_3_3", - "name": "liaopan1_materialhole_3_3", - "sample_id": null, - "children": [ - "liaopan1_jipian_15" - ], - "parent": "liaopan1", - "type": "container", - "class": "", - "position": { - "x": 84.0, - "y": 2.0, - "z": 10.0 - }, - "config": { - "type": "MaterialHole", - "size_x": 16, - "size_y": 16, - "size_z": 16, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "material_hole", - "model": null, - "barcode": null - }, - "data": { - "diameter": 20, - "depth": 10, - "max_sheets": 1, - "info": null - } - }, - { - "id": "liaopan1_jipian_15", - "name": "liaopan1_jipian_15", - "sample_id": null, - "children": [], - "parent": "liaopan1_materialhole_3_3", - "type": "container", - "class": "", - "position": { - "x": 0, - "y": 0, - "z": 0 - }, - "config": { - "type": "ElectrodeSheet", - "size_x": 12, - "size_y": 12, - "size_z": 0.1, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "electrode_sheet", - "model": null, - "barcode": null - }, - "data": { - "diameter": 14, - "thickness": 0.1, - "mass": 0.5, - "material_type": "copper", - "info": null - } - }, - { - "id": "liaopan2", - "name": "liaopan2", - "sample_id": null, - "children": [ - "liaopan2_materialhole_0_0", - "liaopan2_materialhole_0_1", - "liaopan2_materialhole_0_2", - "liaopan2_materialhole_0_3", - "liaopan2_materialhole_1_0", - "liaopan2_materialhole_1_1", - "liaopan2_materialhole_1_2", - "liaopan2_materialhole_1_3", - "liaopan2_materialhole_2_0", - "liaopan2_materialhole_2_1", - "liaopan2_materialhole_2_2", - "liaopan2_materialhole_2_3", - "liaopan2_materialhole_3_0", - "liaopan2_materialhole_3_1", - "liaopan2_materialhole_3_2", - "liaopan2_materialhole_3_3" - ], - "parent": "coin_cell_deck", - "type": "container", - "class": "", - "position": { - "x": 1130, - "y": 50, - "z": 0 - }, - "config": { - "type": "MaterialPlate", - "size_x": 120, - "size_y": 100, - "size_z": 10.0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "material_plate", - "model": null, - "barcode": null, - "ordering": { - "A1": "liaopan2_materialhole_0_0", - "B1": "liaopan2_materialhole_0_1", - "C1": "liaopan2_materialhole_0_2", - "D1": "liaopan2_materialhole_0_3", - "A2": "liaopan2_materialhole_1_0", - "B2": "liaopan2_materialhole_1_1", - "C2": "liaopan2_materialhole_1_2", - "D2": "liaopan2_materialhole_1_3", - "A3": "liaopan2_materialhole_2_0", - "B3": "liaopan2_materialhole_2_1", - "C3": "liaopan2_materialhole_2_2", - "D3": "liaopan2_materialhole_2_3", - "A4": "liaopan2_materialhole_3_0", - "B4": "liaopan2_materialhole_3_1", - "C4": "liaopan2_materialhole_3_2", - "D4": "liaopan2_materialhole_3_3" - } - }, - "data": {} - }, - { - "id": "liaopan2_materialhole_0_0", - "name": "liaopan2_materialhole_0_0", - "sample_id": null, - "children": [], - "parent": "liaopan2", - "type": "container", - "class": "", - "position": { - "x": 12.0, - "y": 74.0, - "z": 10.0 - }, - "config": { - "type": "MaterialHole", - "size_x": 16, - "size_y": 16, - "size_z": 16, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "material_hole", - "model": null, - "barcode": null - }, - "data": { - "diameter": 20, - "depth": 10, - "max_sheets": 1, - "info": null - } - }, - { - "id": "liaopan2_materialhole_0_1", - "name": "liaopan2_materialhole_0_1", - "sample_id": null, - "children": [], - "parent": "liaopan2", - "type": "container", - "class": "", - "position": { - "x": 12.0, - "y": 50.0, - "z": 10.0 - }, - "config": { - "type": "MaterialHole", - "size_x": 16, - "size_y": 16, - "size_z": 16, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "material_hole", - "model": null, - "barcode": null - }, - "data": { - "diameter": 20, - "depth": 10, - "max_sheets": 1, - "info": null - } - }, - { - "id": "liaopan2_materialhole_0_2", - "name": "liaopan2_materialhole_0_2", - "sample_id": null, - "children": [], - "parent": "liaopan2", - "type": "container", - "class": "", - "position": { - "x": 12.0, - "y": 26.0, - "z": 10.0 - }, - "config": { - "type": "MaterialHole", - "size_x": 16, - "size_y": 16, - "size_z": 16, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "material_hole", - "model": null, - "barcode": null - }, - "data": { - "diameter": 20, - "depth": 10, - "max_sheets": 1, - "info": null - } - }, - { - "id": "liaopan2_materialhole_0_3", - "name": "liaopan2_materialhole_0_3", - "sample_id": null, - "children": [], - "parent": "liaopan2", - "type": "container", - "class": "", - "position": { - "x": 12.0, - "y": 2.0, - "z": 10.0 - }, - "config": { - "type": "MaterialHole", - "size_x": 16, - "size_y": 16, - "size_z": 16, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "material_hole", - "model": null, - "barcode": null - }, - "data": { - "diameter": 20, - "depth": 10, - "max_sheets": 1, - "info": null - } - }, - { - "id": "liaopan2_materialhole_1_0", - "name": "liaopan2_materialhole_1_0", - "sample_id": null, - "children": [], - "parent": "liaopan2", - "type": "container", - "class": "", - "position": { - "x": 36.0, - "y": 74.0, - "z": 10.0 - }, - "config": { - "type": "MaterialHole", - "size_x": 16, - "size_y": 16, - "size_z": 16, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "material_hole", - "model": null, - "barcode": null - }, - "data": { - "diameter": 20, - "depth": 10, - "max_sheets": 1, - "info": null - } - }, - { - "id": "liaopan2_materialhole_1_1", - "name": "liaopan2_materialhole_1_1", - "sample_id": null, - "children": [], - "parent": "liaopan2", - "type": "container", - "class": "", - "position": { - "x": 36.0, - "y": 50.0, - "z": 10.0 - }, - "config": { - "type": "MaterialHole", - "size_x": 16, - "size_y": 16, - "size_z": 16, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "material_hole", - "model": null, - "barcode": null - }, - "data": { - "diameter": 20, - "depth": 10, - "max_sheets": 1, - "info": null - } - }, - { - "id": "liaopan2_materialhole_1_2", - "name": "liaopan2_materialhole_1_2", - "sample_id": null, - "children": [], - "parent": "liaopan2", - "type": "container", - "class": "", - "position": { - "x": 36.0, - "y": 26.0, - "z": 10.0 - }, - "config": { - "type": "MaterialHole", - "size_x": 16, - "size_y": 16, - "size_z": 16, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "material_hole", - "model": null, - "barcode": null - }, - "data": { - "diameter": 20, - "depth": 10, - "max_sheets": 1, - "info": null - } - }, - { - "id": "liaopan2_materialhole_1_3", - "name": "liaopan2_materialhole_1_3", - "sample_id": null, - "children": [], - "parent": "liaopan2", - "type": "container", - "class": "", - "position": { - "x": 36.0, - "y": 2.0, - "z": 10.0 - }, - "config": { - "type": "MaterialHole", - "size_x": 16, - "size_y": 16, - "size_z": 16, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "material_hole", - "model": null, - "barcode": null - }, - "data": { - "diameter": 20, - "depth": 10, - "max_sheets": 1, - "info": null - } - }, - { - "id": "liaopan2_materialhole_2_0", - "name": "liaopan2_materialhole_2_0", - "sample_id": null, - "children": [], - "parent": "liaopan2", - "type": "container", - "class": "", - "position": { - "x": 60.0, - "y": 74.0, - "z": 10.0 - }, - "config": { - "type": "MaterialHole", - "size_x": 16, - "size_y": 16, - "size_z": 16, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "material_hole", - "model": null, - "barcode": null - }, - "data": { - "diameter": 20, - "depth": 10, - "max_sheets": 1, - "info": null - } - }, - { - "id": "liaopan2_materialhole_2_1", - "name": "liaopan2_materialhole_2_1", - "sample_id": null, - "children": [], - "parent": "liaopan2", - "type": "container", - "class": "", - "position": { - "x": 60.0, - "y": 50.0, - "z": 10.0 - }, - "config": { - "type": "MaterialHole", - "size_x": 16, - "size_y": 16, - "size_z": 16, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "material_hole", - "model": null, - "barcode": null - }, - "data": { - "diameter": 20, - "depth": 10, - "max_sheets": 1, - "info": null - } - }, - { - "id": "liaopan2_materialhole_2_2", - "name": "liaopan2_materialhole_2_2", - "sample_id": null, - "children": [], - "parent": "liaopan2", - "type": "container", - "class": "", - "position": { - "x": 60.0, - "y": 26.0, - "z": 10.0 - }, - "config": { - "type": "MaterialHole", - "size_x": 16, - "size_y": 16, - "size_z": 16, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "material_hole", - "model": null, - "barcode": null - }, - "data": { - "diameter": 20, - "depth": 10, - "max_sheets": 1, - "info": null - } - }, - { - "id": "liaopan2_materialhole_2_3", - "name": "liaopan2_materialhole_2_3", - "sample_id": null, - "children": [], - "parent": "liaopan2", - "type": "container", - "class": "", - "position": { - "x": 60.0, - "y": 2.0, - "z": 10.0 - }, - "config": { - "type": "MaterialHole", - "size_x": 16, - "size_y": 16, - "size_z": 16, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "material_hole", - "model": null, - "barcode": null - }, - "data": { - "diameter": 20, - "depth": 10, - "max_sheets": 1, - "info": null - } - }, - { - "id": "liaopan2_materialhole_3_0", - "name": "liaopan2_materialhole_3_0", - "sample_id": null, - "children": [], - "parent": "liaopan2", - "type": "container", - "class": "", - "position": { - "x": 84.0, - "y": 74.0, - "z": 10.0 - }, - "config": { - "type": "MaterialHole", - "size_x": 16, - "size_y": 16, - "size_z": 16, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "material_hole", - "model": null, - "barcode": null - }, - "data": { - "diameter": 20, - "depth": 10, - "max_sheets": 1, - "info": null - } - }, - { - "id": "liaopan2_materialhole_3_1", - "name": "liaopan2_materialhole_3_1", - "sample_id": null, - "children": [], - "parent": "liaopan2", - "type": "container", - "class": "", - "position": { - "x": 84.0, - "y": 50.0, - "z": 10.0 - }, - "config": { - "type": "MaterialHole", - "size_x": 16, - "size_y": 16, - "size_z": 16, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "material_hole", - "model": null, - "barcode": null - }, - "data": { - "diameter": 20, - "depth": 10, - "max_sheets": 1, - "info": null - } - }, - { - "id": "liaopan2_materialhole_3_2", - "name": "liaopan2_materialhole_3_2", - "sample_id": null, - "children": [], - "parent": "liaopan2", - "type": "container", - "class": "", - "position": { - "x": 84.0, - "y": 26.0, - "z": 10.0 - }, - "config": { - "type": "MaterialHole", - "size_x": 16, - "size_y": 16, - "size_z": 16, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "material_hole", - "model": null, - "barcode": null - }, - "data": { - "diameter": 20, - "depth": 10, - "max_sheets": 1, - "info": null - } - }, - { - "id": "liaopan2_materialhole_3_3", - "name": "liaopan2_materialhole_3_3", - "sample_id": null, - "children": [], - "parent": "liaopan2", - "type": "container", - "class": "", - "position": { - "x": 84.0, - "y": 2.0, - "z": 10.0 - }, - "config": { - "type": "MaterialHole", - "size_x": 16, - "size_y": 16, - "size_z": 16, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "material_hole", - "model": null, - "barcode": null - }, - "data": { - "diameter": 20, - "depth": 10, - "max_sheets": 1, - "info": null - } - }, - { - "id": "liaopan3", - "name": "liaopan3", - "sample_id": null, - "children": [ - "liaopan3_materialhole_0_0", - "liaopan3_materialhole_0_1", - "liaopan3_materialhole_0_2", - "liaopan3_materialhole_0_3", - "liaopan3_materialhole_1_0", - "liaopan3_materialhole_1_1", - "liaopan3_materialhole_1_2", - "liaopan3_materialhole_1_3", - "liaopan3_materialhole_2_0", - "liaopan3_materialhole_2_1", - "liaopan3_materialhole_2_2", - "liaopan3_materialhole_2_3", - "liaopan3_materialhole_3_0", - "liaopan3_materialhole_3_1", - "liaopan3_materialhole_3_2", - "liaopan3_materialhole_3_3" - ], - "parent": "coin_cell_deck", - "type": "container", - "class": "", - "position": { - "x": 1250, - "y": 50, - "z": 0 - }, - "config": { - "type": "MaterialPlate", - "size_x": 120, - "size_y": 100, - "size_z": 10.0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "material_plate", - "model": null, - "barcode": null, - "ordering": { - "A1": "liaopan3_materialhole_0_0", - "B1": "liaopan3_materialhole_0_1", - "C1": "liaopan3_materialhole_0_2", - "D1": "liaopan3_materialhole_0_3", - "A2": "liaopan3_materialhole_1_0", - "B2": "liaopan3_materialhole_1_1", - "C2": "liaopan3_materialhole_1_2", - "D2": "liaopan3_materialhole_1_3", - "A3": "liaopan3_materialhole_2_0", - "B3": "liaopan3_materialhole_2_1", - "C3": "liaopan3_materialhole_2_2", - "D3": "liaopan3_materialhole_2_3", - "A4": "liaopan3_materialhole_3_0", - "B4": "liaopan3_materialhole_3_1", - "C4": "liaopan3_materialhole_3_2", - "D4": "liaopan3_materialhole_3_3" - } - }, - "data": {} - }, - { - "id": "liaopan3_materialhole_0_0", - "name": "liaopan3_materialhole_0_0", - "sample_id": null, - "children": [], - "parent": "liaopan3", - "type": "container", - "class": "", - "position": { - "x": 12.0, - "y": 74.0, - "z": 10.0 - }, - "config": { - "type": "MaterialHole", - "size_x": 16, - "size_y": 16, - "size_z": 16, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "material_hole", - "model": null, - "barcode": null - }, - "data": { - "diameter": 20, - "depth": 10, - "max_sheets": 1, - "info": null - } - }, - { - "id": "liaopan3_materialhole_0_1", - "name": "liaopan3_materialhole_0_1", - "sample_id": null, - "children": [], - "parent": "liaopan3", - "type": "container", - "class": "", - "position": { - "x": 12.0, - "y": 50.0, - "z": 10.0 - }, - "config": { - "type": "MaterialHole", - "size_x": 16, - "size_y": 16, - "size_z": 16, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "material_hole", - "model": null, - "barcode": null - }, - "data": { - "diameter": 20, - "depth": 10, - "max_sheets": 1, - "info": null - } - }, - { - "id": "liaopan3_materialhole_0_2", - "name": "liaopan3_materialhole_0_2", - "sample_id": null, - "children": [], - "parent": "liaopan3", - "type": "container", - "class": "", - "position": { - "x": 12.0, - "y": 26.0, - "z": 10.0 - }, - "config": { - "type": "MaterialHole", - "size_x": 16, - "size_y": 16, - "size_z": 16, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "material_hole", - "model": null, - "barcode": null - }, - "data": { - "diameter": 20, - "depth": 10, - "max_sheets": 1, - "info": null - } - }, - { - "id": "liaopan3_materialhole_0_3", - "name": "liaopan3_materialhole_0_3", - "sample_id": null, - "children": [], - "parent": "liaopan3", - "type": "container", - "class": "", - "position": { - "x": 12.0, - "y": 2.0, - "z": 10.0 - }, - "config": { - "type": "MaterialHole", - "size_x": 16, - "size_y": 16, - "size_z": 16, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "material_hole", - "model": null, - "barcode": null - }, - "data": { - "diameter": 20, - "depth": 10, - "max_sheets": 1, - "info": null - } - }, - { - "id": "liaopan3_materialhole_1_0", - "name": "liaopan3_materialhole_1_0", - "sample_id": null, - "children": [], - "parent": "liaopan3", - "type": "container", - "class": "", - "position": { - "x": 36.0, - "y": 74.0, - "z": 10.0 - }, - "config": { - "type": "MaterialHole", - "size_x": 16, - "size_y": 16, - "size_z": 16, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "material_hole", - "model": null, - "barcode": null - }, - "data": { - "diameter": 20, - "depth": 10, - "max_sheets": 1, - "info": null - } - }, - { - "id": "liaopan3_materialhole_1_1", - "name": "liaopan3_materialhole_1_1", - "sample_id": null, - "children": [], - "parent": "liaopan3", - "type": "container", - "class": "", - "position": { - "x": 36.0, - "y": 50.0, - "z": 10.0 - }, - "config": { - "type": "MaterialHole", - "size_x": 16, - "size_y": 16, - "size_z": 16, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "material_hole", - "model": null, - "barcode": null - }, - "data": { - "diameter": 20, - "depth": 10, - "max_sheets": 1, - "info": null - } - }, - { - "id": "liaopan3_materialhole_1_2", - "name": "liaopan3_materialhole_1_2", - "sample_id": null, - "children": [], - "parent": "liaopan3", - "type": "container", - "class": "", - "position": { - "x": 36.0, - "y": 26.0, - "z": 10.0 - }, - "config": { - "type": "MaterialHole", - "size_x": 16, - "size_y": 16, - "size_z": 16, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "material_hole", - "model": null, - "barcode": null - }, - "data": { - "diameter": 20, - "depth": 10, - "max_sheets": 1, - "info": null - } - }, - { - "id": "liaopan3_materialhole_1_3", - "name": "liaopan3_materialhole_1_3", - "sample_id": null, - "children": [], - "parent": "liaopan3", - "type": "container", - "class": "", - "position": { - "x": 36.0, - "y": 2.0, - "z": 10.0 - }, - "config": { - "type": "MaterialHole", - "size_x": 16, - "size_y": 16, - "size_z": 16, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "material_hole", - "model": null, - "barcode": null - }, - "data": { - "diameter": 20, - "depth": 10, - "max_sheets": 1, - "info": null - } - }, - { - "id": "liaopan3_materialhole_2_0", - "name": "liaopan3_materialhole_2_0", - "sample_id": null, - "children": [], - "parent": "liaopan3", - "type": "container", - "class": "", - "position": { - "x": 60.0, - "y": 74.0, - "z": 10.0 - }, - "config": { - "type": "MaterialHole", - "size_x": 16, - "size_y": 16, - "size_z": 16, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "material_hole", - "model": null, - "barcode": null - }, - "data": { - "diameter": 20, - "depth": 10, - "max_sheets": 1, - "info": null - } - }, - { - "id": "liaopan3_materialhole_2_1", - "name": "liaopan3_materialhole_2_1", - "sample_id": null, - "children": [], - "parent": "liaopan3", - "type": "container", - "class": "", - "position": { - "x": 60.0, - "y": 50.0, - "z": 10.0 - }, - "config": { - "type": "MaterialHole", - "size_x": 16, - "size_y": 16, - "size_z": 16, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "material_hole", - "model": null, - "barcode": null - }, - "data": { - "diameter": 20, - "depth": 10, - "max_sheets": 1, - "info": null - } - }, - { - "id": "liaopan3_materialhole_2_2", - "name": "liaopan3_materialhole_2_2", - "sample_id": null, - "children": [], - "parent": "liaopan3", - "type": "container", - "class": "", - "position": { - "x": 60.0, - "y": 26.0, - "z": 10.0 - }, - "config": { - "type": "MaterialHole", - "size_x": 16, - "size_y": 16, - "size_z": 16, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "material_hole", - "model": null, - "barcode": null - }, - "data": { - "diameter": 20, - "depth": 10, - "max_sheets": 1, - "info": null - } - }, - { - "id": "liaopan3_materialhole_2_3", - "name": "liaopan3_materialhole_2_3", - "sample_id": null, - "children": [], - "parent": "liaopan3", - "type": "container", - "class": "", - "position": { - "x": 60.0, - "y": 2.0, - "z": 10.0 - }, - "config": { - "type": "MaterialHole", - "size_x": 16, - "size_y": 16, - "size_z": 16, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "material_hole", - "model": null, - "barcode": null - }, - "data": { - "diameter": 20, - "depth": 10, - "max_sheets": 1, - "info": null - } - }, - { - "id": "liaopan3_materialhole_3_0", - "name": "liaopan3_materialhole_3_0", - "sample_id": null, - "children": [], - "parent": "liaopan3", - "type": "container", - "class": "", - "position": { - "x": 84.0, - "y": 74.0, - "z": 10.0 - }, - "config": { - "type": "MaterialHole", - "size_x": 16, - "size_y": 16, - "size_z": 16, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "material_hole", - "model": null, - "barcode": null - }, - "data": { - "diameter": 20, - "depth": 10, - "max_sheets": 1, - "info": null - } - }, - { - "id": "liaopan3_materialhole_3_1", - "name": "liaopan3_materialhole_3_1", - "sample_id": null, - "children": [], - "parent": "liaopan3", - "type": "container", - "class": "", - "position": { - "x": 84.0, - "y": 50.0, - "z": 10.0 - }, - "config": { - "type": "MaterialHole", - "size_x": 16, - "size_y": 16, - "size_z": 16, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "material_hole", - "model": null, - "barcode": null - }, - "data": { - "diameter": 20, - "depth": 10, - "max_sheets": 1, - "info": null - } - }, - { - "id": "liaopan3_materialhole_3_2", - "name": "liaopan3_materialhole_3_2", - "sample_id": null, - "children": [], - "parent": "liaopan3", - "type": "container", - "class": "", - "position": { - "x": 84.0, - "y": 26.0, - "z": 10.0 - }, - "config": { - "type": "MaterialHole", - "size_x": 16, - "size_y": 16, - "size_z": 16, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "material_hole", - "model": null, - "barcode": null - }, - "data": { - "diameter": 20, - "depth": 10, - "max_sheets": 1, - "info": null - } - }, - { - "id": "liaopan3_materialhole_3_3", - "name": "liaopan3_materialhole_3_3", - "sample_id": null, - "children": [], - "parent": "liaopan3", - "type": "container", - "class": "", - "position": { - "x": 84.0, - "y": 2.0, - "z": 10.0 - }, - "config": { - "type": "MaterialHole", - "size_x": 16, - "size_y": 16, - "size_z": 16, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "material_hole", - "model": null, - "barcode": null - }, - "data": { - "diameter": 20, - "depth": 10, - "max_sheets": 1, - "info": null - } - }, - { - "id": "liaopan4", - "name": "liaopan4", - "sample_id": null, - "children": [ - "liaopan4_materialhole_0_0", - "liaopan4_materialhole_0_1", - "liaopan4_materialhole_0_2", - "liaopan4_materialhole_0_3", - "liaopan4_materialhole_1_0", - "liaopan4_materialhole_1_1", - "liaopan4_materialhole_1_2", - "liaopan4_materialhole_1_3", - "liaopan4_materialhole_2_0", - "liaopan4_materialhole_2_1", - "liaopan4_materialhole_2_2", - "liaopan4_materialhole_2_3", - "liaopan4_materialhole_3_0", - "liaopan4_materialhole_3_1", - "liaopan4_materialhole_3_2", - "liaopan4_materialhole_3_3" - ], - "parent": "coin_cell_deck", - "type": "container", - "class": "", - "position": { - "x": 1010, - "y": 150, - "z": 0 - }, - "config": { - "type": "MaterialPlate", - "size_x": 120, - "size_y": 100, - "size_z": 10.0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "material_plate", - "model": null, - "barcode": null, - "ordering": { - "A1": "liaopan4_materialhole_0_0", - "B1": "liaopan4_materialhole_0_1", - "C1": "liaopan4_materialhole_0_2", - "D1": "liaopan4_materialhole_0_3", - "A2": "liaopan4_materialhole_1_0", - "B2": "liaopan4_materialhole_1_1", - "C2": "liaopan4_materialhole_1_2", - "D2": "liaopan4_materialhole_1_3", - "A3": "liaopan4_materialhole_2_0", - "B3": "liaopan4_materialhole_2_1", - "C3": "liaopan4_materialhole_2_2", - "D3": "liaopan4_materialhole_2_3", - "A4": "liaopan4_materialhole_3_0", - "B4": "liaopan4_materialhole_3_1", - "C4": "liaopan4_materialhole_3_2", - "D4": "liaopan4_materialhole_3_3" - } - }, - "data": {} - }, - { - "id": "liaopan4_materialhole_0_0", - "name": "liaopan4_materialhole_0_0", - "sample_id": null, - "children": [ - "liaopan4_jipian_0" - ], - "parent": "liaopan4", - "type": "container", - "class": "", - "position": { - "x": 12.0, - "y": 74.0, - "z": 10.0 - }, - "config": { - "type": "MaterialHole", - "size_x": 16, - "size_y": 16, - "size_z": 16, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "material_hole", - "model": null, - "barcode": null - }, - "data": { - "diameter": 20, - "depth": 10, - "max_sheets": 1, - "info": null - } - }, - { - "id": "liaopan4_jipian_0", - "name": "liaopan4_jipian_0", - "sample_id": null, - "children": [], - "parent": "liaopan4_materialhole_0_0", - "type": "container", - "class": "", - "position": { - "x": 0, - "y": 0, - "z": 0 - }, - "config": { - "type": "ElectrodeSheet", - "size_x": 12, - "size_y": 12, - "size_z": 0.1, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "electrode_sheet", - "model": null, - "barcode": null - }, - "data": { - "diameter": 14, - "thickness": 0.1, - "mass": 0.5, - "material_type": "copper", - "info": null - } - }, - { - "id": "liaopan4_materialhole_0_1", - "name": "liaopan4_materialhole_0_1", - "sample_id": null, - "children": [ - "liaopan4_jipian_1" - ], - "parent": "liaopan4", - "type": "container", - "class": "", - "position": { - "x": 12.0, - "y": 50.0, - "z": 10.0 - }, - "config": { - "type": "MaterialHole", - "size_x": 16, - "size_y": 16, - "size_z": 16, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "material_hole", - "model": null, - "barcode": null - }, - "data": { - "diameter": 20, - "depth": 10, - "max_sheets": 1, - "info": null - } - }, - { - "id": "liaopan4_jipian_1", - "name": "liaopan4_jipian_1", - "sample_id": null, - "children": [], - "parent": "liaopan4_materialhole_0_1", - "type": "container", - "class": "", - "position": { - "x": 0, - "y": 0, - "z": 0 - }, - "config": { - "type": "ElectrodeSheet", - "size_x": 12, - "size_y": 12, - "size_z": 0.1, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "electrode_sheet", - "model": null, - "barcode": null - }, - "data": { - "diameter": 14, - "thickness": 0.1, - "mass": 0.5, - "material_type": "copper", - "info": null - } - }, - { - "id": "liaopan4_materialhole_0_2", - "name": "liaopan4_materialhole_0_2", - "sample_id": null, - "children": [ - "liaopan4_jipian_2" - ], - "parent": "liaopan4", - "type": "container", - "class": "", - "position": { - "x": 12.0, - "y": 26.0, - "z": 10.0 - }, - "config": { - "type": "MaterialHole", - "size_x": 16, - "size_y": 16, - "size_z": 16, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "material_hole", - "model": null, - "barcode": null - }, - "data": { - "diameter": 20, - "depth": 10, - "max_sheets": 1, - "info": null - } - }, - { - "id": "liaopan4_jipian_2", - "name": "liaopan4_jipian_2", - "sample_id": null, - "children": [], - "parent": "liaopan4_materialhole_0_2", - "type": "container", - "class": "", - "position": { - "x": 0, - "y": 0, - "z": 0 - }, - "config": { - "type": "ElectrodeSheet", - "size_x": 12, - "size_y": 12, - "size_z": 0.1, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "electrode_sheet", - "model": null, - "barcode": null - }, - "data": { - "diameter": 14, - "thickness": 0.1, - "mass": 0.5, - "material_type": "copper", - "info": null - } - }, - { - "id": "liaopan4_materialhole_0_3", - "name": "liaopan4_materialhole_0_3", - "sample_id": null, - "children": [ - "liaopan4_jipian_3" - ], - "parent": "liaopan4", - "type": "container", - "class": "", - "position": { - "x": 12.0, - "y": 2.0, - "z": 10.0 - }, - "config": { - "type": "MaterialHole", - "size_x": 16, - "size_y": 16, - "size_z": 16, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "material_hole", - "model": null, - "barcode": null - }, - "data": { - "diameter": 20, - "depth": 10, - "max_sheets": 1, - "info": null - } - }, - { - "id": "liaopan4_jipian_3", - "name": "liaopan4_jipian_3", - "sample_id": null, - "children": [], - "parent": "liaopan4_materialhole_0_3", - "type": "container", - "class": "", - "position": { - "x": 0, - "y": 0, - "z": 0 - }, - "config": { - "type": "ElectrodeSheet", - "size_x": 12, - "size_y": 12, - "size_z": 0.1, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "electrode_sheet", - "model": null, - "barcode": null - }, - "data": { - "diameter": 14, - "thickness": 0.1, - "mass": 0.5, - "material_type": "copper", - "info": null - } - }, - { - "id": "liaopan4_materialhole_1_0", - "name": "liaopan4_materialhole_1_0", - "sample_id": null, - "children": [ - "liaopan4_jipian_4" - ], - "parent": "liaopan4", - "type": "container", - "class": "", - "position": { - "x": 36.0, - "y": 74.0, - "z": 10.0 - }, - "config": { - "type": "MaterialHole", - "size_x": 16, - "size_y": 16, - "size_z": 16, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "material_hole", - "model": null, - "barcode": null - }, - "data": { - "diameter": 20, - "depth": 10, - "max_sheets": 1, - "info": null - } - }, - { - "id": "liaopan4_jipian_4", - "name": "liaopan4_jipian_4", - "sample_id": null, - "children": [], - "parent": "liaopan4_materialhole_1_0", - "type": "container", - "class": "", - "position": { - "x": 0, - "y": 0, - "z": 0 - }, - "config": { - "type": "ElectrodeSheet", - "size_x": 12, - "size_y": 12, - "size_z": 0.1, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "electrode_sheet", - "model": null, - "barcode": null - }, - "data": { - "diameter": 14, - "thickness": 0.1, - "mass": 0.5, - "material_type": "copper", - "info": null - } - }, - { - "id": "liaopan4_materialhole_1_1", - "name": "liaopan4_materialhole_1_1", - "sample_id": null, - "children": [ - "liaopan4_jipian_5" - ], - "parent": "liaopan4", - "type": "container", - "class": "", - "position": { - "x": 36.0, - "y": 50.0, - "z": 10.0 - }, - "config": { - "type": "MaterialHole", - "size_x": 16, - "size_y": 16, - "size_z": 16, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "material_hole", - "model": null, - "barcode": null - }, - "data": { - "diameter": 20, - "depth": 10, - "max_sheets": 1, - "info": null - } - }, - { - "id": "liaopan4_jipian_5", - "name": "liaopan4_jipian_5", - "sample_id": null, - "children": [], - "parent": "liaopan4_materialhole_1_1", - "type": "container", - "class": "", - "position": { - "x": 0, - "y": 0, - "z": 0 - }, - "config": { - "type": "ElectrodeSheet", - "size_x": 12, - "size_y": 12, - "size_z": 0.1, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "electrode_sheet", - "model": null, - "barcode": null - }, - "data": { - "diameter": 14, - "thickness": 0.1, - "mass": 0.5, - "material_type": "copper", - "info": null - } - }, - { - "id": "liaopan4_materialhole_1_2", - "name": "liaopan4_materialhole_1_2", - "sample_id": null, - "children": [ - "liaopan4_jipian_6" - ], - "parent": "liaopan4", - "type": "container", - "class": "", - "position": { - "x": 36.0, - "y": 26.0, - "z": 10.0 - }, - "config": { - "type": "MaterialHole", - "size_x": 16, - "size_y": 16, - "size_z": 16, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "material_hole", - "model": null, - "barcode": null - }, - "data": { - "diameter": 20, - "depth": 10, - "max_sheets": 1, - "info": null - } - }, - { - "id": "liaopan4_jipian_6", - "name": "liaopan4_jipian_6", - "sample_id": null, - "children": [], - "parent": "liaopan4_materialhole_1_2", - "type": "container", - "class": "", - "position": { - "x": 0, - "y": 0, - "z": 0 - }, - "config": { - "type": "ElectrodeSheet", - "size_x": 12, - "size_y": 12, - "size_z": 0.1, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "electrode_sheet", - "model": null, - "barcode": null - }, - "data": { - "diameter": 14, - "thickness": 0.1, - "mass": 0.5, - "material_type": "copper", - "info": null - } - }, - { - "id": "liaopan4_materialhole_1_3", - "name": "liaopan4_materialhole_1_3", - "sample_id": null, - "children": [ - "liaopan4_jipian_7" - ], - "parent": "liaopan4", - "type": "container", - "class": "", - "position": { - "x": 36.0, - "y": 2.0, - "z": 10.0 - }, - "config": { - "type": "MaterialHole", - "size_x": 16, - "size_y": 16, - "size_z": 16, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "material_hole", - "model": null, - "barcode": null - }, - "data": { - "diameter": 20, - "depth": 10, - "max_sheets": 1, - "info": null - } - }, - { - "id": "liaopan4_jipian_7", - "name": "liaopan4_jipian_7", - "sample_id": null, - "children": [], - "parent": "liaopan4_materialhole_1_3", - "type": "container", - "class": "", - "position": { - "x": 0, - "y": 0, - "z": 0 - }, - "config": { - "type": "ElectrodeSheet", - "size_x": 12, - "size_y": 12, - "size_z": 0.1, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "electrode_sheet", - "model": null, - "barcode": null - }, - "data": { - "diameter": 14, - "thickness": 0.1, - "mass": 0.5, - "material_type": "copper", - "info": null - } - }, - { - "id": "liaopan4_materialhole_2_0", - "name": "liaopan4_materialhole_2_0", - "sample_id": null, - "children": [ - "liaopan4_jipian_8" - ], - "parent": "liaopan4", - "type": "container", - "class": "", - "position": { - "x": 60.0, - "y": 74.0, - "z": 10.0 - }, - "config": { - "type": "MaterialHole", - "size_x": 16, - "size_y": 16, - "size_z": 16, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "material_hole", - "model": null, - "barcode": null - }, - "data": { - "diameter": 20, - "depth": 10, - "max_sheets": 1, - "info": null - } - }, - { - "id": "liaopan4_jipian_8", - "name": "liaopan4_jipian_8", - "sample_id": null, - "children": [], - "parent": "liaopan4_materialhole_2_0", - "type": "container", - "class": "", - "position": { - "x": 0, - "y": 0, - "z": 0 - }, - "config": { - "type": "ElectrodeSheet", - "size_x": 12, - "size_y": 12, - "size_z": 0.1, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "electrode_sheet", - "model": null, - "barcode": null - }, - "data": { - "diameter": 14, - "thickness": 0.1, - "mass": 0.5, - "material_type": "copper", - "info": null - } - }, - { - "id": "liaopan4_materialhole_2_1", - "name": "liaopan4_materialhole_2_1", - "sample_id": null, - "children": [ - "liaopan4_jipian_9" - ], - "parent": "liaopan4", - "type": "container", - "class": "", - "position": { - "x": 60.0, - "y": 50.0, - "z": 10.0 - }, - "config": { - "type": "MaterialHole", - "size_x": 16, - "size_y": 16, - "size_z": 16, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "material_hole", - "model": null, - "barcode": null - }, - "data": { - "diameter": 20, - "depth": 10, - "max_sheets": 1, - "info": null - } - }, - { - "id": "liaopan4_jipian_9", - "name": "liaopan4_jipian_9", - "sample_id": null, - "children": [], - "parent": "liaopan4_materialhole_2_1", - "type": "container", - "class": "", - "position": { - "x": 0, - "y": 0, - "z": 0 - }, - "config": { - "type": "ElectrodeSheet", - "size_x": 12, - "size_y": 12, - "size_z": 0.1, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "electrode_sheet", - "model": null, - "barcode": null - }, - "data": { - "diameter": 14, - "thickness": 0.1, - "mass": 0.5, - "material_type": "copper", - "info": null - } - }, - { - "id": "liaopan4_materialhole_2_2", - "name": "liaopan4_materialhole_2_2", - "sample_id": null, - "children": [ - "liaopan4_jipian_10" - ], - "parent": "liaopan4", - "type": "container", - "class": "", - "position": { - "x": 60.0, - "y": 26.0, - "z": 10.0 - }, - "config": { - "type": "MaterialHole", - "size_x": 16, - "size_y": 16, - "size_z": 16, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "material_hole", - "model": null, - "barcode": null - }, - "data": { - "diameter": 20, - "depth": 10, - "max_sheets": 1, - "info": null - } - }, - { - "id": "liaopan4_jipian_10", - "name": "liaopan4_jipian_10", - "sample_id": null, - "children": [], - "parent": "liaopan4_materialhole_2_2", - "type": "container", - "class": "", - "position": { - "x": 0, - "y": 0, - "z": 0 - }, - "config": { - "type": "ElectrodeSheet", - "size_x": 12, - "size_y": 12, - "size_z": 0.1, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "electrode_sheet", - "model": null, - "barcode": null - }, - "data": { - "diameter": 14, - "thickness": 0.1, - "mass": 0.5, - "material_type": "copper", - "info": null - } - }, - { - "id": "liaopan4_materialhole_2_3", - "name": "liaopan4_materialhole_2_3", - "sample_id": null, - "children": [ - "liaopan4_jipian_11" - ], - "parent": "liaopan4", - "type": "container", - "class": "", - "position": { - "x": 60.0, - "y": 2.0, - "z": 10.0 - }, - "config": { - "type": "MaterialHole", - "size_x": 16, - "size_y": 16, - "size_z": 16, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "material_hole", - "model": null, - "barcode": null - }, - "data": { - "diameter": 20, - "depth": 10, - "max_sheets": 1, - "info": null - } - }, - { - "id": "liaopan4_jipian_11", - "name": "liaopan4_jipian_11", - "sample_id": null, - "children": [], - "parent": "liaopan4_materialhole_2_3", - "type": "container", - "class": "", - "position": { - "x": 0, - "y": 0, - "z": 0 - }, - "config": { - "type": "ElectrodeSheet", - "size_x": 12, - "size_y": 12, - "size_z": 0.1, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "electrode_sheet", - "model": null, - "barcode": null - }, - "data": { - "diameter": 14, - "thickness": 0.1, - "mass": 0.5, - "material_type": "copper", - "info": null - } - }, - { - "id": "liaopan4_materialhole_3_0", - "name": "liaopan4_materialhole_3_0", - "sample_id": null, - "children": [ - "liaopan4_jipian_12" - ], - "parent": "liaopan4", - "type": "container", - "class": "", - "position": { - "x": 84.0, - "y": 74.0, - "z": 10.0 - }, - "config": { - "type": "MaterialHole", - "size_x": 16, - "size_y": 16, - "size_z": 16, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "material_hole", - "model": null, - "barcode": null - }, - "data": { - "diameter": 20, - "depth": 10, - "max_sheets": 1, - "info": null - } - }, - { - "id": "liaopan4_jipian_12", - "name": "liaopan4_jipian_12", - "sample_id": null, - "children": [], - "parent": "liaopan4_materialhole_3_0", - "type": "container", - "class": "", - "position": { - "x": 0, - "y": 0, - "z": 0 - }, - "config": { - "type": "ElectrodeSheet", - "size_x": 12, - "size_y": 12, - "size_z": 0.1, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "electrode_sheet", - "model": null, - "barcode": null - }, - "data": { - "diameter": 14, - "thickness": 0.1, - "mass": 0.5, - "material_type": "copper", - "info": null - } - }, - { - "id": "liaopan4_materialhole_3_1", - "name": "liaopan4_materialhole_3_1", - "sample_id": null, - "children": [ - "liaopan4_jipian_13" - ], - "parent": "liaopan4", - "type": "container", - "class": "", - "position": { - "x": 84.0, - "y": 50.0, - "z": 10.0 - }, - "config": { - "type": "MaterialHole", - "size_x": 16, - "size_y": 16, - "size_z": 16, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "material_hole", - "model": null, - "barcode": null - }, - "data": { - "diameter": 20, - "depth": 10, - "max_sheets": 1, - "info": null - } - }, - { - "id": "liaopan4_jipian_13", - "name": "liaopan4_jipian_13", - "sample_id": null, - "children": [], - "parent": "liaopan4_materialhole_3_1", - "type": "container", - "class": "", - "position": { - "x": 0, - "y": 0, - "z": 0 - }, - "config": { - "type": "ElectrodeSheet", - "size_x": 12, - "size_y": 12, - "size_z": 0.1, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "electrode_sheet", - "model": null, - "barcode": null - }, - "data": { - "diameter": 14, - "thickness": 0.1, - "mass": 0.5, - "material_type": "copper", - "info": null - } - }, - { - "id": "liaopan4_materialhole_3_2", - "name": "liaopan4_materialhole_3_2", - "sample_id": null, - "children": [ - "liaopan4_jipian_14" - ], - "parent": "liaopan4", - "type": "container", - "class": "", - "position": { - "x": 84.0, - "y": 26.0, - "z": 10.0 - }, - "config": { - "type": "MaterialHole", - "size_x": 16, - "size_y": 16, - "size_z": 16, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "material_hole", - "model": null, - "barcode": null - }, - "data": { - "diameter": 20, - "depth": 10, - "max_sheets": 1, - "info": null - } - }, - { - "id": "liaopan4_jipian_14", - "name": "liaopan4_jipian_14", - "sample_id": null, - "children": [], - "parent": "liaopan4_materialhole_3_2", - "type": "container", - "class": "", - "position": { - "x": 0, - "y": 0, - "z": 0 - }, - "config": { - "type": "ElectrodeSheet", - "size_x": 12, - "size_y": 12, - "size_z": 0.1, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "electrode_sheet", - "model": null, - "barcode": null - }, - "data": { - "diameter": 14, - "thickness": 0.1, - "mass": 0.5, - "material_type": "copper", - "info": null - } - }, - { - "id": "liaopan4_materialhole_3_3", - "name": "liaopan4_materialhole_3_3", - "sample_id": null, - "children": [ - "liaopan4_jipian_15" - ], - "parent": "liaopan4", - "type": "container", - "class": "", - "position": { - "x": 84.0, - "y": 2.0, - "z": 10.0 - }, - "config": { - "type": "MaterialHole", - "size_x": 16, - "size_y": 16, - "size_z": 16, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "material_hole", - "model": null, - "barcode": null - }, - "data": { - "diameter": 20, - "depth": 10, - "max_sheets": 1, - "info": null - } - }, - { - "id": "liaopan4_jipian_15", - "name": "liaopan4_jipian_15", - "sample_id": null, - "children": [], - "parent": "liaopan4_materialhole_3_3", - "type": "container", - "class": "", - "position": { - "x": 0, - "y": 0, - "z": 0 - }, - "config": { - "type": "ElectrodeSheet", - "size_x": 12, - "size_y": 12, - "size_z": 0.1, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "electrode_sheet", - "model": null, - "barcode": null - }, - "data": { - "diameter": 14, - "thickness": 0.1, - "mass": 0.5, - "material_type": "copper", - "info": null - } - }, - { - "id": "liaopan5", - "name": "liaopan5", - "sample_id": null, - "children": [ - "liaopan5_materialhole_0_0", - "liaopan5_materialhole_0_1", - "liaopan5_materialhole_0_2", - "liaopan5_materialhole_0_3", - "liaopan5_materialhole_1_0", - "liaopan5_materialhole_1_1", - "liaopan5_materialhole_1_2", - "liaopan5_materialhole_1_3", - "liaopan5_materialhole_2_0", - "liaopan5_materialhole_2_1", - "liaopan5_materialhole_2_2", - "liaopan5_materialhole_2_3", - "liaopan5_materialhole_3_0", - "liaopan5_materialhole_3_1", - "liaopan5_materialhole_3_2", - "liaopan5_materialhole_3_3" - ], - "parent": "coin_cell_deck", - "type": "container", - "class": "", - "position": { - "x": 1130, - "y": 150, - "z": 0 - }, - "config": { - "type": "MaterialPlate", - "size_x": 120, - "size_y": 100, - "size_z": 10.0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "material_plate", - "model": null, - "barcode": null, - "ordering": { - "A1": "liaopan5_materialhole_0_0", - "B1": "liaopan5_materialhole_0_1", - "C1": "liaopan5_materialhole_0_2", - "D1": "liaopan5_materialhole_0_3", - "A2": "liaopan5_materialhole_1_0", - "B2": "liaopan5_materialhole_1_1", - "C2": "liaopan5_materialhole_1_2", - "D2": "liaopan5_materialhole_1_3", - "A3": "liaopan5_materialhole_2_0", - "B3": "liaopan5_materialhole_2_1", - "C3": "liaopan5_materialhole_2_2", - "D3": "liaopan5_materialhole_2_3", - "A4": "liaopan5_materialhole_3_0", - "B4": "liaopan5_materialhole_3_1", - "C4": "liaopan5_materialhole_3_2", - "D4": "liaopan5_materialhole_3_3" - } - }, - "data": {} - }, - { - "id": "liaopan5_materialhole_0_0", - "name": "liaopan5_materialhole_0_0", - "sample_id": null, - "children": [], - "parent": "liaopan5", - "type": "container", - "class": "", - "position": { - "x": 12.0, - "y": 74.0, - "z": 10.0 - }, - "config": { - "type": "MaterialHole", - "size_x": 16, - "size_y": 16, - "size_z": 16, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "material_hole", - "model": null, - "barcode": null - }, - "data": { - "diameter": 20, - "depth": 10, - "max_sheets": 1, - "info": null - } - }, - { - "id": "liaopan5_materialhole_0_1", - "name": "liaopan5_materialhole_0_1", - "sample_id": null, - "children": [], - "parent": "liaopan5", - "type": "container", - "class": "", - "position": { - "x": 12.0, - "y": 50.0, - "z": 10.0 - }, - "config": { - "type": "MaterialHole", - "size_x": 16, - "size_y": 16, - "size_z": 16, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "material_hole", - "model": null, - "barcode": null - }, - "data": { - "diameter": 20, - "depth": 10, - "max_sheets": 1, - "info": null - } - }, - { - "id": "liaopan5_materialhole_0_2", - "name": "liaopan5_materialhole_0_2", - "sample_id": null, - "children": [], - "parent": "liaopan5", - "type": "container", - "class": "", - "position": { - "x": 12.0, - "y": 26.0, - "z": 10.0 - }, - "config": { - "type": "MaterialHole", - "size_x": 16, - "size_y": 16, - "size_z": 16, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "material_hole", - "model": null, - "barcode": null - }, - "data": { - "diameter": 20, - "depth": 10, - "max_sheets": 1, - "info": null - } - }, - { - "id": "liaopan5_materialhole_0_3", - "name": "liaopan5_materialhole_0_3", - "sample_id": null, - "children": [], - "parent": "liaopan5", - "type": "container", - "class": "", - "position": { - "x": 12.0, - "y": 2.0, - "z": 10.0 - }, - "config": { - "type": "MaterialHole", - "size_x": 16, - "size_y": 16, - "size_z": 16, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "material_hole", - "model": null, - "barcode": null - }, - "data": { - "diameter": 20, - "depth": 10, - "max_sheets": 1, - "info": null - } - }, - { - "id": "liaopan5_materialhole_1_0", - "name": "liaopan5_materialhole_1_0", - "sample_id": null, - "children": [], - "parent": "liaopan5", - "type": "container", - "class": "", - "position": { - "x": 36.0, - "y": 74.0, - "z": 10.0 - }, - "config": { - "type": "MaterialHole", - "size_x": 16, - "size_y": 16, - "size_z": 16, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "material_hole", - "model": null, - "barcode": null - }, - "data": { - "diameter": 20, - "depth": 10, - "max_sheets": 1, - "info": null - } - }, - { - "id": "liaopan5_materialhole_1_1", - "name": "liaopan5_materialhole_1_1", - "sample_id": null, - "children": [], - "parent": "liaopan5", - "type": "container", - "class": "", - "position": { - "x": 36.0, - "y": 50.0, - "z": 10.0 - }, - "config": { - "type": "MaterialHole", - "size_x": 16, - "size_y": 16, - "size_z": 16, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "material_hole", - "model": null, - "barcode": null - }, - "data": { - "diameter": 20, - "depth": 10, - "max_sheets": 1, - "info": null - } - }, - { - "id": "liaopan5_materialhole_1_2", - "name": "liaopan5_materialhole_1_2", - "sample_id": null, - "children": [], - "parent": "liaopan5", - "type": "container", - "class": "", - "position": { - "x": 36.0, - "y": 26.0, - "z": 10.0 - }, - "config": { - "type": "MaterialHole", - "size_x": 16, - "size_y": 16, - "size_z": 16, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "material_hole", - "model": null, - "barcode": null - }, - "data": { - "diameter": 20, - "depth": 10, - "max_sheets": 1, - "info": null - } - }, - { - "id": "liaopan5_materialhole_1_3", - "name": "liaopan5_materialhole_1_3", - "sample_id": null, - "children": [], - "parent": "liaopan5", - "type": "container", - "class": "", - "position": { - "x": 36.0, - "y": 2.0, - "z": 10.0 - }, - "config": { - "type": "MaterialHole", - "size_x": 16, - "size_y": 16, - "size_z": 16, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "material_hole", - "model": null, - "barcode": null - }, - "data": { - "diameter": 20, - "depth": 10, - "max_sheets": 1, - "info": null - } - }, - { - "id": "liaopan5_materialhole_2_0", - "name": "liaopan5_materialhole_2_0", - "sample_id": null, - "children": [], - "parent": "liaopan5", - "type": "container", - "class": "", - "position": { - "x": 60.0, - "y": 74.0, - "z": 10.0 - }, - "config": { - "type": "MaterialHole", - "size_x": 16, - "size_y": 16, - "size_z": 16, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "material_hole", - "model": null, - "barcode": null - }, - "data": { - "diameter": 20, - "depth": 10, - "max_sheets": 1, - "info": null - } - }, - { - "id": "liaopan5_materialhole_2_1", - "name": "liaopan5_materialhole_2_1", - "sample_id": null, - "children": [], - "parent": "liaopan5", - "type": "container", - "class": "", - "position": { - "x": 60.0, - "y": 50.0, - "z": 10.0 - }, - "config": { - "type": "MaterialHole", - "size_x": 16, - "size_y": 16, - "size_z": 16, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "material_hole", - "model": null, - "barcode": null - }, - "data": { - "diameter": 20, - "depth": 10, - "max_sheets": 1, - "info": null - } - }, - { - "id": "liaopan5_materialhole_2_2", - "name": "liaopan5_materialhole_2_2", - "sample_id": null, - "children": [], - "parent": "liaopan5", - "type": "container", - "class": "", - "position": { - "x": 60.0, - "y": 26.0, - "z": 10.0 - }, - "config": { - "type": "MaterialHole", - "size_x": 16, - "size_y": 16, - "size_z": 16, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "material_hole", - "model": null, - "barcode": null - }, - "data": { - "diameter": 20, - "depth": 10, - "max_sheets": 1, - "info": null - } - }, - { - "id": "liaopan5_materialhole_2_3", - "name": "liaopan5_materialhole_2_3", - "sample_id": null, - "children": [], - "parent": "liaopan5", - "type": "container", - "class": "", - "position": { - "x": 60.0, - "y": 2.0, - "z": 10.0 - }, - "config": { - "type": "MaterialHole", - "size_x": 16, - "size_y": 16, - "size_z": 16, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "material_hole", - "model": null, - "barcode": null - }, - "data": { - "diameter": 20, - "depth": 10, - "max_sheets": 1, - "info": null - } - }, - { - "id": "liaopan5_materialhole_3_0", - "name": "liaopan5_materialhole_3_0", - "sample_id": null, - "children": [], - "parent": "liaopan5", - "type": "container", - "class": "", - "position": { - "x": 84.0, - "y": 74.0, - "z": 10.0 - }, - "config": { - "type": "MaterialHole", - "size_x": 16, - "size_y": 16, - "size_z": 16, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "material_hole", - "model": null, - "barcode": null - }, - "data": { - "diameter": 20, - "depth": 10, - "max_sheets": 1, - "info": null - } - }, - { - "id": "liaopan5_materialhole_3_1", - "name": "liaopan5_materialhole_3_1", - "sample_id": null, - "children": [], - "parent": "liaopan5", - "type": "container", - "class": "", - "position": { - "x": 84.0, - "y": 50.0, - "z": 10.0 - }, - "config": { - "type": "MaterialHole", - "size_x": 16, - "size_y": 16, - "size_z": 16, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "material_hole", - "model": null, - "barcode": null - }, - "data": { - "diameter": 20, - "depth": 10, - "max_sheets": 1, - "info": null - } - }, - { - "id": "liaopan5_materialhole_3_2", - "name": "liaopan5_materialhole_3_2", - "sample_id": null, - "children": [], - "parent": "liaopan5", - "type": "container", - "class": "", - "position": { - "x": 84.0, - "y": 26.0, - "z": 10.0 - }, - "config": { - "type": "MaterialHole", - "size_x": 16, - "size_y": 16, - "size_z": 16, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "material_hole", - "model": null, - "barcode": null - }, - "data": { - "diameter": 20, - "depth": 10, - "max_sheets": 1, - "info": null - } - }, - { - "id": "liaopan5_materialhole_3_3", - "name": "liaopan5_materialhole_3_3", - "sample_id": null, - "children": [], - "parent": "liaopan5", - "type": "container", - "class": "", - "position": { - "x": 84.0, - "y": 2.0, - "z": 10.0 - }, - "config": { - "type": "MaterialHole", - "size_x": 16, - "size_y": 16, - "size_z": 16, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "material_hole", - "model": null, - "barcode": null - }, - "data": { - "diameter": 20, - "depth": 10, - "max_sheets": 1, - "info": null - } - }, - { - "id": "liaopan6", - "name": "liaopan6", - "sample_id": null, - "children": [ - "liaopan6_materialhole_0_0", - "liaopan6_materialhole_0_1", - "liaopan6_materialhole_0_2", - "liaopan6_materialhole_0_3", - "liaopan6_materialhole_1_0", - "liaopan6_materialhole_1_1", - "liaopan6_materialhole_1_2", - "liaopan6_materialhole_1_3", - "liaopan6_materialhole_2_0", - "liaopan6_materialhole_2_1", - "liaopan6_materialhole_2_2", - "liaopan6_materialhole_2_3", - "liaopan6_materialhole_3_0", - "liaopan6_materialhole_3_1", - "liaopan6_materialhole_3_2", - "liaopan6_materialhole_3_3" - ], - "parent": "coin_cell_deck", - "type": "container", - "class": "", - "position": { - "x": 1250, - "y": 150, - "z": 0 - }, - "config": { - "type": "MaterialPlate", - "size_x": 120, - "size_y": 100, - "size_z": 10.0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "material_plate", - "model": null, - "barcode": null, - "ordering": { - "A1": "liaopan6_materialhole_0_0", - "B1": "liaopan6_materialhole_0_1", - "C1": "liaopan6_materialhole_0_2", - "D1": "liaopan6_materialhole_0_3", - "A2": "liaopan6_materialhole_1_0", - "B2": "liaopan6_materialhole_1_1", - "C2": "liaopan6_materialhole_1_2", - "D2": "liaopan6_materialhole_1_3", - "A3": "liaopan6_materialhole_2_0", - "B3": "liaopan6_materialhole_2_1", - "C3": "liaopan6_materialhole_2_2", - "D3": "liaopan6_materialhole_2_3", - "A4": "liaopan6_materialhole_3_0", - "B4": "liaopan6_materialhole_3_1", - "C4": "liaopan6_materialhole_3_2", - "D4": "liaopan6_materialhole_3_3" - } - }, - "data": {} - }, - { - "id": "liaopan6_materialhole_0_0", - "name": "liaopan6_materialhole_0_0", - "sample_id": null, - "children": [], - "parent": "liaopan6", - "type": "container", - "class": "", - "position": { - "x": 12.0, - "y": 74.0, - "z": 10.0 - }, - "config": { - "type": "MaterialHole", - "size_x": 16, - "size_y": 16, - "size_z": 16, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "material_hole", - "model": null, - "barcode": null - }, - "data": { - "diameter": 20, - "depth": 10, - "max_sheets": 1, - "info": null - } - }, - { - "id": "liaopan6_materialhole_0_1", - "name": "liaopan6_materialhole_0_1", - "sample_id": null, - "children": [], - "parent": "liaopan6", - "type": "container", - "class": "", - "position": { - "x": 12.0, - "y": 50.0, - "z": 10.0 - }, - "config": { - "type": "MaterialHole", - "size_x": 16, - "size_y": 16, - "size_z": 16, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "material_hole", - "model": null, - "barcode": null - }, - "data": { - "diameter": 20, - "depth": 10, - "max_sheets": 1, - "info": null - } - }, - { - "id": "liaopan6_materialhole_0_2", - "name": "liaopan6_materialhole_0_2", - "sample_id": null, - "children": [], - "parent": "liaopan6", - "type": "container", - "class": "", - "position": { - "x": 12.0, - "y": 26.0, - "z": 10.0 - }, - "config": { - "type": "MaterialHole", - "size_x": 16, - "size_y": 16, - "size_z": 16, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "material_hole", - "model": null, - "barcode": null - }, - "data": { - "diameter": 20, - "depth": 10, - "max_sheets": 1, - "info": null - } - }, - { - "id": "liaopan6_materialhole_0_3", - "name": "liaopan6_materialhole_0_3", - "sample_id": null, - "children": [], - "parent": "liaopan6", - "type": "container", - "class": "", - "position": { - "x": 12.0, - "y": 2.0, - "z": 10.0 - }, - "config": { - "type": "MaterialHole", - "size_x": 16, - "size_y": 16, - "size_z": 16, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "material_hole", - "model": null, - "barcode": null - }, - "data": { - "diameter": 20, - "depth": 10, - "max_sheets": 1, - "info": null - } - }, - { - "id": "liaopan6_materialhole_1_0", - "name": "liaopan6_materialhole_1_0", - "sample_id": null, - "children": [], - "parent": "liaopan6", - "type": "container", - "class": "", - "position": { - "x": 36.0, - "y": 74.0, - "z": 10.0 - }, - "config": { - "type": "MaterialHole", - "size_x": 16, - "size_y": 16, - "size_z": 16, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "material_hole", - "model": null, - "barcode": null - }, - "data": { - "diameter": 20, - "depth": 10, - "max_sheets": 1, - "info": null - } - }, - { - "id": "liaopan6_materialhole_1_1", - "name": "liaopan6_materialhole_1_1", - "sample_id": null, - "children": [], - "parent": "liaopan6", - "type": "container", - "class": "", - "position": { - "x": 36.0, - "y": 50.0, - "z": 10.0 - }, - "config": { - "type": "MaterialHole", - "size_x": 16, - "size_y": 16, - "size_z": 16, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "material_hole", - "model": null, - "barcode": null - }, - "data": { - "diameter": 20, - "depth": 10, - "max_sheets": 1, - "info": null - } - }, - { - "id": "liaopan6_materialhole_1_2", - "name": "liaopan6_materialhole_1_2", - "sample_id": null, - "children": [], - "parent": "liaopan6", - "type": "container", - "class": "", - "position": { - "x": 36.0, - "y": 26.0, - "z": 10.0 - }, - "config": { - "type": "MaterialHole", - "size_x": 16, - "size_y": 16, - "size_z": 16, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "material_hole", - "model": null, - "barcode": null - }, - "data": { - "diameter": 20, - "depth": 10, - "max_sheets": 1, - "info": null - } - }, - { - "id": "liaopan6_materialhole_1_3", - "name": "liaopan6_materialhole_1_3", - "sample_id": null, - "children": [], - "parent": "liaopan6", - "type": "container", - "class": "", - "position": { - "x": 36.0, - "y": 2.0, - "z": 10.0 - }, - "config": { - "type": "MaterialHole", - "size_x": 16, - "size_y": 16, - "size_z": 16, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "material_hole", - "model": null, - "barcode": null - }, - "data": { - "diameter": 20, - "depth": 10, - "max_sheets": 1, - "info": null - } - }, - { - "id": "liaopan6_materialhole_2_0", - "name": "liaopan6_materialhole_2_0", - "sample_id": null, - "children": [], - "parent": "liaopan6", - "type": "container", - "class": "", - "position": { - "x": 60.0, - "y": 74.0, - "z": 10.0 - }, - "config": { - "type": "MaterialHole", - "size_x": 16, - "size_y": 16, - "size_z": 16, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "material_hole", - "model": null, - "barcode": null - }, - "data": { - "diameter": 20, - "depth": 10, - "max_sheets": 1, - "info": null - } - }, - { - "id": "liaopan6_materialhole_2_1", - "name": "liaopan6_materialhole_2_1", - "sample_id": null, - "children": [], - "parent": "liaopan6", - "type": "container", - "class": "", - "position": { - "x": 60.0, - "y": 50.0, - "z": 10.0 - }, - "config": { - "type": "MaterialHole", - "size_x": 16, - "size_y": 16, - "size_z": 16, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "material_hole", - "model": null, - "barcode": null - }, - "data": { - "diameter": 20, - "depth": 10, - "max_sheets": 1, - "info": null - } - }, - { - "id": "liaopan6_materialhole_2_2", - "name": "liaopan6_materialhole_2_2", - "sample_id": null, - "children": [], - "parent": "liaopan6", - "type": "container", - "class": "", - "position": { - "x": 60.0, - "y": 26.0, - "z": 10.0 - }, - "config": { - "type": "MaterialHole", - "size_x": 16, - "size_y": 16, - "size_z": 16, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "material_hole", - "model": null, - "barcode": null - }, - "data": { - "diameter": 20, - "depth": 10, - "max_sheets": 1, - "info": null - } - }, - { - "id": "liaopan6_materialhole_2_3", - "name": "liaopan6_materialhole_2_3", - "sample_id": null, - "children": [], - "parent": "liaopan6", - "type": "container", - "class": "", - "position": { - "x": 60.0, - "y": 2.0, - "z": 10.0 - }, - "config": { - "type": "MaterialHole", - "size_x": 16, - "size_y": 16, - "size_z": 16, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "material_hole", - "model": null, - "barcode": null - }, - "data": { - "diameter": 20, - "depth": 10, - "max_sheets": 1, - "info": null - } - }, - { - "id": "liaopan6_materialhole_3_0", - "name": "liaopan6_materialhole_3_0", - "sample_id": null, - "children": [], - "parent": "liaopan6", - "type": "container", - "class": "", - "position": { - "x": 84.0, - "y": 74.0, - "z": 10.0 - }, - "config": { - "type": "MaterialHole", - "size_x": 16, - "size_y": 16, - "size_z": 16, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "material_hole", - "model": null, - "barcode": null - }, - "data": { - "diameter": 20, - "depth": 10, - "max_sheets": 1, - "info": null - } - }, - { - "id": "liaopan6_materialhole_3_1", - "name": "liaopan6_materialhole_3_1", - "sample_id": null, - "children": [], - "parent": "liaopan6", - "type": "container", - "class": "", - "position": { - "x": 84.0, - "y": 50.0, - "z": 10.0 - }, - "config": { - "type": "MaterialHole", - "size_x": 16, - "size_y": 16, - "size_z": 16, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "material_hole", - "model": null, - "barcode": null - }, - "data": { - "diameter": 20, - "depth": 10, - "max_sheets": 1, - "info": null - } - }, - { - "id": "liaopan6_materialhole_3_2", - "name": "liaopan6_materialhole_3_2", - "sample_id": null, - "children": [], - "parent": "liaopan6", - "type": "container", - "class": "", - "position": { - "x": 84.0, - "y": 26.0, - "z": 10.0 - }, - "config": { - "type": "MaterialHole", - "size_x": 16, - "size_y": 16, - "size_z": 16, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "material_hole", - "model": null, - "barcode": null - }, - "data": { - "diameter": 20, - "depth": 10, - "max_sheets": 1, - "info": null - } - }, - { - "id": "liaopan6_materialhole_3_3", - "name": "liaopan6_materialhole_3_3", - "sample_id": null, - "children": [], - "parent": "liaopan6", - "type": "container", - "class": "", - "position": { - "x": 84.0, - "y": 2.0, - "z": 10.0 - }, - "config": { - "type": "MaterialHole", - "size_x": 16, - "size_y": 16, - "size_z": 16, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "material_hole", - "model": null, - "barcode": null - }, - "data": { - "diameter": 20, - "depth": 10, - "max_sheets": 1, - "info": null - } - }, - { - "id": "bottle_rack_3x4", - "name": "bottle_rack_3x4", - "sample_id": null, - "children": [ - "sheet_3x4_0", - "sheet_3x4_1", - "sheet_3x4_2", - "sheet_3x4_3", - "sheet_3x4_4", - "sheet_3x4_5", - "sheet_3x4_6", - "sheet_3x4_7", - "sheet_3x4_8", - "sheet_3x4_9", - "sheet_3x4_10", - "sheet_3x4_11" - ], - "parent": "coin_cell_deck", - "type": "container", - "class": "", - "position": { - "x": 100, - "y": 200, - "z": 0 - }, - "config": { - "type": "BottleRack", - "size_x": 210.0, - "size_y": 140.0, - "size_z": 100.0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "bottle_rack", - "model": null, - "barcode": null, - "num_items_x": 3, - "num_items_y": 4, - "position_spacing": 35.0, - "orientation": "vertical", - "padding_x": 20.0, - "padding_y": 20.0 - }, - "data": { - "bottle_diameter": 30.0, - "bottle_height": 100.0, - "position_spacing": 35.0, - "name_to_index": {} - } - }, - { - "id": "sheet_3x4_0", - "name": "sheet_3x4_0", - "sample_id": null, - "children": [], - "parent": "bottle_rack_3x4", - "type": "container", - "class": "", - "position": { - "x": 20.0, - "y": 20.0, - "z": 0 - }, - "config": { - "type": "ElectrodeSheet", - "size_x": 12, - "size_y": 12, - "size_z": 0.1, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "electrode_sheet", - "model": null, - "barcode": null - }, - "data": { - "diameter": 14, - "thickness": 0.1, - "mass": 0.5, - "material_type": "copper", - "info": null - } - }, - { - "id": "sheet_3x4_1", - "name": "sheet_3x4_1", - "sample_id": null, - "children": [], - "parent": "bottle_rack_3x4", - "type": "container", - "class": "", - "position": { - "x": 20.0, - "y": 55.0, - "z": 0 - }, - "config": { - "type": "ElectrodeSheet", - "size_x": 12, - "size_y": 12, - "size_z": 0.1, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "electrode_sheet", - "model": null, - "barcode": null - }, - "data": { - "diameter": 14, - "thickness": 0.1, - "mass": 0.5, - "material_type": "copper", - "info": null - } - }, - { - "id": "sheet_3x4_2", - "name": "sheet_3x4_2", - "sample_id": null, - "children": [], - "parent": "bottle_rack_3x4", - "type": "container", - "class": "", - "position": { - "x": 20.0, - "y": 90.0, - "z": 0 - }, - "config": { - "type": "ElectrodeSheet", - "size_x": 12, - "size_y": 12, - "size_z": 0.1, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "electrode_sheet", - "model": null, - "barcode": null - }, - "data": { - "diameter": 14, - "thickness": 0.1, - "mass": 0.5, - "material_type": "copper", - "info": null - } - }, - { - "id": "sheet_3x4_3", - "name": "sheet_3x4_3", - "sample_id": null, - "children": [], - "parent": "bottle_rack_3x4", - "type": "container", - "class": "", - "position": { - "x": 55.0, - "y": 20.0, - "z": 0 - }, - "config": { - "type": "ElectrodeSheet", - "size_x": 12, - "size_y": 12, - "size_z": 0.1, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "electrode_sheet", - "model": null, - "barcode": null - }, - "data": { - "diameter": 14, - "thickness": 0.1, - "mass": 0.5, - "material_type": "copper", - "info": null - } - }, - { - "id": "sheet_3x4_4", - "name": "sheet_3x4_4", - "sample_id": null, - "children": [], - "parent": "bottle_rack_3x4", - "type": "container", - "class": "", - "position": { - "x": 55.0, - "y": 55.0, - "z": 0 - }, - "config": { - "type": "ElectrodeSheet", - "size_x": 12, - "size_y": 12, - "size_z": 0.1, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "electrode_sheet", - "model": null, - "barcode": null - }, - "data": { - "diameter": 14, - "thickness": 0.1, - "mass": 0.5, - "material_type": "copper", - "info": null - } - }, - { - "id": "sheet_3x4_5", - "name": "sheet_3x4_5", - "sample_id": null, - "children": [], - "parent": "bottle_rack_3x4", - "type": "container", - "class": "", - "position": { - "x": 55.0, - "y": 90.0, - "z": 0 - }, - "config": { - "type": "ElectrodeSheet", - "size_x": 12, - "size_y": 12, - "size_z": 0.1, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "electrode_sheet", - "model": null, - "barcode": null - }, - "data": { - "diameter": 14, - "thickness": 0.1, - "mass": 0.5, - "material_type": "copper", - "info": null - } - }, - { - "id": "sheet_3x4_6", - "name": "sheet_3x4_6", - "sample_id": null, - "children": [], - "parent": "bottle_rack_3x4", - "type": "container", - "class": "", - "position": { - "x": 90.0, - "y": 20.0, - "z": 0 - }, - "config": { - "type": "ElectrodeSheet", - "size_x": 12, - "size_y": 12, - "size_z": 0.1, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "electrode_sheet", - "model": null, - "barcode": null - }, - "data": { - "diameter": 14, - "thickness": 0.1, - "mass": 0.5, - "material_type": "copper", - "info": null - } - }, - { - "id": "sheet_3x4_7", - "name": "sheet_3x4_7", - "sample_id": null, - "children": [], - "parent": "bottle_rack_3x4", - "type": "container", - "class": "", - "position": { - "x": 90.0, - "y": 55.0, - "z": 0 - }, - "config": { - "type": "ElectrodeSheet", - "size_x": 12, - "size_y": 12, - "size_z": 0.1, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "electrode_sheet", - "model": null, - "barcode": null - }, - "data": { - "diameter": 14, - "thickness": 0.1, - "mass": 0.5, - "material_type": "copper", - "info": null - } - }, - { - "id": "sheet_3x4_8", - "name": "sheet_3x4_8", - "sample_id": null, - "children": [], - "parent": "bottle_rack_3x4", - "type": "container", - "class": "", - "position": { - "x": 90.0, - "y": 90.0, - "z": 0 - }, - "config": { - "type": "ElectrodeSheet", - "size_x": 12, - "size_y": 12, - "size_z": 0.1, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "electrode_sheet", - "model": null, - "barcode": null - }, - "data": { - "diameter": 14, - "thickness": 0.1, - "mass": 0.5, - "material_type": "copper", - "info": null - } - }, - { - "id": "sheet_3x4_9", - "name": "sheet_3x4_9", - "sample_id": null, - "children": [], - "parent": "bottle_rack_3x4", - "type": "container", - "class": "", - "position": { - "x": 125.0, - "y": 20.0, - "z": 0 - }, - "config": { - "type": "ElectrodeSheet", - "size_x": 12, - "size_y": 12, - "size_z": 0.1, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "electrode_sheet", - "model": null, - "barcode": null - }, - "data": { - "diameter": 14, - "thickness": 0.1, - "mass": 0.5, - "material_type": "copper", - "info": null - } - }, - { - "id": "sheet_3x4_10", - "name": "sheet_3x4_10", - "sample_id": null, - "children": [], - "parent": "bottle_rack_3x4", - "type": "container", - "class": "", - "position": { - "x": 125.0, - "y": 55.0, - "z": 0 - }, - "config": { - "type": "ElectrodeSheet", - "size_x": 12, - "size_y": 12, - "size_z": 0.1, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "electrode_sheet", - "model": null, - "barcode": null - }, - "data": { - "diameter": 14, - "thickness": 0.1, - "mass": 0.5, - "material_type": "copper", - "info": null - } - }, - { - "id": "sheet_3x4_11", - "name": "sheet_3x4_11", - "sample_id": null, - "children": [], - "parent": "bottle_rack_3x4", - "type": "container", - "class": "", - "position": { - "x": 125.0, - "y": 90.0, - "z": 0 - }, - "config": { - "type": "ElectrodeSheet", - "size_x": 12, - "size_y": 12, - "size_z": 0.1, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "electrode_sheet", - "model": null, - "barcode": null - }, - "data": { - "diameter": 14, - "thickness": 0.1, - "mass": 0.5, - "material_type": "copper", - "info": null - } - }, - { - "id": "bottle_rack_6x2", - "name": "bottle_rack_6x2", - "sample_id": null, - "children": [ - "sheet_6x2_0", - "sheet_6x2_1", - "sheet_6x2_2", - "sheet_6x2_3", - "sheet_6x2_4", - "sheet_6x2_5", - "sheet_6x2_6", - "sheet_6x2_7", - "sheet_6x2_8", - "sheet_6x2_9", - "sheet_6x2_10", - "sheet_6x2_11" - ], - "parent": "coin_cell_deck", - "type": "container", - "class": "", - "position": { - "x": 300, - "y": 300, - "z": 0 - }, - "config": { - "type": "BottleRack", - "size_x": 120.0, - "size_y": 250.0, - "size_z": 100.0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "bottle_rack", - "model": null, - "barcode": null, - "num_items_x": 6, - "num_items_y": 2, - "position_spacing": 35.0, - "orientation": "vertical", - "padding_x": 20.0, - "padding_y": 20.0 - }, - "data": { - "bottle_diameter": 30.0, - "bottle_height": 100.0, - "position_spacing": 35.0, - "name_to_index": {} - } - }, - { - "id": "sheet_6x2_0", - "name": "sheet_6x2_0", - "sample_id": null, - "children": [], - "parent": "bottle_rack_6x2", - "type": "container", - "class": "", - "position": { - "x": 20.0, - "y": 20.0, - "z": 0 - }, - "config": { - "type": "ElectrodeSheet", - "size_x": 12, - "size_y": 12, - "size_z": 0.1, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "electrode_sheet", - "model": null, - "barcode": null - }, - "data": { - "diameter": 14, - "thickness": 0.1, - "mass": 0.5, - "material_type": "copper", - "info": null - } - }, - { - "id": "sheet_6x2_1", - "name": "sheet_6x2_1", - "sample_id": null, - "children": [], - "parent": "bottle_rack_6x2", - "type": "container", - "class": "", - "position": { - "x": 20.0, - "y": 55.0, - "z": 0 - }, - "config": { - "type": "ElectrodeSheet", - "size_x": 12, - "size_y": 12, - "size_z": 0.1, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "electrode_sheet", - "model": null, - "barcode": null - }, - "data": { - "diameter": 14, - "thickness": 0.1, - "mass": 0.5, - "material_type": "copper", - "info": null - } - }, - { - "id": "sheet_6x2_2", - "name": "sheet_6x2_2", - "sample_id": null, - "children": [], - "parent": "bottle_rack_6x2", - "type": "container", - "class": "", - "position": { - "x": 20.0, - "y": 90.0, - "z": 0 - }, - "config": { - "type": "ElectrodeSheet", - "size_x": 12, - "size_y": 12, - "size_z": 0.1, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "electrode_sheet", - "model": null, - "barcode": null - }, - "data": { - "diameter": 14, - "thickness": 0.1, - "mass": 0.5, - "material_type": "copper", - "info": null - } - }, - { - "id": "sheet_6x2_3", - "name": "sheet_6x2_3", - "sample_id": null, - "children": [], - "parent": "bottle_rack_6x2", - "type": "container", - "class": "", - "position": { - "x": 20.0, - "y": 125.0, - "z": 0 - }, - "config": { - "type": "ElectrodeSheet", - "size_x": 12, - "size_y": 12, - "size_z": 0.1, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "electrode_sheet", - "model": null, - "barcode": null - }, - "data": { - "diameter": 14, - "thickness": 0.1, - "mass": 0.5, - "material_type": "copper", - "info": null - } - }, - { - "id": "sheet_6x2_4", - "name": "sheet_6x2_4", - "sample_id": null, - "children": [], - "parent": "bottle_rack_6x2", - "type": "container", - "class": "", - "position": { - "x": 20.0, - "y": 160.0, - "z": 0 - }, - "config": { - "type": "ElectrodeSheet", - "size_x": 12, - "size_y": 12, - "size_z": 0.1, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "electrode_sheet", - "model": null, - "barcode": null - }, - "data": { - "diameter": 14, - "thickness": 0.1, - "mass": 0.5, - "material_type": "copper", - "info": null - } - }, - { - "id": "sheet_6x2_5", - "name": "sheet_6x2_5", - "sample_id": null, - "children": [], - "parent": "bottle_rack_6x2", - "type": "container", - "class": "", - "position": { - "x": 20.0, - "y": 195.0, - "z": 0 - }, - "config": { - "type": "ElectrodeSheet", - "size_x": 12, - "size_y": 12, - "size_z": 0.1, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "electrode_sheet", - "model": null, - "barcode": null - }, - "data": { - "diameter": 14, - "thickness": 0.1, - "mass": 0.5, - "material_type": "copper", - "info": null - } - }, - { - "id": "sheet_6x2_6", - "name": "sheet_6x2_6", - "sample_id": null, - "children": [], - "parent": "bottle_rack_6x2", - "type": "container", - "class": "", - "position": { - "x": 55.0, - "y": 20.0, - "z": 0 - }, - "config": { - "type": "ElectrodeSheet", - "size_x": 12, - "size_y": 12, - "size_z": 0.1, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "electrode_sheet", - "model": null, - "barcode": null - }, - "data": { - "diameter": 14, - "thickness": 0.1, - "mass": 0.5, - "material_type": "copper", - "info": null - } - }, - { - "id": "sheet_6x2_7", - "name": "sheet_6x2_7", - "sample_id": null, - "children": [], - "parent": "bottle_rack_6x2", - "type": "container", - "class": "", - "position": { - "x": 55.0, - "y": 55.0, - "z": 0 - }, - "config": { - "type": "ElectrodeSheet", - "size_x": 12, - "size_y": 12, - "size_z": 0.1, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "electrode_sheet", - "model": null, - "barcode": null - }, - "data": { - "diameter": 14, - "thickness": 0.1, - "mass": 0.5, - "material_type": "copper", - "info": null - } - }, - { - "id": "sheet_6x2_8", - "name": "sheet_6x2_8", - "sample_id": null, - "children": [], - "parent": "bottle_rack_6x2", - "type": "container", - "class": "", - "position": { - "x": 55.0, - "y": 90.0, - "z": 0 - }, - "config": { - "type": "ElectrodeSheet", - "size_x": 12, - "size_y": 12, - "size_z": 0.1, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "electrode_sheet", - "model": null, - "barcode": null - }, - "data": { - "diameter": 14, - "thickness": 0.1, - "mass": 0.5, - "material_type": "copper", - "info": null - } - }, - { - "id": "sheet_6x2_9", - "name": "sheet_6x2_9", - "sample_id": null, - "children": [], - "parent": "bottle_rack_6x2", - "type": "container", - "class": "", - "position": { - "x": 55.0, - "y": 125.0, - "z": 0 - }, - "config": { - "type": "ElectrodeSheet", - "size_x": 12, - "size_y": 12, - "size_z": 0.1, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "electrode_sheet", - "model": null, - "barcode": null - }, - "data": { - "diameter": 14, - "thickness": 0.1, - "mass": 0.5, - "material_type": "copper", - "info": null - } - }, - { - "id": "sheet_6x2_10", - "name": "sheet_6x2_10", - "sample_id": null, - "children": [], - "parent": "bottle_rack_6x2", - "type": "container", - "class": "", - "position": { - "x": 55.0, - "y": 160.0, - "z": 0 - }, - "config": { - "type": "ElectrodeSheet", - "size_x": 12, - "size_y": 12, - "size_z": 0.1, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "electrode_sheet", - "model": null, - "barcode": null - }, - "data": { - "diameter": 14, - "thickness": 0.1, - "mass": 0.5, - "material_type": "copper", - "info": null - } - }, - { - "id": "sheet_6x2_11", - "name": "sheet_6x2_11", - "sample_id": null, - "children": [], - "parent": "bottle_rack_6x2", - "type": "container", - "class": "", - "position": { - "x": 55.0, - "y": 195.0, - "z": 0 - }, - "config": { - "type": "ElectrodeSheet", - "size_x": 12, - "size_y": 12, - "size_z": 0.1, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "electrode_sheet", - "model": null, - "barcode": null - }, - "data": { - "diameter": 14, - "thickness": 0.1, - "mass": 0.5, - "material_type": "copper", - "info": null - } - }, - { - "id": "bottle_rack_6x2_2", - "name": "bottle_rack_6x2_2", - "sample_id": null, - "children": [], - "parent": "coin_cell_deck", - "type": "container", - "class": "", - "position": { - "x": 430, - "y": 300, - "z": 0 - }, - "config": { - "type": "BottleRack", - "size_x": 120.0, - "size_y": 250.0, - "size_z": 100.0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "bottle_rack", - "model": null, - "barcode": null, - "num_items_x": 6, - "num_items_y": 2, - "position_spacing": 35.0, - "orientation": "vertical", - "padding_x": 20.0, - "padding_y": 20.0 - }, - "data": { - "bottle_diameter": 30.0, - "bottle_height": 100.0, - "position_spacing": 35.0, - "name_to_index": {} - } - }, - { - "id": "tip_box_64", - "name": "tip_box_64", - "sample_id": null, - "children": [ - "tip_box_64_tipspot_0_0", - "tip_box_64_tipspot_0_1", - "tip_box_64_tipspot_0_2", - "tip_box_64_tipspot_0_3", - "tip_box_64_tipspot_0_4", - "tip_box_64_tipspot_0_5", - "tip_box_64_tipspot_0_6", - "tip_box_64_tipspot_0_7", - "tip_box_64_tipspot_1_0", - "tip_box_64_tipspot_1_1", - "tip_box_64_tipspot_1_2", - "tip_box_64_tipspot_1_3", - "tip_box_64_tipspot_1_4", - "tip_box_64_tipspot_1_5", - "tip_box_64_tipspot_1_6", - "tip_box_64_tipspot_1_7", - "tip_box_64_tipspot_2_0", - "tip_box_64_tipspot_2_1", - "tip_box_64_tipspot_2_2", - "tip_box_64_tipspot_2_3", - "tip_box_64_tipspot_2_4", - "tip_box_64_tipspot_2_5", - "tip_box_64_tipspot_2_6", - "tip_box_64_tipspot_2_7", - "tip_box_64_tipspot_3_0", - "tip_box_64_tipspot_3_1", - "tip_box_64_tipspot_3_2", - "tip_box_64_tipspot_3_3", - "tip_box_64_tipspot_3_4", - "tip_box_64_tipspot_3_5", - "tip_box_64_tipspot_3_6", - "tip_box_64_tipspot_3_7", - "tip_box_64_tipspot_4_0", - "tip_box_64_tipspot_4_1", - "tip_box_64_tipspot_4_2", - "tip_box_64_tipspot_4_3", - "tip_box_64_tipspot_4_4", - "tip_box_64_tipspot_4_5", - "tip_box_64_tipspot_4_6", - "tip_box_64_tipspot_4_7", - "tip_box_64_tipspot_5_0", - "tip_box_64_tipspot_5_1", - "tip_box_64_tipspot_5_2", - "tip_box_64_tipspot_5_3", - "tip_box_64_tipspot_5_4", - "tip_box_64_tipspot_5_5", - "tip_box_64_tipspot_5_6", - "tip_box_64_tipspot_5_7", - "tip_box_64_tipspot_6_0", - "tip_box_64_tipspot_6_1", - "tip_box_64_tipspot_6_2", - "tip_box_64_tipspot_6_3", - "tip_box_64_tipspot_6_4", - "tip_box_64_tipspot_6_5", - "tip_box_64_tipspot_6_6", - "tip_box_64_tipspot_6_7", - "tip_box_64_tipspot_7_0", - "tip_box_64_tipspot_7_1", - "tip_box_64_tipspot_7_2", - "tip_box_64_tipspot_7_3", - "tip_box_64_tipspot_7_4", - "tip_box_64_tipspot_7_5", - "tip_box_64_tipspot_7_6", - "tip_box_64_tipspot_7_7" - ], - "parent": "coin_cell_deck", - "type": "container", - "class": "", - "position": { - "x": 300, - "y": 100, - "z": 0 - }, - "config": { - "type": "TipBox64", - "size_x": 127.8, - "size_y": 85.5, - "size_z": 60.0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "tip_box_64", - "model": null, - "barcode": null, - "ordering": { - "A1": "tip_box_64_tipspot_0_0", - "B1": "tip_box_64_tipspot_0_1", - "C1": "tip_box_64_tipspot_0_2", - "D1": "tip_box_64_tipspot_0_3", - "E1": "tip_box_64_tipspot_0_4", - "F1": "tip_box_64_tipspot_0_5", - "G1": "tip_box_64_tipspot_0_6", - "H1": "tip_box_64_tipspot_0_7", - "A2": "tip_box_64_tipspot_1_0", - "B2": "tip_box_64_tipspot_1_1", - "C2": "tip_box_64_tipspot_1_2", - "D2": "tip_box_64_tipspot_1_3", - "E2": "tip_box_64_tipspot_1_4", - "F2": "tip_box_64_tipspot_1_5", - "G2": "tip_box_64_tipspot_1_6", - "H2": "tip_box_64_tipspot_1_7", - "A3": "tip_box_64_tipspot_2_0", - "B3": "tip_box_64_tipspot_2_1", - "C3": "tip_box_64_tipspot_2_2", - "D3": "tip_box_64_tipspot_2_3", - "E3": "tip_box_64_tipspot_2_4", - "F3": "tip_box_64_tipspot_2_5", - "G3": "tip_box_64_tipspot_2_6", - "H3": "tip_box_64_tipspot_2_7", - "A4": "tip_box_64_tipspot_3_0", - "B4": "tip_box_64_tipspot_3_1", - "C4": "tip_box_64_tipspot_3_2", - "D4": "tip_box_64_tipspot_3_3", - "E4": "tip_box_64_tipspot_3_4", - "F4": "tip_box_64_tipspot_3_5", - "G4": "tip_box_64_tipspot_3_6", - "H4": "tip_box_64_tipspot_3_7", - "A5": "tip_box_64_tipspot_4_0", - "B5": "tip_box_64_tipspot_4_1", - "C5": "tip_box_64_tipspot_4_2", - "D5": "tip_box_64_tipspot_4_3", - "E5": "tip_box_64_tipspot_4_4", - "F5": "tip_box_64_tipspot_4_5", - "G5": "tip_box_64_tipspot_4_6", - "H5": "tip_box_64_tipspot_4_7", - "A6": "tip_box_64_tipspot_5_0", - "B6": "tip_box_64_tipspot_5_1", - "C6": "tip_box_64_tipspot_5_2", - "D6": "tip_box_64_tipspot_5_3", - "E6": "tip_box_64_tipspot_5_4", - "F6": "tip_box_64_tipspot_5_5", - "G6": "tip_box_64_tipspot_5_6", - "H6": "tip_box_64_tipspot_5_7", - "A7": "tip_box_64_tipspot_6_0", - "B7": "tip_box_64_tipspot_6_1", - "C7": "tip_box_64_tipspot_6_2", - "D7": "tip_box_64_tipspot_6_3", - "E7": "tip_box_64_tipspot_6_4", - "F7": "tip_box_64_tipspot_6_5", - "G7": "tip_box_64_tipspot_6_6", - "H7": "tip_box_64_tipspot_6_7", - "A8": "tip_box_64_tipspot_7_0", - "B8": "tip_box_64_tipspot_7_1", - "C8": "tip_box_64_tipspot_7_2", - "D8": "tip_box_64_tipspot_7_3", - "E8": "tip_box_64_tipspot_7_4", - "F8": "tip_box_64_tipspot_7_5", - "G8": "tip_box_64_tipspot_7_6", - "H8": "tip_box_64_tipspot_7_7" - }, - "num_items_x": 8, - "num_items_y": 8, - "dx": 8.0, - "dy": 8.0, - "item_dx": 9.0, - "item_dy": 9.0 - }, - "data": {} - }, - { - "id": "tip_box_64_tipspot_0_0", - "name": "tip_box_64_tipspot_0_0", - "sample_id": null, - "children": [], - "parent": "tip_box_64", - "type": "container", - "class": "", - "position": { - "x": 8.0, - "y": 71.0, - "z": 0.0 - }, - "config": { - "type": "TipSpot", - "size_x": 10, - "size_y": 10, - "size_z": 0.0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "tip_spot", - "model": null, - "barcode": null, - "prototype_tip": { - "type": "Tip", - "total_tip_length": 20.0, - "has_filter": false, - "maximal_volume": 1000, - "fitting_depth": 8.0 - } - }, - "data": { - "tip": { - "type": "Tip", - "total_tip_length": 20.0, - "has_filter": false, - "maximal_volume": 1000, - "fitting_depth": 8.0 - }, - "tip_state": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - }, - "pending_tip": { - "type": "Tip", - "total_tip_length": 20.0, - "has_filter": false, - "maximal_volume": 1000, - "fitting_depth": 8.0 - } - } - }, - { - "id": "tip_box_64_tipspot_0_1", - "name": "tip_box_64_tipspot_0_1", - "sample_id": null, - "children": [], - "parent": "tip_box_64", - "type": "container", - "class": "", - "position": { - "x": 8.0, - "y": 62.0, - "z": 0.0 - }, - "config": { - "type": "TipSpot", - "size_x": 10, - "size_y": 10, - "size_z": 0.0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "tip_spot", - "model": null, - "barcode": null, - "prototype_tip": { - "type": "Tip", - "total_tip_length": 20.0, - "has_filter": false, - "maximal_volume": 1000, - "fitting_depth": 8.0 - } - }, - "data": { - "tip": { - "type": "Tip", - "total_tip_length": 20.0, - "has_filter": false, - "maximal_volume": 1000, - "fitting_depth": 8.0 - }, - "tip_state": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - }, - "pending_tip": { - "type": "Tip", - "total_tip_length": 20.0, - "has_filter": false, - "maximal_volume": 1000, - "fitting_depth": 8.0 - } - } - }, - { - "id": "tip_box_64_tipspot_0_2", - "name": "tip_box_64_tipspot_0_2", - "sample_id": null, - "children": [], - "parent": "tip_box_64", - "type": "container", - "class": "", - "position": { - "x": 8.0, - "y": 53.0, - "z": 0.0 - }, - "config": { - "type": "TipSpot", - "size_x": 10, - "size_y": 10, - "size_z": 0.0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "tip_spot", - "model": null, - "barcode": null, - "prototype_tip": { - "type": "Tip", - "total_tip_length": 20.0, - "has_filter": false, - "maximal_volume": 1000, - "fitting_depth": 8.0 - } - }, - "data": { - "tip": { - "type": "Tip", - "total_tip_length": 20.0, - "has_filter": false, - "maximal_volume": 1000, - "fitting_depth": 8.0 - }, - "tip_state": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - }, - "pending_tip": { - "type": "Tip", - "total_tip_length": 20.0, - "has_filter": false, - "maximal_volume": 1000, - "fitting_depth": 8.0 - } - } - }, - { - "id": "tip_box_64_tipspot_0_3", - "name": "tip_box_64_tipspot_0_3", - "sample_id": null, - "children": [], - "parent": "tip_box_64", - "type": "container", - "class": "", - "position": { - "x": 8.0, - "y": 44.0, - "z": 0.0 - }, - "config": { - "type": "TipSpot", - "size_x": 10, - "size_y": 10, - "size_z": 0.0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "tip_spot", - "model": null, - "barcode": null, - "prototype_tip": { - "type": "Tip", - "total_tip_length": 20.0, - "has_filter": false, - "maximal_volume": 1000, - "fitting_depth": 8.0 - } - }, - "data": { - "tip": { - "type": "Tip", - "total_tip_length": 20.0, - "has_filter": false, - "maximal_volume": 1000, - "fitting_depth": 8.0 - }, - "tip_state": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - }, - "pending_tip": { - "type": "Tip", - "total_tip_length": 20.0, - "has_filter": false, - "maximal_volume": 1000, - "fitting_depth": 8.0 - } - } - }, - { - "id": "tip_box_64_tipspot_0_4", - "name": "tip_box_64_tipspot_0_4", - "sample_id": null, - "children": [], - "parent": "tip_box_64", - "type": "container", - "class": "", - "position": { - "x": 8.0, - "y": 35.0, - "z": 0.0 - }, - "config": { - "type": "TipSpot", - "size_x": 10, - "size_y": 10, - "size_z": 0.0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "tip_spot", - "model": null, - "barcode": null, - "prototype_tip": { - "type": "Tip", - "total_tip_length": 20.0, - "has_filter": false, - "maximal_volume": 1000, - "fitting_depth": 8.0 - } - }, - "data": { - "tip": { - "type": "Tip", - "total_tip_length": 20.0, - "has_filter": false, - "maximal_volume": 1000, - "fitting_depth": 8.0 - }, - "tip_state": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - }, - "pending_tip": { - "type": "Tip", - "total_tip_length": 20.0, - "has_filter": false, - "maximal_volume": 1000, - "fitting_depth": 8.0 - } - } - }, - { - "id": "tip_box_64_tipspot_0_5", - "name": "tip_box_64_tipspot_0_5", - "sample_id": null, - "children": [], - "parent": "tip_box_64", - "type": "container", - "class": "", - "position": { - "x": 8.0, - "y": 26.0, - "z": 0.0 - }, - "config": { - "type": "TipSpot", - "size_x": 10, - "size_y": 10, - "size_z": 0.0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "tip_spot", - "model": null, - "barcode": null, - "prototype_tip": { - "type": "Tip", - "total_tip_length": 20.0, - "has_filter": false, - "maximal_volume": 1000, - "fitting_depth": 8.0 - } - }, - "data": { - "tip": { - "type": "Tip", - "total_tip_length": 20.0, - "has_filter": false, - "maximal_volume": 1000, - "fitting_depth": 8.0 - }, - "tip_state": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - }, - "pending_tip": { - "type": "Tip", - "total_tip_length": 20.0, - "has_filter": false, - "maximal_volume": 1000, - "fitting_depth": 8.0 - } - } - }, - { - "id": "tip_box_64_tipspot_0_6", - "name": "tip_box_64_tipspot_0_6", - "sample_id": null, - "children": [], - "parent": "tip_box_64", - "type": "container", - "class": "", - "position": { - "x": 8.0, - "y": 17.0, - "z": 0.0 - }, - "config": { - "type": "TipSpot", - "size_x": 10, - "size_y": 10, - "size_z": 0.0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "tip_spot", - "model": null, - "barcode": null, - "prototype_tip": { - "type": "Tip", - "total_tip_length": 20.0, - "has_filter": false, - "maximal_volume": 1000, - "fitting_depth": 8.0 - } - }, - "data": { - "tip": { - "type": "Tip", - "total_tip_length": 20.0, - "has_filter": false, - "maximal_volume": 1000, - "fitting_depth": 8.0 - }, - "tip_state": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - }, - "pending_tip": { - "type": "Tip", - "total_tip_length": 20.0, - "has_filter": false, - "maximal_volume": 1000, - "fitting_depth": 8.0 - } - } - }, - { - "id": "tip_box_64_tipspot_0_7", - "name": "tip_box_64_tipspot_0_7", - "sample_id": null, - "children": [], - "parent": "tip_box_64", - "type": "container", - "class": "", - "position": { - "x": 8.0, - "y": 8.0, - "z": 0.0 - }, - "config": { - "type": "TipSpot", - "size_x": 10, - "size_y": 10, - "size_z": 0.0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "tip_spot", - "model": null, - "barcode": null, - "prototype_tip": { - "type": "Tip", - "total_tip_length": 20.0, - "has_filter": false, - "maximal_volume": 1000, - "fitting_depth": 8.0 - } - }, - "data": { - "tip": { - "type": "Tip", - "total_tip_length": 20.0, - "has_filter": false, - "maximal_volume": 1000, - "fitting_depth": 8.0 - }, - "tip_state": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - }, - "pending_tip": { - "type": "Tip", - "total_tip_length": 20.0, - "has_filter": false, - "maximal_volume": 1000, - "fitting_depth": 8.0 - } - } - }, - { - "id": "tip_box_64_tipspot_1_0", - "name": "tip_box_64_tipspot_1_0", - "sample_id": null, - "children": [], - "parent": "tip_box_64", - "type": "container", - "class": "", - "position": { - "x": 17.0, - "y": 71.0, - "z": 0.0 - }, - "config": { - "type": "TipSpot", - "size_x": 10, - "size_y": 10, - "size_z": 0.0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "tip_spot", - "model": null, - "barcode": null, - "prototype_tip": { - "type": "Tip", - "total_tip_length": 20.0, - "has_filter": false, - "maximal_volume": 1000, - "fitting_depth": 8.0 - } - }, - "data": { - "tip": { - "type": "Tip", - "total_tip_length": 20.0, - "has_filter": false, - "maximal_volume": 1000, - "fitting_depth": 8.0 - }, - "tip_state": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - }, - "pending_tip": { - "type": "Tip", - "total_tip_length": 20.0, - "has_filter": false, - "maximal_volume": 1000, - "fitting_depth": 8.0 - } - } - }, - { - "id": "tip_box_64_tipspot_1_1", - "name": "tip_box_64_tipspot_1_1", - "sample_id": null, - "children": [], - "parent": "tip_box_64", - "type": "container", - "class": "", - "position": { - "x": 17.0, - "y": 62.0, - "z": 0.0 - }, - "config": { - "type": "TipSpot", - "size_x": 10, - "size_y": 10, - "size_z": 0.0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "tip_spot", - "model": null, - "barcode": null, - "prototype_tip": { - "type": "Tip", - "total_tip_length": 20.0, - "has_filter": false, - "maximal_volume": 1000, - "fitting_depth": 8.0 - } - }, - "data": { - "tip": { - "type": "Tip", - "total_tip_length": 20.0, - "has_filter": false, - "maximal_volume": 1000, - "fitting_depth": 8.0 - }, - "tip_state": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - }, - "pending_tip": { - "type": "Tip", - "total_tip_length": 20.0, - "has_filter": false, - "maximal_volume": 1000, - "fitting_depth": 8.0 - } - } - }, - { - "id": "tip_box_64_tipspot_1_2", - "name": "tip_box_64_tipspot_1_2", - "sample_id": null, - "children": [], - "parent": "tip_box_64", - "type": "container", - "class": "", - "position": { - "x": 17.0, - "y": 53.0, - "z": 0.0 - }, - "config": { - "type": "TipSpot", - "size_x": 10, - "size_y": 10, - "size_z": 0.0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "tip_spot", - "model": null, - "barcode": null, - "prototype_tip": { - "type": "Tip", - "total_tip_length": 20.0, - "has_filter": false, - "maximal_volume": 1000, - "fitting_depth": 8.0 - } - }, - "data": { - "tip": { - "type": "Tip", - "total_tip_length": 20.0, - "has_filter": false, - "maximal_volume": 1000, - "fitting_depth": 8.0 - }, - "tip_state": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - }, - "pending_tip": { - "type": "Tip", - "total_tip_length": 20.0, - "has_filter": false, - "maximal_volume": 1000, - "fitting_depth": 8.0 - } - } - }, - { - "id": "tip_box_64_tipspot_1_3", - "name": "tip_box_64_tipspot_1_3", - "sample_id": null, - "children": [], - "parent": "tip_box_64", - "type": "container", - "class": "", - "position": { - "x": 17.0, - "y": 44.0, - "z": 0.0 - }, - "config": { - "type": "TipSpot", - "size_x": 10, - "size_y": 10, - "size_z": 0.0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "tip_spot", - "model": null, - "barcode": null, - "prototype_tip": { - "type": "Tip", - "total_tip_length": 20.0, - "has_filter": false, - "maximal_volume": 1000, - "fitting_depth": 8.0 - } - }, - "data": { - "tip": { - "type": "Tip", - "total_tip_length": 20.0, - "has_filter": false, - "maximal_volume": 1000, - "fitting_depth": 8.0 - }, - "tip_state": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - }, - "pending_tip": { - "type": "Tip", - "total_tip_length": 20.0, - "has_filter": false, - "maximal_volume": 1000, - "fitting_depth": 8.0 - } - } - }, - { - "id": "tip_box_64_tipspot_1_4", - "name": "tip_box_64_tipspot_1_4", - "sample_id": null, - "children": [], - "parent": "tip_box_64", - "type": "container", - "class": "", - "position": { - "x": 17.0, - "y": 35.0, - "z": 0.0 - }, - "config": { - "type": "TipSpot", - "size_x": 10, - "size_y": 10, - "size_z": 0.0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "tip_spot", - "model": null, - "barcode": null, - "prototype_tip": { - "type": "Tip", - "total_tip_length": 20.0, - "has_filter": false, - "maximal_volume": 1000, - "fitting_depth": 8.0 - } - }, - "data": { - "tip": { - "type": "Tip", - "total_tip_length": 20.0, - "has_filter": false, - "maximal_volume": 1000, - "fitting_depth": 8.0 - }, - "tip_state": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - }, - "pending_tip": { - "type": "Tip", - "total_tip_length": 20.0, - "has_filter": false, - "maximal_volume": 1000, - "fitting_depth": 8.0 - } - } - }, - { - "id": "tip_box_64_tipspot_1_5", - "name": "tip_box_64_tipspot_1_5", - "sample_id": null, - "children": [], - "parent": "tip_box_64", - "type": "container", - "class": "", - "position": { - "x": 17.0, - "y": 26.0, - "z": 0.0 - }, - "config": { - "type": "TipSpot", - "size_x": 10, - "size_y": 10, - "size_z": 0.0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "tip_spot", - "model": null, - "barcode": null, - "prototype_tip": { - "type": "Tip", - "total_tip_length": 20.0, - "has_filter": false, - "maximal_volume": 1000, - "fitting_depth": 8.0 - } - }, - "data": { - "tip": { - "type": "Tip", - "total_tip_length": 20.0, - "has_filter": false, - "maximal_volume": 1000, - "fitting_depth": 8.0 - }, - "tip_state": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - }, - "pending_tip": { - "type": "Tip", - "total_tip_length": 20.0, - "has_filter": false, - "maximal_volume": 1000, - "fitting_depth": 8.0 - } - } - }, - { - "id": "tip_box_64_tipspot_1_6", - "name": "tip_box_64_tipspot_1_6", - "sample_id": null, - "children": [], - "parent": "tip_box_64", - "type": "container", - "class": "", - "position": { - "x": 17.0, - "y": 17.0, - "z": 0.0 - }, - "config": { - "type": "TipSpot", - "size_x": 10, - "size_y": 10, - "size_z": 0.0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "tip_spot", - "model": null, - "barcode": null, - "prototype_tip": { - "type": "Tip", - "total_tip_length": 20.0, - "has_filter": false, - "maximal_volume": 1000, - "fitting_depth": 8.0 - } - }, - "data": { - "tip": { - "type": "Tip", - "total_tip_length": 20.0, - "has_filter": false, - "maximal_volume": 1000, - "fitting_depth": 8.0 - }, - "tip_state": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - }, - "pending_tip": { - "type": "Tip", - "total_tip_length": 20.0, - "has_filter": false, - "maximal_volume": 1000, - "fitting_depth": 8.0 - } - } - }, - { - "id": "tip_box_64_tipspot_1_7", - "name": "tip_box_64_tipspot_1_7", - "sample_id": null, - "children": [], - "parent": "tip_box_64", - "type": "container", - "class": "", - "position": { - "x": 17.0, - "y": 8.0, - "z": 0.0 - }, - "config": { - "type": "TipSpot", - "size_x": 10, - "size_y": 10, - "size_z": 0.0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "tip_spot", - "model": null, - "barcode": null, - "prototype_tip": { - "type": "Tip", - "total_tip_length": 20.0, - "has_filter": false, - "maximal_volume": 1000, - "fitting_depth": 8.0 - } - }, - "data": { - "tip": { - "type": "Tip", - "total_tip_length": 20.0, - "has_filter": false, - "maximal_volume": 1000, - "fitting_depth": 8.0 - }, - "tip_state": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - }, - "pending_tip": { - "type": "Tip", - "total_tip_length": 20.0, - "has_filter": false, - "maximal_volume": 1000, - "fitting_depth": 8.0 - } - } - }, - { - "id": "tip_box_64_tipspot_2_0", - "name": "tip_box_64_tipspot_2_0", - "sample_id": null, - "children": [], - "parent": "tip_box_64", - "type": "container", - "class": "", - "position": { - "x": 26.0, - "y": 71.0, - "z": 0.0 - }, - "config": { - "type": "TipSpot", - "size_x": 10, - "size_y": 10, - "size_z": 0.0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "tip_spot", - "model": null, - "barcode": null, - "prototype_tip": { - "type": "Tip", - "total_tip_length": 20.0, - "has_filter": false, - "maximal_volume": 1000, - "fitting_depth": 8.0 - } - }, - "data": { - "tip": { - "type": "Tip", - "total_tip_length": 20.0, - "has_filter": false, - "maximal_volume": 1000, - "fitting_depth": 8.0 - }, - "tip_state": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - }, - "pending_tip": { - "type": "Tip", - "total_tip_length": 20.0, - "has_filter": false, - "maximal_volume": 1000, - "fitting_depth": 8.0 - } - } - }, - { - "id": "tip_box_64_tipspot_2_1", - "name": "tip_box_64_tipspot_2_1", - "sample_id": null, - "children": [], - "parent": "tip_box_64", - "type": "container", - "class": "", - "position": { - "x": 26.0, - "y": 62.0, - "z": 0.0 - }, - "config": { - "type": "TipSpot", - "size_x": 10, - "size_y": 10, - "size_z": 0.0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "tip_spot", - "model": null, - "barcode": null, - "prototype_tip": { - "type": "Tip", - "total_tip_length": 20.0, - "has_filter": false, - "maximal_volume": 1000, - "fitting_depth": 8.0 - } - }, - "data": { - "tip": { - "type": "Tip", - "total_tip_length": 20.0, - "has_filter": false, - "maximal_volume": 1000, - "fitting_depth": 8.0 - }, - "tip_state": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - }, - "pending_tip": { - "type": "Tip", - "total_tip_length": 20.0, - "has_filter": false, - "maximal_volume": 1000, - "fitting_depth": 8.0 - } - } - }, - { - "id": "tip_box_64_tipspot_2_2", - "name": "tip_box_64_tipspot_2_2", - "sample_id": null, - "children": [], - "parent": "tip_box_64", - "type": "container", - "class": "", - "position": { - "x": 26.0, - "y": 53.0, - "z": 0.0 - }, - "config": { - "type": "TipSpot", - "size_x": 10, - "size_y": 10, - "size_z": 0.0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "tip_spot", - "model": null, - "barcode": null, - "prototype_tip": { - "type": "Tip", - "total_tip_length": 20.0, - "has_filter": false, - "maximal_volume": 1000, - "fitting_depth": 8.0 - } - }, - "data": { - "tip": { - "type": "Tip", - "total_tip_length": 20.0, - "has_filter": false, - "maximal_volume": 1000, - "fitting_depth": 8.0 - }, - "tip_state": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - }, - "pending_tip": { - "type": "Tip", - "total_tip_length": 20.0, - "has_filter": false, - "maximal_volume": 1000, - "fitting_depth": 8.0 - } - } - }, - { - "id": "tip_box_64_tipspot_2_3", - "name": "tip_box_64_tipspot_2_3", - "sample_id": null, - "children": [], - "parent": "tip_box_64", - "type": "container", - "class": "", - "position": { - "x": 26.0, - "y": 44.0, - "z": 0.0 - }, - "config": { - "type": "TipSpot", - "size_x": 10, - "size_y": 10, - "size_z": 0.0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "tip_spot", - "model": null, - "barcode": null, - "prototype_tip": { - "type": "Tip", - "total_tip_length": 20.0, - "has_filter": false, - "maximal_volume": 1000, - "fitting_depth": 8.0 - } - }, - "data": { - "tip": { - "type": "Tip", - "total_tip_length": 20.0, - "has_filter": false, - "maximal_volume": 1000, - "fitting_depth": 8.0 - }, - "tip_state": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - }, - "pending_tip": { - "type": "Tip", - "total_tip_length": 20.0, - "has_filter": false, - "maximal_volume": 1000, - "fitting_depth": 8.0 - } - } - }, - { - "id": "tip_box_64_tipspot_2_4", - "name": "tip_box_64_tipspot_2_4", - "sample_id": null, - "children": [], - "parent": "tip_box_64", - "type": "container", - "class": "", - "position": { - "x": 26.0, - "y": 35.0, - "z": 0.0 - }, - "config": { - "type": "TipSpot", - "size_x": 10, - "size_y": 10, - "size_z": 0.0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "tip_spot", - "model": null, - "barcode": null, - "prototype_tip": { - "type": "Tip", - "total_tip_length": 20.0, - "has_filter": false, - "maximal_volume": 1000, - "fitting_depth": 8.0 - } - }, - "data": { - "tip": { - "type": "Tip", - "total_tip_length": 20.0, - "has_filter": false, - "maximal_volume": 1000, - "fitting_depth": 8.0 - }, - "tip_state": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - }, - "pending_tip": { - "type": "Tip", - "total_tip_length": 20.0, - "has_filter": false, - "maximal_volume": 1000, - "fitting_depth": 8.0 - } - } - }, - { - "id": "tip_box_64_tipspot_2_5", - "name": "tip_box_64_tipspot_2_5", - "sample_id": null, - "children": [], - "parent": "tip_box_64", - "type": "container", - "class": "", - "position": { - "x": 26.0, - "y": 26.0, - "z": 0.0 - }, - "config": { - "type": "TipSpot", - "size_x": 10, - "size_y": 10, - "size_z": 0.0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "tip_spot", - "model": null, - "barcode": null, - "prototype_tip": { - "type": "Tip", - "total_tip_length": 20.0, - "has_filter": false, - "maximal_volume": 1000, - "fitting_depth": 8.0 - } - }, - "data": { - "tip": { - "type": "Tip", - "total_tip_length": 20.0, - "has_filter": false, - "maximal_volume": 1000, - "fitting_depth": 8.0 - }, - "tip_state": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - }, - "pending_tip": { - "type": "Tip", - "total_tip_length": 20.0, - "has_filter": false, - "maximal_volume": 1000, - "fitting_depth": 8.0 - } - } - }, - { - "id": "tip_box_64_tipspot_2_6", - "name": "tip_box_64_tipspot_2_6", - "sample_id": null, - "children": [], - "parent": "tip_box_64", - "type": "container", - "class": "", - "position": { - "x": 26.0, - "y": 17.0, - "z": 0.0 - }, - "config": { - "type": "TipSpot", - "size_x": 10, - "size_y": 10, - "size_z": 0.0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "tip_spot", - "model": null, - "barcode": null, - "prototype_tip": { - "type": "Tip", - "total_tip_length": 20.0, - "has_filter": false, - "maximal_volume": 1000, - "fitting_depth": 8.0 - } - }, - "data": { - "tip": { - "type": "Tip", - "total_tip_length": 20.0, - "has_filter": false, - "maximal_volume": 1000, - "fitting_depth": 8.0 - }, - "tip_state": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - }, - "pending_tip": { - "type": "Tip", - "total_tip_length": 20.0, - "has_filter": false, - "maximal_volume": 1000, - "fitting_depth": 8.0 - } - } - }, - { - "id": "tip_box_64_tipspot_2_7", - "name": "tip_box_64_tipspot_2_7", - "sample_id": null, - "children": [], - "parent": "tip_box_64", - "type": "container", - "class": "", - "position": { - "x": 26.0, - "y": 8.0, - "z": 0.0 - }, - "config": { - "type": "TipSpot", - "size_x": 10, - "size_y": 10, - "size_z": 0.0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "tip_spot", - "model": null, - "barcode": null, - "prototype_tip": { - "type": "Tip", - "total_tip_length": 20.0, - "has_filter": false, - "maximal_volume": 1000, - "fitting_depth": 8.0 - } - }, - "data": { - "tip": { - "type": "Tip", - "total_tip_length": 20.0, - "has_filter": false, - "maximal_volume": 1000, - "fitting_depth": 8.0 - }, - "tip_state": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - }, - "pending_tip": { - "type": "Tip", - "total_tip_length": 20.0, - "has_filter": false, - "maximal_volume": 1000, - "fitting_depth": 8.0 - } - } - }, - { - "id": "tip_box_64_tipspot_3_0", - "name": "tip_box_64_tipspot_3_0", - "sample_id": null, - "children": [], - "parent": "tip_box_64", - "type": "container", - "class": "", - "position": { - "x": 35.0, - "y": 71.0, - "z": 0.0 - }, - "config": { - "type": "TipSpot", - "size_x": 10, - "size_y": 10, - "size_z": 0.0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "tip_spot", - "model": null, - "barcode": null, - "prototype_tip": { - "type": "Tip", - "total_tip_length": 20.0, - "has_filter": false, - "maximal_volume": 1000, - "fitting_depth": 8.0 - } - }, - "data": { - "tip": { - "type": "Tip", - "total_tip_length": 20.0, - "has_filter": false, - "maximal_volume": 1000, - "fitting_depth": 8.0 - }, - "tip_state": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - }, - "pending_tip": { - "type": "Tip", - "total_tip_length": 20.0, - "has_filter": false, - "maximal_volume": 1000, - "fitting_depth": 8.0 - } - } - }, - { - "id": "tip_box_64_tipspot_3_1", - "name": "tip_box_64_tipspot_3_1", - "sample_id": null, - "children": [], - "parent": "tip_box_64", - "type": "container", - "class": "", - "position": { - "x": 35.0, - "y": 62.0, - "z": 0.0 - }, - "config": { - "type": "TipSpot", - "size_x": 10, - "size_y": 10, - "size_z": 0.0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "tip_spot", - "model": null, - "barcode": null, - "prototype_tip": { - "type": "Tip", - "total_tip_length": 20.0, - "has_filter": false, - "maximal_volume": 1000, - "fitting_depth": 8.0 - } - }, - "data": { - "tip": { - "type": "Tip", - "total_tip_length": 20.0, - "has_filter": false, - "maximal_volume": 1000, - "fitting_depth": 8.0 - }, - "tip_state": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - }, - "pending_tip": { - "type": "Tip", - "total_tip_length": 20.0, - "has_filter": false, - "maximal_volume": 1000, - "fitting_depth": 8.0 - } - } - }, - { - "id": "tip_box_64_tipspot_3_2", - "name": "tip_box_64_tipspot_3_2", - "sample_id": null, - "children": [], - "parent": "tip_box_64", - "type": "container", - "class": "", - "position": { - "x": 35.0, - "y": 53.0, - "z": 0.0 - }, - "config": { - "type": "TipSpot", - "size_x": 10, - "size_y": 10, - "size_z": 0.0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "tip_spot", - "model": null, - "barcode": null, - "prototype_tip": { - "type": "Tip", - "total_tip_length": 20.0, - "has_filter": false, - "maximal_volume": 1000, - "fitting_depth": 8.0 - } - }, - "data": { - "tip": { - "type": "Tip", - "total_tip_length": 20.0, - "has_filter": false, - "maximal_volume": 1000, - "fitting_depth": 8.0 - }, - "tip_state": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - }, - "pending_tip": { - "type": "Tip", - "total_tip_length": 20.0, - "has_filter": false, - "maximal_volume": 1000, - "fitting_depth": 8.0 - } - } - }, - { - "id": "tip_box_64_tipspot_3_3", - "name": "tip_box_64_tipspot_3_3", - "sample_id": null, - "children": [], - "parent": "tip_box_64", - "type": "container", - "class": "", - "position": { - "x": 35.0, - "y": 44.0, - "z": 0.0 - }, - "config": { - "type": "TipSpot", - "size_x": 10, - "size_y": 10, - "size_z": 0.0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "tip_spot", - "model": null, - "barcode": null, - "prototype_tip": { - "type": "Tip", - "total_tip_length": 20.0, - "has_filter": false, - "maximal_volume": 1000, - "fitting_depth": 8.0 - } - }, - "data": { - "tip": { - "type": "Tip", - "total_tip_length": 20.0, - "has_filter": false, - "maximal_volume": 1000, - "fitting_depth": 8.0 - }, - "tip_state": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - }, - "pending_tip": { - "type": "Tip", - "total_tip_length": 20.0, - "has_filter": false, - "maximal_volume": 1000, - "fitting_depth": 8.0 - } - } - }, - { - "id": "tip_box_64_tipspot_3_4", - "name": "tip_box_64_tipspot_3_4", - "sample_id": null, - "children": [], - "parent": "tip_box_64", - "type": "container", - "class": "", - "position": { - "x": 35.0, - "y": 35.0, - "z": 0.0 - }, - "config": { - "type": "TipSpot", - "size_x": 10, - "size_y": 10, - "size_z": 0.0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "tip_spot", - "model": null, - "barcode": null, - "prototype_tip": { - "type": "Tip", - "total_tip_length": 20.0, - "has_filter": false, - "maximal_volume": 1000, - "fitting_depth": 8.0 - } - }, - "data": { - "tip": { - "type": "Tip", - "total_tip_length": 20.0, - "has_filter": false, - "maximal_volume": 1000, - "fitting_depth": 8.0 - }, - "tip_state": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - }, - "pending_tip": { - "type": "Tip", - "total_tip_length": 20.0, - "has_filter": false, - "maximal_volume": 1000, - "fitting_depth": 8.0 - } - } - }, - { - "id": "tip_box_64_tipspot_3_5", - "name": "tip_box_64_tipspot_3_5", - "sample_id": null, - "children": [], - "parent": "tip_box_64", - "type": "container", - "class": "", - "position": { - "x": 35.0, - "y": 26.0, - "z": 0.0 - }, - "config": { - "type": "TipSpot", - "size_x": 10, - "size_y": 10, - "size_z": 0.0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "tip_spot", - "model": null, - "barcode": null, - "prototype_tip": { - "type": "Tip", - "total_tip_length": 20.0, - "has_filter": false, - "maximal_volume": 1000, - "fitting_depth": 8.0 - } - }, - "data": { - "tip": { - "type": "Tip", - "total_tip_length": 20.0, - "has_filter": false, - "maximal_volume": 1000, - "fitting_depth": 8.0 - }, - "tip_state": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - }, - "pending_tip": { - "type": "Tip", - "total_tip_length": 20.0, - "has_filter": false, - "maximal_volume": 1000, - "fitting_depth": 8.0 - } - } - }, - { - "id": "tip_box_64_tipspot_3_6", - "name": "tip_box_64_tipspot_3_6", - "sample_id": null, - "children": [], - "parent": "tip_box_64", - "type": "container", - "class": "", - "position": { - "x": 35.0, - "y": 17.0, - "z": 0.0 - }, - "config": { - "type": "TipSpot", - "size_x": 10, - "size_y": 10, - "size_z": 0.0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "tip_spot", - "model": null, - "barcode": null, - "prototype_tip": { - "type": "Tip", - "total_tip_length": 20.0, - "has_filter": false, - "maximal_volume": 1000, - "fitting_depth": 8.0 - } - }, - "data": { - "tip": { - "type": "Tip", - "total_tip_length": 20.0, - "has_filter": false, - "maximal_volume": 1000, - "fitting_depth": 8.0 - }, - "tip_state": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - }, - "pending_tip": { - "type": "Tip", - "total_tip_length": 20.0, - "has_filter": false, - "maximal_volume": 1000, - "fitting_depth": 8.0 - } - } - }, - { - "id": "tip_box_64_tipspot_3_7", - "name": "tip_box_64_tipspot_3_7", - "sample_id": null, - "children": [], - "parent": "tip_box_64", - "type": "container", - "class": "", - "position": { - "x": 35.0, - "y": 8.0, - "z": 0.0 - }, - "config": { - "type": "TipSpot", - "size_x": 10, - "size_y": 10, - "size_z": 0.0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "tip_spot", - "model": null, - "barcode": null, - "prototype_tip": { - "type": "Tip", - "total_tip_length": 20.0, - "has_filter": false, - "maximal_volume": 1000, - "fitting_depth": 8.0 - } - }, - "data": { - "tip": { - "type": "Tip", - "total_tip_length": 20.0, - "has_filter": false, - "maximal_volume": 1000, - "fitting_depth": 8.0 - }, - "tip_state": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - }, - "pending_tip": { - "type": "Tip", - "total_tip_length": 20.0, - "has_filter": false, - "maximal_volume": 1000, - "fitting_depth": 8.0 - } - } - }, - { - "id": "tip_box_64_tipspot_4_0", - "name": "tip_box_64_tipspot_4_0", - "sample_id": null, - "children": [], - "parent": "tip_box_64", - "type": "container", - "class": "", - "position": { - "x": 44.0, - "y": 71.0, - "z": 0.0 - }, - "config": { - "type": "TipSpot", - "size_x": 10, - "size_y": 10, - "size_z": 0.0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "tip_spot", - "model": null, - "barcode": null, - "prototype_tip": { - "type": "Tip", - "total_tip_length": 20.0, - "has_filter": false, - "maximal_volume": 1000, - "fitting_depth": 8.0 - } - }, - "data": { - "tip": { - "type": "Tip", - "total_tip_length": 20.0, - "has_filter": false, - "maximal_volume": 1000, - "fitting_depth": 8.0 - }, - "tip_state": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - }, - "pending_tip": { - "type": "Tip", - "total_tip_length": 20.0, - "has_filter": false, - "maximal_volume": 1000, - "fitting_depth": 8.0 - } - } - }, - { - "id": "tip_box_64_tipspot_4_1", - "name": "tip_box_64_tipspot_4_1", - "sample_id": null, - "children": [], - "parent": "tip_box_64", - "type": "container", - "class": "", - "position": { - "x": 44.0, - "y": 62.0, - "z": 0.0 - }, - "config": { - "type": "TipSpot", - "size_x": 10, - "size_y": 10, - "size_z": 0.0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "tip_spot", - "model": null, - "barcode": null, - "prototype_tip": { - "type": "Tip", - "total_tip_length": 20.0, - "has_filter": false, - "maximal_volume": 1000, - "fitting_depth": 8.0 - } - }, - "data": { - "tip": { - "type": "Tip", - "total_tip_length": 20.0, - "has_filter": false, - "maximal_volume": 1000, - "fitting_depth": 8.0 - }, - "tip_state": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - }, - "pending_tip": { - "type": "Tip", - "total_tip_length": 20.0, - "has_filter": false, - "maximal_volume": 1000, - "fitting_depth": 8.0 - } - } - }, - { - "id": "tip_box_64_tipspot_4_2", - "name": "tip_box_64_tipspot_4_2", - "sample_id": null, - "children": [], - "parent": "tip_box_64", - "type": "container", - "class": "", - "position": { - "x": 44.0, - "y": 53.0, - "z": 0.0 - }, - "config": { - "type": "TipSpot", - "size_x": 10, - "size_y": 10, - "size_z": 0.0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "tip_spot", - "model": null, - "barcode": null, - "prototype_tip": { - "type": "Tip", - "total_tip_length": 20.0, - "has_filter": false, - "maximal_volume": 1000, - "fitting_depth": 8.0 - } - }, - "data": { - "tip": { - "type": "Tip", - "total_tip_length": 20.0, - "has_filter": false, - "maximal_volume": 1000, - "fitting_depth": 8.0 - }, - "tip_state": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - }, - "pending_tip": { - "type": "Tip", - "total_tip_length": 20.0, - "has_filter": false, - "maximal_volume": 1000, - "fitting_depth": 8.0 - } - } - }, - { - "id": "tip_box_64_tipspot_4_3", - "name": "tip_box_64_tipspot_4_3", - "sample_id": null, - "children": [], - "parent": "tip_box_64", - "type": "container", - "class": "", - "position": { - "x": 44.0, - "y": 44.0, - "z": 0.0 - }, - "config": { - "type": "TipSpot", - "size_x": 10, - "size_y": 10, - "size_z": 0.0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "tip_spot", - "model": null, - "barcode": null, - "prototype_tip": { - "type": "Tip", - "total_tip_length": 20.0, - "has_filter": false, - "maximal_volume": 1000, - "fitting_depth": 8.0 - } - }, - "data": { - "tip": { - "type": "Tip", - "total_tip_length": 20.0, - "has_filter": false, - "maximal_volume": 1000, - "fitting_depth": 8.0 - }, - "tip_state": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - }, - "pending_tip": { - "type": "Tip", - "total_tip_length": 20.0, - "has_filter": false, - "maximal_volume": 1000, - "fitting_depth": 8.0 - } - } - }, - { - "id": "tip_box_64_tipspot_4_4", - "name": "tip_box_64_tipspot_4_4", - "sample_id": null, - "children": [], - "parent": "tip_box_64", - "type": "container", - "class": "", - "position": { - "x": 44.0, - "y": 35.0, - "z": 0.0 - }, - "config": { - "type": "TipSpot", - "size_x": 10, - "size_y": 10, - "size_z": 0.0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "tip_spot", - "model": null, - "barcode": null, - "prototype_tip": { - "type": "Tip", - "total_tip_length": 20.0, - "has_filter": false, - "maximal_volume": 1000, - "fitting_depth": 8.0 - } - }, - "data": { - "tip": { - "type": "Tip", - "total_tip_length": 20.0, - "has_filter": false, - "maximal_volume": 1000, - "fitting_depth": 8.0 - }, - "tip_state": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - }, - "pending_tip": { - "type": "Tip", - "total_tip_length": 20.0, - "has_filter": false, - "maximal_volume": 1000, - "fitting_depth": 8.0 - } - } - }, - { - "id": "tip_box_64_tipspot_4_5", - "name": "tip_box_64_tipspot_4_5", - "sample_id": null, - "children": [], - "parent": "tip_box_64", - "type": "container", - "class": "", - "position": { - "x": 44.0, - "y": 26.0, - "z": 0.0 - }, - "config": { - "type": "TipSpot", - "size_x": 10, - "size_y": 10, - "size_z": 0.0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "tip_spot", - "model": null, - "barcode": null, - "prototype_tip": { - "type": "Tip", - "total_tip_length": 20.0, - "has_filter": false, - "maximal_volume": 1000, - "fitting_depth": 8.0 - } - }, - "data": { - "tip": { - "type": "Tip", - "total_tip_length": 20.0, - "has_filter": false, - "maximal_volume": 1000, - "fitting_depth": 8.0 - }, - "tip_state": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - }, - "pending_tip": { - "type": "Tip", - "total_tip_length": 20.0, - "has_filter": false, - "maximal_volume": 1000, - "fitting_depth": 8.0 - } - } - }, - { - "id": "tip_box_64_tipspot_4_6", - "name": "tip_box_64_tipspot_4_6", - "sample_id": null, - "children": [], - "parent": "tip_box_64", - "type": "container", - "class": "", - "position": { - "x": 44.0, - "y": 17.0, - "z": 0.0 - }, - "config": { - "type": "TipSpot", - "size_x": 10, - "size_y": 10, - "size_z": 0.0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "tip_spot", - "model": null, - "barcode": null, - "prototype_tip": { - "type": "Tip", - "total_tip_length": 20.0, - "has_filter": false, - "maximal_volume": 1000, - "fitting_depth": 8.0 - } - }, - "data": { - "tip": { - "type": "Tip", - "total_tip_length": 20.0, - "has_filter": false, - "maximal_volume": 1000, - "fitting_depth": 8.0 - }, - "tip_state": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - }, - "pending_tip": { - "type": "Tip", - "total_tip_length": 20.0, - "has_filter": false, - "maximal_volume": 1000, - "fitting_depth": 8.0 - } - } - }, - { - "id": "tip_box_64_tipspot_4_7", - "name": "tip_box_64_tipspot_4_7", - "sample_id": null, - "children": [], - "parent": "tip_box_64", - "type": "container", - "class": "", - "position": { - "x": 44.0, - "y": 8.0, - "z": 0.0 - }, - "config": { - "type": "TipSpot", - "size_x": 10, - "size_y": 10, - "size_z": 0.0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "tip_spot", - "model": null, - "barcode": null, - "prototype_tip": { - "type": "Tip", - "total_tip_length": 20.0, - "has_filter": false, - "maximal_volume": 1000, - "fitting_depth": 8.0 - } - }, - "data": { - "tip": { - "type": "Tip", - "total_tip_length": 20.0, - "has_filter": false, - "maximal_volume": 1000, - "fitting_depth": 8.0 - }, - "tip_state": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - }, - "pending_tip": { - "type": "Tip", - "total_tip_length": 20.0, - "has_filter": false, - "maximal_volume": 1000, - "fitting_depth": 8.0 - } - } - }, - { - "id": "tip_box_64_tipspot_5_0", - "name": "tip_box_64_tipspot_5_0", - "sample_id": null, - "children": [], - "parent": "tip_box_64", - "type": "container", - "class": "", - "position": { - "x": 53.0, - "y": 71.0, - "z": 0.0 - }, - "config": { - "type": "TipSpot", - "size_x": 10, - "size_y": 10, - "size_z": 0.0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "tip_spot", - "model": null, - "barcode": null, - "prototype_tip": { - "type": "Tip", - "total_tip_length": 20.0, - "has_filter": false, - "maximal_volume": 1000, - "fitting_depth": 8.0 - } - }, - "data": { - "tip": { - "type": "Tip", - "total_tip_length": 20.0, - "has_filter": false, - "maximal_volume": 1000, - "fitting_depth": 8.0 - }, - "tip_state": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - }, - "pending_tip": { - "type": "Tip", - "total_tip_length": 20.0, - "has_filter": false, - "maximal_volume": 1000, - "fitting_depth": 8.0 - } - } - }, - { - "id": "tip_box_64_tipspot_5_1", - "name": "tip_box_64_tipspot_5_1", - "sample_id": null, - "children": [], - "parent": "tip_box_64", - "type": "container", - "class": "", - "position": { - "x": 53.0, - "y": 62.0, - "z": 0.0 - }, - "config": { - "type": "TipSpot", - "size_x": 10, - "size_y": 10, - "size_z": 0.0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "tip_spot", - "model": null, - "barcode": null, - "prototype_tip": { - "type": "Tip", - "total_tip_length": 20.0, - "has_filter": false, - "maximal_volume": 1000, - "fitting_depth": 8.0 - } - }, - "data": { - "tip": { - "type": "Tip", - "total_tip_length": 20.0, - "has_filter": false, - "maximal_volume": 1000, - "fitting_depth": 8.0 - }, - "tip_state": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - }, - "pending_tip": { - "type": "Tip", - "total_tip_length": 20.0, - "has_filter": false, - "maximal_volume": 1000, - "fitting_depth": 8.0 - } - } - }, - { - "id": "tip_box_64_tipspot_5_2", - "name": "tip_box_64_tipspot_5_2", - "sample_id": null, - "children": [], - "parent": "tip_box_64", - "type": "container", - "class": "", - "position": { - "x": 53.0, - "y": 53.0, - "z": 0.0 - }, - "config": { - "type": "TipSpot", - "size_x": 10, - "size_y": 10, - "size_z": 0.0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "tip_spot", - "model": null, - "barcode": null, - "prototype_tip": { - "type": "Tip", - "total_tip_length": 20.0, - "has_filter": false, - "maximal_volume": 1000, - "fitting_depth": 8.0 - } - }, - "data": { - "tip": { - "type": "Tip", - "total_tip_length": 20.0, - "has_filter": false, - "maximal_volume": 1000, - "fitting_depth": 8.0 - }, - "tip_state": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - }, - "pending_tip": { - "type": "Tip", - "total_tip_length": 20.0, - "has_filter": false, - "maximal_volume": 1000, - "fitting_depth": 8.0 - } - } - }, - { - "id": "tip_box_64_tipspot_5_3", - "name": "tip_box_64_tipspot_5_3", - "sample_id": null, - "children": [], - "parent": "tip_box_64", - "type": "container", - "class": "", - "position": { - "x": 53.0, - "y": 44.0, - "z": 0.0 - }, - "config": { - "type": "TipSpot", - "size_x": 10, - "size_y": 10, - "size_z": 0.0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "tip_spot", - "model": null, - "barcode": null, - "prototype_tip": { - "type": "Tip", - "total_tip_length": 20.0, - "has_filter": false, - "maximal_volume": 1000, - "fitting_depth": 8.0 - } - }, - "data": { - "tip": { - "type": "Tip", - "total_tip_length": 20.0, - "has_filter": false, - "maximal_volume": 1000, - "fitting_depth": 8.0 - }, - "tip_state": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - }, - "pending_tip": { - "type": "Tip", - "total_tip_length": 20.0, - "has_filter": false, - "maximal_volume": 1000, - "fitting_depth": 8.0 - } - } - }, - { - "id": "tip_box_64_tipspot_5_4", - "name": "tip_box_64_tipspot_5_4", - "sample_id": null, - "children": [], - "parent": "tip_box_64", - "type": "container", - "class": "", - "position": { - "x": 53.0, - "y": 35.0, - "z": 0.0 - }, - "config": { - "type": "TipSpot", - "size_x": 10, - "size_y": 10, - "size_z": 0.0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "tip_spot", - "model": null, - "barcode": null, - "prototype_tip": { - "type": "Tip", - "total_tip_length": 20.0, - "has_filter": false, - "maximal_volume": 1000, - "fitting_depth": 8.0 - } - }, - "data": { - "tip": { - "type": "Tip", - "total_tip_length": 20.0, - "has_filter": false, - "maximal_volume": 1000, - "fitting_depth": 8.0 - }, - "tip_state": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - }, - "pending_tip": { - "type": "Tip", - "total_tip_length": 20.0, - "has_filter": false, - "maximal_volume": 1000, - "fitting_depth": 8.0 - } - } - }, - { - "id": "tip_box_64_tipspot_5_5", - "name": "tip_box_64_tipspot_5_5", - "sample_id": null, - "children": [], - "parent": "tip_box_64", - "type": "container", - "class": "", - "position": { - "x": 53.0, - "y": 26.0, - "z": 0.0 - }, - "config": { - "type": "TipSpot", - "size_x": 10, - "size_y": 10, - "size_z": 0.0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "tip_spot", - "model": null, - "barcode": null, - "prototype_tip": { - "type": "Tip", - "total_tip_length": 20.0, - "has_filter": false, - "maximal_volume": 1000, - "fitting_depth": 8.0 - } - }, - "data": { - "tip": { - "type": "Tip", - "total_tip_length": 20.0, - "has_filter": false, - "maximal_volume": 1000, - "fitting_depth": 8.0 - }, - "tip_state": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - }, - "pending_tip": { - "type": "Tip", - "total_tip_length": 20.0, - "has_filter": false, - "maximal_volume": 1000, - "fitting_depth": 8.0 - } - } - }, - { - "id": "tip_box_64_tipspot_5_6", - "name": "tip_box_64_tipspot_5_6", - "sample_id": null, - "children": [], - "parent": "tip_box_64", - "type": "container", - "class": "", - "position": { - "x": 53.0, - "y": 17.0, - "z": 0.0 - }, - "config": { - "type": "TipSpot", - "size_x": 10, - "size_y": 10, - "size_z": 0.0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "tip_spot", - "model": null, - "barcode": null, - "prototype_tip": { - "type": "Tip", - "total_tip_length": 20.0, - "has_filter": false, - "maximal_volume": 1000, - "fitting_depth": 8.0 - } - }, - "data": { - "tip": { - "type": "Tip", - "total_tip_length": 20.0, - "has_filter": false, - "maximal_volume": 1000, - "fitting_depth": 8.0 - }, - "tip_state": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - }, - "pending_tip": { - "type": "Tip", - "total_tip_length": 20.0, - "has_filter": false, - "maximal_volume": 1000, - "fitting_depth": 8.0 - } - } - }, - { - "id": "tip_box_64_tipspot_5_7", - "name": "tip_box_64_tipspot_5_7", - "sample_id": null, - "children": [], - "parent": "tip_box_64", - "type": "container", - "class": "", - "position": { - "x": 53.0, - "y": 8.0, - "z": 0.0 - }, - "config": { - "type": "TipSpot", - "size_x": 10, - "size_y": 10, - "size_z": 0.0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "tip_spot", - "model": null, - "barcode": null, - "prototype_tip": { - "type": "Tip", - "total_tip_length": 20.0, - "has_filter": false, - "maximal_volume": 1000, - "fitting_depth": 8.0 - } - }, - "data": { - "tip": { - "type": "Tip", - "total_tip_length": 20.0, - "has_filter": false, - "maximal_volume": 1000, - "fitting_depth": 8.0 - }, - "tip_state": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - }, - "pending_tip": { - "type": "Tip", - "total_tip_length": 20.0, - "has_filter": false, - "maximal_volume": 1000, - "fitting_depth": 8.0 - } - } - }, - { - "id": "tip_box_64_tipspot_6_0", - "name": "tip_box_64_tipspot_6_0", - "sample_id": null, - "children": [], - "parent": "tip_box_64", - "type": "container", - "class": "", - "position": { - "x": 62.0, - "y": 71.0, - "z": 0.0 - }, - "config": { - "type": "TipSpot", - "size_x": 10, - "size_y": 10, - "size_z": 0.0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "tip_spot", - "model": null, - "barcode": null, - "prototype_tip": { - "type": "Tip", - "total_tip_length": 20.0, - "has_filter": false, - "maximal_volume": 1000, - "fitting_depth": 8.0 - } - }, - "data": { - "tip": { - "type": "Tip", - "total_tip_length": 20.0, - "has_filter": false, - "maximal_volume": 1000, - "fitting_depth": 8.0 - }, - "tip_state": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - }, - "pending_tip": { - "type": "Tip", - "total_tip_length": 20.0, - "has_filter": false, - "maximal_volume": 1000, - "fitting_depth": 8.0 - } - } - }, - { - "id": "tip_box_64_tipspot_6_1", - "name": "tip_box_64_tipspot_6_1", - "sample_id": null, - "children": [], - "parent": "tip_box_64", - "type": "container", - "class": "", - "position": { - "x": 62.0, - "y": 62.0, - "z": 0.0 - }, - "config": { - "type": "TipSpot", - "size_x": 10, - "size_y": 10, - "size_z": 0.0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "tip_spot", - "model": null, - "barcode": null, - "prototype_tip": { - "type": "Tip", - "total_tip_length": 20.0, - "has_filter": false, - "maximal_volume": 1000, - "fitting_depth": 8.0 - } - }, - "data": { - "tip": { - "type": "Tip", - "total_tip_length": 20.0, - "has_filter": false, - "maximal_volume": 1000, - "fitting_depth": 8.0 - }, - "tip_state": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - }, - "pending_tip": { - "type": "Tip", - "total_tip_length": 20.0, - "has_filter": false, - "maximal_volume": 1000, - "fitting_depth": 8.0 - } - } - }, - { - "id": "tip_box_64_tipspot_6_2", - "name": "tip_box_64_tipspot_6_2", - "sample_id": null, - "children": [], - "parent": "tip_box_64", - "type": "container", - "class": "", - "position": { - "x": 62.0, - "y": 53.0, - "z": 0.0 - }, - "config": { - "type": "TipSpot", - "size_x": 10, - "size_y": 10, - "size_z": 0.0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "tip_spot", - "model": null, - "barcode": null, - "prototype_tip": { - "type": "Tip", - "total_tip_length": 20.0, - "has_filter": false, - "maximal_volume": 1000, - "fitting_depth": 8.0 - } - }, - "data": { - "tip": { - "type": "Tip", - "total_tip_length": 20.0, - "has_filter": false, - "maximal_volume": 1000, - "fitting_depth": 8.0 - }, - "tip_state": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - }, - "pending_tip": { - "type": "Tip", - "total_tip_length": 20.0, - "has_filter": false, - "maximal_volume": 1000, - "fitting_depth": 8.0 - } - } - }, - { - "id": "tip_box_64_tipspot_6_3", - "name": "tip_box_64_tipspot_6_3", - "sample_id": null, - "children": [], - "parent": "tip_box_64", - "type": "container", - "class": "", - "position": { - "x": 62.0, - "y": 44.0, - "z": 0.0 - }, - "config": { - "type": "TipSpot", - "size_x": 10, - "size_y": 10, - "size_z": 0.0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "tip_spot", - "model": null, - "barcode": null, - "prototype_tip": { - "type": "Tip", - "total_tip_length": 20.0, - "has_filter": false, - "maximal_volume": 1000, - "fitting_depth": 8.0 - } - }, - "data": { - "tip": { - "type": "Tip", - "total_tip_length": 20.0, - "has_filter": false, - "maximal_volume": 1000, - "fitting_depth": 8.0 - }, - "tip_state": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - }, - "pending_tip": { - "type": "Tip", - "total_tip_length": 20.0, - "has_filter": false, - "maximal_volume": 1000, - "fitting_depth": 8.0 - } - } - }, - { - "id": "tip_box_64_tipspot_6_4", - "name": "tip_box_64_tipspot_6_4", - "sample_id": null, - "children": [], - "parent": "tip_box_64", - "type": "container", - "class": "", - "position": { - "x": 62.0, - "y": 35.0, - "z": 0.0 - }, - "config": { - "type": "TipSpot", - "size_x": 10, - "size_y": 10, - "size_z": 0.0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "tip_spot", - "model": null, - "barcode": null, - "prototype_tip": { - "type": "Tip", - "total_tip_length": 20.0, - "has_filter": false, - "maximal_volume": 1000, - "fitting_depth": 8.0 - } - }, - "data": { - "tip": { - "type": "Tip", - "total_tip_length": 20.0, - "has_filter": false, - "maximal_volume": 1000, - "fitting_depth": 8.0 - }, - "tip_state": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - }, - "pending_tip": { - "type": "Tip", - "total_tip_length": 20.0, - "has_filter": false, - "maximal_volume": 1000, - "fitting_depth": 8.0 - } - } - }, - { - "id": "tip_box_64_tipspot_6_5", - "name": "tip_box_64_tipspot_6_5", - "sample_id": null, - "children": [], - "parent": "tip_box_64", - "type": "container", - "class": "", - "position": { - "x": 62.0, - "y": 26.0, - "z": 0.0 - }, - "config": { - "type": "TipSpot", - "size_x": 10, - "size_y": 10, - "size_z": 0.0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "tip_spot", - "model": null, - "barcode": null, - "prototype_tip": { - "type": "Tip", - "total_tip_length": 20.0, - "has_filter": false, - "maximal_volume": 1000, - "fitting_depth": 8.0 - } - }, - "data": { - "tip": { - "type": "Tip", - "total_tip_length": 20.0, - "has_filter": false, - "maximal_volume": 1000, - "fitting_depth": 8.0 - }, - "tip_state": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - }, - "pending_tip": { - "type": "Tip", - "total_tip_length": 20.0, - "has_filter": false, - "maximal_volume": 1000, - "fitting_depth": 8.0 - } - } - }, - { - "id": "tip_box_64_tipspot_6_6", - "name": "tip_box_64_tipspot_6_6", - "sample_id": null, - "children": [], - "parent": "tip_box_64", - "type": "container", - "class": "", - "position": { - "x": 62.0, - "y": 17.0, - "z": 0.0 - }, - "config": { - "type": "TipSpot", - "size_x": 10, - "size_y": 10, - "size_z": 0.0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "tip_spot", - "model": null, - "barcode": null, - "prototype_tip": { - "type": "Tip", - "total_tip_length": 20.0, - "has_filter": false, - "maximal_volume": 1000, - "fitting_depth": 8.0 - } - }, - "data": { - "tip": { - "type": "Tip", - "total_tip_length": 20.0, - "has_filter": false, - "maximal_volume": 1000, - "fitting_depth": 8.0 - }, - "tip_state": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - }, - "pending_tip": { - "type": "Tip", - "total_tip_length": 20.0, - "has_filter": false, - "maximal_volume": 1000, - "fitting_depth": 8.0 - } - } - }, - { - "id": "tip_box_64_tipspot_6_7", - "name": "tip_box_64_tipspot_6_7", - "sample_id": null, - "children": [], - "parent": "tip_box_64", - "type": "container", - "class": "", - "position": { - "x": 62.0, - "y": 8.0, - "z": 0.0 - }, - "config": { - "type": "TipSpot", - "size_x": 10, - "size_y": 10, - "size_z": 0.0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "tip_spot", - "model": null, - "barcode": null, - "prototype_tip": { - "type": "Tip", - "total_tip_length": 20.0, - "has_filter": false, - "maximal_volume": 1000, - "fitting_depth": 8.0 - } - }, - "data": { - "tip": { - "type": "Tip", - "total_tip_length": 20.0, - "has_filter": false, - "maximal_volume": 1000, - "fitting_depth": 8.0 - }, - "tip_state": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - }, - "pending_tip": { - "type": "Tip", - "total_tip_length": 20.0, - "has_filter": false, - "maximal_volume": 1000, - "fitting_depth": 8.0 - } - } - }, - { - "id": "tip_box_64_tipspot_7_0", - "name": "tip_box_64_tipspot_7_0", - "sample_id": null, - "children": [], - "parent": "tip_box_64", - "type": "container", - "class": "", - "position": { - "x": 71.0, - "y": 71.0, - "z": 0.0 - }, - "config": { - "type": "TipSpot", - "size_x": 10, - "size_y": 10, - "size_z": 0.0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "tip_spot", - "model": null, - "barcode": null, - "prototype_tip": { - "type": "Tip", - "total_tip_length": 20.0, - "has_filter": false, - "maximal_volume": 1000, - "fitting_depth": 8.0 - } - }, - "data": { - "tip": { - "type": "Tip", - "total_tip_length": 20.0, - "has_filter": false, - "maximal_volume": 1000, - "fitting_depth": 8.0 - }, - "tip_state": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - }, - "pending_tip": { - "type": "Tip", - "total_tip_length": 20.0, - "has_filter": false, - "maximal_volume": 1000, - "fitting_depth": 8.0 - } - } - }, - { - "id": "tip_box_64_tipspot_7_1", - "name": "tip_box_64_tipspot_7_1", - "sample_id": null, - "children": [], - "parent": "tip_box_64", - "type": "container", - "class": "", - "position": { - "x": 71.0, - "y": 62.0, - "z": 0.0 - }, - "config": { - "type": "TipSpot", - "size_x": 10, - "size_y": 10, - "size_z": 0.0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "tip_spot", - "model": null, - "barcode": null, - "prototype_tip": { - "type": "Tip", - "total_tip_length": 20.0, - "has_filter": false, - "maximal_volume": 1000, - "fitting_depth": 8.0 - } - }, - "data": { - "tip": { - "type": "Tip", - "total_tip_length": 20.0, - "has_filter": false, - "maximal_volume": 1000, - "fitting_depth": 8.0 - }, - "tip_state": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - }, - "pending_tip": { - "type": "Tip", - "total_tip_length": 20.0, - "has_filter": false, - "maximal_volume": 1000, - "fitting_depth": 8.0 - } - } - }, - { - "id": "tip_box_64_tipspot_7_2", - "name": "tip_box_64_tipspot_7_2", - "sample_id": null, - "children": [], - "parent": "tip_box_64", - "type": "container", - "class": "", - "position": { - "x": 71.0, - "y": 53.0, - "z": 0.0 - }, - "config": { - "type": "TipSpot", - "size_x": 10, - "size_y": 10, - "size_z": 0.0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "tip_spot", - "model": null, - "barcode": null, - "prototype_tip": { - "type": "Tip", - "total_tip_length": 20.0, - "has_filter": false, - "maximal_volume": 1000, - "fitting_depth": 8.0 - } - }, - "data": { - "tip": { - "type": "Tip", - "total_tip_length": 20.0, - "has_filter": false, - "maximal_volume": 1000, - "fitting_depth": 8.0 - }, - "tip_state": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - }, - "pending_tip": { - "type": "Tip", - "total_tip_length": 20.0, - "has_filter": false, - "maximal_volume": 1000, - "fitting_depth": 8.0 - } - } - }, - { - "id": "tip_box_64_tipspot_7_3", - "name": "tip_box_64_tipspot_7_3", - "sample_id": null, - "children": [], - "parent": "tip_box_64", - "type": "container", - "class": "", - "position": { - "x": 71.0, - "y": 44.0, - "z": 0.0 - }, - "config": { - "type": "TipSpot", - "size_x": 10, - "size_y": 10, - "size_z": 0.0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "tip_spot", - "model": null, - "barcode": null, - "prototype_tip": { - "type": "Tip", - "total_tip_length": 20.0, - "has_filter": false, - "maximal_volume": 1000, - "fitting_depth": 8.0 - } - }, - "data": { - "tip": { - "type": "Tip", - "total_tip_length": 20.0, - "has_filter": false, - "maximal_volume": 1000, - "fitting_depth": 8.0 - }, - "tip_state": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - }, - "pending_tip": { - "type": "Tip", - "total_tip_length": 20.0, - "has_filter": false, - "maximal_volume": 1000, - "fitting_depth": 8.0 - } - } - }, - { - "id": "tip_box_64_tipspot_7_4", - "name": "tip_box_64_tipspot_7_4", - "sample_id": null, - "children": [], - "parent": "tip_box_64", - "type": "container", - "class": "", - "position": { - "x": 71.0, - "y": 35.0, - "z": 0.0 - }, - "config": { - "type": "TipSpot", - "size_x": 10, - "size_y": 10, - "size_z": 0.0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "tip_spot", - "model": null, - "barcode": null, - "prototype_tip": { - "type": "Tip", - "total_tip_length": 20.0, - "has_filter": false, - "maximal_volume": 1000, - "fitting_depth": 8.0 - } - }, - "data": { - "tip": { - "type": "Tip", - "total_tip_length": 20.0, - "has_filter": false, - "maximal_volume": 1000, - "fitting_depth": 8.0 - }, - "tip_state": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - }, - "pending_tip": { - "type": "Tip", - "total_tip_length": 20.0, - "has_filter": false, - "maximal_volume": 1000, - "fitting_depth": 8.0 - } - } - }, - { - "id": "tip_box_64_tipspot_7_5", - "name": "tip_box_64_tipspot_7_5", - "sample_id": null, - "children": [], - "parent": "tip_box_64", - "type": "container", - "class": "", - "position": { - "x": 71.0, - "y": 26.0, - "z": 0.0 - }, - "config": { - "type": "TipSpot", - "size_x": 10, - "size_y": 10, - "size_z": 0.0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "tip_spot", - "model": null, - "barcode": null, - "prototype_tip": { - "type": "Tip", - "total_tip_length": 20.0, - "has_filter": false, - "maximal_volume": 1000, - "fitting_depth": 8.0 - } - }, - "data": { - "tip": { - "type": "Tip", - "total_tip_length": 20.0, - "has_filter": false, - "maximal_volume": 1000, - "fitting_depth": 8.0 - }, - "tip_state": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - }, - "pending_tip": { - "type": "Tip", - "total_tip_length": 20.0, - "has_filter": false, - "maximal_volume": 1000, - "fitting_depth": 8.0 - } - } - }, - { - "id": "tip_box_64_tipspot_7_6", - "name": "tip_box_64_tipspot_7_6", - "sample_id": null, - "children": [], - "parent": "tip_box_64", - "type": "container", - "class": "", - "position": { - "x": 71.0, - "y": 17.0, - "z": 0.0 - }, - "config": { - "type": "TipSpot", - "size_x": 10, - "size_y": 10, - "size_z": 0.0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "tip_spot", - "model": null, - "barcode": null, - "prototype_tip": { - "type": "Tip", - "total_tip_length": 20.0, - "has_filter": false, - "maximal_volume": 1000, - "fitting_depth": 8.0 - } - }, - "data": { - "tip": { - "type": "Tip", - "total_tip_length": 20.0, - "has_filter": false, - "maximal_volume": 1000, - "fitting_depth": 8.0 - }, - "tip_state": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - }, - "pending_tip": { - "type": "Tip", - "total_tip_length": 20.0, - "has_filter": false, - "maximal_volume": 1000, - "fitting_depth": 8.0 - } - } - }, - { - "id": "tip_box_64_tipspot_7_7", - "name": "tip_box_64_tipspot_7_7", - "sample_id": null, - "children": [], - "parent": "tip_box_64", - "type": "container", - "class": "", - "position": { - "x": 71.0, - "y": 8.0, - "z": 0.0 - }, - "config": { - "type": "TipSpot", - "size_x": 10, - "size_y": 10, - "size_z": 0.0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "tip_spot", - "model": null, - "barcode": null, - "prototype_tip": { - "type": "Tip", - "total_tip_length": 20.0, - "has_filter": false, - "maximal_volume": 1000, - "fitting_depth": 8.0 - } - }, - "data": { - "tip": { - "type": "Tip", - "total_tip_length": 20.0, - "has_filter": false, - "maximal_volume": 1000, - "fitting_depth": 8.0 - }, - "tip_state": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - }, - "pending_tip": { - "type": "Tip", - "total_tip_length": 20.0, - "has_filter": false, - "maximal_volume": 1000, - "fitting_depth": 8.0 - } - } - }, - { - "id": "waste_tip_box", - "name": "waste_tip_box", - "sample_id": null, - "children": [], - "parent": "coin_cell_deck", - "type": "container", - "class": "", - "position": { - "x": 300, - "y": 200, - "z": 0 - }, - "config": { - "type": "WasteTipBox", - "size_x": 127.8, - "size_y": 85.5, - "size_z": 60.0, - "rotation": { - "x": 0, - "y": 0, - "z": 0, - "type": "Rotation" - }, - "category": "waste_tip_box", - "model": null, - "barcode": null, - "max_volume": "Infinity", - "material_z_thickness": 0, - "compute_volume_from_height": null, - "compute_height_from_volume": null - }, - "data": { - "liquids": [], - "pending_liquids": [], - "liquid_history": [] - } - } - ], - "links": [] -} \ No newline at end of file diff --git a/unilabos/devices/workstation/post_process/__init__.py b/unilabos/devices/workstation/post_process/__init__.py deleted file mode 100644 index e69de29b..00000000 diff --git a/unilabos/devices/workstation/post_process/bottles.py b/unilabos/devices/workstation/post_process/bottles.py deleted file mode 100644 index 6eccdec0..00000000 --- a/unilabos/devices/workstation/post_process/bottles.py +++ /dev/null @@ -1,20 +0,0 @@ -from unilabos.resources.itemized_carrier import Bottle - - -def POST_PROCESS_PolymerStation_Reagent_Bottle( - name: str, - diameter: float = 70.0, - height: float = 120.0, - max_volume: float = 500000.0, # 500mL - barcode: str = None, -) -> Bottle: - """创建试剂瓶""" - return Bottle( - name=name, - diameter=diameter, - height=height, - max_volume=max_volume, - barcode=barcode, - model="POST_PROCESS_PolymerStation_Reagent_Bottle", - ) - diff --git a/unilabos/devices/workstation/post_process/decks.py b/unilabos/devices/workstation/post_process/decks.py deleted file mode 100644 index 4f7292cb..00000000 --- a/unilabos/devices/workstation/post_process/decks.py +++ /dev/null @@ -1,46 +0,0 @@ -from os import name -from pylabrobot.resources import Deck, Coordinate, Rotation - -from unilabos.devices.workstation.post_process.warehouses import ( - post_process_warehouse_4x3x1, - post_process_warehouse_4x3x1_2, -) - - - -class post_process_deck(Deck): - def __init__( - self, - name: str = "post_process_deck", - size_x: float = 2000.0, - size_y: float = 1000.0, - size_z: float = 2670.0, - category: str = "deck", - setup: bool = True, - ) -> None: - super().__init__(name=name, size_x=1700.0, size_y=1350.0, size_z=2670.0) - if setup: - self.setup() - - def setup(self) -> None: - # 添加仓库 - self.warehouses = { - "原料罐堆栈": post_process_warehouse_4x3x1("原料罐堆栈"), - "反应罐堆栈": post_process_warehouse_4x3x1_2("反应罐堆栈"), - - } - # warehouse 的位置 - self.warehouse_locations = { - "原料罐堆栈": Coordinate(350.0, 55.0, 0.0), - "反应罐堆栈": Coordinate(1000.0, 55.0, 0.0), - - } - - for warehouse_name, warehouse in self.warehouses.items(): - self.assign_child_resource(warehouse, location=self.warehouse_locations[warehouse_name]) - - - - - - diff --git a/unilabos/devices/workstation/post_process/opcua_huairou.json b/unilabos/devices/workstation/post_process/opcua_huairou.json deleted file mode 100644 index ac6a6378..00000000 --- a/unilabos/devices/workstation/post_process/opcua_huairou.json +++ /dev/null @@ -1,157 +0,0 @@ -{ - "register_node_list_from_csv_path": { - "path": "opcua_nodes_huairou.csv" - }, - "create_flow": [ - { - "name": "trigger_grab_action", - "description": "触发反应罐及原料罐抓取动作", - "parameters": ["reaction_tank_number", "raw_tank_number"], - "action": [ - { - "init_function": { - "func_name": "init_grab_params", - "write_nodes": ["reaction_tank_number", "raw_tank_number"] - }, - "start_function": { - "func_name": "start_grab", - "write_nodes": {"grab_trigger": true}, - "condition_nodes": ["grab_complete"], - "stop_condition_expression": "grab_complete == True", - "timeout_seconds": 999999.0 - }, - "stop_function": { - "func_name": "stop_grab", - "write_nodes": {"grab_trigger": false} - } - } - ] - }, - { - "name": "trigger_post_processing", - "description": "触发后处理动作", - "parameters": ["atomization_fast_speed", "wash_slow_speed","injection_pump_suction_speed", - "injection_pump_push_speed","raw_liquid_suction_count","first_wash_water_amount", - "second_wash_water_amount","first_powder_mixing_time","second_powder_mixing_time", - "first_powder_wash_count","second_powder_wash_count","initial_water_amount", - "pre_filtration_mixing_time","atomization_pressure_kpa"], - "action": [ - { - "init_function": { - "func_name": "init_post_processing_params", - "write_nodes": ["atomization_fast_speed", "wash_slow_speed","injection_pump_suction_speed", - "injection_pump_push_speed","raw_liquid_suction_count","first_wash_water_amount", - "second_wash_water_amount","first_powder_mixing_time","second_powder_mixing_time", - "first_powder_wash_count","second_powder_wash_count","initial_water_amount", - "pre_filtration_mixing_time","atomization_pressure_kpa"] - }, - "start_function": { - "func_name": "start_post_processing", - "write_nodes": {"post_process_trigger": true}, - "condition_nodes": ["post_process_complete"], - "stop_condition_expression": "post_process_complete == True", - "timeout_seconds": 999999.0 - }, - "stop_function": { - "func_name": "stop_post_processing", - "write_nodes": {"post_process_trigger": false} - } - } - ] - }, - { - "name": "trigger_cleaning_action", - "description": "触发清洗及管路吹气动作", - "parameters": ["nmp_outer_wall_cleaning_injection", "nmp_outer_wall_cleaning_count","nmp_outer_wall_cleaning_wait_time", - "nmp_outer_wall_cleaning_waste_time","nmp_inner_wall_cleaning_injection","nmp_inner_wall_cleaning_count", - "nmp_pump_cleaning_suction_count", - "nmp_inner_wall_cleaning_waste_time", - "nmp_stirrer_cleaning_injection", - "nmp_stirrer_cleaning_count", - "nmp_stirrer_cleaning_wait_time", - "nmp_stirrer_cleaning_waste_time", - "water_outer_wall_cleaning_injection", - "water_outer_wall_cleaning_count", - "water_outer_wall_cleaning_wait_time", - "water_outer_wall_cleaning_waste_time", - "water_inner_wall_cleaning_injection", - "water_inner_wall_cleaning_count", - "water_pump_cleaning_suction_count", - "water_inner_wall_cleaning_waste_time", - "water_stirrer_cleaning_injection", - "water_stirrer_cleaning_count", - "water_stirrer_cleaning_wait_time", - "water_stirrer_cleaning_waste_time", - "acetone_outer_wall_cleaning_injection", - "acetone_outer_wall_cleaning_count", - "acetone_outer_wall_cleaning_wait_time", - "acetone_outer_wall_cleaning_waste_time", - "acetone_inner_wall_cleaning_injection", - "acetone_inner_wall_cleaning_count", - "acetone_pump_cleaning_suction_count", - "acetone_inner_wall_cleaning_waste_time", - "acetone_stirrer_cleaning_injection", - "acetone_stirrer_cleaning_count", - "acetone_stirrer_cleaning_wait_time", - "acetone_stirrer_cleaning_waste_time", - "pipe_blowing_time", - "injection_pump_forward_empty_suction_count", - "injection_pump_reverse_empty_suction_count", - "filtration_liquid_selection"], - "action": [ - { - "init_function": { - "func_name": "init_cleaning_params", - "write_nodes": ["nmp_outer_wall_cleaning_injection", "nmp_outer_wall_cleaning_count","nmp_outer_wall_cleaning_wait_time", - "nmp_outer_wall_cleaning_waste_time","nmp_inner_wall_cleaning_injection","nmp_inner_wall_cleaning_count", - "nmp_pump_cleaning_suction_count", - "nmp_inner_wall_cleaning_waste_time", - "nmp_stirrer_cleaning_injection", - "nmp_stirrer_cleaning_count", - "nmp_stirrer_cleaning_wait_time", - "nmp_stirrer_cleaning_waste_time", - "water_outer_wall_cleaning_injection", - "water_outer_wall_cleaning_count", - "water_outer_wall_cleaning_wait_time", - "water_outer_wall_cleaning_waste_time", - "water_inner_wall_cleaning_injection", - "water_inner_wall_cleaning_count", - "water_pump_cleaning_suction_count", - "water_inner_wall_cleaning_waste_time", - "water_stirrer_cleaning_injection", - "water_stirrer_cleaning_count", - "water_stirrer_cleaning_wait_time", - "water_stirrer_cleaning_waste_time", - "acetone_outer_wall_cleaning_injection", - "acetone_outer_wall_cleaning_count", - "acetone_outer_wall_cleaning_wait_time", - "acetone_outer_wall_cleaning_waste_time", - "acetone_inner_wall_cleaning_injection", - "acetone_inner_wall_cleaning_count", - "acetone_pump_cleaning_suction_count", - "acetone_inner_wall_cleaning_waste_time", - "acetone_stirrer_cleaning_injection", - "acetone_stirrer_cleaning_count", - "acetone_stirrer_cleaning_wait_time", - "acetone_stirrer_cleaning_waste_time", - "pipe_blowing_time", - "injection_pump_forward_empty_suction_count", - "injection_pump_reverse_empty_suction_count", - "filtration_liquid_selection"] - }, - "start_function": { - "func_name": "start_cleaning", - "write_nodes": {"cleaning_and_pipe_blowing_trigger": true}, - "condition_nodes": ["cleaning_complete"], - "stop_condition_expression": "cleaning_complete == True", - "timeout_seconds": 999999.0 - }, - "stop_function": { - "func_name": "stop_cleaning", - "write_nodes": {"cleaning_and_pipe_blowing_trigger": false} - } - } - ] - } - ] -} diff --git a/unilabos/devices/workstation/post_process/opcua_nodes_huairou.csv b/unilabos/devices/workstation/post_process/opcua_nodes_huairou.csv deleted file mode 100644 index 454de968..00000000 --- a/unilabos/devices/workstation/post_process/opcua_nodes_huairou.csv +++ /dev/null @@ -1,70 +0,0 @@ -Name,EnglishName,NodeType,DataType,NodeLanguage,NodeId -原料罐号码,raw_tank_number,VARIABLE,INT16,Chinese,ns=4;s=OPC|原料罐号码 -反应罐号码,reaction_tank_number,VARIABLE,INT16,Chinese,ns=4;s=OPC|反应罐号码 -反应罐及原料罐抓取触发,grab_trigger,VARIABLE,BOOLEAN,Chinese,ns=4;s=OPC|反应罐及原料罐抓取触发 -后处理动作触发,post_process_trigger,VARIABLE,BOOLEAN,Chinese,ns=4;s=OPC|后处理动作触发 -搅拌桨雾化快速,atomization_fast_speed,VARIABLE,FLOAT,Chinese,ns=4;s=OPC|搅拌桨雾化快速 -搅拌桨洗涤慢速,wash_slow_speed,VARIABLE,FLOAT,Chinese,ns=4;s=OPC|搅拌桨洗涤慢速 -注射泵抽液速度,injection_pump_suction_speed,VARIABLE,INT16,Chinese,ns=4;s=OPC|注射泵抽液速度 -注射泵推液速度,injection_pump_push_speed,VARIABLE,INT16,Chinese,ns=4;s=OPC|注射泵推液速度 -抽原液次数,raw_liquid_suction_count,VARIABLE,INT16,Chinese,ns=4;s=OPC|抽原液次数 -第1次洗涤加水量,first_wash_water_amount,VARIABLE,FLOAT,Chinese,ns=4;s=OPC|第1次洗涤加水量 -第2次洗涤加水量,second_wash_water_amount,VARIABLE,FLOAT,Chinese,ns=4;s=OPC|第2次洗涤加水量 -第1次粉末搅拌时间,first_powder_mixing_time,VARIABLE,INT32,Chinese,ns=4;s=OPC|第1次粉末搅拌时间 -第2次粉末搅拌时间,second_powder_mixing_time,VARIABLE,INT32,Chinese,ns=4;s=OPC|第2次粉末搅拌时间 -第1次粉末洗涤次数,first_powder_wash_count,VARIABLE,INT16,Chinese,ns=4;s=OPC|第1次粉末洗涤次数 -第2次粉末洗涤次数,second_powder_wash_count,VARIABLE,INT16,Chinese,ns=4;s=OPC|第2次粉末洗涤次数 -最开始加水量,initial_water_amount,VARIABLE,FLOAT,Chinese,ns=4;s=OPC|最开始加水量 -抽滤前搅拌时间,pre_filtration_mixing_time,VARIABLE,INT32,Chinese,ns=4;s=OPC|抽滤前搅拌时间 -雾化压力Kpa,atomization_pressure_kpa,VARIABLE,INT16,Chinese,ns=4;s=OPC|雾化压力Kpa -清洗及管路吹气触发,cleaning_and_pipe_blowing_trigger,VARIABLE,BOOLEAN,Chinese,ns=4;s=OPC|清洗及管路吹气触发 -废液桶满报警,waste_tank_full_alarm,VARIABLE,BOOLEAN,Chinese,ns=4;s=OPC|废液桶满报警 -清水桶空报警,water_tank_empty_alarm,VARIABLE,BOOLEAN,Chinese,ns=4;s=OPC|清水桶空报警 -NMP桶空报警,nmp_tank_empty_alarm,VARIABLE,BOOLEAN,Chinese,ns=4;s=OPC|NMP桶空报警 -丙酮桶空报警,acetone_tank_empty_alarm,VARIABLE,BOOLEAN,Chinese,ns=4;s=OPC|丙酮桶空报警 -门开报警,door_open_alarm,VARIABLE,BOOLEAN,Chinese,ns=4;s=OPC|门开报警 -反应罐及原料罐抓取完成PLCtoPC,grab_complete,VARIABLE,BOOLEAN,Chinese,ns=4;s=OPC|反应罐及原料罐抓取完成PLCtoPC -后处理动作完成PLCtoPC,post_process_complete,VARIABLE,BOOLEAN,Chinese,ns=4;s=OPC|后处理动作完成PLCtoPC -清洗及管路吹气完成PLCtoPC,cleaning_complete,VARIABLE,BOOLEAN,Chinese,ns=4;s=OPC|清洗及管路吹气完成PLCtoPC -远程模式PLCtoPC,remote_mode,VARIABLE,BOOLEAN,Chinese,ns=4;s=OPC|远程模式PLCtoPC -设备准备就绪PLCtoPC,device_ready,VARIABLE,BOOLEAN,Chinese,ns=4;s=OPC|设备准备就绪PLCtoPC -NMP外壁清洗加注,nmp_outer_wall_cleaning_injection,VARIABLE,FLOAT,Chinese,ns=4;s=OPC|NMP外壁清洗加注 -NMP外壁清洗次数,nmp_outer_wall_cleaning_count,VARIABLE,INT16,Chinese,ns=4;s=OPC|NMP外壁清洗次数 -NMP外壁清洗等待时间,nmp_outer_wall_cleaning_wait_time,VARIABLE,INT32,Chinese,ns=4;s=OPC|NMP外壁清洗等待时间 -NMP外壁清洗抽废时间,nmp_outer_wall_cleaning_waste_time,VARIABLE,INT32,Chinese,ns=4;s=OPC|NMP外壁清洗抽废时间 -NMP内壁清洗加注,nmp_inner_wall_cleaning_injection,VARIABLE,FLOAT,Chinese,ns=4;s=OPC|NMP内壁清洗加注 -NMP内壁清洗次数,nmp_inner_wall_cleaning_count,VARIABLE,INT16,Chinese,ns=4;s=OPC|NMP内壁清洗次数 -NMP泵清洗抽次数,nmp_pump_cleaning_suction_count,VARIABLE,INT16,Chinese,ns=4;s=OPC|NMP泵清洗抽次数 -NMP内壁清洗抽废时间,nmp_inner_wall_cleaning_waste_time,VARIABLE,INT32,Chinese,ns=4;s=OPC|NMP内壁清洗抽废时间 -NMP搅拌桨清洗加注,nmp_stirrer_cleaning_injection,VARIABLE,FLOAT,Chinese,ns=4;s=OPC|NMP搅拌桨清洗加注 -NMP搅拌桨清洗次数,nmp_stirrer_cleaning_count,VARIABLE,INT16,Chinese,ns=4;s=OPC|NMP搅拌桨清洗次数 -NMP搅拌桨清洗等待时间,nmp_stirrer_cleaning_wait_time,VARIABLE,INT32,Chinese,ns=4;s=OPC|NMP搅拌桨清洗等待时间 -NMP搅拌桨清洗抽废时间,nmp_stirrer_cleaning_waste_time,VARIABLE,INT32,Chinese,ns=4;s=OPC|NMP搅拌桨清洗抽废时间 -清水外壁清洗加注,water_outer_wall_cleaning_injection,VARIABLE,FLOAT,Chinese,ns=4;s=OPC|清水外壁清洗加注 -清水外壁清洗次数,water_outer_wall_cleaning_count,VARIABLE,INT16,Chinese,ns=4;s=OPC|清水外壁清洗次数 -清水外壁清洗等待时间,water_outer_wall_cleaning_wait_time,VARIABLE,INT32,Chinese,ns=4;s=OPC|清水外壁清洗等待时间 -清水外壁清洗抽废时间,water_outer_wall_cleaning_waste_time,VARIABLE,INT32,Chinese,ns=4;s=OPC|清水外壁清洗抽废时间 -清水内壁清洗加注,water_inner_wall_cleaning_injection,VARIABLE,FLOAT,Chinese,ns=4;s=OPC|清水内壁清洗加注 -清水内壁清洗次数,water_inner_wall_cleaning_count,VARIABLE,INT16,Chinese,ns=4;s=OPC|清水内壁清洗次数 -清水泵清洗抽次数,water_pump_cleaning_suction_count,VARIABLE,INT16,Chinese,ns=4;s=OPC|清水泵清洗抽次数 -清水内壁清洗抽废时间,water_inner_wall_cleaning_waste_time,VARIABLE,INT32,Chinese,ns=4;s=OPC|清水内壁清洗抽废时间 -清水搅拌桨清洗加注,water_stirrer_cleaning_injection,VARIABLE,FLOAT,Chinese,ns=4;s=OPC|清水搅拌桨清洗加注 -清水搅拌桨清洗次数,water_stirrer_cleaning_count,VARIABLE,INT16,Chinese,ns=4;s=OPC|清水搅拌桨清洗次数 -清水搅拌桨清洗等待时间,water_stirrer_cleaning_wait_time,VARIABLE,INT32,Chinese,ns=4;s=OPC|清水搅拌桨清洗等待时间 -清水搅拌桨清洗抽废时间,water_stirrer_cleaning_waste_time,VARIABLE,INT32,Chinese,ns=4;s=OPC|清水搅拌桨清洗抽废时间 -丙酮外壁清洗加注,acetone_outer_wall_cleaning_injection,VARIABLE,FLOAT,Chinese,ns=4;s=OPC|丙酮外壁清洗加注 -丙酮外壁清洗次数,acetone_outer_wall_cleaning_count,VARIABLE,INT16,Chinese,ns=4;s=OPC|丙酮外壁清洗次数 -丙酮外壁清洗等待时间,acetone_outer_wall_cleaning_wait_time,VARIABLE,INT32,Chinese,ns=4;s=OPC|丙酮外壁清洗等待时间 -丙酮外壁清洗抽废时间,acetone_outer_wall_cleaning_waste_time,VARIABLE,INT32,Chinese,ns=4;s=OPC|丙酮外壁清洗抽废时间 -丙酮内壁清洗加注,acetone_inner_wall_cleaning_injection,VARIABLE,FLOAT,Chinese,ns=4;s=OPC|丙酮内壁清洗加注 -丙酮内壁清洗次数,acetone_inner_wall_cleaning_count,VARIABLE,INT16,Chinese,ns=4;s=OPC|丙酮内壁清洗次数 -丙酮泵清洗抽次数,acetone_pump_cleaning_suction_count,VARIABLE,INT16,Chinese,ns=4;s=OPC|丙酮泵清洗抽次数 -丙酮内壁清洗抽废时间,acetone_inner_wall_cleaning_waste_time,VARIABLE,INT32,Chinese,ns=4;s=OPC|丙酮内壁清洗抽废时间 -丙酮搅拌桨清洗加注,acetone_stirrer_cleaning_injection,VARIABLE,FLOAT,Chinese,ns=4;s=OPC|丙酮搅拌桨清洗加注 -丙酮搅拌桨清洗次数,acetone_stirrer_cleaning_count,VARIABLE,INT16,Chinese,ns=4;s=OPC|丙酮搅拌桨清洗次数 -丙酮搅拌桨清洗等待时间,acetone_stirrer_cleaning_wait_time,VARIABLE,INT32,Chinese,ns=4;s=OPC|丙酮搅拌桨清洗等待时间 -丙酮搅拌桨清洗抽废时间,acetone_stirrer_cleaning_waste_time,VARIABLE,INT32,Chinese,ns=4;s=OPC|丙酮搅拌桨清洗抽废时间 -管道吹气时间,pipe_blowing_time,VARIABLE,INT32,Chinese,ns=4;s=OPC|管道吹气时间 -注射泵正向空抽次数,injection_pump_forward_empty_suction_count,VARIABLE,INT16,Chinese,ns=4;s=OPC|注射泵正向空抽次数 -注射泵反向空抽次数,injection_pump_reverse_empty_suction_count,VARIABLE,INT16,Chinese,ns=4;s=OPC|注射泵反向空抽次数 -抽滤液选择0水1丙酮,filtration_liquid_selection,VARIABLE,INT16,Chinese,ns=4;s=OPC|抽滤液选择0水1丙酮 \ No newline at end of file diff --git a/unilabos/devices/workstation/post_process/post_process_station.json b/unilabos/devices/workstation/post_process/post_process_station.json deleted file mode 100644 index 4433a159..00000000 --- a/unilabos/devices/workstation/post_process/post_process_station.json +++ /dev/null @@ -1,45 +0,0 @@ -{ - "nodes": [ - { - "id": "post_process_station", - "name": "post_process_station", - "children": [ - "post_process_deck" - ], - "parent": null, - "type": "device", - "class": "post_process_station", - "config": { - "url": "opc.tcp://LAPTOP-AN6QGCSD:53530/OPCUA/SimulationServer", - "config_path": "C:\\Users\\Roy\\Desktop\\DPLC\\Uni-Lab-OS\\unilabos\\devices\\workstation\\post_process\\opcua_huairou.json", - "deck": { - "data": { - "_resource_child_name": "post_process_deck", - "_resource_type": "unilabos.devices.workstation.post_process.decks:post_process_deck" - } - } - }, - "data": { - } - }, - { - "id": "post_process_deck", - "name": "post_process_deck", - "sample_id": null, - "children": [], - "parent": "post_process_station", - "type": "deck", - "class": "post_process_deck", - "position": { - "x": 0, - "y": 0, - "z": 0 - }, - "config": { - "type": "post_process_deck", - "setup": true - }, - "data": {} - } - ] -} \ No newline at end of file diff --git a/unilabos/devices/workstation/post_process/warehouses.py b/unilabos/devices/workstation/post_process/warehouses.py deleted file mode 100644 index 385f026c..00000000 --- a/unilabos/devices/workstation/post_process/warehouses.py +++ /dev/null @@ -1,38 +0,0 @@ -from unilabos.devices.workstation.post_process.post_process_warehouse import WareHouse, warehouse_factory - - - -# =================== Other =================== - - -def post_process_warehouse_4x3x1(name: str) -> WareHouse: - """创建post_process 4x3x1仓库""" - return warehouse_factory( - name=name, - num_items_x=4, - num_items_y=3, - num_items_z=1, - dx=10.0, - dy=10.0, - dz=10.0, - item_dx=137.0, - item_dy=96.0, - item_dz=120.0, - category="warehouse", - ) - -def post_process_warehouse_4x3x1_2(name: str) -> WareHouse: - """已弃用:创建post_process 4x3x1仓库""" - return warehouse_factory( - name=name, - num_items_x=4, - num_items_y=3, - num_items_z=1, - dx=12.0, - dy=12.0, - dz=12.0, - item_dx=137.0, - item_dy=96.0, - item_dz=120.0, - category="warehouse", - ) diff --git a/unilabos/devices/xpeel/xpeel.py b/unilabos/devices/xpeel/xpeel.py deleted file mode 100644 index a67cc1c3..00000000 --- a/unilabos/devices/xpeel/xpeel.py +++ /dev/null @@ -1,59 +0,0 @@ -import serial -import time - -class SealRemoverController: - def __init__(self, port='COM17', baudrate=9600, timeout=2): - self.ser = serial.Serial(port, baudrate, timeout=timeout) - - def send_command(self, command): - full_cmd = f"{command}\r\n".encode('ascii') - self.ser.write(full_cmd) - time.sleep(0.5) # 稍等设备响应 - return self.read_response() - - def read_response(self): - lines = [] - while self.ser.in_waiting: - line = self.ser.readline().decode('ascii').strip() - lines.append(line) - return lines - - def reset(self): - return self.send_command("*reset") - - def restart(self): - return self.send_command("*restart") - - def check_status(self): - return self.send_command("*stat") - - def move_in(self): - return self.send_command("*movein") - - def move_out(self): - return self.send_command("*moveout") - - def move_up(self): - return self.send_command("*moveup") - - def move_down(self): - return self.send_command("*movedown") - - def peel(self, param_set=1, adhere_time=1): - # param_set: 1~9, adhere_time: 1(2.5s) ~ 4(10s) - return self.send_command(f"*xpeel:{param_set}{adhere_time}") - - def check_tape(self): - return self.send_command("*tapeleft") - - def close(self): - self.ser.close() - -if __name__ == "__main__": - remover = SealRemoverController(port='COM17') - remover.restart # "restart" - remover.check_status() # "检查状态:" - remover.reset() # 复位设备 - remover.peel(param_set=4, adhere_time=1) #执行撕膜操作,慢速+2.5s - remover.move_out() # 送出板子 - remover.close() \ No newline at end of file diff --git a/unilabos/devices/xrd_d7mate/device.json b/unilabos/devices/xrd_d7mate/device.json deleted file mode 100644 index 4aebd228..00000000 --- a/unilabos/devices/xrd_d7mate/device.json +++ /dev/null @@ -1,26 +0,0 @@ -{ - "nodes": [ - { - "id": "XRD_D7MATE_STATION", - "name": "XRD_D7MATE", - "parent": null, - "type": "device", - "class": "xrd_d7mate", - "position": { - "x": 720.0, - "y": 200.0, - "z": 0 - }, - "config": { - "host": "127.0.0.1", - "port": 6001, - "timeout": 10.0 - }, - "data": { - "input_hint": "start 支持单字符串输入:'sample_name 样品A start_theta 10.0 end_theta 80.0 increment 0.02 exp_time 0.1 [wait_minutes 3]';也支持等号形式 'sample_id=样品A start_theta=10.0 end_theta=80.0 increment=0.02 exp_time=0.1 wait_minutes=3'" - }, - "children": [] - } - ], - "links": [] -} \ No newline at end of file diff --git a/unilabos/devices/xrd_d7mate/xrd_d7mate.py b/unilabos/devices/xrd_d7mate/xrd_d7mate.py deleted file mode 100644 index f68baf4d..00000000 --- a/unilabos/devices/xrd_d7mate/xrd_d7mate.py +++ /dev/null @@ -1,939 +0,0 @@ -#!/usr/bin/env python3 -# -*- coding: utf-8 -*- -""" -XRD D7-Mate设备驱动 - -支持XRD D7-Mate设备的TCP通信协议,包括自动模式控制、上样流程、数据获取、下样流程和高压电源控制等功能。 -通信协议版本:1.0.0 -""" - -import json -import socket -import struct -import time -from typing import Dict, List, Optional, Tuple, Any, Union - - -class XRDClient: - def __init__(self, host='127.0.0.1', port=6001, timeout=10.0): - """ - 初始化XRD D7-Mate客户端 - - Args: - host (str): 设备IP地址 - port (int): 通信端口,默认6001 - timeout (float): 超时时间,单位秒 - """ - self.host = host - self.port = port - self.timeout = timeout - self.sock = None - self._ros_node = None # ROS节点引用,由框架设置 - - def post_init(self, ros_node): - """ - ROS节点初始化后的回调方法,保存ROS节点引用但不自动连接 - - Args: - ros_node: ROS节点实例 - """ - self._ros_node = ros_node - ros_node.lab_logger().info(f"XRD D7-Mate设备已初始化,将在需要时连接: {self.host}:{self.port}") - # 不自动连接,只有在调用具体功能时才建立连接 - - def connect(self): - """ - 建立TCP连接到XRD D7-Mate设备 - - Raises: - ConnectionError: 连接失败时抛出 - """ - try: - self.sock = socket.create_connection((self.host, self.port), timeout=self.timeout) - self.sock.settimeout(self.timeout) - except Exception as e: - raise ConnectionError(f"Failed to connect to {self.host}:{self.port} - {str(e)}") - - def close(self): - """ - 关闭与XRD D7-Mate设备的TCP连接 - """ - if self.sock: - try: - self.sock.close() - except Exception: - pass # 忽略关闭时的错误 - finally: - self.sock = None - - def _ensure_connection(self) -> bool: - """ - 确保连接存在,如果不存在则尝试建立连接 - - Returns: - bool: 连接是否成功建立 - """ - if self.sock is None: - try: - self.connect() - return True - except Exception as e: - if self._ros_node: - self._ros_node.lab_logger().error(f"建立连接失败: {e}") - return False - return True - - def _receive_with_length_prefix(self) -> dict: - """ - 使用长度前缀协议接收数据 - - Returns: - dict: 解析后的JSON响应数据 - - Raises: - ConnectionError: 连接错误 - TimeoutError: 超时错误 - """ - try: - # 首先接收4字节的长度信息 - length_data = bytearray() - while len(length_data) < 4: - chunk = self.sock.recv(4 - len(length_data)) - if not chunk: - raise ConnectionError("Connection closed while receiving length prefix") - length_data.extend(chunk) - - # 解析长度(大端序无符号整数) - data_length = struct.unpack('>I', length_data)[0] - - if self._ros_node: - self._ros_node.lab_logger().info(f"接收到数据长度: {data_length} 字节") - - # 根据长度接收实际数据 - json_data = bytearray() - while len(json_data) < data_length: - remaining = data_length - len(json_data) - chunk = self.sock.recv(min(4096, remaining)) - if not chunk: - raise ConnectionError("Connection closed while receiving JSON data") - json_data.extend(chunk) - - # 解码JSON数据,优先使用UTF-8,失败时尝试GBK - try: - json_str = json_data.decode('utf-8') - except UnicodeDecodeError: - json_str = json_data.decode('gbk') - - # 解析JSON - result = json.loads(json_str) - - if self._ros_node: - self._ros_node.lab_logger().info(f"成功解析JSON响应: {result}") - - return result - - except socket.timeout: - if self._ros_node: - self._ros_node.lab_logger().warning(f"接收超时") - raise TimeoutError(f"recv() timed out after {self.timeout:.1f}s") - except Exception as e: - if self._ros_node: - self._ros_node.lab_logger().error(f"接收数据失败: {e}") - raise ConnectionError(f"Failed to receive data: {str(e)}") - - def _send_command(self, cmd: dict) -> dict: - """ - 使用长度前缀协议发送命令到XRD D7-Mate设备并接收响应 - - Args: - cmd (dict): 要发送的命令字典 - - Returns: - dict: 设备响应的JSON数据 - - Raises: - ConnectionError: 连接错误 - TimeoutError: 超时错误 - """ - # 确保连接存在,如果不存在则建立连接 - if not self.sock: - try: - self.connect() - if self._ros_node: - self._ros_node.lab_logger().info(f"为命令重新建立连接") - except Exception as e: - raise ConnectionError(f"Failed to establish connection: {str(e)}") - - try: - # 序列化命令为JSON - json_str = json.dumps(cmd, ensure_ascii=False) - payload = json_str.encode('utf-8') - - # 计算JSON数据长度并打包为4字节大端序无符号整数 - length_prefix = struct.pack('>I', len(payload)) - - if self._ros_node: - self._ros_node.lab_logger().info(f"发送JSON命令到XRD D7-Mate: {json_str}") - self._ros_node.lab_logger().info(f"发送数据长度: {len(payload)} 字节") - - # 发送长度前缀 - self.sock.sendall(length_prefix) - - # 发送JSON数据 - self.sock.sendall(payload) - - # 使用长度前缀协议接收响应 - response = self._receive_with_length_prefix() - - return response - - except Exception as e: - # 如果是连接错误,尝试重新连接一次 - if "远程主机强迫关闭了一个现有的连接" in str(e) or "10054" in str(e): - if self._ros_node: - self._ros_node.lab_logger().warning(f"连接被远程主机关闭,尝试重新连接: {e}") - try: - self.close() - self.connect() - # 重新发送命令 - json_str = json.dumps(cmd, ensure_ascii=False) - payload = json_str.encode('utf-8') - if self._ros_node: - self._ros_node.lab_logger().info(f"重新发送JSON命令到XRD D7-Mate: {json_str}") - self.sock.sendall(payload) - - # 重新接收响应 - buffer = bytearray() - start = time.time() - while True: - try: - chunk = self.sock.recv(4096) - if not chunk: - break - buffer.extend(chunk) - - # 尝试解码和解析JSON - try: - text = buffer.decode('utf-8', errors='strict') - text = text.strip() - if text.startswith('{'): - brace_count = 0 - json_end = -1 - for i, char in enumerate(text): - if char == '{': - brace_count += 1 - elif char == '}': - brace_count -= 1 - if brace_count == 0: - json_end = i + 1 - break - if json_end > 0: - text = text[:json_end] - result = json.loads(text) - - if self._ros_node: - self._ros_node.lab_logger().info(f"重连后成功解析JSON响应: {result}") - return result - - except (UnicodeDecodeError, json.JSONDecodeError): - pass - - except socket.timeout: - if self._ros_node: - self._ros_node.lab_logger().warning(f"重连后接收超时") - raise TimeoutError(f"recv() timed out after reconnection") - - if time.time() - start > self.timeout * 2: - raise TimeoutError(f"No complete JSON received after reconnection") - - except Exception as retry_e: - if self._ros_node: - self._ros_node.lab_logger().error(f"重连失败: {retry_e}") - raise ConnectionError(f"Connection retry failed: {str(retry_e)}") - - if isinstance(e, (ConnectionError, TimeoutError)): - raise - else: - raise ConnectionError(f"Command send failed: {str(e)}") - - # ==================== 自动模式控制 ==================== - - def start_auto_mode(self, status: bool) -> dict: - """ - 启动或停止自动模式 - - Args: - status (bool): True-启动自动模式,False-停止自动模式 - - Returns: - dict: 响应结果,包含status、timestamp、message - """ - if not self.sock: - try: - self.connect() - if self._ros_node: - self._ros_node.lab_logger().info("XRD D7-Mate设备重新连接成功") - except Exception as e: - if self._ros_node: - self._ros_node.lab_logger().warning(f"XRD D7-Mate设备连接失败: {e}") - return {"status": False, "message": "设备连接异常"} - - try: - # 按协议要求,content 直接为布尔值,使用传入的status参数 - cmd = { - "command": "START_AUTO_MODE", - "content": { - "status": bool(True) - } - } - - if self._ros_node: - self._ros_node.lab_logger().info(f"发送自动模式控制命令: {cmd}") - - response = self._send_command(cmd) - if self._ros_node: - self._ros_node.lab_logger().info(f"收到自动模式控制响应: {response}") - - return response - except Exception as e: - if self._ros_node: - self._ros_node.lab_logger().error(f"自动模式控制失败: {e}") - return {"status": False, "message": f"自动模式控制失败: {str(e)}"} - - # ==================== 上样流程 ==================== - - def get_sample_request(self) -> dict: - """ - 上样请求,检查是否允许上样 - - Returns: - dict: 响应结果,包含status、timestamp、message - """ - if not self.sock: - try: - self.connect() - if self._ros_node: - self._ros_node.lab_logger().info("XRD D7-Mate设备重新连接成功") - except Exception as e: - if self._ros_node: - self._ros_node.lab_logger().warning(f"XRD D7-Mate设备连接失败: {e}") - return {"status": False, "message": "设备连接异常"} - - try: - cmd = { - "command": "GET_SAMPLE_REQUEST", - } - - if self._ros_node: - self._ros_node.lab_logger().info(f"发送上样请求命令: {cmd}") - - response = self._send_command(cmd) - if self._ros_node: - self._ros_node.lab_logger().info(f"收到上样请求响应: {response}") - - return response - except Exception as e: - if self._ros_node: - self._ros_node.lab_logger().error(f"上样请求失败: {e}") - return {"status": False, "message": f"上样请求失败: {str(e)}"} - - def send_sample_ready(self, sample_id: str, start_theta: float, end_theta: float, - increment: float, exp_time: float) -> dict: - """ - 送样完成后,发送样品信息和采集参数 - - Args: - sample_id (str): 样品标识符 - start_theta (float): 起始角度(≥5°) - end_theta (float): 结束角度(≥5.5°,且必须大于start_theta) - increment (float): 角度增量(≥0.005) - exp_time (float): 曝光时间(0.1-5.0秒) - - Returns: - dict: 响应结果,包含status、timestamp、message等 - """ - # 参数验证 - if start_theta < 5.0: - return {"status": False, "message": "起始角度必须≥5°"} - if end_theta < 5.5: - return {"status": False, "message": "结束角度必须≥5.5°"} - if end_theta <= start_theta: - return {"status": False, "message": "结束角度必须大于起始角度"} - if increment < 0.005: - return {"status": False, "message": "角度增量必须≥0.005"} - if not (0.1 <= exp_time <= 5.0): - return {"status": False, "message": "曝光时间必须在0.1-5.0秒之间"} - - if not self.sock: - try: - self.connect() - if self._ros_node: - self._ros_node.lab_logger().info("XRD D7-Mate设备重新连接成功") - except Exception as e: - if self._ros_node: - self._ros_node.lab_logger().warning(f"XRD D7-Mate设备连接失败: {e}") - return {"status": False, "message": "设备连接异常"} - - try: - cmd = { - "command": "SEND_SAMPLE_READY", - "content": { - "sample_id": sample_id, - "start_theta": start_theta, - "end_theta": end_theta, - "increment": increment, - "exp_time": exp_time - } - } - - if self._ros_node: - self._ros_node.lab_logger().info(f"发送样品准备完成命令: {cmd}") - - response = self._send_command(cmd) - if self._ros_node: - self._ros_node.lab_logger().info(f"收到样品准备完成响应: {response}") - - return response - except Exception as e: - if self._ros_node: - self._ros_node.lab_logger().error(f"样品准备完成失败: {e}") - return {"status": False, "message": f"样品准备完成失败: {str(e)}"} - - # ==================== 数据获取 ==================== - - def get_current_acquire_data(self) -> dict: - """ - 获取当前正在采集的样品数据 - - Returns: - dict: 响应结果,包含status、timestamp、sample_id、Energy、Intensity等 - """ - if not self.sock: - try: - self.connect() - if self._ros_node: - self._ros_node.lab_logger().info("XRD D7-Mate设备重新连接成功") - except Exception as e: - if self._ros_node: - self._ros_node.lab_logger().warning(f"XRD D7-Mate设备连接失败: {e}") - return {"status": False, "message": "设备连接异常"} - - try: - cmd = { - "command": "GET_CURRENT_ACQUIRE_DATA", - } - - if self._ros_node: - self._ros_node.lab_logger().info(f"发送获取采集数据命令: {cmd}") - - response = self._send_command(cmd) - if self._ros_node: - self._ros_node.lab_logger().info(f"收到获取采集数据响应: {response}") - - return response - except Exception as e: - if self._ros_node: - self._ros_node.lab_logger().error(f"获取采集数据失败: {e}") - return {"status": False, "message": f"获取采集数据失败: {str(e)}"} - - def get_sample_status(self) -> dict: - """ - 获取工位样品状态及设备状态 - - Returns: - dict: 响应结果,包含status、timestamp、Station等 - """ - if not self.sock: - try: - self.connect() - if self._ros_node: - self._ros_node.lab_logger().info("XRD D7-Mate设备重新连接成功") - except Exception as e: - if self._ros_node: - self._ros_node.lab_logger().warning(f"XRD D7-Mate设备连接失败: {e}") - return {"status": False, "message": "设备连接异常"} - - try: - cmd = { - "command": "GET_SAMPLE_STATUS", - } - - if self._ros_node: - self._ros_node.lab_logger().info(f"发送获取样品状态命令: {cmd}") - - response = self._send_command(cmd) - if self._ros_node: - self._ros_node.lab_logger().info(f"收到获取样品状态响应: {response}") - - return response - except Exception as e: - if self._ros_node: - self._ros_node.lab_logger().error(f"获取样品状态失败: {e}") - return {"status": False, "message": f"获取样品状态失败: {str(e)}"} - - # ==================== 下样流程 ==================== - - def get_sample_down(self, sample_station: int) -> dict: - """ - 下样请求 - - Args: - sample_station (int): 下样工位(1, 2, 3) - - Returns: - dict: 响应结果,包含status、timestamp、sample_info等 - """ - # 参数验证 - if sample_station not in [1, 2, 3]: - return {"status": False, "message": "下样工位必须是1、2或3"} - - if not self.sock: - try: - self.connect() - if self._ros_node: - self._ros_node.lab_logger().info("XRD D7-Mate设备重新连接成功") - except Exception as e: - if self._ros_node: - self._ros_node.lab_logger().warning(f"XRD D7-Mate设备连接失败: {e}") - return {"status": False, "message": "设备连接异常"} - - try: - # 按协议要求,content 直接为整数工位号 - cmd = { - "command": "GET_SAMPLE_DOWN", - "content": { - "Sample station":int(3) - } - } - - if self._ros_node: - self._ros_node.lab_logger().info(f"发送下样请求命令: {cmd}") - - response = self._send_command(cmd) - if self._ros_node: - self._ros_node.lab_logger().info(f"收到下样请求响应: {response}") - - return response - except Exception as e: - if self._ros_node: - self._ros_node.lab_logger().error(f"下样请求失败: {e}") - return {"status": False, "message": f"下样请求失败: {str(e)}"} - - def send_sample_down_ready(self) -> dict: - """ - 下样完成命令 - - Returns: - dict: 响应结果,包含status、timestamp、message - """ - if not self.sock: - try: - self.connect() - if self._ros_node: - self._ros_node.lab_logger().info("XRD D7-Mate设备重新连接成功") - except Exception as e: - if self._ros_node: - self._ros_node.lab_logger().warning(f"XRD D7-Mate设备连接失败: {e}") - return {"status": False, "message": "设备连接异常"} - - try: - cmd = { - "command": "SEND_SAMPLE_DOWN_READY", - } - - if self._ros_node: - self._ros_node.lab_logger().info(f"发送下样完成命令: {cmd}") - - response = self._send_command(cmd) - if self._ros_node: - self._ros_node.lab_logger().info(f"收到下样完成响应: {response}") - - return response - except Exception as e: - if self._ros_node: - self._ros_node.lab_logger().error(f"下样完成失败: {e}") - return {"status": False, "message": f"下样完成失败: {str(e)}"} - - # ==================== 高压电源控制 ==================== - - def set_power_on(self) -> dict: - """ - 高压电源开启 - - Returns: - dict: 响应结果,包含status、timestamp、message - """ - if not self.sock: - try: - self.connect() - if self._ros_node: - self._ros_node.lab_logger().info("XRD D7-Mate设备重新连接成功") - except Exception as e: - if self._ros_node: - self._ros_node.lab_logger().warning(f"XRD D7-Mate设备连接失败: {e}") - return {"status": False, "message": "设备连接异常"} - - try: - cmd = { - "command": "SET_POWER_ON", - } - - if self._ros_node: - self._ros_node.lab_logger().info(f"发送高压电源开启命令: {cmd}") - - response = self._send_command(cmd) - if self._ros_node: - self._ros_node.lab_logger().info(f"收到高压开启响应: {response}") - - return response - except Exception as e: - if self._ros_node: - self._ros_node.lab_logger().error(f"高压开启失败: {e}") - return {"status": False, "message": f"高压开启失败: {str(e)}"} - - def set_power_off(self) -> dict: - """ - 高压电源关闭 - - Returns: - dict: 响应结果,包含status、timestamp、message - """ - if not self.sock: - try: - self.connect() - if self._ros_node: - self._ros_node.lab_logger().info("XRD D7-Mate设备重新连接成功") - except Exception as e: - if self._ros_node: - self._ros_node.lab_logger().warning(f"XRD D7-Mate设备连接失败: {e}") - return {"status": False, "message": "设备连接异常"} - - try: - cmd = { - "command": "SET_POWER_OFF", - } - - if self._ros_node: - self._ros_node.lab_logger().info(f"发送高压电源关闭命令: {cmd}") - - response = self._send_command(cmd) - if self._ros_node: - self._ros_node.lab_logger().info(f"收到高压关闭响应: {response}") - - return response - except Exception as e: - if self._ros_node: - self._ros_node.lab_logger().error(f"高压关闭失败: {e}") - return {"status": False, "message": f"高压关闭失败: {str(e)}"} - - def set_voltage_current(self, voltage: float, current: float) -> dict: - """ - 设置高压电源电压和电流 - - Args: - voltage (float): 电压值(kV) - current (float): 电流值(mA) - - Returns: - dict: 响应结果,包含status、timestamp、message - """ - if not self.sock: - try: - self.connect() - if self._ros_node: - self._ros_node.lab_logger().info("XRD D7-Mate设备重新连接成功") - except Exception as e: - if self._ros_node: - self._ros_node.lab_logger().warning(f"XRD D7-Mate设备连接失败: {e}") - return {"status": False, "message": "设备连接异常"} - - try: - cmd = { - "command": "SET_VOLTAGE_CURRENT", - "content": { - "voltage": voltage, - "current": current - } - } - - if self._ros_node: - self._ros_node.lab_logger().info(f"发送设置电压电流命令: {cmd}") - - response = self._send_command(cmd) - if self._ros_node: - self._ros_node.lab_logger().info(f"收到设置电压电流响应: {response}") - - return response - except Exception as e: - if self._ros_node: - self._ros_node.lab_logger().error(f"设置电压电流失败: {e}") - return {"status": False, "message": f"设置电压电流失败: {str(e)}"} - - def start(self, sample_id: str = "", start_theta: float = 10.0, end_theta: float = 80.0, - increment: float = 0.05, exp_time: float = 0.1, wait_minutes: float = 3.0, - string: str = "") -> dict: - """ - Start 主流程: - 1) 启动自动模式; - 2) 发送上样请求并等待允许; - 3) 等待指定分钟后发送样品准备完成(携带采集参数); - 4) 周期性轮询采集数据与工位状态; - 5) 一旦任一下样位变为 True,执行下样流程(GET_SAMPLE_DOWN + SEND_SAMPLE_DOWN_READY)。 - - Args: - sample_id: 样品名称 - start_theta: 起始角度(≥5°) - end_theta: 结束角度(≥5.5°,且必须大于 start_theta) - increment: 角度增量(≥0.005) - exp_time: 曝光时间(0.1-5.0 秒) - wait_minutes: 在允许上样后、发送样品准备完成前的等待分钟数(默认 3 分钟) - string: 字符串格式的参数输入,如果提供则优先解析使用 - - Returns: - dict: {"return_info": str, "success": bool} - """ - try: - # 强制类型转换:除 sample_id 外的所有输入均转换为 float(若为字符串) - def _to_float(v, default): - try: - return float(v) - except (TypeError, ValueError): - return float(default) - - if not isinstance(sample_id, str): - sample_id = str(sample_id) - if isinstance(start_theta, str): - start_theta = _to_float(start_theta, 10.0) - if isinstance(end_theta, str): - end_theta = _to_float(end_theta, 80.0) - if isinstance(increment, str): - increment = _to_float(increment, 0.05) - if isinstance(exp_time, str): - exp_time = _to_float(exp_time, 0.1) - if isinstance(wait_minutes, str): - wait_minutes = _to_float(wait_minutes, 3.0) - - # 不再从 string 参数解析覆盖;保留参数但忽略字符串解析,统一使用结构化输入 - - # 确保设备连接 - if not self.sock: - try: - self.connect() - if self._ros_node: - self._ros_node.lab_logger().info("XRD D7-Mate设备连接成功,开始执行start流程") - except Exception as e: - if self._ros_node: - self._ros_node.lab_logger().error(f"XRD D7-Mate设备连接失败: {e}") - return {"return_info": f"设备连接失败: {str(e)}", "success": False} - - # 1) 启动自动模式 - r_auto = self.start_auto_mode(True) - if not r_auto.get("status", False): - return {"return_info": f"启动自动模式失败: {r_auto.get('message', '未知')}", "success": False} - if self._ros_node: - self._ros_node.lab_logger().info(f"自动模式已启动: {r_auto}") - - # 2) 上样请求 - r_req = self.get_sample_request() - if not r_req.get("status", False): - return {"return_info": f"上样请求未允许: {r_req.get('message', '未知')}", "success": False} - if self._ros_node: - self._ros_node.lab_logger().info(f"上样已允许: {r_req}") - - # 3) 等待指定分钟后发送样品准备完成 - wait_seconds = max(0.0, float(wait_minutes)) * 60.0 - if self._ros_node: - self._ros_node.lab_logger().info(f"等待 {wait_minutes} 分钟后发送样品准备完成") - time.sleep(wait_seconds) - - r_ready = self.send_sample_ready(sample_id=sample_id, - start_theta=start_theta, - end_theta=end_theta, - increment=increment, - exp_time=exp_time) - if not r_ready.get("status", False): - return {"return_info": f"样品准备完成失败: {r_ready.get('message', '未知')}", "success": False} - if self._ros_node: - self._ros_node.lab_logger().info(f"样品准备完成已发送: {r_ready}") - - # 4) 轮询采集数据与工位状态 - polling_interval = 5.0 # 秒 - down_station_idx: Optional[int] = None - while True: - try: - r_data = self.get_current_acquire_data() - if self._ros_node: - self._ros_node.lab_logger().info(f"采集中数据: {r_data}") - except Exception as e: - if self._ros_node: - self._ros_node.lab_logger().warning(f"获取采集数据失败: {e}") - - try: - r_status = self.get_sample_status() - if self._ros_node: - self._ros_node.lab_logger().info(f"工位状态: {r_status}") - - station = r_status.get("Station", {}) - if isinstance(station, dict): - for idx in (1, 2, 3): - key = f"DownStation{idx}" - val = station.get(key) - if isinstance(val, bool) and val: - down_station_idx = idx - break - if down_station_idx is not None: - break - except Exception as e: - if self._ros_node: - self._ros_node.lab_logger().warning(f"获取工位状态失败: {e}") - - time.sleep(polling_interval) - - if down_station_idx is None: - return {"return_info": "未检测到任一下样位 True,流程未完成", "success": False} - - # 5) 下样流程 - r_down = self.get_sample_down(down_station_idx) - if not r_down.get("status", False): - return {"return_info": f"下样请求失败(工位 {down_station_idx}): {r_down.get('message', '未知')}", "success": False} - if self._ros_node: - self._ros_node.lab_logger().info(f"下样请求成功(工位 {down_station_idx}): {r_down}") - - r_ready_down = self.send_sample_down_ready() - if not r_ready_down.get("status", False): - return {"return_info": f"下样完成发送失败: {r_ready_down.get('message', '未知')}", "success": False} - if self._ros_node: - self._ros_node.lab_logger().info(f"下样完成已发送: {r_ready_down}") - - return {"return_info": f"Start流程完成,工位 {down_station_idx} 已下样", "success": True} - - except Exception as e: - if self._ros_node: - self._ros_node.lab_logger().error(f"Start流程异常: {e}") - return {"return_info": f"Start流程异常: {str(e)}", "success": False} - - def _parse_start_params(self, params: Union[str, Dict[str, Any]]) -> Dict[str, Any]: - """ - 解析UI输入参数为 Start 流程参数。 - - 从UI字典中读取各个字段的字符串值 - - 将数值字段从字符串转换为 float 类型 - - 保留 sample_id 为字符串类型 - - 返回: - dict: {sample_id, start_theta, end_theta, increment, exp_time, wait_minutes} - """ - # 如果传入为字典,则直接按键读取;否则给出警告并使用空字典 - if isinstance(params, dict): - p = params - else: - p = {} - if self._ros_node: - self._ros_node.lab_logger().warning("start 参数应为结构化字典") - - def _to_float(v, default): - """将UI输入的字符串值转换为float,处理空值和无效值""" - if v is None or v == '': - return float(default) - try: - # 处理字符串输入(来自UI) - if isinstance(v, str): - v = v.strip() - if v == '': - return float(default) - return float(v) - except (TypeError, ValueError): - return float(default) - - # 从UI输入字典中读取参数 - sample_id = p.get('sample_id') or p.get('sample_name') or '样品名称' - if not isinstance(sample_id, str): - sample_id = str(sample_id) - - # 将UI字符串输入转换为float - result: Dict[str, Any] = { - 'sample_id': sample_id, - 'start_theta': _to_float(p.get('start_theta'), 10.0), - 'end_theta': _to_float(p.get('end_theta'), 80.0), - 'increment': _to_float(p.get('increment'), 0.05), - 'exp_time': _to_float(p.get('exp_time'), 0.1), - 'wait_minutes': _to_float(p.get('wait_minutes'), 3.0), - } - - return result - - def start_from_string(self, params: Union[str, Dict[str, Any]]) -> dict: - """ - 从UI输入参数执行 Start 主流程。 - 接收来自用户界面的参数字典,其中数值字段为字符串格式,自动转换为正确的类型。 - - 参数: - params: UI输入参数字典,例如: - { - 'sample_id': 'teste', - 'start_theta': '10.0', # UI字符串输入 - 'end_theta': '25.0', # UI字符串输入 - 'increment': '0.05', # UI字符串输入 - 'exp_time': '0.10', # UI字符串输入 - 'wait_minutes': '0.5' # UI字符串输入 - } - - 返回: - dict: 执行结果 - """ - parsed = self._parse_start_params(params) - - sample_id = parsed.get('sample_id', '样品名称') - start_theta = float(parsed.get('start_theta', 10.0)) - end_theta = float(parsed.get('end_theta', 80.0)) - increment = float(parsed.get('increment', 0.05)) - exp_time = float(parsed.get('exp_time', 0.1)) - wait_minutes = float(parsed.get('wait_minutes', 3.0)) - - return self.start( - sample_id=sample_id, - start_theta=start_theta, - end_theta=end_theta, - increment=increment, - exp_time=exp_time, - wait_minutes=wait_minutes, - ) - -# 测试函数 -def test_xrd_client(): - """ - 测试XRD客户端功能 - """ - client = XRDClient(host='127.0.0.1', port=6001) - - try: - # 测试连接 - client.connect() - print("连接成功") - - # 测试启动自动模式 - result = client.start_auto_mode(True) - print(f"启动自动模式: {result}") - - # 测试上样请求 - result = client.get_sample_request() - print(f"上样请求: {result}") - - # 测试获取样品状态 - result = client.get_sample_status() - print(f"样品状态: {result}") - - # 测试高压开启 - result = client.set_power_on() - print(f"高压开启: {result}") - - except Exception as e: - print(f"测试失败: {e}") - finally: - client.close() - - -if __name__ == "__main__": - test_xrd_client() - -# 为了兼容性,提供别名 -XRD_D7Mate = XRDClient \ No newline at end of file diff --git a/unilabos/devices/zhida_gcms/Zhida_GCMS_ROS2_User_Guide.md b/unilabos/devices/zhida_gcms/Zhida_GCMS_ROS2_User_Guide.md deleted file mode 100644 index 74326c7a..00000000 --- a/unilabos/devices/zhida_gcms/Zhida_GCMS_ROS2_User_Guide.md +++ /dev/null @@ -1,148 +0,0 @@ -# 智达GCMS ROS2使用指南 / Zhida GCMS ROS2 User Guide - -## 概述 / Overview - -智达GCMS设备支持通过ROS2动作进行操作,包括CSV文件分析启动、设备状态查询等功能。 - -The Zhida GCMS device supports operations through ROS2 actions, including CSV file analysis startup, device status queries, and other functions. - -## 主要功能 / Main Features - -### 1. CSV文件分析启动 / CSV File Analysis Startup (`start_with_csv_file`) - -- **功能 / Function**: 接收CSV文件路径,自动读取文件内容并启动分析 / Receives CSV file path, automatically reads file content and starts analysis -- **输入 / Input**: CSV文件的绝对路径 / Absolute path of CSV file -- **输出 / Output**: `{"return_info": str, "success": bool}` - -### 2. 设备状态查询 / Device Status Query (`get_status`) - -- **功能 / Function**: 获取设备当前运行状态 / Get current device running status -- **输出 / Output**: 设备状态字符串(如"RunSample"、"Idle"等)/ Device status string (e.g., "RunSample", "Idle", etc.) - -### 3. 方法列表查询 / Method List Query (`get_methods`) - -- **功能 / Function**: 获取设备支持的所有方法列表 / Get all method lists supported by the device -- **输出 / Output**: 方法列表字典 / Method list dictionary - -### 4. 放盘操作 / Tray Operation (`put_tray`) - -- **功能 / Function**: 控制设备准备样品托盘 / Control device to prepare sample tray -- **输出 / Output**: 操作结果信息 / Operation result information - -### 5. 停止运行 / Stop Operation (`abort`) - -- **功能 / Function**: 中止当前正在进行的分析任务 / Abort current analysis task in progress -- **输出 / Output**: 操作结果信息 / Operation result information - -### 6. 获取版本信息 / Get Version Information (`get_version`) - -- **功能 / Function**: 查询设备接口版本和固件版本信息 / Query device interface version and firmware version information -- **输出 / Output**: 版本信息字典 / Version information dictionary - -## 使用方法 / Usage Methods - -### ROS2命令行使用 / ROS2 Command Line Usage - -### 1. 查询设备状态 / Query Device Status - -```bash -ros2 action send_goal /devices/ZHIDA_GCMS_STATION/get_status unilabos_msgs/action/EmptyIn "{}" -``` - -### 2. 查询方法列表 / Query Method List - -```bash -ros2 action send_goal /devices/ZHIDA_GCMS_STATION/get_methods unilabos_msgs/action/EmptyIn "{}" -``` - -### 3. 启动分析 / Start Analysis - -使用CSV文件启动分析 / Start analysis using CSV file: -```bash -ros2 action send_goal /devices/ZHIDA_GCMS_STATION/start_with_csv_file unilabos_msgs/action/StrSingleInput "{string: 'D:/path/to/your/samples.csv'}" -``` - -ros2 action send_goal /devices/ZHIDA_GCMS_STATION/start_with_csv_file unilabos_msgs/action/StrSingleInput "{string: 'd:/UniLab/Uni-Lab-OS/unilabos/devices/zhida_gcms/zhida_gcms-test_3.csv'}" - -使用Base64编码数据启动分析 / Start analysis using Base64 encoded data: -```bash -ros2 action send_goal /devices/ZHIDA_GCMS_STATION/start unilabos_msgs/action/StrSingleInput "{string: 'U2FtcGxlTmFtZSxBY3FNZXRob2QsUmFja0NvZGUsVmlhbFBvcyxTbXBsSW5qVm9sLE91dHB1dEZpbGU...'}" -``` -ros2 action send_goal /devices/ZHIDA_GCMS_STATION/start unilabos_msgs/action/StrSingleInput "{string: 'U2FtcGxlTmFtZSxBY3FNZXRob2QsUmFja0NvZGUsVmlhbFBvcyxTbXBsSW5qVm9sLE91dHB1dEZpbGUKU2FtcGxlMDAxLDIwMjUwNjA0LXRlc3QsUmFjayAxLDEsMSwvQ2hyb21lbGVvbkxvY2FsL++/veixuO+/vcSyxLzvv73vv73vv73vv73vv73vv73vv73vv73vv70vMjAyNTA2MDQK'}" - -### 4. 放盘操作 / Tray Operation - -**注意 / Note**: 放盘操作是特殊场景下使用的功能,比如机械臂比较短需要让开位置,或者盘支架是可移动的时候,这个指令让进样器也去做相应动作。在当前配置中,空间足够,不需要这个额外的控制组件。 - -**Note**: The tray operation is used in special scenarios, such as when the robotic arm is relatively short and needs to make room, or when the tray bracket is movable, this command makes the injector perform corresponding actions. In the current configuration, the space is sufficient and this additional control component is not needed. - -准备样品托盘 / Prepare sample tray: -```bash -ros2 action send_goal /devices/ZHIDA_GCMS_STATION/put_tray unilabos_msgs/action/EmptyIn "{}" -``` - -### 5. 停止运行 / Stop Operation - -中止当前分析任务(注意!运行中发现任务运行中止,需要人工在InLab Solution 二次点击确认)/ Abort current analysis task (Note! If task abortion is detected during operation, manual confirmation is required by clicking twice in InLab Solution): -```bash -ros2 action send_goal /devices/ZHIDA_GCMS_STATION/abort unilabos_msgs/action/EmptyIn "{}" -``` - -### 6. 获取版本信息 / Get Version Information - -查询设备版本 / Query device version: -```bash -ros2 action send_goal /devices/ZHIDA_GCMS_STATION/get_version unilabos_msgs/action/EmptyIn "{}" -``` - -### Python代码使用 / Python Code Usage - -```python -from unilabos.devices.zhida_gcms.zhida import ZhidaClient - -# 初始化客户端 / Initialize client -client = ZhidaClient(host='192.168.3.184', port=5792) -client.connect() - -# 使用CSV文件启动分析 / Start analysis using CSV file -result = client.start_with_csv_file('/path/to/your/file.csv') -print(f"成功 / Success: {result['success']}") -print(f"信息 / Info: {result['return_info']}") - -# 查询设备状态 / Query device status -status = client.get_status() -print(f"设备状态 / Device Status: {status}") - -client.close() -``` - -## 使用注意事项 / Usage Notes - -1. **文件路径 / File Path**: 必须使用绝对路径 / Must use absolute path -2. **文件格式 / File Format**: CSV文件必须是UTF-8编码 / CSV file must be UTF-8 encoded -3. **设备连接 / Device Connection**: 确保智达GCMS设备已连接并可访问 / Ensure Zhida GCMS device is connected and accessible -4. **权限 / Permissions**: 确保有读取CSV文件的权限 / Ensure you have permission to read CSV files - -## 故障排除 / Troubleshooting - -### 常见问题 / Common Issues - -1. **文件路径错误 / File Path Error**: 确保使用绝对路径且文件存在 / Ensure using absolute path and file exists -2. **编码问题 / Encoding Issue**: 确保CSV文件是UTF-8编码 / Ensure CSV file is UTF-8 encoded -3. **设备连接 / Device Connection**: 检查网络连接和设备状态 / Check network connection and device status -4. **权限问题 / Permission Issue**: 确保有文件读取权限 / Ensure you have file read permissions - -### 设备状态说明 / Device Status Description - -- `"Idle"`: 设备空闲状态 / Device idle status -- `"RunSample"`: 正在运行样品分析 / Running sample analysis -- `"Error"`: 设备错误状态 / Device error status - -## 总结 / Summary - -智达GCMS设备现在支持 / Zhida GCMS device now supports: - -1. 直接通过ROS2命令输入CSV文件路径启动分析 / Direct CSV file path input via ROS2 commands to start analysis -2. 按需查询设备状态和方法列表 / On-demand device status and method list queries -3. 完善的错误处理和日志记录 / Comprehensive error handling and logging -4. 简化的操作流程 / Simplified operation workflow \ No newline at end of file diff --git a/unilabos/devices/zhida_gcms/__init__.py b/unilabos/devices/zhida_gcms/__init__.py deleted file mode 100644 index e69de29b..00000000 diff --git a/unilabos/devices/zhida_gcms/device_test.json b/unilabos/devices/zhida_gcms/device_test.json deleted file mode 100644 index b9ca9516..00000000 --- a/unilabos/devices/zhida_gcms/device_test.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "nodes": [ - { - "id": "ZHIDA_GCMS_STATION", - "name": "ZHIDA_GCMS", - "parent": null, - "type": "device", - "class": "zhida_gcms", - "position": { - "x": 620.6111111111111, - "y": 171, - "z": 0 - }, - "config": { - "host": "192.168.3.184", - "port": 5792, - "timeout": 10.0 - }, - "data": {}, - "children": [] - } - ], - "links": [] -} \ No newline at end of file diff --git a/unilabos/devices/zhida_gcms/zhida.py b/unilabos/devices/zhida_gcms/zhida.py deleted file mode 100644 index 7f0cd21e..00000000 --- a/unilabos/devices/zhida_gcms/zhida.py +++ /dev/null @@ -1,400 +0,0 @@ -#!/usr/bin/env python3 -# -*- coding: utf-8 -*- -""" -智达GCMS设备驱动 - -支持智达GCMS设备的TCP通信协议,包括状态查询、方法获取、样品分析等功能。 -通信协议版本:1.0.1 -""" - -import base64 -import json -import socket -import time -import os -from pathlib import Path - - -class ZhidaClient: - def __init__(self, host='192.168.3.184', port=5792, timeout=10.0): - # 如果部署在智达GCMS上位机本地,可使用localhost: host='127.0.0.1' - """ - 初始化智达GCMS客户端 - - Args: - host (str): 设备IP地址,本地部署时可使用'127.0.0.1' - port (int): 通信端口,默认5792 - timeout (float): 超时时间,单位秒 - """ - self.host = host - self.port = port - self.timeout = timeout - self.sock = None - self._ros_node = None # ROS节点引用,由框架设置 - - def post_init(self, ros_node): - """ - ROS节点初始化后的回调方法,用于建立设备连接 - - Args: - ros_node: ROS节点实例 - """ - self._ros_node = ros_node - try: - self.connect() - ros_node.lab_logger().info(f"智达GCMS设备连接成功: {self.host}:{self.port}") - except Exception as e: - ros_node.lab_logger().error(f"智达GCMS设备连接失败: {e}") - # 不抛出异常,允许节点继续运行,后续可以重试连接 - - def connect(self): - """ - 建立TCP连接到智达GCMS设备 - - Raises: - ConnectionError: 连接失败时抛出 - """ - try: - self.sock = socket.create_connection((self.host, self.port), timeout=self.timeout) - # 确保后续 recv/send 都会在 timeout 秒后抛 socket.timeout - self.sock.settimeout(self.timeout) - except Exception as e: - raise ConnectionError(f"Failed to connect to {self.host}:{self.port} - {str(e)}") - - def close(self): - """ - 关闭与智达GCMS设备的TCP连接 - """ - if self.sock: - try: - self.sock.close() - except Exception: - pass # 忽略关闭时的错误 - finally: - self.sock = None - - def _send_command(self, cmd: dict) -> dict: - """ - 发送命令到智达GCMS设备并接收响应 - - Args: - cmd (dict): 要发送的命令字典 - - Returns: - dict: 设备响应的JSON数据 - - Raises: - ConnectionError: 连接错误 - TimeoutError: 超时错误 - """ - if not self.sock: - raise ConnectionError("Not connected to device") - - try: - # 发送JSON命令(UTF-8编码) - payload = json.dumps(cmd, ensure_ascii=False).encode('utf-8') - self.sock.sendall(payload) - - # 循环接收数据直到能成功解析完整JSON - buffer = bytearray() - start = time.time() - while True: - try: - chunk = self.sock.recv(4096) - if not chunk: - # 对端关闭连接,尝试解析已接收的数据 - if buffer: - try: - text = buffer.decode('utf-8', errors='strict') - return json.loads(text) - except (UnicodeDecodeError, json.JSONDecodeError): - pass - break - buffer.extend(chunk) - - # 尝试解码和解析JSON - text = buffer.decode('utf-8', errors='strict') - try: - return json.loads(text) - except json.JSONDecodeError: - # JSON不完整,继续接收 - pass - - except socket.timeout: - # 超时时,尝试解析已接收的数据 - if buffer: - try: - text = buffer.decode('utf-8', errors='strict') - return json.loads(text) - except (UnicodeDecodeError, json.JSONDecodeError): - pass - raise TimeoutError(f"recv() timed out after {self.timeout:.1f}s") - - # 防止死循环,总时长超过2倍超时时间就报错 - if time.time() - start > self.timeout * 2: - # 最后尝试解析已接收的数据 - if buffer: - try: - text = buffer.decode('utf-8', errors='strict') - return json.loads(text) - except (UnicodeDecodeError, json.JSONDecodeError): - pass - raise TimeoutError(f"No complete JSON received after {time.time() - start:.1f}s") - - # 连接关闭,如果有数据则尝试解析 - if buffer: - try: - text = buffer.decode('utf-8', errors='strict') - return json.loads(text) - except (UnicodeDecodeError, json.JSONDecodeError): - pass - - raise ConnectionError("Connection closed before JSON could be parsed") - - except Exception as e: - if isinstance(e, (ConnectionError, TimeoutError)): - raise - else: - raise ConnectionError(f"Command send failed: {str(e)}") - - def get_status(self) -> str: - """ - 获取设备状态 - - Returns: - str: 设备状态 (Idle|Offline|Error|Busy|RunSample|Unknown) - """ - if not self.sock: - # 尝试重新连接 - try: - self.connect() - if self._ros_node: - self._ros_node.lab_logger().info("智达GCMS设备重新连接成功") - except Exception as e: - if self._ros_node: - self._ros_node.lab_logger().warning(f"智达GCMS设备连接失败: {e}") - return "Offline" - - try: - response = self._send_command({"command": "getstatus"}) - return response.get("result", "Unknown") - except Exception as e: - if self._ros_node: - self._ros_node.lab_logger().warning(f"获取设备状态失败: {e}") - return "Error" - - def get_methods(self) -> dict: - """ - 获取当前Project的方法列表 - - Returns: - dict: 包含方法列表的响应 - """ - if not self.sock: - try: - self.connect() - if self._ros_node: - self._ros_node.lab_logger().info("智达GCMS设备重新连接成功") - except Exception as e: - if self._ros_node: - self._ros_node.lab_logger().warning(f"智达GCMS设备连接失败: {e}") - return {"error": "Device not connected"} - - try: - return self._send_command({"command": "getmethods"}) - except Exception as e: - if self._ros_node: - self._ros_node.lab_logger().warning(f"获取方法列表失败: {e}") - return {"error": str(e)} - - - - def get_version(self) -> dict: - """ - 获取接口版本和InLabPAL固件版本 - - Returns: - dict: 响应格式 {"result": "OK|Error", "message": "Interface:x.x.x;FW:x.x.x.xxx"} - """ - return self._send_command({"command": "version"}) - - def put_tray(self) -> dict: - """ - 放盘操作,准备InLabPAL进样器 - - 注意:此功能仅在特殊场景下使用,例如: - - 机械臂比较短,需要让开一个位置 - - 盘支架是可移动的,需要进样器配合做动作 - - 对于宜宾深势这套配置,空间足够,不需要这个额外的控制组件。 - - Returns: - dict: 响应格式 {"result": "OK|Error", "message": "ready_info|error_info"} - """ - return self._send_command({"command": "puttray"}) - - def start_with_csv_file(self, string: str = None, csv_file_path: str = None) -> dict: - """ - 使用CSV文件启动分析(支持ROS2动作调用) - - Args: - string (str): CSV文件路径(ROS2参数名) - csv_file_path (str): CSV文件路径(兼容旧接口) - - Returns: - dict: ROS2动作结果格式 {"return_info": str, "success": bool} - - Raises: - FileNotFoundError: CSV文件不存在 - Exception: 文件读取或通信错误 - """ - try: - # 支持两种参数传递方式:ROS2的string参数和直接的csv_file_path参数 - file_path = string if string is not None else csv_file_path - if file_path is None: - error_msg = "未提供CSV文件路径参数" - if self._ros_node: - self._ros_node.lab_logger().error(error_msg) - return {"return_info": error_msg, "success": False} - - # 使用Path对象进行更健壮的文件处理 - csv_path = Path(file_path) - if not csv_path.exists(): - error_msg = f"CSV文件不存在: {file_path}" - if self._ros_node: - self._ros_node.lab_logger().error(error_msg) - return {"return_info": error_msg, "success": False} - - # 读取CSV文件内容(UTF-8编码,替换未知字符) - csv_content = csv_path.read_text(encoding="utf-8", errors="replace") - - # 转换为Base64编码 - b64_content = base64.b64encode(csv_content.encode('utf-8')).decode('ascii') - - if self._ros_node: - self._ros_node.lab_logger().info(f"正在发送CSV文件到智达GCMS: {file_path}") - self._ros_node.lab_logger().info(f"Base64编码长度: {len(b64_content)} 字符") - - # 发送start命令 - response = self._send_command({ - "command": "start", - "message": b64_content - }) - - # 转换为ROS2动作结果格式 - if response.get("result") == "OK": - success_msg = f"智达GCMS分析启动成功: {response.get('message', 'Unknown')}" - if self._ros_node: - self._ros_node.lab_logger().info(success_msg) - return {"return_info": success_msg, "success": True} - else: - error_msg = f"智达GCMS分析启动失败: {response.get('message', 'Unknown error')}" - if self._ros_node: - self._ros_node.lab_logger().error(error_msg) - return {"return_info": error_msg, "success": False} - - except Exception as e: - error_msg = f"CSV文件处理失败: {str(e)}" - if self._ros_node: - self._ros_node.lab_logger().error(error_msg) - return {"return_info": error_msg, "success": False} - - def start(self, string: str = None, text: str = None) -> dict: - """ - 使用Base64编码数据启动分析(支持ROS2动作调用) - - Args: - string (str): Base64编码的CSV数据(ROS2参数名) - text (str): Base64编码的CSV数据(兼容旧接口) - - Returns: - dict: ROS2动作结果格式 {"return_info": str, "success": bool} - """ - try: - # 支持两种参数传递方式:ROS2的string参数和原有的text参数 - b64_content = string if string is not None else text - if b64_content is None: - error_msg = "未提供Base64编码数据参数" - if self._ros_node: - self._ros_node.lab_logger().error(error_msg) - return {"return_info": error_msg, "success": False} - - if self._ros_node: - self._ros_node.lab_logger().info(f"正在发送Base64数据到智达GCMS") - self._ros_node.lab_logger().info(f"Base64编码长度: {len(b64_content)} 字符") - - # 发送start命令 - response = self._send_command({ - "command": "start", - "message": b64_content - }) - - # 转换为ROS2动作结果格式 - if response.get("result") == "OK": - success_msg = f"智达GCMS分析启动成功: {response.get('message', 'Unknown')}" - if self._ros_node: - self._ros_node.lab_logger().info(success_msg) - return {"return_info": success_msg, "success": True} - else: - error_msg = f"智达GCMS分析启动失败: {response.get('message', 'Unknown error')}" - if self._ros_node: - self._ros_node.lab_logger().error(error_msg) - return {"return_info": error_msg, "success": False} - - except Exception as e: - error_msg = f"Base64数据处理失败: {str(e)}" - if self._ros_node: - self._ros_node.lab_logger().error(error_msg) - return {"return_info": error_msg, "success": False} - - def abort(self) -> dict: - """ - 停止当前运行的分析 - - Returns: - dict: 响应格式 {"result": "OK|Error", "message": "error_info"} - """ - return self._send_command({"command": "abort"}) - - -def test_zhida_client(): - """ - 测试智达GCMS客户端功能 - """ - client = ZhidaClient() - - try: - # 连接设备 - print("Connecting to Zhida GCMS...") - client.connect() - print("Connected successfully!") - - # 获取设备状态 - print(f"Device status: {client.status}") - - # 获取版本信息 - version_info = client.get_version() - print(f"Version info: {version_info}") - - # 获取方法列表 - methods = client.get_methods() - print(f"Available methods: {methods}") - - # 测试CSV文件发送(如果文件存在) - csv_file = Path(__file__).parent / "zhida_gcms-test_1.csv" - if csv_file.exists(): - print(f"Testing CSV file: {csv_file}") - result = client.start_with_csv_file(str(csv_file)) - print(f"Start result: {result}") - - except Exception as e: - print(f"Error: {str(e)}") - - finally: - # 关闭连接 - client.close() - print("Connection closed.") - - -if __name__ == "__main__": - test_zhida_client() diff --git a/unilabos/devices/zhida_gcms/zhida_gcms-test_1.csv b/unilabos/devices/zhida_gcms/zhida_gcms-test_1.csv deleted file mode 100644 index 5e6452e9..00000000 --- a/unilabos/devices/zhida_gcms/zhida_gcms-test_1.csv +++ /dev/null @@ -1,2 +0,0 @@ -SampleName,AcqMethod,RackCode,VialPos,SmplInjVol,OutputFile -Sample001,/ChromeleonLocal/�豸�IJļ���������/20250604/20231113.seq/20250604-test,Rack 1,1,1,/ChromeleonLocal/�豸�IJļ���������/20250604 diff --git a/unilabos/devices/zhida_hplc/possible_status.txt b/unilabos/devices/zhida_hplc/possible_status.txt deleted file mode 100644 index cf4e9efb..00000000 --- a/unilabos/devices/zhida_hplc/possible_status.txt +++ /dev/null @@ -1,15 +0,0 @@ -(base) PS C:\Users\dell\Desktop> python zhida.py getstatus -{ - "result": "RUN", - "message": "AcqTime:3.321049min Vial:1" -} -(base) PS C:\Users\dell\Desktop> python zhida.py getstatus -{ - "result": "NOTREADY", - "message": "AcqTime:0min Vial:1" -} -(base) PS C:\Users\dell\Desktop> python zhida.py getstatus -{ - "result": "PRERUN", - "message": "AcqTime:0min Vial:1" -} diff --git a/unilabos/devices/zhida_hplc/zhida.py b/unilabos/devices/zhida_hplc/zhida.py deleted file mode 100644 index 2320dbe6..00000000 --- a/unilabos/devices/zhida_hplc/zhida.py +++ /dev/null @@ -1,113 +0,0 @@ -#!/usr/bin/env python3 -# -*- coding: utf-8 -*- - -import base64 -import json -import socket -import time - - -class ZhidaClient: - def __init__(self, host='192.168.1.47', port=5792, timeout=10.0): - self.host = host - self.port = port - self.timeout = timeout - self.sock = None - - def connect(self): - """建立 TCP 连接,并设置超时用于后续 recv/send。""" - self.sock = socket.create_connection((self.host, self.port), timeout=self.timeout) - # 确保后续 recv/send 都会在 timeout 秒后抛 socket.timeout - self.sock.settimeout(self.timeout) - - def close(self): - """关闭连接。""" - if self.sock: - self.sock.close() - self.sock = None - - def _send_command(self, cmd: dict) -> dict: - """ - 发送一条命令,接收 raw bytes,直到能成功 json.loads。 - """ - if not self.sock: - raise ConnectionError("Not connected") - - # 1) 发送 JSON 命令 - payload = json.dumps(cmd, ensure_ascii=False).encode('utf-8') - # 如果服务端需要换行分隔,也可以加上: payload += b'\n' - self.sock.sendall(payload) - - # 2) 循环 recv,直到能成功解析完整 JSON - buffer = bytearray() - start = time.time() - while True: - try: - chunk = self.sock.recv(4096) - if not chunk: - # 对端关闭 - break - buffer.extend(chunk) - # 尝试解码、解析 - text = buffer.decode('utf-8', errors='strict') - try: - return json.loads(text) - except json.JSONDecodeError: - # 继续 recv - pass - except socket.timeout: - raise TimeoutError("recv() timed out after {:.1f}s".format(self.timeout)) - # 可选:防止死循环,整个循环时长超过 2×timeout 就报错 - if time.time() - start > self.timeout * 2: - raise TimeoutError("No complete JSON received after {:.1f}s".format(time.time() - start)) - - raise ConnectionError("Connection closed before JSON could be parsed") - -# @property -# def xxx() -> 类型: -# return xxxxxx - -# def send_command(self, ): -# self.xxx = dict[xxx] - -# 示例响应回复: -# { -# "result": "RUN", -# "message": "AcqTime:3.321049min Vial:1" -# } - - @property - def status(self) -> dict: - return self._send_command({"command": "getstatus"})["result"] - - # def get_status(self) -> dict: - # print(self._send_command({"command": "getstatus"})) - # return self._send_command({"command": "getstatus"}) - - def get_methods(self) -> dict: - return self._send_command({"command": "getmethods"}) - - def start(self, text) -> dict: - b64 = base64.b64encode(text.encode('utf-8')).decode('ascii') - return self._send_command({"command": "start", "message": b64}) - - def abort(self) -> dict: - return self._send_command({"command": "abort"}) - - -if __name__ == "__main__": - - """ - a,b,c - 1,2,4 - 2,4,5 - """ - - client = ZhidaClient() - # 连接 - client.connect() - # 获取状态 - print(client.status) - - - # 命令格式:python zhida.py [options] diff --git a/unilabos/devices/zhida_hplc/zhida_test_1.csv b/unilabos/devices/zhida_hplc/zhida_test_1.csv deleted file mode 100644 index 96cef55e..00000000 --- a/unilabos/devices/zhida_hplc/zhida_test_1.csv +++ /dev/null @@ -1,2 +0,0 @@ -SampleName,AcqMethod,RackCode,VialPos,SmplInjVol,OutputFile -Sample001,1028-10ul-10min.M,CStk1-01,1,10,DataSET1 \ No newline at end of file diff --git a/unilabos/registry/device_comms/communication_devices.yaml b/unilabos/registry/device_comms/communication_devices.yaml deleted file mode 100644 index ea3f1b61..00000000 --- a/unilabos/registry/device_comms/communication_devices.yaml +++ /dev/null @@ -1,109 +0,0 @@ -serial: - category: - - communication_devices - class: - action_value_mappings: - auto-handle_serial_request: - feedback: {} - goal: {} - goal_default: - request: null - response: null - handles: {} - placeholder_keys: {} - result: {} - schema: - description: handle_serial_request的参数schema - properties: - feedback: {} - goal: - properties: - request: - type: string - response: - type: string - required: - - request - - response - type: object - result: {} - required: - - goal - title: handle_serial_request参数 - type: object - type: UniLabJsonCommand - auto-read_data: - feedback: {} - goal: {} - goal_default: {} - handles: {} - placeholder_keys: {} - result: {} - schema: - description: read_data的参数schema - properties: - feedback: {} - goal: - properties: {} - required: [] - type: object - result: {} - required: - - goal - title: read_data参数 - type: object - type: UniLabJsonCommand - auto-send_command: - feedback: {} - goal: {} - goal_default: - command: null - handles: {} - placeholder_keys: {} - result: {} - schema: - description: send_command的参数schema - properties: - feedback: {} - goal: - properties: - command: - type: string - required: - - command - type: object - result: {} - required: - - goal - title: send_command参数 - type: object - type: UniLabJsonCommand - module: unilabos.ros.nodes.presets.serial_node:ROS2SerialNode - status_types: {} - type: ros2 - config_info: [] - description: Serial communication interface, used when sharing same serial port - for multiple devices - handles: [] - icon: '' - init_param_schema: - config: - properties: - baudrate: - default: 9600 - type: integer - device_id: - type: string - port: - type: string - resource_tracker: - type: object - required: - - device_id - - port - type: object - data: - properties: {} - required: [] - type: object - version: 1.0.0 diff --git a/unilabos/registry/device_comms/modbus_ioboard.yaml b/unilabos/registry/device_comms/modbus_ioboard.yaml deleted file mode 100644 index 1667e21c..00000000 --- a/unilabos/registry/device_comms/modbus_ioboard.yaml +++ /dev/null @@ -1,10 +0,0 @@ -#io_snrd: -# description: IO Board with 16 IOs -# class: -# module: unilabos.device_comms.SRND_16_IO:SRND_16_IO -# type: python -# hardware_interface: -# name: modbus_client -# extra_info: [] -# read: read_io_coil -# write: write_io_coil \ No newline at end of file diff --git a/unilabos/registry/devices/AI4M_station.yaml b/unilabos/registry/devices/AI4M_station.yaml new file mode 100644 index 00000000..0dba8ade --- /dev/null +++ b/unilabos/registry/devices/AI4M_station.yaml @@ -0,0 +1,766 @@ +AI4M_station: + category: + - AI4M_station + class: + action_value_mappings: + auto-disconnect: + feedback: {} + goal: {} + goal_default: {} + handles: {} + result: {} + schema: + description: '' + properties: + feedback: {} + goal: + properties: {} + required: [] + type: object + result: {} + required: + - goal + title: disconnect参数 + type: object + type: UniLabJsonCommand + auto-download_auto_params: + feedback: {} + goal: {} + goal_default: + auto_job_stop_delay: null + mag_stir_heat_temp: null + mag_stir_stir_speed: null + mag_stir_time_set: null + syringe_pump_abs_position_set: null + handles: {} + result: {} + schema: + description: '' + properties: + feedback: {} + goal: + properties: + auto_job_stop_delay: + type: integer + mag_stir_heat_temp: + type: integer + mag_stir_stir_speed: + type: integer + mag_stir_time_set: + type: integer + syringe_pump_abs_position_set: + type: integer + required: + - mag_stir_stir_speed + - mag_stir_heat_temp + - mag_stir_time_set + - syringe_pump_abs_position_set + - auto_job_stop_delay + type: object + result: {} + required: + - goal + title: download_auto_params参数 + type: object + type: UniLabJsonCommand + auto-load_nodes_from_csv: + feedback: {} + goal: {} + goal_default: + csv_path: null + handles: {} + result: {} + schema: + description: '' + properties: + feedback: {} + goal: + properties: + csv_path: + type: string + required: + - csv_path + type: object + result: {} + required: + - goal + title: load_nodes_from_csv参数 + type: object + type: UniLabJsonCommand + auto-post_init: + feedback: {} + goal: {} + goal_default: + ros_node: null + handles: {} + result: {} + schema: + description: '' + properties: + feedback: {} + goal: + properties: + ros_node: + type: string + required: + - ros_node + type: object + result: {} + required: + - goal + title: post_init参数 + type: object + type: UniLabJsonCommand + auto-print_cache_stats: + feedback: {} + goal: {} + goal_default: {} + handles: {} + result: {} + schema: + description: '' + properties: + feedback: {} + goal: + properties: {} + required: [] + type: object + result: {} + required: + - goal + title: print_cache_stats参数 + type: object + type: UniLabJsonCommand + auto-read_node: + feedback: {} + goal: {} + goal_default: + node_name: null + handles: {} + result: {} + schema: + description: '' + properties: + feedback: {} + goal: + properties: + node_name: + type: string + required: + - node_name + type: object + result: {} + required: + - goal + title: read_node参数 + type: object + type: UniLabJsonCommand + auto-set_node_value: + feedback: {} + goal: {} + goal_default: + name: null + value: null + handles: {} + result: {} + schema: + description: '' + properties: + feedback: {} + goal: + properties: + name: + type: string + value: + type: string + required: + - name + - value + type: object + result: {} + required: + - goal + title: set_node_value参数 + type: object + type: UniLabJsonCommand + auto-start_auto_mode: + feedback: {} + goal: {} + goal_default: {} + handles: {} + result: {} + schema: + description: '' + properties: + feedback: {} + goal: + properties: {} + required: [] + type: object + result: {} + required: + - goal + title: start_auto_mode参数 + type: object + type: UniLabJsonCommand + auto-start_manual_mode: + feedback: {} + goal: {} + goal_default: {} + handles: {} + result: {} + schema: + description: '' + properties: + feedback: {} + goal: + properties: {} + required: [] + type: object + result: {} + required: + - goal + title: start_manual_mode参数 + type: object + type: UniLabJsonCommand + auto-trigger_init: + feedback: {} + goal: {} + goal_default: {} + handles: {} + result: {} + schema: + description: '' + properties: + feedback: {} + goal: + properties: {} + required: [] + type: object + result: {} + required: + - goal + title: trigger_init参数 + type: object + type: UniLabJsonCommand + auto-trigger_robot_pick_beaker: + feedback: {} + goal: {} + goal_default: + pick_beaker_id: null + place_station_id: null + handles: {} + result: {} + schema: + description: '' + properties: + feedback: {} + goal: + properties: + pick_beaker_id: + type: integer + place_station_id: + type: integer + required: + - pick_beaker_id + - place_station_id + type: object + result: {} + required: + - goal + title: trigger_robot_pick_beaker参数 + type: object + type: UniLabJsonCommand + auto-trigger_robot_place_beaker: + feedback: {} + goal: {} + goal_default: + pick_station_id: null + place_beaker_id: null + handles: {} + result: {} + schema: + description: '' + properties: + feedback: {} + goal: + properties: + pick_station_id: + type: integer + place_beaker_id: + type: integer + required: + - place_beaker_id + - pick_station_id + type: object + result: {} + required: + - goal + title: trigger_robot_place_beaker参数 + type: object + type: UniLabJsonCommand + auto-trigger_station_process: + feedback: {} + goal: {} + goal_default: + mag_stir_heat_temp: null + mag_stir_stir_speed: null + mag_stir_time_set: null + station_id: null + syringe_pump_abs_position_set: null + handles: {} + result: {} + schema: + description: '' + properties: + feedback: {} + goal: + properties: + mag_stir_heat_temp: + type: integer + mag_stir_stir_speed: + type: integer + mag_stir_time_set: + type: integer + station_id: + type: integer + syringe_pump_abs_position_set: + type: integer + required: + - station_id + - mag_stir_stir_speed + - mag_stir_heat_temp + - mag_stir_time_set + - syringe_pump_abs_position_set + type: object + result: {} + required: + - goal + title: trigger_station_process参数 + type: object + type: UniLabJsonCommand + module: unilabos.devices.workstation.AI4M.AI4M:OpcUaClient + status_types: {} + type: python + config_info: [] + description: '' + handles: [] + icon: Hydrogel module.webp + init_param_schema: + config: + properties: + cache_timeout: + default: 5.0 + type: number + csv_path: + type: string + deck: + type: string + password: + type: string + subscription_interval: + default: 500 + type: integer + url: + type: string + use_subscription: + default: true + type: boolean + username: + type: string + required: + - url + type: object + data: + properties: + auto_job_stop_delay: + type: string + auto_mode: + type: string + auto_param_applied: + type: string + auto_param_downloaded: + type: string + auto_run_complete: + type: string + auto_run_start_trigger: + type: string + cache_stats: + type: object + init finished: + type: string + initialize: + type: string + mag_stirrer_c0_heat_mode: + type: string + mag_stirrer_c0_heat_mode_set: + type: string + mag_stirrer_c0_heat_temp: + type: string + mag_stirrer_c0_instrument_mode: + type: string + mag_stirrer_c0_return_speed_actual: + type: string + mag_stirrer_c0_return_speed_setpoint: + type: string + mag_stirrer_c0_return_temp_actual: + type: string + mag_stirrer_c0_return_temp_setpoint: + type: string + mag_stirrer_c0_return_time_actual: + type: string + mag_stirrer_c0_return_time_setpoint: + type: string + mag_stirrer_c0_safe_temp: + type: string + mag_stirrer_c0_stir_speed: + type: string + mag_stirrer_c0_temp_unit: + type: string + mag_stirrer_c0_time_set: + type: string + mag_stirrer_c0_work_mode_set: + type: string + mag_stirrer_c1_heat_mode: + type: string + mag_stirrer_c1_heat_mode_set: + type: string + mag_stirrer_c1_heat_temp: + type: string + mag_stirrer_c1_instrument_mode: + type: string + mag_stirrer_c1_return_speed_actual: + type: string + mag_stirrer_c1_return_speed_setpoint: + type: string + mag_stirrer_c1_return_temp_actual: + type: string + mag_stirrer_c1_return_temp_setpoint: + type: string + mag_stirrer_c1_return_time_actual: + type: string + mag_stirrer_c1_return_time_setpoint: + type: string + mag_stirrer_c1_safe_temp: + type: string + mag_stirrer_c1_stir_speed: + type: string + mag_stirrer_c1_temp_unit: + type: string + mag_stirrer_c1_time_set: + type: string + mag_stirrer_c1_work_mode_set: + type: string + mag_stirrer_c2_heat_mode: + type: string + mag_stirrer_c2_heat_mode_set: + type: string + mag_stirrer_c2_heat_temp: + type: string + mag_stirrer_c2_instrument_mode: + type: string + mag_stirrer_c2_return_speed_actual: + type: string + mag_stirrer_c2_return_speed_setpoint: + type: string + mag_stirrer_c2_return_temp_actual: + type: string + mag_stirrer_c2_return_temp_setpoint: + type: string + mag_stirrer_c2_return_time_actual: + type: string + mag_stirrer_c2_return_time_setpoint: + type: string + mag_stirrer_c2_safe_temp: + type: string + mag_stirrer_c2_stir_speed: + type: string + mag_stirrer_c2_temp_unit: + type: string + mag_stirrer_c2_time_set: + type: string + mag_stirrer_c2_work_mode_set: + type: string + manual_auto_switch: + type: string + mode_switch: + type: string + robot_init: + type: string + robot_init_complete: + type: string + robot_pick_beaker_id: + type: string + robot_pick_station_1_complete: + type: string + robot_pick_station_1_start: + type: string + robot_pick_station_2_complete: + type: string + robot_pick_station_2_start: + type: string + robot_pick_station_3_complete: + type: string + robot_pick_station_3_start: + type: string + robot_pick_station_id: + type: string + robot_place_beaker_id: + type: string + robot_place_station_1_complete: + type: string + robot_place_station_1_start: + type: string + robot_place_station_2_complete: + type: string + robot_place_station_2_start: + type: string + robot_place_station_3_complete: + type: string + robot_place_station_3_start: + type: string + robot_place_station_id: + type: string + robot_rack_pick_beaker_1_complete: + type: string + robot_rack_pick_beaker_1_start: + type: string + robot_rack_pick_beaker_2_complete: + type: string + robot_rack_pick_beaker_2_start: + type: string + robot_rack_pick_beaker_3_complete: + type: string + robot_rack_pick_beaker_3_start: + type: string + robot_rack_pick_beaker_4_complete: + type: string + robot_rack_pick_beaker_4_start: + type: string + robot_rack_pick_beaker_5_complete: + type: string + robot_rack_pick_beaker_5_start: + type: string + robot_rack_place_beaker_1_complete: + type: string + robot_rack_place_beaker_1_start: + type: string + robot_rack_place_beaker_2_complete: + type: string + robot_rack_place_beaker_2_start: + type: string + robot_rack_place_beaker_3_complete: + type: string + robot_rack_place_beaker_3_start: + type: string + robot_rack_place_beaker_4_complete: + type: string + robot_rack_place_beaker_4_start: + type: string + robot_rack_place_beaker_5_complete: + type: string + robot_rack_place_beaker_5_start: + type: string + robot_ready: + type: string + robot_safe_point: + type: string + robot_safe_zone_1: + type: string + robot_safe_zone_2: + type: string + robot_safe_zone_3: + type: string + station_1_process_complete: + type: string + station_1_ready: + type: string + station_1_request_params: + type: string + station_2_process_complete: + type: string + station_2_ready: + type: string + station_2_request_params: + type: string + station_3_process_complete: + type: string + station_3_ready: + type: string + station_3_request_params: + type: string + syringe_pump_0_abs_position_set: + type: string + syringe_pump_0_accel_code: + type: string + syringe_pump_0_aspirate_pos_set: + type: string + syringe_pump_0_current_position: + type: string + syringe_pump_0_dispense_pos_set: + type: string + syringe_pump_0_max_speed: + type: string + syringe_pump_0_start_speed: + type: string + syringe_pump_1_abs_position_set: + type: string + syringe_pump_1_accel_code: + type: string + syringe_pump_1_aspirate_pos_set: + type: string + syringe_pump_1_current_position: + type: string + syringe_pump_1_dispense_pos_set: + type: string + syringe_pump_1_max_speed: + type: string + syringe_pump_1_start_speed: + type: string + syringe_pump_2_abs_position_set: + type: string + syringe_pump_2_accel_code: + type: string + syringe_pump_2_aspirate_pos_set: + type: string + syringe_pump_2_current_position: + type: string + syringe_pump_2_dispense_pos_set: + type: string + syringe_pump_2_max_speed: + type: string + syringe_pump_2_start_speed: + type: string + required: + - cache_stats + - mag_stirrer_c0_stir_speed + - mag_stirrer_c0_heat_temp + - mag_stirrer_c0_time_set + - mag_stirrer_c0_return_speed_setpoint + - mag_stirrer_c0_return_speed_actual + - mag_stirrer_c0_return_temp_setpoint + - mag_stirrer_c0_return_temp_actual + - mag_stirrer_c0_return_time_setpoint + - mag_stirrer_c0_return_time_actual + - mag_stirrer_c0_work_mode_set + - mag_stirrer_c0_heat_mode_set + - mag_stirrer_c0_temp_unit + - mag_stirrer_c0_heat_mode + - mag_stirrer_c0_instrument_mode + - mag_stirrer_c0_safe_temp + - mag_stirrer_c1_stir_speed + - mag_stirrer_c1_heat_temp + - mag_stirrer_c1_time_set + - mag_stirrer_c1_return_speed_setpoint + - mag_stirrer_c1_return_speed_actual + - mag_stirrer_c1_return_temp_setpoint + - mag_stirrer_c1_return_temp_actual + - mag_stirrer_c1_return_time_setpoint + - mag_stirrer_c1_return_time_actual + - mag_stirrer_c1_work_mode_set + - mag_stirrer_c1_heat_mode_set + - mag_stirrer_c1_temp_unit + - mag_stirrer_c1_heat_mode + - mag_stirrer_c1_instrument_mode + - mag_stirrer_c1_safe_temp + - mag_stirrer_c2_stir_speed + - mag_stirrer_c2_heat_temp + - mag_stirrer_c2_time_set + - mag_stirrer_c2_return_speed_setpoint + - mag_stirrer_c2_return_speed_actual + - mag_stirrer_c2_return_temp_setpoint + - mag_stirrer_c2_return_temp_actual + - mag_stirrer_c2_return_time_setpoint + - mag_stirrer_c2_return_time_actual + - mag_stirrer_c2_work_mode_set + - mag_stirrer_c2_heat_mode_set + - mag_stirrer_c2_temp_unit + - mag_stirrer_c2_heat_mode + - mag_stirrer_c2_instrument_mode + - mag_stirrer_c2_safe_temp + - syringe_pump_0_current_position + - syringe_pump_0_abs_position_set + - syringe_pump_0_aspirate_pos_set + - syringe_pump_0_dispense_pos_set + - syringe_pump_0_start_speed + - syringe_pump_0_max_speed + - syringe_pump_0_accel_code + - syringe_pump_1_current_position + - syringe_pump_1_abs_position_set + - syringe_pump_1_aspirate_pos_set + - syringe_pump_1_dispense_pos_set + - syringe_pump_1_start_speed + - syringe_pump_1_max_speed + - syringe_pump_1_accel_code + - syringe_pump_2_current_position + - syringe_pump_2_abs_position_set + - syringe_pump_2_aspirate_pos_set + - syringe_pump_2_dispense_pos_set + - syringe_pump_2_start_speed + - syringe_pump_2_max_speed + - syringe_pump_2_accel_code + - robot_pick_beaker_id + - robot_place_beaker_id + - robot_place_station_id + - robot_pick_station_id + - robot_init + - robot_rack_pick_beaker_1_complete + - robot_rack_pick_beaker_2_complete + - robot_rack_pick_beaker_3_complete + - robot_rack_pick_beaker_4_complete + - robot_rack_pick_beaker_5_complete + - robot_rack_place_beaker_1_complete + - robot_rack_place_beaker_2_complete + - robot_rack_place_beaker_3_complete + - robot_rack_place_beaker_4_complete + - robot_rack_place_beaker_5_complete + - robot_place_station_1_complete + - robot_place_station_2_complete + - robot_place_station_3_complete + - robot_pick_station_1_complete + - robot_pick_station_2_complete + - robot_pick_station_3_complete + - robot_init_complete + - robot_rack_pick_beaker_1_start + - robot_rack_pick_beaker_2_start + - robot_rack_pick_beaker_3_start + - robot_rack_pick_beaker_4_start + - robot_rack_pick_beaker_5_start + - robot_rack_place_beaker_1_start + - robot_rack_place_beaker_2_start + - robot_rack_place_beaker_3_start + - robot_rack_place_beaker_4_start + - robot_rack_place_beaker_5_start + - robot_place_station_1_start + - robot_place_station_2_start + - robot_place_station_3_start + - robot_pick_station_1_start + - robot_pick_station_2_start + - robot_pick_station_3_start + - robot_safe_point + - robot_safe_zone_1 + - robot_safe_zone_2 + - robot_safe_zone_3 + - auto_run_start_trigger + - auto_run_complete + - station_1_request_params + - station_2_request_params + - station_3_request_params + - station_1_ready + - station_2_ready + - station_3_ready + - robot_ready + - station_1_process_complete + - station_2_process_complete + - station_3_process_complete + - mode_switch + - initialize + - init finished + - manual_auto_switch + - auto_mode + - auto_param_downloaded + - auto_param_applied + - auto_job_stop_delay + type: object + registry_type: device + version: 1.0.0 diff --git a/unilabos/registry/devices/Qone_nmr.yaml b/unilabos/registry/devices/Qone_nmr.yaml deleted file mode 100644 index fa182c77..00000000 --- a/unilabos/registry/devices/Qone_nmr.yaml +++ /dev/null @@ -1,223 +0,0 @@ -Qone_nmr: - category: - - Qone_nmr - class: - action_value_mappings: - abort: - feedback: {} - goal: {} - goal_default: {} - handles: {} - result: {} - schema: - description: '' - properties: - feedback: - properties: {} - required: [] - title: EmptyIn_Feedback - type: object - goal: - properties: {} - required: [] - title: EmptyIn_Goal - type: object - result: - properties: - return_info: - type: string - required: - - return_info - title: EmptyIn_Result - type: object - required: - - goal - title: EmptyIn - type: object - type: EmptyIn - auto-monitor_folder_for_new_content: - feedback: {} - goal: {} - goal_default: - check_interval: 60 - expected_count: 1 - monitor_dir: null - stability_checks: 3 - handles: {} - placeholder_keys: {} - result: {} - schema: - description: '' - properties: - feedback: {} - goal: - properties: - check_interval: - default: 60 - type: string - expected_count: - default: 1 - type: string - monitor_dir: - type: string - stability_checks: - default: 3 - type: string - required: [] - type: object - result: {} - required: - - goal - title: monitor_folder_for_new_content参数 - type: object - type: UniLabJsonCommand - auto-post_init: - feedback: {} - goal: {} - goal_default: - ros_node: null - handles: {} - placeholder_keys: {} - result: {} - schema: - description: '' - properties: - feedback: {} - goal: - properties: - ros_node: - type: string - required: - - ros_node - type: object - result: {} - required: - - goal - title: post_init参数 - type: object - type: UniLabJsonCommand - auto-strings_to_txt: - feedback: {} - goal: {} - goal_default: - output_dir: null - string_list: null - txt_encoding: utf-8 - handles: {} - placeholder_keys: {} - result: {} - schema: - description: '' - properties: - feedback: {} - goal: - properties: - output_dir: - type: string - string_list: - type: string - txt_encoding: - default: utf-8 - type: string - required: - - string_list - type: object - result: {} - required: - - goal - title: strings_to_txt参数 - type: object - type: UniLabJsonCommand - get_status: - feedback: {} - goal: {} - goal_default: {} - handles: {} - result: {} - schema: - description: '' - properties: - feedback: - properties: {} - required: [] - title: EmptyIn_Feedback - type: object - goal: - properties: {} - required: [] - title: EmptyIn_Goal - type: object - result: - properties: - return_info: - type: string - required: - - return_info - title: EmptyIn_Result - type: object - required: - - goal - title: EmptyIn - type: object - type: EmptyIn - start: - feedback: {} - goal: - string: string - goal_default: - string: '' - handles: {} - result: {} - schema: - description: '' - properties: - feedback: - properties: {} - required: [] - title: StrSingleInput_Feedback - type: object - goal: - properties: - string: - type: string - required: - - string - title: StrSingleInput_Goal - type: object - result: - properties: - return_info: - type: string - success: - type: boolean - required: - - return_info - - success - title: StrSingleInput_Result - type: object - required: - - goal - title: StrSingleInput - type: object - type: StrSingleInput - module: unilabos.devices.Qone_nmr.Qone_nmr:Qone_nmr - status_types: - status: str - type: python - config_info: [] - description: Oxford NMR设备驱动,支持CSV字符串到TXT文件的批量转换功能,并监测对应.nmr文件的大小变化以确认结果生成完成 - handles: [] - icon: '' - init_param_schema: - config: - properties: {} - required: [] - type: object - data: - properties: - status: - type: string - required: - - status - type: object - version: 1.0.0 diff --git a/unilabos/registry/devices/balance.yaml b/unilabos/registry/devices/balance.yaml deleted file mode 100644 index 0967ef42..00000000 --- a/unilabos/registry/devices/balance.yaml +++ /dev/null @@ -1 +0,0 @@ -{} diff --git a/unilabos/registry/devices/bioyond.yaml b/unilabos/registry/devices/bioyond.yaml deleted file mode 100644 index 3325a260..00000000 --- a/unilabos/registry/devices/bioyond.yaml +++ /dev/null @@ -1,589 +0,0 @@ -workstation.bioyond_dispensing_station: - category: - - workstation - - bioyond - class: - action_value_mappings: - auto-batch_create_90_10_vial_feeding_tasks: - feedback: {} - goal: {} - goal_default: - delay_time: null - hold_m_name: null - liquid_material_name: NMP - speed: null - temperature: null - titration: null - handles: {} - placeholder_keys: {} - result: {} - schema: - description: '' - properties: - feedback: {} - goal: - properties: - delay_time: - type: string - hold_m_name: - type: string - liquid_material_name: - default: NMP - type: string - speed: - type: string - temperature: - type: string - titration: - type: string - required: - - titration - type: object - result: {} - required: - - goal - title: batch_create_90_10_vial_feeding_tasks参数 - type: object - type: UniLabJsonCommand - auto-batch_create_diamine_solution_tasks: - feedback: {} - goal: {} - goal_default: - delay_time: null - liquid_material_name: NMP - solutions: null - speed: null - temperature: null - handles: {} - placeholder_keys: {} - result: {} - schema: - description: '' - properties: - feedback: {} - goal: - properties: - delay_time: - type: string - liquid_material_name: - default: NMP - type: string - solutions: - type: string - speed: - type: string - temperature: - type: string - required: - - solutions - type: object - result: {} - required: - - goal - title: batch_create_diamine_solution_tasks参数 - type: object - type: UniLabJsonCommand - auto-brief_step_parameters: - feedback: {} - goal: {} - goal_default: - data: null - handles: {} - placeholder_keys: {} - result: {} - schema: - description: '' - properties: - feedback: {} - goal: - properties: - data: - type: object - required: - - data - type: object - result: {} - required: - - goal - title: brief_step_parameters参数 - type: object - type: UniLabJsonCommand - auto-compute_experiment_design: - feedback: {} - goal: {} - goal_default: - m_tot: '70' - ratio: null - titration_percent: '0.03' - wt_percent: '0.25' - handles: {} - placeholder_keys: {} - result: {} - schema: - description: '' - properties: - feedback: {} - goal: - properties: - m_tot: - default: '70' - type: string - ratio: - type: object - titration_percent: - default: '0.03' - type: string - wt_percent: - default: '0.25' - type: string - required: - - ratio - type: object - result: - properties: - feeding_order: - items: {} - title: Feeding Order - type: array - return_info: - title: Return Info - type: string - solutions: - items: {} - title: Solutions - type: array - solvents: - additionalProperties: true - title: Solvents - type: object - titration: - additionalProperties: true - title: Titration - type: object - required: - - solutions - - titration - - solvents - - feeding_order - - return_info - title: ComputeExperimentDesignReturn - type: object - required: - - goal - title: compute_experiment_design参数 - type: object - type: UniLabJsonCommand - auto-process_order_finish_report: - feedback: {} - goal: {} - goal_default: - report_request: null - used_materials: null - handles: {} - placeholder_keys: {} - result: {} - schema: - description: '' - properties: - feedback: {} - goal: - properties: - report_request: - type: string - used_materials: - type: string - required: - - report_request - - used_materials - type: object - result: {} - required: - - goal - title: process_order_finish_report参数 - type: object - type: UniLabJsonCommand - auto-project_order_report: - feedback: {} - goal: {} - goal_default: - order_id: null - handles: {} - placeholder_keys: {} - result: {} - schema: - description: '' - properties: - feedback: {} - goal: - properties: - order_id: - type: string - required: - - order_id - type: object - result: {} - required: - - goal - title: project_order_report参数 - type: object - type: UniLabJsonCommand - auto-query_resource_by_name: - feedback: {} - goal: {} - goal_default: - material_name: null - handles: {} - placeholder_keys: {} - result: {} - schema: - description: '' - properties: - feedback: {} - goal: - properties: - material_name: - type: string - required: - - material_name - type: object - result: {} - required: - - goal - title: query_resource_by_name参数 - type: object - type: UniLabJsonCommand - auto-transfer_materials_to_reaction_station: - feedback: {} - goal: {} - goal_default: - target_device_id: null - transfer_groups: null - handles: {} - placeholder_keys: {} - result: {} - schema: - description: '' - properties: - feedback: {} - goal: - properties: - target_device_id: - type: string - transfer_groups: - type: array - required: - - target_device_id - - transfer_groups - type: object - result: {} - required: - - goal - title: transfer_materials_to_reaction_station参数 - type: object - type: UniLabJsonCommand - auto-wait_for_multiple_orders_and_get_reports: - feedback: {} - goal: {} - goal_default: - batch_create_result: null - check_interval: 10 - timeout: 7200 - handles: {} - placeholder_keys: {} - result: {} - schema: - description: '' - properties: - feedback: {} - goal: - properties: - batch_create_result: - type: string - check_interval: - default: 10 - type: integer - timeout: - default: 7200 - type: integer - required: [] - type: object - result: {} - required: - - goal - title: wait_for_multiple_orders_and_get_reports参数 - type: object - type: UniLabJsonCommand - auto-workflow_sample_locations: - feedback: {} - goal: {} - goal_default: - workflow_id: null - handles: {} - placeholder_keys: {} - result: {} - schema: - description: '' - properties: - feedback: {} - goal: - properties: - workflow_id: - type: string - required: - - workflow_id - type: object - result: {} - required: - - goal - title: workflow_sample_locations参数 - type: object - type: UniLabJsonCommand - create_90_10_vial_feeding_task: - feedback: {} - goal: - delay_time: delay_time - hold_m_name: hold_m_name - order_name: order_name - percent_10_1_assign_material_name: percent_10_1_assign_material_name - percent_10_1_liquid_material_name: percent_10_1_liquid_material_name - percent_10_1_target_weigh: percent_10_1_target_weigh - percent_10_1_volume: percent_10_1_volume - percent_10_2_assign_material_name: percent_10_2_assign_material_name - percent_10_2_liquid_material_name: percent_10_2_liquid_material_name - percent_10_2_target_weigh: percent_10_2_target_weigh - percent_10_2_volume: percent_10_2_volume - percent_10_3_assign_material_name: percent_10_3_assign_material_name - percent_10_3_liquid_material_name: percent_10_3_liquid_material_name - percent_10_3_target_weigh: percent_10_3_target_weigh - percent_10_3_volume: percent_10_3_volume - percent_90_1_assign_material_name: percent_90_1_assign_material_name - percent_90_1_target_weigh: percent_90_1_target_weigh - percent_90_2_assign_material_name: percent_90_2_assign_material_name - percent_90_2_target_weigh: percent_90_2_target_weigh - percent_90_3_assign_material_name: percent_90_3_assign_material_name - percent_90_3_target_weigh: percent_90_3_target_weigh - speed: speed - temperature: temperature - goal_default: - delay_time: '' - hold_m_name: '' - order_name: '' - percent_10_1_assign_material_name: '' - percent_10_1_liquid_material_name: '' - percent_10_1_target_weigh: '' - percent_10_1_volume: '' - percent_10_2_assign_material_name: '' - percent_10_2_liquid_material_name: '' - percent_10_2_target_weigh: '' - percent_10_2_volume: '' - percent_10_3_assign_material_name: '' - percent_10_3_liquid_material_name: '' - percent_10_3_target_weigh: '' - percent_10_3_volume: '' - percent_90_1_assign_material_name: '' - percent_90_1_target_weigh: '' - percent_90_2_assign_material_name: '' - percent_90_2_target_weigh: '' - percent_90_3_assign_material_name: '' - percent_90_3_target_weigh: '' - speed: '' - temperature: '' - handles: {} - result: - return_info: return_info - schema: - description: '' - properties: - feedback: - properties: {} - required: [] - title: DispenStationVialFeed_Feedback - type: object - goal: - properties: - delay_time: - type: string - hold_m_name: - type: string - order_name: - type: string - percent_10_1_assign_material_name: - type: string - percent_10_1_liquid_material_name: - type: string - percent_10_1_target_weigh: - type: string - percent_10_1_volume: - type: string - percent_10_2_assign_material_name: - type: string - percent_10_2_liquid_material_name: - type: string - percent_10_2_target_weigh: - type: string - percent_10_2_volume: - type: string - percent_10_3_assign_material_name: - type: string - percent_10_3_liquid_material_name: - type: string - percent_10_3_target_weigh: - type: string - percent_10_3_volume: - type: string - percent_90_1_assign_material_name: - type: string - percent_90_1_target_weigh: - type: string - percent_90_2_assign_material_name: - type: string - percent_90_2_target_weigh: - type: string - percent_90_3_assign_material_name: - type: string - percent_90_3_target_weigh: - type: string - speed: - type: string - temperature: - type: string - required: - - order_name - - percent_90_1_assign_material_name - - percent_90_1_target_weigh - - percent_90_2_assign_material_name - - percent_90_2_target_weigh - - percent_90_3_assign_material_name - - percent_90_3_target_weigh - - percent_10_1_assign_material_name - - percent_10_1_target_weigh - - percent_10_1_volume - - percent_10_1_liquid_material_name - - percent_10_2_assign_material_name - - percent_10_2_target_weigh - - percent_10_2_volume - - percent_10_2_liquid_material_name - - percent_10_3_assign_material_name - - percent_10_3_target_weigh - - percent_10_3_volume - - percent_10_3_liquid_material_name - - speed - - temperature - - delay_time - - hold_m_name - title: DispenStationVialFeed_Goal - type: object - result: - properties: - return_info: - type: string - required: - - return_info - title: DispenStationVialFeed_Result - type: object - required: - - goal - title: DispenStationVialFeed - type: object - type: DispenStationVialFeed - create_diamine_solution_task: - feedback: {} - goal: - delay_time: delay_time - hold_m_name: hold_m_name - liquid_material_name: liquid_material_name - material_name: material_name - order_name: order_name - speed: speed - target_weigh: target_weigh - temperature: temperature - volume: volume - goal_default: - delay_time: '' - hold_m_name: '' - liquid_material_name: '' - material_name: '' - order_name: '' - speed: '' - target_weigh: '' - temperature: '' - volume: '' - handles: {} - result: - return_info: return_info - schema: - description: '' - properties: - feedback: - properties: {} - required: [] - title: DispenStationSolnPrep_Feedback - type: object - goal: - properties: - delay_time: - type: string - hold_m_name: - type: string - liquid_material_name: - type: string - material_name: - type: string - order_name: - type: string - speed: - type: string - target_weigh: - type: string - temperature: - type: string - volume: - type: string - required: - - order_name - - material_name - - target_weigh - - volume - - liquid_material_name - - speed - - temperature - - delay_time - - hold_m_name - title: DispenStationSolnPrep_Goal - type: object - result: - properties: - return_info: - type: string - required: - - return_info - title: DispenStationSolnPrep_Result - type: object - required: - - goal - title: DispenStationSolnPrep - type: object - type: DispenStationSolnPrep - module: unilabos.devices.workstation.bioyond_studio.dispensing_station:BioyondDispensingStation - status_types: {} - type: python - config_info: [] - description: '' - handles: [] - icon: '' - init_param_schema: - config: - properties: - config: - type: string - deck: - type: string - required: - - config - - deck - type: object - data: - properties: {} - required: [] - type: object - version: 1.0.0 diff --git a/unilabos/registry/devices/bioyond_dispensing_station.yaml b/unilabos/registry/devices/bioyond_dispensing_station.yaml deleted file mode 100644 index 9ae76b7f..00000000 --- a/unilabos/registry/devices/bioyond_dispensing_station.yaml +++ /dev/null @@ -1,713 +0,0 @@ -bioyond_dispensing_station: - category: - - workstation - - bioyond - - bioyond_dispensing_station - class: - action_value_mappings: - auto-brief_step_parameters: - feedback: {} - goal: {} - goal_default: - data: null - handles: {} - placeholder_keys: {} - result: {} - schema: - description: '' - properties: - feedback: {} - goal: - properties: - data: - type: object - required: - - data - type: object - result: {} - required: - - goal - title: brief_step_parameters参数 - type: object - type: UniLabJsonCommand - auto-compute_experiment_design: - feedback: {} - goal: {} - goal_default: - m_tot: '70' - ratio: null - titration_percent: '0.03' - wt_percent: '0.25' - handles: {} - placeholder_keys: {} - result: {} - schema: - description: '' - properties: - feedback: {} - goal: - properties: - m_tot: - default: '70' - type: string - ratio: - type: object - titration_percent: - default: '0.03' - type: string - wt_percent: - default: '0.25' - type: string - required: - - ratio - type: object - result: - properties: - feeding_order: - items: {} - title: Feeding Order - type: array - return_info: - title: Return Info - type: string - solutions: - items: {} - title: Solutions - type: array - solvents: - additionalProperties: true - title: Solvents - type: object - titration: - additionalProperties: true - title: Titration - type: object - required: - - solutions - - titration - - solvents - - feeding_order - - return_info - title: ComputeExperimentDesignReturn - type: object - required: - - goal - title: compute_experiment_design参数 - type: object - type: UniLabJsonCommand - auto-process_order_finish_report: - feedback: {} - goal: {} - goal_default: - report_request: null - used_materials: null - handles: {} - placeholder_keys: {} - result: {} - schema: - description: '' - properties: - feedback: {} - goal: - properties: - report_request: - type: string - used_materials: - type: string - required: - - report_request - - used_materials - type: object - result: {} - required: - - goal - title: process_order_finish_report参数 - type: object - type: UniLabJsonCommand - auto-project_order_report: - feedback: {} - goal: {} - goal_default: - order_id: null - handles: {} - placeholder_keys: {} - result: {} - schema: - description: '' - properties: - feedback: {} - goal: - properties: - order_id: - type: string - required: - - order_id - type: object - result: {} - required: - - goal - title: project_order_report参数 - type: object - type: UniLabJsonCommand - auto-query_resource_by_name: - feedback: {} - goal: {} - goal_default: - material_name: null - handles: {} - placeholder_keys: {} - result: {} - schema: - description: '' - properties: - feedback: {} - goal: - properties: - material_name: - type: string - required: - - material_name - type: object - result: {} - required: - - goal - title: query_resource_by_name参数 - type: object - type: UniLabJsonCommand - auto-transfer_materials_to_reaction_station: - feedback: {} - goal: {} - goal_default: - target_device_id: null - transfer_groups: null - handles: {} - placeholder_keys: {} - result: {} - schema: - description: '' - properties: - feedback: {} - goal: - properties: - target_device_id: - type: string - transfer_groups: - type: array - required: - - target_device_id - - transfer_groups - type: object - result: {} - required: - - goal - title: transfer_materials_to_reaction_station参数 - type: object - type: UniLabJsonCommand - auto-workflow_sample_locations: - feedback: {} - goal: {} - goal_default: - workflow_id: null - handles: {} - placeholder_keys: {} - result: {} - schema: - description: '' - properties: - feedback: {} - goal: - properties: - workflow_id: - type: string - required: - - workflow_id - type: object - result: {} - required: - - goal - title: workflow_sample_locations参数 - type: object - type: UniLabJsonCommand - batch_create_90_10_vial_feeding_tasks: - feedback: {} - goal: - delay_time: delay_time - hold_m_name: hold_m_name - liquid_material_name: liquid_material_name - speed: speed - temperature: temperature - titration: titration - goal_default: - delay_time: '600' - hold_m_name: '' - liquid_material_name: NMP - speed: '400' - temperature: '40' - titration: '' - handles: - input: - - data_key: titration - data_source: handle - data_type: object - handler_key: titration - io_type: source - label: Titration Data From Calculation Node - output: - - data_key: return_info - data_source: executor - data_type: string - handler_key: BATCH_CREATE_RESULT - io_type: sink - label: Complete Batch Create Result JSON (contains order_codes and order_ids) - result: - return_info: return_info - schema: - description: 批量创建90%10%小瓶投料任务。从计算节点接收titration数据,包含物料名称、主称固体质量、滴定固体质量和滴定溶剂体积。返回的return_info中包含order_codes和order_ids列表。 - properties: - feedback: - properties: {} - required: [] - title: BatchCreate9010VialFeedingTasks_Feedback - type: object - goal: - properties: - delay_time: - default: '600' - description: 延迟时间(秒),默认600 - type: string - hold_m_name: - description: 库位名称,如"C01",必填参数 - type: string - liquid_material_name: - default: NMP - description: 10%物料的液体物料名称,默认为"NMP" - type: string - speed: - default: '400' - description: 搅拌速度,默认400 - type: string - temperature: - default: '40' - description: 温度(℃),默认40 - type: string - titration: - description: '滴定信息对象,包含: name(物料名称), main_portion(主称固体质量g), titration_portion(滴定固体质量g), - titration_solvent(滴定溶液体积mL)' - type: string - required: - - titration - - hold_m_name - title: BatchCreate9010VialFeedingTasks_Goal - type: object - result: - properties: - return_info: - description: 批量任务创建结果汇总JSON字符串,包含total(总数)、success(成功数)、failed(失败数)、order_codes(任务编码数组)、order_ids(任务ID数组)、details(每个任务的详细信息) - type: string - required: - - return_info - title: BatchCreate9010VialFeedingTasks_Result - type: object - required: - - goal - title: BatchCreate9010VialFeedingTasks - type: object - type: UniLabJsonCommand - batch_create_diamine_solution_tasks: - feedback: {} - goal: - delay_time: delay_time - liquid_material_name: liquid_material_name - solutions: solutions - speed: speed - temperature: temperature - goal_default: - delay_time: '600' - liquid_material_name: NMP - solutions: '' - speed: '400' - temperature: '20' - handles: - input: - - data_key: solutions - data_source: handle - data_type: array - handler_key: solutions - io_type: source - label: Solution Data From Python - output: - - data_key: return_info - data_source: executor - data_type: string - handler_key: BATCH_CREATE_RESULT - io_type: sink - label: Complete Batch Create Result JSON (contains order_codes and order_ids) - result: - return_info: return_info - schema: - description: 批量创建二胺溶液配置任务。自动为多个二胺样品创建溶液配置任务,每个任务包含固体物料称量、溶剂添加、搅拌混合等步骤。返回的return_info中包含order_codes和order_ids列表。 - properties: - feedback: - properties: {} - required: [] - title: BatchCreateDiamineSolutionTasks_Feedback - type: object - goal: - properties: - delay_time: - default: '600' - description: 溶液配置完成后的延迟时间(秒),用于充分混合和溶解,默认600秒 - type: string - liquid_material_name: - default: NMP - description: 液体溶剂名称,用于溶解固体物料,默认为NMP(N-甲基吡咯烷酮) - type: string - solutions: - description: '溶液列表,JSON数组格式,每个元素包含: name(物料名称), order(序号), solid_mass(固体质量g), - solvent_volume(溶剂体积mL)。示例: [{"name": "MDA", "order": 0, "solid_mass": - 5.0, "solvent_volume": 20}, {"name": "MPDA", "order": 1, "solid_mass": - 4.5, "solvent_volume": 18}]' - type: string - speed: - default: '400' - description: 搅拌速度(rpm),用于混合溶液,默认400转/分钟 - type: string - temperature: - default: '20' - description: 配置温度(℃),溶液配置过程的目标温度,默认20℃(室温) - type: string - required: - - solutions - title: BatchCreateDiamineSolutionTasks_Goal - type: object - result: - properties: - return_info: - description: 批量任务创建结果汇总JSON字符串,包含total(总数)、success(成功数)、failed(失败数)、order_codes(任务编码数组)、order_ids(任务ID数组)、details(每个任务的详细信息) - type: string - required: - - return_info - title: BatchCreateDiamineSolutionTasks_Result - type: object - required: - - goal - title: BatchCreateDiamineSolutionTasks - type: object - type: UniLabJsonCommand - create_90_10_vial_feeding_task: - feedback: {} - goal: - delay_time: delay_time - hold_m_name: hold_m_name - order_name: order_name - percent_10_1_assign_material_name: percent_10_1_assign_material_name - percent_10_1_liquid_material_name: percent_10_1_liquid_material_name - percent_10_1_target_weigh: percent_10_1_target_weigh - percent_10_1_volume: percent_10_1_volume - percent_10_2_assign_material_name: percent_10_2_assign_material_name - percent_10_2_liquid_material_name: percent_10_2_liquid_material_name - percent_10_2_target_weigh: percent_10_2_target_weigh - percent_10_2_volume: percent_10_2_volume - percent_10_3_assign_material_name: percent_10_3_assign_material_name - percent_10_3_liquid_material_name: percent_10_3_liquid_material_name - percent_10_3_target_weigh: percent_10_3_target_weigh - percent_10_3_volume: percent_10_3_volume - percent_90_1_assign_material_name: percent_90_1_assign_material_name - percent_90_1_target_weigh: percent_90_1_target_weigh - percent_90_2_assign_material_name: percent_90_2_assign_material_name - percent_90_2_target_weigh: percent_90_2_target_weigh - percent_90_3_assign_material_name: percent_90_3_assign_material_name - percent_90_3_target_weigh: percent_90_3_target_weigh - speed: speed - temperature: temperature - goal_default: - delay_time: '' - hold_m_name: '' - order_name: '' - percent_10_1_assign_material_name: '' - percent_10_1_liquid_material_name: '' - percent_10_1_target_weigh: '' - percent_10_1_volume: '' - percent_10_2_assign_material_name: '' - percent_10_2_liquid_material_name: '' - percent_10_2_target_weigh: '' - percent_10_2_volume: '' - percent_10_3_assign_material_name: '' - percent_10_3_liquid_material_name: '' - percent_10_3_target_weigh: '' - percent_10_3_volume: '' - percent_90_1_assign_material_name: '' - percent_90_1_target_weigh: '' - percent_90_2_assign_material_name: '' - percent_90_2_target_weigh: '' - percent_90_3_assign_material_name: '' - percent_90_3_target_weigh: '' - speed: '' - temperature: '' - handles: {} - result: - return_info: return_info - schema: - description: '' - properties: - feedback: - properties: {} - required: [] - title: DispenStationVialFeed_Feedback - type: object - goal: - properties: - delay_time: - type: string - hold_m_name: - type: string - order_name: - type: string - percent_10_1_assign_material_name: - type: string - percent_10_1_liquid_material_name: - type: string - percent_10_1_target_weigh: - type: string - percent_10_1_volume: - type: string - percent_10_2_assign_material_name: - type: string - percent_10_2_liquid_material_name: - type: string - percent_10_2_target_weigh: - type: string - percent_10_2_volume: - type: string - percent_10_3_assign_material_name: - type: string - percent_10_3_liquid_material_name: - type: string - percent_10_3_target_weigh: - type: string - percent_10_3_volume: - type: string - percent_90_1_assign_material_name: - type: string - percent_90_1_target_weigh: - type: string - percent_90_2_assign_material_name: - type: string - percent_90_2_target_weigh: - type: string - percent_90_3_assign_material_name: - type: string - percent_90_3_target_weigh: - type: string - speed: - type: string - temperature: - type: string - required: - - order_name - - percent_90_1_assign_material_name - - percent_90_1_target_weigh - - percent_90_2_assign_material_name - - percent_90_2_target_weigh - - percent_90_3_assign_material_name - - percent_90_3_target_weigh - - percent_10_1_assign_material_name - - percent_10_1_target_weigh - - percent_10_1_volume - - percent_10_1_liquid_material_name - - percent_10_2_assign_material_name - - percent_10_2_target_weigh - - percent_10_2_volume - - percent_10_2_liquid_material_name - - percent_10_3_assign_material_name - - percent_10_3_target_weigh - - percent_10_3_volume - - percent_10_3_liquid_material_name - - speed - - temperature - - delay_time - - hold_m_name - title: DispenStationVialFeed_Goal - type: object - result: - properties: - return_info: - type: string - required: - - return_info - title: DispenStationVialFeed_Result - type: object - required: - - goal - title: DispenStationVialFeed - type: object - type: DispenStationVialFeed - create_diamine_solution_task: - feedback: {} - goal: - delay_time: delay_time - hold_m_name: hold_m_name - liquid_material_name: liquid_material_name - material_name: material_name - order_name: order_name - speed: speed - target_weigh: target_weigh - temperature: temperature - volume: volume - goal_default: - delay_time: '' - hold_m_name: '' - liquid_material_name: '' - material_name: '' - order_name: '' - speed: '' - target_weigh: '' - temperature: '' - volume: '' - handles: {} - result: - return_info: return_info - schema: - description: '' - properties: - feedback: - properties: {} - required: [] - title: DispenStationSolnPrep_Feedback - type: object - goal: - properties: - delay_time: - type: string - hold_m_name: - type: string - liquid_material_name: - type: string - material_name: - type: string - order_name: - type: string - speed: - type: string - target_weigh: - type: string - temperature: - type: string - volume: - type: string - required: - - order_name - - material_name - - target_weigh - - volume - - liquid_material_name - - speed - - temperature - - delay_time - - hold_m_name - title: DispenStationSolnPrep_Goal - type: object - result: - properties: - return_info: - type: string - required: - - return_info - title: DispenStationSolnPrep_Result - type: object - required: - - goal - title: DispenStationSolnPrep - type: object - type: DispenStationSolnPrep - wait_for_multiple_orders_and_get_reports: - feedback: {} - goal: - batch_create_result: batch_create_result - check_interval: check_interval - timeout: timeout - goal_default: - batch_create_result: '' - check_interval: '10' - timeout: '7200' - handles: - input: - - data_key: batch_create_result - data_source: handle - data_type: string - handler_key: BATCH_CREATE_RESULT - io_type: source - label: Batch Task Creation Result From Previous Step - output: - - data_key: return_info - data_source: handle - data_type: string - handler_key: batch_reports_result - io_type: sink - label: Batch Order Completion Reports - result: - return_info: return_info - schema: - description: 同时等待多个任务完成并获取所有实验报告。从上游batch_create任务接收包含order_codes和order_ids的结果对象,并行监控所有任务状态并返回每个任务的报告。 - properties: - feedback: - properties: {} - required: [] - title: WaitForMultipleOrdersAndGetReports_Feedback - type: object - goal: - properties: - batch_create_result: - description: 批量创建任务的返回结果对象,包含order_codes和order_ids数组。从上游batch_create节点通过handle传递 - type: string - check_interval: - default: '10' - description: 检查任务状态的时间间隔(秒),默认每10秒检查一次所有待完成任务 - type: string - timeout: - default: '7200' - description: 等待超时时间(秒),默认7200秒(2小时)。超过此时间未完成的任务将标记为timeout - type: string - required: - - batch_create_result - title: WaitForMultipleOrdersAndGetReports_Goal - type: object - result: - properties: - return_info: - description: 'JSON格式的批量任务完成信息,包含: total(总数), completed(成功数), timeout(超时数), - error(错误数), elapsed_time(总耗时), reports(报告数组,每个元素包含order_code, - order_id, status, completion_status, report, elapsed_time)' - type: string - required: - - return_info - title: WaitForMultipleOrdersAndGetReports_Result - type: object - required: - - goal - title: WaitForMultipleOrdersAndGetReports - type: object - type: UniLabJsonCommand - module: unilabos.devices.workstation.bioyond_studio.dispensing_station:BioyondDispensingStation - status_types: {} - type: python - config_info: [] - description: '' - handles: [] - icon: preparation_station.webp - init_param_schema: - config: - properties: - config: - type: string - deck: - type: string - required: - - config - - deck - type: object - data: - properties: {} - required: [] - type: object - version: 1.0.0 diff --git a/unilabos/registry/devices/camera.yaml b/unilabos/registry/devices/camera.yaml deleted file mode 100644 index fe1aef28..00000000 --- a/unilabos/registry/devices/camera.yaml +++ /dev/null @@ -1,78 +0,0 @@ -camera: - category: - - camera - class: - action_value_mappings: - auto-destroy_node: - feedback: {} - goal: {} - goal_default: {} - handles: {} - placeholder_keys: {} - result: {} - schema: - description: 用于安全地关闭摄像头设备,释放摄像头资源,停止视频采集和发布服务。调用此函数将清理OpenCV摄像头连接并销毁ROS2节点。 - properties: - feedback: {} - goal: - properties: {} - required: [] - type: object - result: {} - required: - - goal - title: destroy_node参数 - type: object - type: UniLabJsonCommand - auto-timer_callback: - feedback: {} - goal: {} - goal_default: {} - handles: {} - placeholder_keys: {} - result: {} - schema: - description: 定时器回调函数的参数schema。此函数负责定期采集摄像头视频帧,将OpenCV格式的图像转换为ROS Image消息格式,并发布到指定的视频话题。默认以10Hz频率执行,确保视频流的连续性和实时性。 - properties: - feedback: {} - goal: - properties: {} - required: [] - type: object - result: {} - required: - - goal - title: timer_callback参数 - type: object - type: UniLabJsonCommand - module: unilabos.ros.nodes.presets.camera:VideoPublisher - status_types: {} - type: ros2 - config_info: [] - description: VideoPublisher摄像头设备节点,用于实时视频采集和流媒体发布。该设备通过OpenCV连接本地摄像头(如USB摄像头、内置摄像头等),定时采集视频帧并将其转换为ROS2的sensor_msgs/Image消息格式发布到视频话题。主要用于实验室自动化系统中的视觉监控、图像分析、实时观察等应用场景。支持可配置的摄像头索引、发布频率等参数。 - handles: [] - icon: '' - init_param_schema: - config: - properties: - camera_index: - default: 0 - type: string - device_id: - default: video_publisher - type: string - device_uuid: - default: '' - type: string - period: - default: 0.1 - type: number - resource_tracker: - type: object - required: [] - type: object - data: - properties: {} - required: [] - type: object - version: 1.0.0 diff --git a/unilabos/registry/devices/cameraSII.yaml b/unilabos/registry/devices/cameraSII.yaml deleted file mode 100644 index ad2df955..00000000 --- a/unilabos/registry/devices/cameraSII.yaml +++ /dev/null @@ -1,107 +0,0 @@ -cameracontroller_device: - category: - - cameraSII - class: - action_value_mappings: - auto-start: - feedback: {} - goal: {} - goal_default: - config: null - handles: {} - placeholder_keys: {} - result: {} - schema: - description: '' - properties: - feedback: {} - goal: - properties: - config: - type: string - required: [] - type: object - result: {} - required: - - goal - title: start参数 - type: object - type: UniLabJsonCommand - auto-stop: - feedback: {} - goal: {} - goal_default: {} - handles: {} - placeholder_keys: {} - result: {} - schema: - description: '' - properties: - feedback: {} - goal: - properties: {} - required: [] - type: object - result: {} - required: - - goal - title: stop参数 - type: object - type: UniLabJsonCommand - module: unilabos.devices.cameraSII.cameraUSB:CameraController - status_types: - status: dict - type: python - config_info: [] - description: Uni-Lab-OS 摄像头驱动(Linux USB 摄像头版,无 PTZ) - handles: [] - icon: '' - init_param_schema: - config: - properties: - audio_bitrate: - default: 64k - type: string - audio_device: - type: string - fps: - default: 30 - type: integer - height: - default: 720 - type: integer - host_id: - default: demo-host - type: string - rtmp_url: - default: rtmp://srs.sciol.ac.cn:4499/live/camera-01 - type: string - signal_backend_url: - default: wss://sciol.ac.cn/api/realtime/signal/host - type: string - video_bitrate: - default: 1500k - type: string - video_device: - default: /dev/video0 - type: string - webrtc_api: - default: https://srs.sciol.ac.cn/rtc/v1/play/ - type: string - webrtc_stream_url: - default: webrtc://srs.sciol.ac.cn:4500/live/camera-01 - type: string - width: - default: 1280 - type: integer - required: [] - type: object - data: - properties: - status: - type: object - required: - - status - type: object - registry_type: device - version: 1.0.0 diff --git a/unilabos/registry/devices/characterization_chromatic.yaml b/unilabos/registry/devices/characterization_chromatic.yaml deleted file mode 100644 index f3059b58..00000000 --- a/unilabos/registry/devices/characterization_chromatic.yaml +++ /dev/null @@ -1,413 +0,0 @@ -hplc.agilent: - category: - - characterization_chromatic - class: - action_value_mappings: - auto-check_status: - feedback: {} - goal: {} - goal_default: {} - handles: {} - placeholder_keys: {} - result: {} - schema: - description: 检查安捷伦HPLC设备状态的函数。用于监控设备的运行状态、连接状态、错误信息等关键指标。该函数定期查询设备状态,确保系统稳定运行,及时发现和报告设备异常。适用于自动化流程中的设备监控、故障诊断、系统维护等场景。 - properties: - feedback: {} - goal: - properties: {} - required: [] - type: object - result: {} - required: - - goal - title: check_status参数 - type: object - type: UniLabJsonCommand - auto-extract_data_from_txt: - feedback: {} - goal: {} - goal_default: - file_path: null - handles: {} - placeholder_keys: {} - result: {} - schema: - description: 从文本文件中提取分析数据的函数。用于解析安捷伦HPLC生成的结果文件,提取峰面积、保留时间、浓度等关键分析数据。支持多种文件格式的自动识别和数据结构化处理,为后续数据分析和报告生成提供标准化的数据格式。适用于批量数据处理、结果验证、质量控制等分析工作流程。 - properties: - feedback: {} - goal: - properties: - file_path: - type: string - required: - - file_path - type: object - result: {} - required: - - goal - title: extract_data_from_txt参数 - type: object - type: UniLabJsonCommand - auto-start_sequence: - feedback: {} - goal: {} - goal_default: - params: null - resource: null - wf_name: null - handles: {} - placeholder_keys: {} - result: {} - schema: - description: 启动安捷伦HPLC分析序列的函数。用于执行预定义的分析方法序列,包括样品进样、色谱分离、检测等完整的分析流程。支持参数配置、资源分配、工作流程管理等功能,实现全自动的样品分析。适用于批量样品处理、标准化分析、质量检测等需要连续自动分析的应用场景。 - properties: - feedback: {} - goal: - properties: - params: - type: string - resource: - type: object - wf_name: - type: string - required: - - wf_name - type: object - result: {} - required: - - goal - title: start_sequence参数 - type: object - type: UniLabJsonCommand - auto-try_close_sub_device: - feedback: {} - goal: {} - goal_default: - device_name: null - handles: {} - placeholder_keys: {} - result: {} - schema: - description: 尝试关闭HPLC子设备的函数。用于安全地关闭泵、检测器、进样器等各个子模块,确保设备正常断开连接并保护硬件安全。该函数提供错误处理和状态确认机制,避免强制关闭可能造成的设备损坏。适用于设备维护、系统重启、紧急停机等需要安全关闭设备的场景。 - properties: - feedback: {} - goal: - properties: - device_name: - type: string - required: [] - type: object - result: {} - required: - - goal - title: try_close_sub_device参数 - type: object - type: UniLabJsonCommand - auto-try_open_sub_device: - feedback: {} - goal: {} - goal_default: - device_name: null - handles: {} - placeholder_keys: {} - result: {} - schema: - description: 尝试打开HPLC子设备的函数。用于初始化和连接泵、检测器、进样器等各个子模块,建立设备通信并进行自检。该函数提供连接验证和错误恢复机制,确保子设备正常启动并准备就绪。适用于设备初始化、系统启动、设备重连等需要建立设备连接的场景。 - properties: - feedback: {} - goal: - properties: - device_name: - type: string - required: [] - type: object - result: {} - required: - - goal - title: try_open_sub_device参数 - type: object - type: UniLabJsonCommand - execute_command_from_outer: - feedback: {} - goal: - command: command - goal_default: - command: '' - handles: {} - result: - success: success - schema: - description: '' - properties: - feedback: - properties: - status: - type: string - required: - - status - title: SendCmd_Feedback - type: object - goal: - properties: - command: - type: string - required: - - command - title: SendCmd_Goal - type: object - result: - properties: - return_info: - type: string - success: - type: boolean - required: - - return_info - - success - title: SendCmd_Result - type: object - required: - - goal - title: SendCmd - type: object - type: SendCmd - module: unilabos.devices.hplc.AgilentHPLC:HPLCDriver - status_types: - could_run: bool - data_file: String - device_status: str - driver_init_ok: bool - finish_status: str - is_running: bool - status_text: str - success: bool - type: python - config_info: [] - description: 安捷伦高效液相色谱(HPLC)分析设备,用于复杂化合物的分离、检测和定量分析。该设备通过UI自动化技术控制安捷伦ChemStation软件,实现全自动的样品分析流程。具备序列启动、设备状态监控、数据文件提取、结果处理等功能。支持多样品批量处理和实时状态反馈,适用于药物分析、环境检测、食品安全、化学研究等需要高精度色谱分析的实验室应用。 - handles: [] - icon: '' - init_param_schema: - config: - properties: - driver_debug: - default: false - type: string - required: [] - type: object - data: - properties: - could_run: - type: boolean - data_file: - items: - type: string - type: array - device_status: - type: string - driver_init_ok: - type: boolean - finish_status: - type: string - is_running: - type: boolean - status_text: - type: string - success: - type: boolean - required: - - status_text - - device_status - - could_run - - driver_init_ok - - is_running - - success - - finish_status - - data_file - type: object - version: 1.0.0 -hplc.agilent-zhida: - category: - - characterization_chromatic - class: - action_value_mappings: - abort: - feedback: {} - goal: {} - goal_default: {} - handles: {} - result: {} - schema: - description: '' - properties: - feedback: - properties: {} - required: [] - title: EmptyIn_Feedback - type: object - goal: - properties: {} - required: [] - title: EmptyIn_Goal - type: object - result: - properties: - return_info: - type: string - required: - - return_info - title: EmptyIn_Result - type: object - required: - - goal - title: EmptyIn - type: object - type: EmptyIn - auto-close: - feedback: {} - goal: {} - goal_default: {} - handles: {} - placeholder_keys: {} - result: {} - schema: - description: HPLC设备连接关闭函数。安全地断开与智达HPLC设备的TCP socket连接,释放网络资源。该函数确保连接的正确关闭,避免网络资源泄露。通常在设备使用完毕或系统关闭时调用。 - properties: - feedback: {} - goal: - properties: {} - required: [] - type: object - result: {} - required: - - goal - title: close参数 - type: object - type: UniLabJsonCommand - auto-connect: - feedback: {} - goal: {} - goal_default: {} - handles: {} - placeholder_keys: {} - result: {} - schema: - description: HPLC设备连接建立函数。与智达HPLC设备建立TCP socket通信连接,配置通信超时参数。该函数是设备使用前的必要步骤,建立成功后可进行状态查询、方法获取、任务启动等操作。连接失败时会抛出异常。 - properties: - feedback: {} - goal: - properties: {} - required: [] - type: object - result: {} - required: - - goal - title: connect参数 - type: object - type: UniLabJsonCommand - get_methods: - feedback: {} - goal: {} - goal_default: {} - handles: {} - result: {} - schema: - description: '' - properties: - feedback: - properties: {} - required: [] - title: EmptyIn_Feedback - type: object - goal: - properties: {} - required: [] - title: EmptyIn_Goal - type: object - result: - properties: - return_info: - type: string - required: - - return_info - title: EmptyIn_Result - type: object - required: - - goal - title: EmptyIn - type: object - type: EmptyIn - start: - feedback: {} - goal: - string: string - goal_default: - string: '' - handles: {} - result: {} - schema: - description: '' - properties: - feedback: - properties: {} - required: [] - title: StrSingleInput_Feedback - type: object - goal: - properties: - string: - type: string - required: - - string - title: StrSingleInput_Goal - type: object - result: - properties: - return_info: - type: string - success: - type: boolean - required: - - return_info - - success - title: StrSingleInput_Result - type: object - required: - - goal - title: StrSingleInput - type: object - type: StrSingleInput - module: unilabos.devices.zhida_hplc.zhida:ZhidaClient - status_types: - methods: dict - status: dict - type: python - config_info: [] - description: 智达高效液相色谱(HPLC)分析设备,用于实验室样品的分离、检测和定量分析。该设备通过TCP socket与HPLC控制系统通信,支持远程控制和状态监控。具备自动进样、梯度洗脱、多检测器数据采集等功能,可执行复杂的色谱分析方法。适用于化学分析、药物检测、环境监测、生物样品分析等需要高精度分离分析的实验室应用场景。 - handles: [] - icon: '' - init_param_schema: - config: - properties: - host: - default: 192.168.1.47 - type: string - port: - default: 5792 - type: string - timeout: - default: 10.0 - type: string - required: [] - type: object - data: - properties: - methods: - type: object - status: - type: object - required: - - status - - methods - type: object - version: 1.0.0 diff --git a/unilabos/registry/devices/characterization_optic.yaml b/unilabos/registry/devices/characterization_optic.yaml deleted file mode 100644 index 80dcf93d..00000000 --- a/unilabos/registry/devices/characterization_optic.yaml +++ /dev/null @@ -1,194 +0,0 @@ -raman.home_made: - category: - - characterization_optic - class: - action_value_mappings: - auto-ccd_time: - feedback: {} - goal: {} - goal_default: - int_time: null - handles: {} - placeholder_keys: {} - result: {} - schema: - description: 设置CCD检测器积分时间的函数。用于配置拉曼光谱仪的信号采集时间,控制光谱数据的质量和信噪比。较长的积分时间可获得更高的信号强度和更好的光谱质量,但会增加测量时间。该函数允许根据样品特性和测量要求动态调整检测参数,优化测量效果。 - properties: - feedback: {} - goal: - properties: - int_time: - type: string - required: - - int_time - type: object - result: {} - required: - - goal - title: ccd_time参数 - type: object - type: UniLabJsonCommand - auto-laser_on_power: - feedback: {} - goal: {} - goal_default: - output_voltage_laser: null - handles: {} - placeholder_keys: {} - result: {} - schema: - description: 设置激光器输出功率的函数。用于控制拉曼光谱仪激光器的功率输出,调节激光强度以适应不同样品的测量需求。适当的激光功率能够获得良好的拉曼信号同时避免样品损伤。该函数支持精确的功率控制,确保测量结果的稳定性和重现性。 - properties: - feedback: {} - goal: - properties: - output_voltage_laser: - type: string - required: - - output_voltage_laser - type: object - result: {} - required: - - goal - title: laser_on_power参数 - type: object - type: UniLabJsonCommand - auto-raman_without_background: - feedback: {} - goal: {} - goal_default: - int_time: null - laser_power: null - handles: {} - placeholder_keys: {} - result: {} - schema: - description: 执行无背景扣除的拉曼光谱测量函数。用于直接采集样品的拉曼光谱信号,不进行背景校正处理。该函数配置积分时间和激光功率参数,获取原始光谱数据用于后续的数据处理分析。适用于对光谱数据质量要求较高或需要自定义背景处理流程的测量场景。 - properties: - feedback: {} - goal: - properties: - int_time: - type: string - laser_power: - type: string - required: - - int_time - - laser_power - type: object - result: {} - required: - - goal - title: raman_without_background参数 - type: object - type: UniLabJsonCommand - auto-raman_without_background_average: - feedback: {} - goal: {} - goal_default: - average: null - int_time: null - laser_power: null - sample_name: null - handles: {} - placeholder_keys: {} - result: {} - schema: - description: 执行多次平均的无背景拉曼光谱测量函数。通过多次测量取平均值来提高光谱数据的信噪比和测量精度,减少随机噪声影响。该函数支持自定义平均次数、积分时间、激光功率等参数,并可为样品指定名称便于数据管理。适用于对测量精度要求较高的定量分析和研究应用。 - properties: - feedback: {} - goal: - properties: - average: - type: string - int_time: - type: string - laser_power: - type: string - sample_name: - type: string - required: - - sample_name - - int_time - - laser_power - - average - type: object - result: {} - required: - - goal - title: raman_without_background_average参数 - type: object - type: UniLabJsonCommand - raman_cmd: - feedback: {} - goal: - command: command - goal_default: - command: '' - handles: {} - result: - success: success - schema: - description: '' - properties: - feedback: - properties: - status: - type: string - required: - - status - title: SendCmd_Feedback - type: object - goal: - properties: - command: - type: string - required: - - command - title: SendCmd_Goal - type: object - result: - properties: - return_info: - type: string - success: - type: boolean - required: - - return_info - - success - title: SendCmd_Result - type: object - required: - - goal - title: SendCmd - type: object - type: SendCmd - module: unilabos.devices.raman_uv.home_made_raman:RamanObj - status_types: {} - type: python - config_info: [] - description: 拉曼光谱分析设备,用于物质的分子结构和化学成分表征。该设备集成激光器和CCD检测器,通过串口通信控制激光功率和光谱采集。具备背景扣除、多次平均、自动数据处理等功能,支持高精度的拉曼光谱测量。适用于材料表征、化学分析、质量控制、研究开发等需要分子指纹识别和结构分析的实验应用。 - handles: [] - icon: '' - init_param_schema: - config: - properties: - baudrate_ccd: - default: 921600 - type: string - baudrate_laser: - default: 9600 - type: string - port_ccd: - type: string - port_laser: - type: string - required: - - port_laser - - port_ccd - type: object - data: - properties: {} - required: [] - type: object - version: 1.0.0 diff --git a/unilabos/registry/devices/chinwe.yaml b/unilabos/registry/devices/chinwe.yaml deleted file mode 100644 index 2078d0f0..00000000 --- a/unilabos/registry/devices/chinwe.yaml +++ /dev/null @@ -1,413 +0,0 @@ -separator.chinwe: - category: - - separator - - chinwe - class: - action_value_mappings: - auto-connect: - feedback: {} - goal: {} - goal_default: {} - handles: {} - placeholder_keys: {} - result: {} - schema: - description: '' - properties: - feedback: {} - goal: - properties: {} - required: [] - type: object - result: {} - required: - - goal - title: connect参数 - type: object - type: UniLabJsonCommand - auto-disconnect: - feedback: {} - goal: {} - goal_default: {} - handles: {} - placeholder_keys: {} - result: {} - schema: - description: '' - properties: - feedback: {} - goal: - properties: {} - required: [] - type: object - result: {} - required: - - goal - title: disconnect参数 - type: object - type: UniLabJsonCommand - auto-execute_command_from_outer: - feedback: {} - goal: {} - goal_default: - command_dict: null - handles: {} - placeholder_keys: {} - result: {} - schema: - description: '' - properties: - feedback: {} - goal: - properties: - command_dict: - type: object - required: - - command_dict - type: object - result: {} - required: - - goal - title: execute_command_from_outer参数 - type: object - type: UniLabJsonCommand - motor_rotate_quarter: - goal: - direction: 顺时针 - motor_id: 4 - speed: 60 - handles: {} - schema: - description: 电机旋转 1/4 圈 - properties: - goal: - properties: - direction: - default: 顺时针 - description: 旋转方向 - enum: - - 顺时针 - - 逆时针 - type: string - motor_id: - default: '4' - description: 选择电机 (4:搅拌, 5:旋钮) - enum: - - '4' - - '5' - type: string - speed: - default: 60 - description: 速度 (RPM) - type: integer - required: - - motor_id - - speed - type: object - type: UniLabJsonCommand - motor_run_continuous: - goal: - direction: 顺时针 - motor_id: 4 - speed: 60 - handles: {} - schema: - description: 电机一直旋转 (速度模式) - properties: - goal: - properties: - direction: - default: 顺时针 - description: 旋转方向 - enum: - - 顺时针 - - 逆时针 - type: string - motor_id: - default: '4' - description: 选择电机 (4:搅拌, 5:旋钮) - enum: - - '4' - - '5' - type: string - speed: - default: 60 - description: 速度 (RPM) - type: integer - required: - - motor_id - - speed - type: object - type: UniLabJsonCommand - motor_stop: - goal: - motor_id: 4 - handles: {} - schema: - description: 停止指定步进电机 - properties: - goal: - properties: - motor_id: - default: '4' - description: 选择电机 - enum: - - '4' - - '5' - title: '注: 4=搅拌, 5=旋钮' - type: string - required: - - motor_id - type: object - type: UniLabJsonCommand - pump_aspirate: - goal: - pump_id: 1 - valve_port: 1 - volume: 1000 - handles: {} - schema: - description: 注射泵吸液 - properties: - goal: - properties: - pump_id: - default: '1' - description: 选择泵 - enum: - - '1' - - '2' - - '3' - type: string - valve_port: - default: '1' - description: 阀门端口 - enum: - - '1' - - '2' - - '3' - - '4' - - '5' - - '6' - - '7' - - '8' - type: string - volume: - default: 1000 - description: 吸液步数 - type: integer - required: - - pump_id - - volume - - valve_port - type: object - type: UniLabJsonCommand - pump_dispense: - goal: - pump_id: 1 - valve_port: 1 - volume: 1000 - handles: {} - schema: - description: 注射泵排液 - properties: - goal: - properties: - pump_id: - default: '1' - description: 选择泵 - enum: - - '1' - - '2' - - '3' - type: string - valve_port: - default: '1' - description: 阀门端口 - enum: - - '1' - - '2' - - '3' - - '4' - - '5' - - '6' - - '7' - - '8' - type: string - volume: - default: 1000 - description: 排液步数 - type: integer - required: - - pump_id - - volume - - valve_port - type: object - type: UniLabJsonCommand - pump_initialize: - goal: - drain_port: 0 - output_port: 0 - pump_id: 1 - speed: 10 - handles: {} - schema: - description: 初始化指定注射泵 - properties: - goal: - properties: - drain_port: - default: 0 - description: 排液口索引 - type: integer - output_port: - default: 0 - description: 输出口索引 - type: integer - pump_id: - default: '1' - description: 选择泵 - enum: - - '1' - - '2' - - '3' - title: '注: 1号泵, 2号泵, 3号泵' - type: string - speed: - default: 10 - description: 运动速度 - type: integer - required: - - pump_id - type: object - type: UniLabJsonCommand - pump_valve: - goal: - port: 1 - pump_id: 1 - handles: {} - schema: - description: 切换指定泵的阀门端口 - properties: - goal: - properties: - port: - default: '1' - description: 阀门端口号 (1-8) - enum: - - '1' - - '2' - - '3' - - '4' - - '5' - - '6' - - '7' - - '8' - type: string - pump_id: - default: '1' - description: 选择泵 - enum: - - '1' - - '2' - - '3' - type: string - required: - - pump_id - - port - type: object - type: UniLabJsonCommand - wait_sensor_level: - goal: - target_state: 有液 - timeout: 30 - handles: {} - schema: - description: 等待传感器液位条件 - properties: - goal: - properties: - target_state: - default: 有液 - description: 目标液位状态 - enum: - - 有液 - - 无液 - type: string - timeout: - default: 30 - description: 超时时间 (秒) - type: integer - required: - - target_state - type: object - type: UniLabJsonCommand - wait_time: - goal: - duration: 10 - handles: {} - schema: - description: 等待指定时间 - properties: - goal: - properties: - duration: - default: 10 - description: 等待时间 (秒) - type: integer - required: - - duration - type: object - type: UniLabJsonCommand - module: unilabos.devices.separator.chinwe:ChinweDevice - status_types: - is_connected: bool - sensor_level: bool - sensor_rssi: int - type: python - config_info: [] - description: ChinWe 简易工作站控制器 (3泵, 2电机, 1传感器) - handles: [] - icon: '' - init_param_schema: - config: - properties: - baudrate: - default: 9600 - type: integer - motor_ids: - items: - type: integer - type: array - port: - default: 192.168.1.200:8899 - type: string - pump_ids: - items: - type: integer - type: array - sensor_id: - default: 6 - type: integer - sensor_threshold: - default: 300 - type: integer - timeout: - default: 10.0 - type: number - required: [] - type: object - data: - properties: - is_connected: - type: boolean - sensor_level: - type: boolean - sensor_rssi: - type: integer - required: - - sensor_level - - sensor_rssi - - is_connected - type: object - version: 2.1.0 diff --git a/unilabos/registry/devices/gas_handler.yaml b/unilabos/registry/devices/gas_handler.yaml deleted file mode 100644 index 65218619..00000000 --- a/unilabos/registry/devices/gas_handler.yaml +++ /dev/null @@ -1,363 +0,0 @@ -gas_source.mock: - category: - - gas_handler - class: - action_value_mappings: - auto-is_closed: - feedback: {} - goal: {} - goal_default: {} - handles: {} - placeholder_keys: {} - result: {} - schema: - description: is_closed的参数schema - properties: - feedback: {} - goal: - properties: {} - required: [] - type: object - result: {} - required: - - goal - title: is_closed参数 - type: object - type: UniLabJsonCommand - auto-is_open: - feedback: {} - goal: {} - goal_default: {} - handles: {} - placeholder_keys: {} - result: {} - schema: - description: is_open的参数schema - properties: - feedback: {} - goal: - properties: {} - required: [] - type: object - result: {} - required: - - goal - title: is_open参数 - type: object - type: UniLabJsonCommand - close: - feedback: {} - goal: {} - goal_default: {} - handles: {} - result: {} - schema: - description: '' - properties: - feedback: - properties: {} - required: [] - title: EmptyIn_Feedback - type: object - goal: - properties: {} - required: [] - title: EmptyIn_Goal - type: object - result: - properties: - return_info: - type: string - required: - - return_info - title: EmptyIn_Result - type: object - required: - - goal - title: EmptyIn - type: object - type: EmptyIn - open: - feedback: {} - goal: {} - goal_default: {} - handles: {} - result: {} - schema: - description: '' - properties: - feedback: - properties: {} - required: [] - title: EmptyIn_Feedback - type: object - goal: - properties: {} - required: [] - title: EmptyIn_Goal - type: object - result: - properties: - return_info: - type: string - required: - - return_info - title: EmptyIn_Result - type: object - required: - - goal - title: EmptyIn - type: object - type: EmptyIn - set_status: - feedback: {} - goal: - string: string - goal_default: - string: '' - handles: {} - result: {} - schema: - description: '' - properties: - feedback: - properties: {} - required: [] - title: StrSingleInput_Feedback - type: object - goal: - properties: - string: - type: string - required: - - string - title: StrSingleInput_Goal - type: object - result: - properties: - return_info: - type: string - success: - type: boolean - required: - - return_info - - success - title: StrSingleInput_Result - type: object - required: - - goal - title: StrSingleInput - type: object - type: StrSingleInput - module: unilabos.devices.pump_and_valve.vacuum_pump_mock:VacuumPumpMock - status_types: - status: str - type: python - config_info: [] - description: 模拟气体源设备,用于系统测试和开发调试。该设备模拟真实气体源的开关控制和状态监测功能,支持气体供应的启停操作。提供与真实气体源相同的接口和状态反馈,便于在没有实际硬件的情况下进行系统集成测试和算法验证。适用于气路系统调试、软件开发和实验流程验证等场景。 - handles: - - data_key: fluid_out - data_source: executor - data_type: fluid - handler_key: out - io_type: source - label: out - icon: '' - init_param_schema: - config: - properties: - port: - default: COM6 - type: string - required: [] - type: object - data: - properties: - status: - type: string - required: - - status - type: object - version: 1.0.0 -vacuum_pump.mock: - category: - - vacuum_and_purge - - gas_handler - class: - action_value_mappings: - auto-is_closed: - feedback: {} - goal: {} - goal_default: {} - handles: {} - placeholder_keys: {} - result: {} - schema: - description: is_closed的参数schema - properties: - feedback: {} - goal: - properties: {} - required: [] - type: object - result: {} - required: - - goal - title: is_closed参数 - type: object - type: UniLabJsonCommand - auto-is_open: - feedback: {} - goal: {} - goal_default: {} - handles: {} - placeholder_keys: {} - result: {} - schema: - description: is_open的参数schema - properties: - feedback: {} - goal: - properties: {} - required: [] - type: object - result: {} - required: - - goal - title: is_open参数 - type: object - type: UniLabJsonCommand - close: - feedback: {} - goal: {} - goal_default: {} - handles: {} - result: {} - schema: - description: '' - properties: - feedback: - properties: {} - required: [] - title: EmptyIn_Feedback - type: object - goal: - properties: {} - required: [] - title: EmptyIn_Goal - type: object - result: - properties: - return_info: - type: string - required: - - return_info - title: EmptyIn_Result - type: object - required: - - goal - title: EmptyIn - type: object - type: EmptyIn - open: - feedback: {} - goal: {} - goal_default: {} - handles: {} - result: {} - schema: - description: '' - properties: - feedback: - properties: {} - required: [] - title: EmptyIn_Feedback - type: object - goal: - properties: {} - required: [] - title: EmptyIn_Goal - type: object - result: - properties: - return_info: - type: string - required: - - return_info - title: EmptyIn_Result - type: object - required: - - goal - title: EmptyIn - type: object - type: EmptyIn - set_status: - feedback: {} - goal: - string: string - goal_default: - string: '' - handles: {} - result: {} - schema: - description: '' - properties: - feedback: - properties: {} - required: [] - title: StrSingleInput_Feedback - type: object - goal: - properties: - string: - type: string - required: - - string - title: StrSingleInput_Goal - type: object - result: - properties: - return_info: - type: string - success: - type: boolean - required: - - return_info - - success - title: StrSingleInput_Result - type: object - required: - - goal - title: StrSingleInput - type: object - type: StrSingleInput - module: unilabos.devices.pump_and_valve.vacuum_pump_mock:VacuumPumpMock - status_types: - status: str - type: python - config_info: [] - description: 模拟真空泵设备,用于系统测试和开发调试。该设备模拟真实真空泵的抽气功能和状态控制,支持真空系统的启停操作和状态监测。提供与真实真空泵相同的接口和控制逻辑,便于在没有实际硬件的情况下进行真空系统的集成测试。适用于真空工艺调试、软件开发和实验流程验证等场景。 - handles: - - data_key: fluid_in - data_source: handle - data_type: fluid - handler_key: out - io_type: source - label: out - icon: '' - init_param_schema: - config: - properties: - port: - default: COM6 - type: string - required: [] - type: object - data: - properties: - status: - type: string - required: - - status - type: object - version: 1.0.0 diff --git a/unilabos/registry/devices/hotel.yaml b/unilabos/registry/devices/hotel.yaml deleted file mode 100644 index 3fd0ea5b..00000000 --- a/unilabos/registry/devices/hotel.yaml +++ /dev/null @@ -1,36 +0,0 @@ -hotel.thermo_orbitor_rs2_hotel: - category: - - hotel - class: - action_value_mappings: {} - module: unilabos.devices.resource_container.container:HotelContainer - status_types: - rotation: String - type: python - config_info: [] - description: Thermo Orbitor RS2 Hotel容器设备,用于实验室样品的存储和管理。该设备通过HotelContainer类实现容器的旋转控制和状态监控,主要用于存储实验样品、试剂瓶或其他实验器具,支持旋转功能以便于样品的自动化存取。适用于需要有序存储和快速访问大量样品的实验室自动化场景。 - handles: [] - icon: '' - init_param_schema: - config: - properties: - device_config: - type: object - rotation: - type: object - required: - - rotation - - device_config - type: object - data: - properties: - rotation: - type: string - required: - - rotation - type: object - model: - mesh: thermo_orbitor_rs2_hotel - path: https://uni-lab.oss-cn-zhangjiakou.aliyuncs.com/uni-lab/devices/thermo_orbitor_rs2_hotel/macro_device.xacro - type: device - version: 1.0.0 diff --git a/unilabos/registry/devices/laiyu_liquid_test.yaml b/unilabos/registry/devices/laiyu_liquid_test.yaml deleted file mode 100644 index dcaa9818..00000000 --- a/unilabos/registry/devices/laiyu_liquid_test.yaml +++ /dev/null @@ -1,585 +0,0 @@ -xyz_stepper_controller: - category: - - laiyu_liquid_test - class: - action_value_mappings: - auto-degrees_to_steps: - feedback: {} - goal: {} - goal_default: - degrees: null - handles: {} - placeholder_keys: {} - result: {} - schema: - description: '' - properties: - feedback: {} - goal: - properties: - degrees: - type: number - required: - - degrees - type: object - result: {} - required: - - goal - title: degrees_to_steps参数 - type: object - type: UniLabJsonCommand - auto-emergency_stop: - feedback: {} - goal: {} - goal_default: - axis: null - handles: {} - placeholder_keys: {} - result: {} - schema: - description: '' - properties: - feedback: {} - goal: - properties: - axis: - type: object - required: - - axis - type: object - result: {} - required: - - goal - title: emergency_stop参数 - type: object - type: UniLabJsonCommand - auto-enable_all_axes: - feedback: {} - goal: {} - goal_default: - enable: true - handles: {} - placeholder_keys: {} - result: {} - schema: - description: '' - properties: - feedback: {} - goal: - properties: - enable: - default: true - type: boolean - required: [] - type: object - result: {} - required: - - goal - title: enable_all_axes参数 - type: object - type: UniLabJsonCommand - auto-enable_motor: - feedback: {} - goal: {} - goal_default: - axis: null - enable: true - handles: {} - placeholder_keys: {} - result: {} - schema: - description: '' - properties: - feedback: {} - goal: - properties: - axis: - type: object - enable: - default: true - type: boolean - required: - - axis - type: object - result: {} - required: - - goal - title: enable_motor参数 - type: object - type: UniLabJsonCommand - auto-home_all_axes: - feedback: {} - goal: {} - goal_default: {} - handles: {} - placeholder_keys: {} - result: {} - schema: - description: '' - properties: - feedback: {} - goal: - properties: {} - required: [] - type: object - result: {} - required: - - goal - title: home_all_axes参数 - type: object - type: UniLabJsonCommand - auto-home_axis: - feedback: {} - goal: {} - goal_default: - axis: null - handles: {} - placeholder_keys: {} - result: {} - schema: - description: '' - properties: - feedback: {} - goal: - properties: - axis: - type: object - required: - - axis - type: object - result: {} - required: - - goal - title: home_axis参数 - type: object - type: UniLabJsonCommand - auto-move_to_position: - feedback: {} - goal: {} - goal_default: - acceleration: 1000 - axis: null - position: null - precision: 100 - speed: 5000 - handles: {} - placeholder_keys: {} - result: {} - schema: - description: '' - properties: - feedback: {} - goal: - properties: - acceleration: - default: 1000 - type: integer - axis: - type: object - position: - type: integer - precision: - default: 100 - type: integer - speed: - default: 5000 - type: integer - required: - - axis - - position - type: object - result: {} - required: - - goal - title: move_to_position参数 - type: object - type: UniLabJsonCommand - auto-move_to_position_degrees: - feedback: {} - goal: {} - goal_default: - acceleration: 1000 - axis: null - degrees: null - precision: 100 - speed: 5000 - handles: {} - placeholder_keys: {} - result: {} - schema: - description: '' - properties: - feedback: {} - goal: - properties: - acceleration: - default: 1000 - type: integer - axis: - type: object - degrees: - type: number - precision: - default: 100 - type: integer - speed: - default: 5000 - type: integer - required: - - axis - - degrees - type: object - result: {} - required: - - goal - title: move_to_position_degrees参数 - type: object - type: UniLabJsonCommand - auto-move_to_position_revolutions: - feedback: {} - goal: {} - goal_default: - acceleration: 1000 - axis: null - precision: 100 - revolutions: null - speed: 5000 - handles: {} - placeholder_keys: {} - result: {} - schema: - description: '' - properties: - feedback: {} - goal: - properties: - acceleration: - default: 1000 - type: integer - axis: - type: object - precision: - default: 100 - type: integer - revolutions: - type: number - speed: - default: 5000 - type: integer - required: - - axis - - revolutions - type: object - result: {} - required: - - goal - title: move_to_position_revolutions参数 - type: object - type: UniLabJsonCommand - auto-move_xyz: - feedback: {} - goal: {} - goal_default: - acceleration: 1000 - speed: 5000 - x: null - y: null - z: null - handles: {} - placeholder_keys: {} - result: {} - schema: - description: '' - properties: - feedback: {} - goal: - properties: - acceleration: - default: 1000 - type: integer - speed: - default: 5000 - type: integer - x: - type: string - y: - type: string - z: - type: string - required: [] - type: object - result: {} - required: - - goal - title: move_xyz参数 - type: object - type: UniLabJsonCommand - auto-move_xyz_degrees: - feedback: {} - goal: {} - goal_default: - acceleration: 1000 - speed: 5000 - x_deg: null - y_deg: null - z_deg: null - handles: {} - placeholder_keys: {} - result: {} - schema: - description: '' - properties: - feedback: {} - goal: - properties: - acceleration: - default: 1000 - type: integer - speed: - default: 5000 - type: integer - x_deg: - type: string - y_deg: - type: string - z_deg: - type: string - required: [] - type: object - result: {} - required: - - goal - title: move_xyz_degrees参数 - type: object - type: UniLabJsonCommand - auto-move_xyz_revolutions: - feedback: {} - goal: {} - goal_default: - acceleration: 1000 - speed: 5000 - x_rev: null - y_rev: null - z_rev: null - handles: {} - placeholder_keys: {} - result: {} - schema: - description: '' - properties: - feedback: {} - goal: - properties: - acceleration: - default: 1000 - type: integer - speed: - default: 5000 - type: integer - x_rev: - type: string - y_rev: - type: string - z_rev: - type: string - required: [] - type: object - result: {} - required: - - goal - title: move_xyz_revolutions参数 - type: object - type: UniLabJsonCommand - auto-revolutions_to_steps: - feedback: {} - goal: {} - goal_default: - revolutions: null - handles: {} - placeholder_keys: {} - result: {} - schema: - description: '' - properties: - feedback: {} - goal: - properties: - revolutions: - type: number - required: - - revolutions - type: object - result: {} - required: - - goal - title: revolutions_to_steps参数 - type: object - type: UniLabJsonCommand - auto-set_speed_mode: - feedback: {} - goal: {} - goal_default: - acceleration: 1000 - axis: null - speed: null - handles: {} - placeholder_keys: {} - result: {} - schema: - description: '' - properties: - feedback: {} - goal: - properties: - acceleration: - default: 1000 - type: integer - axis: - type: object - speed: - type: integer - required: - - axis - - speed - type: object - result: {} - required: - - goal - title: set_speed_mode参数 - type: object - type: UniLabJsonCommand - auto-steps_to_degrees: - feedback: {} - goal: {} - goal_default: - steps: null - handles: {} - placeholder_keys: {} - result: {} - schema: - description: '' - properties: - feedback: {} - goal: - properties: - steps: - type: integer - required: - - steps - type: object - result: {} - required: - - goal - title: steps_to_degrees参数 - type: object - type: UniLabJsonCommand - auto-steps_to_revolutions: - feedback: {} - goal: {} - goal_default: - steps: null - handles: {} - placeholder_keys: {} - result: {} - schema: - description: '' - properties: - feedback: {} - goal: - properties: - steps: - type: integer - required: - - steps - type: object - result: {} - required: - - goal - title: steps_to_revolutions参数 - type: object - type: UniLabJsonCommand - auto-stop_all_axes: - feedback: {} - goal: {} - goal_default: {} - handles: {} - placeholder_keys: {} - result: {} - schema: - description: '' - properties: - feedback: {} - goal: - properties: {} - required: [] - type: object - result: {} - required: - - goal - title: stop_all_axes参数 - type: object - type: UniLabJsonCommand - auto-wait_for_completion: - feedback: {} - goal: {} - goal_default: - axis: null - timeout: 30.0 - handles: {} - placeholder_keys: {} - result: {} - schema: - description: '' - properties: - feedback: {} - goal: - properties: - axis: - type: object - timeout: - default: 30.0 - type: number - required: - - axis - type: object - result: {} - required: - - goal - title: wait_for_completion参数 - type: object - type: UniLabJsonCommand - module: unilabos.devices.liquid_handling.laiyu.drivers.xyz_stepper_driver:XYZStepperController - status_types: - all_positions: dict - motor_status: unilabos.devices.liquid_handling.laiyu.drivers.xyz_stepper_driver:MotorPosition - type: python - config_info: [] - description: 新XYZ控制器 - handles: [] - icon: '' - init_param_schema: - config: - properties: - baudrate: - default: 115200 - type: integer - port: - type: string - timeout: - default: 1.0 - type: number - required: - - port - type: object - data: - properties: - all_positions: - type: object - motor_status: - type: object - required: - - motor_status - - all_positions - type: object - registry_type: device - version: 1.0.0 diff --git a/unilabos/registry/devices/liquid_handler.yaml b/unilabos/registry/devices/liquid_handler.yaml deleted file mode 100644 index b0656d12..00000000 --- a/unilabos/registry/devices/liquid_handler.yaml +++ /dev/null @@ -1,10360 +0,0 @@ -liquid_handler: - category: - - liquid_handler - class: - action_value_mappings: - add_liquid: - feedback: {} - goal: - asp_vols: asp_vols - blow_out_air_volume: blow_out_air_volume - dis_vols: dis_vols - flow_rates: flow_rates - is_96_well: is_96_well - liquid_height: liquid_height - mix_liquid_height: mix_liquid_height - mix_rate: mix_rate - mix_time: mix_time - mix_vol: mix_vol - none_keys: none_keys - offsets: offsets - reagent_sources: reagent_sources - spread: spread - targets: targets - use_channels: use_channels - goal_default: - asp_vols: - - 0.0 - blow_out_air_volume: - - 0.0 - dis_vols: - - 0.0 - flow_rates: - - 0.0 - is_96_well: false - liquid_height: - - 0.0 - mix_liquid_height: 0.0 - mix_rate: 0 - mix_time: 0 - mix_vol: 0 - none_keys: - - '' - offsets: - - x: 0.0 - y: 0.0 - z: 0.0 - reagent_sources: - - category: '' - children: [] - config: '' - data: '' - id: '' - name: '' - parent: '' - pose: - orientation: - w: 1.0 - x: 0.0 - y: 0.0 - z: 0.0 - position: - x: 0.0 - y: 0.0 - z: 0.0 - sample_id: '' - type: '' - spread: '' - targets: - - category: '' - children: [] - config: '' - data: '' - id: '' - name: '' - parent: '' - pose: - orientation: - w: 1.0 - x: 0.0 - y: 0.0 - z: 0.0 - position: - x: 0.0 - y: 0.0 - z: 0.0 - sample_id: '' - type: '' - use_channels: - - 0 - handles: {} - placeholder_keys: - reagent_sources: unilabos_resources - targets: unilabos_resources - result: {} - schema: - description: '' - properties: - feedback: - properties: {} - required: [] - title: LiquidHandlerAdd_Feedback - type: object - goal: - properties: - asp_vols: - items: - type: number - type: array - blow_out_air_volume: - items: - type: number - type: array - dis_vols: - items: - type: number - type: array - flow_rates: - items: - type: number - type: array - is_96_well: - type: boolean - liquid_height: - items: - type: number - type: array - mix_liquid_height: - type: number - mix_rate: - maximum: 2147483647 - minimum: -2147483648 - type: integer - mix_time: - maximum: 2147483647 - minimum: -2147483648 - type: integer - mix_vol: - maximum: 2147483647 - minimum: -2147483648 - type: integer - none_keys: - items: - type: string - type: array - offsets: - items: - properties: - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - title: offsets - type: object - type: array - reagent_sources: - items: - properties: - category: - type: string - children: - items: - type: string - type: array - config: - type: string - data: - type: string - id: - type: string - name: - type: string - parent: - type: string - pose: - properties: - orientation: - properties: - w: - type: number - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - - w - title: orientation - type: object - position: - properties: - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - title: position - type: object - required: - - position - - orientation - title: pose - type: object - sample_id: - type: string - type: - type: string - required: - - id - - name - - sample_id - - children - - parent - - type - - category - - pose - - config - - data - title: reagent_sources - type: object - type: array - spread: - type: string - targets: - items: - properties: - category: - type: string - children: - items: - type: string - type: array - config: - type: string - data: - type: string - id: - type: string - name: - type: string - parent: - type: string - pose: - properties: - orientation: - properties: - w: - type: number - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - - w - title: orientation - type: object - position: - properties: - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - title: position - type: object - required: - - position - - orientation - title: pose - type: object - sample_id: - type: string - type: - type: string - required: - - id - - name - - sample_id - - children - - parent - - type - - category - - pose - - config - - data - title: targets - type: object - type: array - use_channels: - items: - maximum: 2147483647 - minimum: -2147483648 - type: integer - type: array - required: - - asp_vols - - dis_vols - - reagent_sources - - targets - - use_channels - - flow_rates - - offsets - - liquid_height - - blow_out_air_volume - - spread - - is_96_well - - mix_time - - mix_vol - - mix_rate - - mix_liquid_height - - none_keys - title: LiquidHandlerAdd_Goal - type: object - result: - properties: - return_info: - type: string - success: - type: boolean - required: - - return_info - - success - title: LiquidHandlerAdd_Result - type: object - required: - - goal - title: LiquidHandlerAdd - type: object - type: LiquidHandlerAdd - aspirate: - feedback: {} - goal: - blow_out_air_volume: blow_out_air_volume - flow_rates: flow_rates - liquid_height: liquid_height - offsets: offsets - resources: resources - use_channels: use_channels - vols: vols - goal_default: - blow_out_air_volume: - - 0.0 - flow_rates: - - 0.0 - liquid_height: - - 0.0 - offsets: - - x: 0.0 - y: 0.0 - z: 0.0 - resources: - - category: '' - children: [] - config: '' - data: '' - id: '' - name: '' - parent: '' - pose: - orientation: - w: 1.0 - x: 0.0 - y: 0.0 - z: 0.0 - position: - x: 0.0 - y: 0.0 - z: 0.0 - sample_id: '' - type: '' - spread: '' - use_channels: - - 0 - vols: - - 0.0 - handles: {} - result: - name: name - schema: - description: '' - properties: - feedback: - properties: {} - required: [] - title: LiquidHandlerAspirate_Feedback - type: object - goal: - properties: - blow_out_air_volume: - items: - type: number - type: array - flow_rates: - items: - type: number - type: array - liquid_height: - items: - type: number - type: array - offsets: - items: - properties: - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - title: offsets - type: object - type: array - resources: - items: - properties: - category: - type: string - children: - items: - type: string - type: array - config: - type: string - data: - type: string - id: - type: string - name: - type: string - parent: - type: string - pose: - properties: - orientation: - properties: - w: - type: number - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - - w - title: orientation - type: object - position: - properties: - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - title: position - type: object - required: - - position - - orientation - title: pose - type: object - sample_id: - type: string - type: - type: string - required: - - id - - name - - sample_id - - children - - parent - - type - - category - - pose - - config - - data - title: resources - type: object - type: array - spread: - type: string - use_channels: - items: - maximum: 2147483647 - minimum: -2147483648 - type: integer - type: array - vols: - items: - type: number - type: array - required: - - resources - - vols - - use_channels - - flow_rates - - offsets - - liquid_height - - blow_out_air_volume - - spread - title: LiquidHandlerAspirate_Goal - type: object - result: - properties: - return_info: - type: string - success: - type: boolean - required: - - return_info - - success - title: LiquidHandlerAspirate_Result - type: object - required: - - goal - title: LiquidHandlerAspirate - type: object - type: LiquidHandlerAspirate - auto-create_protocol: - feedback: {} - goal: {} - goal_default: - none_keys: [] - protocol_author: null - protocol_date: null - protocol_description: null - protocol_name: null - protocol_type: null - protocol_version: null - handles: {} - placeholder_keys: {} - result: {} - schema: - description: 创建实验协议函数。用于建立新的液体处理实验协议,定义协议名称、描述、版本、作者、日期等基本信息。该函数支持协议模板化管理,便于实验流程的标准化和重复性。适用于实验设计、方法开发、标准操作程序建立等需要协议管理的应用场景。 - properties: - feedback: {} - goal: - properties: - none_keys: - default: [] - type: string - protocol_author: - type: string - protocol_date: - type: string - protocol_description: - type: string - protocol_name: - type: string - protocol_type: - type: string - protocol_version: - type: string - required: - - protocol_name - - protocol_description - - protocol_version - - protocol_author - - protocol_date - - protocol_type - type: object - result: {} - required: - - goal - title: create_protocol参数 - type: object - type: UniLabJsonCommandAsync - auto-custom_delay: - feedback: {} - goal: {} - goal_default: - msg: null - seconds: 0 - handles: {} - placeholder_keys: {} - result: {} - schema: - description: 自定义延时函数。在实验流程中插入可配置的等待时间,用于满足特定的反应时间、孵育时间或设备稳定时间要求。支持自定义延时消息和秒数设置,提供流程控制和时间管理功能。适用于酶反应等待、温度平衡、样品孵育等需要时间控制的实验步骤。 - properties: - feedback: {} - goal: - properties: - msg: - type: string - seconds: - default: 0 - type: string - required: [] - type: object - result: {} - required: - - goal - title: custom_delay参数 - type: object - type: UniLabJsonCommandAsync - auto-iter_tips: - feedback: {} - goal: {} - goal_default: - tip_racks: null - handles: {} - placeholder_keys: {} - result: {} - schema: - description: 吸头迭代函数。用于自动管理和切换吸头架中的吸头,实现批量实验中的吸头自动分配和追踪。该函数监控吸头使用状态,自动切换到下一个可用吸头位置,确保实验流程的连续性。适用于高通量实验、批量处理、自动化流水线等需要大量吸头管理的应用场景。 - properties: - feedback: {} - goal: - properties: - tip_racks: - type: string - required: - - tip_racks - type: object - result: {} - required: - - goal - title: iter_tips参数 - type: object - type: UniLabJsonCommand - auto-post_init: - feedback: {} - goal: {} - goal_default: - ros_node: null - handles: {} - placeholder_keys: {} - result: {} - schema: - description: '' - properties: - feedback: {} - goal: - properties: - ros_node: - type: string - required: - - ros_node - type: object - result: {} - required: - - goal - title: post_init参数 - type: object - type: UniLabJsonCommand - auto-set_group: - feedback: {} - goal: {} - goal_default: - group_name: null - volumes: null - wells: null - handles: {} - placeholder_keys: {} - result: {} - schema: - description: '' - properties: - feedback: {} - goal: - properties: - group_name: - type: string - volumes: - type: string - wells: - type: string - required: - - group_name - - wells - - volumes - type: object - result: {} - required: - - goal - title: set_group参数 - type: object - type: UniLabJsonCommand - auto-set_tiprack: - feedback: {} - goal: {} - goal_default: - tip_racks: null - handles: {} - placeholder_keys: {} - result: {} - schema: - description: 吸头架设置函数。用于配置和初始化液体处理系统的吸头架信息,包括吸头架位置、类型、容量等参数。该函数建立吸头资源管理系统,为后续的吸头选择和使用提供基础配置。适用于系统初始化、吸头架更换、实验配置等需要吸头资源管理的操作场景。 - properties: - feedback: {} - goal: - properties: - tip_racks: - type: string - required: - - tip_racks - type: object - result: {} - required: - - goal - title: set_tiprack参数 - type: object - type: UniLabJsonCommand - auto-touch_tip: - feedback: {} - goal: {} - goal_default: - targets: null - handles: {} - placeholder_keys: {} - result: {} - schema: - description: 吸头碰触函数。控制移液器吸头轻触容器边缘或底部,用于去除吸头外壁附着的液滴,提高移液精度和减少污染。该函数支持多目标位置操作,可配置碰触参数和位置偏移。适用于精密移液、减少液体残留、防止交叉污染等需要提高移液质量的实验操作。 - properties: - feedback: {} - goal: - properties: - targets: - type: string - required: - - targets - type: object - result: {} - required: - - goal - title: touch_tip参数 - type: object - type: UniLabJsonCommandAsync - auto-transfer_group: - feedback: {} - goal: {} - goal_default: - source_group_name: null - target_group_name: null - unit_volume: null - handles: {} - placeholder_keys: {} - result: {} - schema: - description: '' - properties: - feedback: {} - goal: - properties: - source_group_name: - type: string - target_group_name: - type: string - unit_volume: - type: number - required: - - source_group_name - - target_group_name - - unit_volume - type: object - result: {} - required: - - goal - title: transfer_group参数 - type: object - type: UniLabJsonCommandAsync - discard_tips: - feedback: {} - goal: - use_channels: use_channels - goal_default: - use_channels: - - 0 - handles: {} - result: - name: name - schema: - description: '' - properties: - feedback: - properties: {} - required: [] - title: LiquidHandlerDiscardTips_Feedback - type: object - goal: - properties: - use_channels: - items: - maximum: 2147483647 - minimum: -2147483648 - type: integer - type: array - required: - - use_channels - title: LiquidHandlerDiscardTips_Goal - type: object - result: - properties: - return_info: - type: string - success: - type: boolean - required: - - return_info - - success - title: LiquidHandlerDiscardTips_Result - type: object - required: - - goal - title: LiquidHandlerDiscardTips - type: object - type: LiquidHandlerDiscardTips - dispense: - feedback: {} - goal: - blow_out_air_volume: blow_out_air_volume - flow_rates: flow_rates - offsets: offsets - resources: resources - spread: spread - use_channels: use_channels - vols: vols - goal_default: - blow_out_air_volume: - - 0 - flow_rates: - - 0.0 - offsets: - - x: 0.0 - y: 0.0 - z: 0.0 - resources: - - category: '' - children: [] - config: '' - data: '' - id: '' - name: '' - parent: '' - pose: - orientation: - w: 1.0 - x: 0.0 - y: 0.0 - z: 0.0 - position: - x: 0.0 - y: 0.0 - z: 0.0 - sample_id: '' - type: '' - spread: '' - use_channels: - - 0 - vols: - - 0.0 - handles: {} - result: - name: name - schema: - description: '' - properties: - feedback: - properties: {} - required: [] - title: LiquidHandlerDispense_Feedback - type: object - goal: - properties: - blow_out_air_volume: - items: - maximum: 2147483647 - minimum: -2147483648 - type: integer - type: array - flow_rates: - items: - type: number - type: array - offsets: - items: - properties: - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - title: offsets - type: object - type: array - resources: - items: - properties: - category: - type: string - children: - items: - type: string - type: array - config: - type: string - data: - type: string - id: - type: string - name: - type: string - parent: - type: string - pose: - properties: - orientation: - properties: - w: - type: number - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - - w - title: orientation - type: object - position: - properties: - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - title: position - type: object - required: - - position - - orientation - title: pose - type: object - sample_id: - type: string - type: - type: string - required: - - id - - name - - sample_id - - children - - parent - - type - - category - - pose - - config - - data - title: resources - type: object - type: array - spread: - type: string - use_channels: - items: - maximum: 2147483647 - minimum: -2147483648 - type: integer - type: array - vols: - items: - type: number - type: array - required: - - resources - - vols - - use_channels - - flow_rates - - offsets - - blow_out_air_volume - - spread - title: LiquidHandlerDispense_Goal - type: object - result: - properties: - return_info: - type: string - success: - type: boolean - required: - - return_info - - success - title: LiquidHandlerDispense_Result - type: object - required: - - goal - title: LiquidHandlerDispense - type: object - type: LiquidHandlerDispense - drop_tips: - feedback: {} - goal: - allow_nonzero_volume: allow_nonzero_volume - offsets: offsets - tip_spots: tip_spots - use_channels: use_channels - goal_default: - allow_nonzero_volume: false - offsets: - - x: 0.0 - y: 0.0 - z: 0.0 - tip_spots: - - category: '' - children: [] - config: '' - data: '' - id: '' - name: '' - parent: '' - pose: - orientation: - w: 1.0 - x: 0.0 - y: 0.0 - z: 0.0 - position: - x: 0.0 - y: 0.0 - z: 0.0 - sample_id: '' - type: '' - use_channels: - - 0 - handles: {} - placeholder_keys: - tip_spots: unilabos_resources - result: - name: name - schema: - description: '' - properties: - feedback: - properties: {} - required: [] - title: LiquidHandlerDropTips_Feedback - type: object - goal: - properties: - allow_nonzero_volume: - type: boolean - offsets: - items: - properties: - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - title: offsets - type: object - type: array - tip_spots: - items: - properties: - category: - type: string - children: - items: - type: string - type: array - config: - type: string - data: - type: string - id: - type: string - name: - type: string - parent: - type: string - pose: - properties: - orientation: - properties: - w: - type: number - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - - w - title: orientation - type: object - position: - properties: - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - title: position - type: object - required: - - position - - orientation - title: pose - type: object - sample_id: - type: string - type: - type: string - required: - - id - - name - - sample_id - - children - - parent - - type - - category - - pose - - config - - data - title: tip_spots - type: object - type: array - use_channels: - items: - maximum: 2147483647 - minimum: -2147483648 - type: integer - type: array - required: - - tip_spots - - use_channels - - offsets - - allow_nonzero_volume - title: LiquidHandlerDropTips_Goal - type: object - result: - properties: - return_info: - type: string - success: - type: boolean - required: - - return_info - - success - title: LiquidHandlerDropTips_Result - type: object - required: - - goal - title: LiquidHandlerDropTips - type: object - type: LiquidHandlerDropTips - drop_tips96: - feedback: {} - goal: - allow_nonzero_volume: allow_nonzero_volume - offset: offset - tip_rack: tip_rack - goal_default: - allow_nonzero_volume: false - offset: - x: 0.0 - y: 0.0 - z: 0.0 - tip_rack: - category: '' - children: [] - config: '' - data: '' - id: '' - name: '' - parent: '' - pose: - orientation: - w: 1.0 - x: 0.0 - y: 0.0 - z: 0.0 - position: - x: 0.0 - y: 0.0 - z: 0.0 - sample_id: '' - type: '' - handles: {} - result: - name: name - schema: - description: '' - properties: - feedback: - properties: {} - required: [] - title: LiquidHandlerDropTips96_Feedback - type: object - goal: - properties: - allow_nonzero_volume: - type: boolean - offset: - properties: - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - title: offset - type: object - tip_rack: - properties: - category: - type: string - children: - items: - type: string - type: array - config: - type: string - data: - type: string - id: - type: string - name: - type: string - parent: - type: string - pose: - properties: - orientation: - properties: - w: - type: number - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - - w - title: orientation - type: object - position: - properties: - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - title: position - type: object - required: - - position - - orientation - title: pose - type: object - sample_id: - type: string - type: - type: string - required: - - id - - name - - sample_id - - children - - parent - - type - - category - - pose - - config - - data - title: tip_rack - type: object - required: - - tip_rack - - offset - - allow_nonzero_volume - title: LiquidHandlerDropTips96_Goal - type: object - result: - properties: - return_info: - type: string - success: - type: boolean - required: - - return_info - - success - title: LiquidHandlerDropTips96_Result - type: object - required: - - goal - title: LiquidHandlerDropTips96 - type: object - type: LiquidHandlerDropTips96 - mix: - feedback: {} - goal: - height_to_bottom: height_to_bottom - mix_rate: mix_rate - mix_time: mix_time - mix_vol: mix_vol - none_keys: none_keys - offsets: offsets - targets: targets - goal_default: - height_to_bottom: 0.0 - mix_rate: 0.0 - mix_time: 0 - mix_vol: 0 - none_keys: - - '' - offsets: - - x: 0.0 - y: 0.0 - z: 0.0 - targets: - - category: '' - children: [] - config: '' - data: '' - id: '' - name: '' - parent: '' - pose: - orientation: - w: 1.0 - x: 0.0 - y: 0.0 - z: 0.0 - position: - x: 0.0 - y: 0.0 - z: 0.0 - sample_id: '' - type: '' - handles: {} - result: {} - schema: - description: '' - properties: - feedback: - properties: {} - required: [] - title: LiquidHandlerMix_Feedback - type: object - goal: - properties: - height_to_bottom: - type: number - mix_rate: - type: number - mix_time: - maximum: 2147483647 - minimum: -2147483648 - type: integer - mix_vol: - maximum: 2147483647 - minimum: -2147483648 - type: integer - none_keys: - items: - type: string - type: array - offsets: - items: - properties: - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - title: offsets - type: object - type: array - targets: - items: - properties: - category: - type: string - children: - items: - type: string - type: array - config: - type: string - data: - type: string - id: - type: string - name: - type: string - parent: - type: string - pose: - properties: - orientation: - properties: - w: - type: number - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - - w - title: orientation - type: object - position: - properties: - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - title: position - type: object - required: - - position - - orientation - title: pose - type: object - sample_id: - type: string - type: - type: string - required: - - id - - name - - sample_id - - children - - parent - - type - - category - - pose - - config - - data - title: targets - type: object - type: array - required: - - targets - - mix_time - - mix_vol - - height_to_bottom - - offsets - - mix_rate - - none_keys - title: LiquidHandlerMix_Goal - type: object - result: - properties: - return_info: - type: string - success: - type: boolean - required: - - return_info - - success - title: LiquidHandlerMix_Result - type: object - required: - - goal - title: LiquidHandlerMix - type: object - type: LiquidHandlerMix - move_lid: - feedback: {} - goal: - destination_offset: destination_offset - drop_direction: drop_direction - get_direction: get_direction - intermediate_locations: intermediate_locations - lid: lid - pickup_direction: pickup_direction - pickup_distance_from_top: pickup_distance_from_top - put_direction: put_direction - resource_offset: resource_offset - to: to - goal_default: - destination_offset: - x: 0.0 - y: 0.0 - z: 0.0 - drop_direction: '' - get_direction: '' - intermediate_locations: - - x: 0.0 - y: 0.0 - z: 0.0 - lid: - category: '' - children: [] - config: '' - data: '' - id: '' - name: '' - parent: '' - pose: - orientation: - w: 1.0 - x: 0.0 - y: 0.0 - z: 0.0 - position: - x: 0.0 - y: 0.0 - z: 0.0 - sample_id: '' - type: '' - pickup_direction: '' - pickup_distance_from_top: 0.0 - put_direction: '' - resource_offset: - x: 0.0 - y: 0.0 - z: 0.0 - to: - category: '' - children: [] - config: '' - data: '' - id: '' - name: '' - parent: '' - pose: - orientation: - w: 1.0 - x: 0.0 - y: 0.0 - z: 0.0 - position: - x: 0.0 - y: 0.0 - z: 0.0 - sample_id: '' - type: '' - handles: {} - result: - name: name - schema: - description: '' - properties: - feedback: - properties: {} - required: [] - title: LiquidHandlerMoveLid_Feedback - type: object - goal: - properties: - destination_offset: - properties: - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - title: destination_offset - type: object - drop_direction: - type: string - get_direction: - type: string - intermediate_locations: - items: - properties: - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - title: intermediate_locations - type: object - type: array - lid: - properties: - category: - type: string - children: - items: - type: string - type: array - config: - type: string - data: - type: string - id: - type: string - name: - type: string - parent: - type: string - pose: - properties: - orientation: - properties: - w: - type: number - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - - w - title: orientation - type: object - position: - properties: - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - title: position - type: object - required: - - position - - orientation - title: pose - type: object - sample_id: - type: string - type: - type: string - required: - - id - - name - - sample_id - - children - - parent - - type - - category - - pose - - config - - data - title: lid - type: object - pickup_direction: - type: string - pickup_distance_from_top: - type: number - put_direction: - type: string - resource_offset: - properties: - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - title: resource_offset - type: object - to: - properties: - category: - type: string - children: - items: - type: string - type: array - config: - type: string - data: - type: string - id: - type: string - name: - type: string - parent: - type: string - pose: - properties: - orientation: - properties: - w: - type: number - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - - w - title: orientation - type: object - position: - properties: - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - title: position - type: object - required: - - position - - orientation - title: pose - type: object - sample_id: - type: string - type: - type: string - required: - - id - - name - - sample_id - - children - - parent - - type - - category - - pose - - config - - data - title: to - type: object - required: - - lid - - to - - intermediate_locations - - resource_offset - - destination_offset - - pickup_direction - - drop_direction - - get_direction - - put_direction - - pickup_distance_from_top - title: LiquidHandlerMoveLid_Goal - type: object - result: - properties: - return_info: - type: string - success: - type: boolean - required: - - return_info - - success - title: LiquidHandlerMoveLid_Result - type: object - required: - - goal - title: LiquidHandlerMoveLid - type: object - type: LiquidHandlerMoveLid - move_plate: - feedback: {} - goal: - destination_offset: destination_offset - drop_direction: drop_direction - get_direction: get_direction - intermediate_locations: intermediate_locations - pickup_direction: pickup_direction - pickup_offset: pickup_offset - plate: plate - put_direction: put_direction - resource_offset: resource_offset - to: to - goal_default: - destination_offset: - x: 0.0 - y: 0.0 - z: 0.0 - drop_direction: '' - get_direction: '' - intermediate_locations: - - x: 0.0 - y: 0.0 - z: 0.0 - pickup_direction: '' - pickup_distance_from_top: 0.0 - pickup_offset: - x: 0.0 - y: 0.0 - z: 0.0 - plate: - category: '' - children: [] - config: '' - data: '' - id: '' - name: '' - parent: '' - pose: - orientation: - w: 1.0 - x: 0.0 - y: 0.0 - z: 0.0 - position: - x: 0.0 - y: 0.0 - z: 0.0 - sample_id: '' - type: '' - put_direction: '' - resource_offset: - x: 0.0 - y: 0.0 - z: 0.0 - to: - category: '' - children: [] - config: '' - data: '' - id: '' - name: '' - parent: '' - pose: - orientation: - w: 1.0 - x: 0.0 - y: 0.0 - z: 0.0 - position: - x: 0.0 - y: 0.0 - z: 0.0 - sample_id: '' - type: '' - handles: {} - result: - name: name - schema: - description: '' - properties: - feedback: - properties: {} - required: [] - title: LiquidHandlerMovePlate_Feedback - type: object - goal: - properties: - destination_offset: - properties: - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - title: destination_offset - type: object - drop_direction: - type: string - get_direction: - type: string - intermediate_locations: - items: - properties: - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - title: intermediate_locations - type: object - type: array - pickup_direction: - type: string - pickup_distance_from_top: - type: number - pickup_offset: - properties: - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - title: pickup_offset - type: object - plate: - properties: - category: - type: string - children: - items: - type: string - type: array - config: - type: string - data: - type: string - id: - type: string - name: - type: string - parent: - type: string - pose: - properties: - orientation: - properties: - w: - type: number - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - - w - title: orientation - type: object - position: - properties: - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - title: position - type: object - required: - - position - - orientation - title: pose - type: object - sample_id: - type: string - type: - type: string - required: - - id - - name - - sample_id - - children - - parent - - type - - category - - pose - - config - - data - title: plate - type: object - put_direction: - type: string - resource_offset: - properties: - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - title: resource_offset - type: object - to: - properties: - category: - type: string - children: - items: - type: string - type: array - config: - type: string - data: - type: string - id: - type: string - name: - type: string - parent: - type: string - pose: - properties: - orientation: - properties: - w: - type: number - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - - w - title: orientation - type: object - position: - properties: - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - title: position - type: object - required: - - position - - orientation - title: pose - type: object - sample_id: - type: string - type: - type: string - required: - - id - - name - - sample_id - - children - - parent - - type - - category - - pose - - config - - data - title: to - type: object - required: - - plate - - to - - intermediate_locations - - resource_offset - - pickup_offset - - destination_offset - - pickup_direction - - drop_direction - - get_direction - - put_direction - - pickup_distance_from_top - title: LiquidHandlerMovePlate_Goal - type: object - result: - properties: - return_info: - type: string - success: - type: boolean - required: - - return_info - - success - title: LiquidHandlerMovePlate_Result - type: object - required: - - goal - title: LiquidHandlerMovePlate - type: object - type: LiquidHandlerMovePlate - move_resource: - feedback: {} - goal: - destination_offset: destination_offset - drop_direction: drop_direction - get_direction: get_direction - intermediate_locations: intermediate_locations - pickup_direction: pickup_direction - pickup_distance_from_top: pickup_distance_from_top - put_direction: put_direction - resource: resource - resource_offset: resource_offset - to: to - goal_default: - destination_offset: - x: 0.0 - y: 0.0 - z: 0.0 - drop_direction: '' - get_direction: '' - intermediate_locations: - - x: 0.0 - y: 0.0 - z: 0.0 - pickup_direction: '' - pickup_distance_from_top: 0.0 - put_direction: '' - resource: - category: '' - children: [] - config: '' - data: '' - id: '' - name: '' - parent: '' - pose: - orientation: - w: 1.0 - x: 0.0 - y: 0.0 - z: 0.0 - position: - x: 0.0 - y: 0.0 - z: 0.0 - sample_id: '' - type: '' - resource_offset: - x: 0.0 - y: 0.0 - z: 0.0 - to: - x: 0.0 - y: 0.0 - z: 0.0 - handles: {} - result: - name: name - schema: - description: '' - properties: - feedback: - properties: {} - required: [] - title: LiquidHandlerMoveResource_Feedback - type: object - goal: - properties: - destination_offset: - properties: - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - title: destination_offset - type: object - drop_direction: - type: string - get_direction: - type: string - intermediate_locations: - items: - properties: - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - title: intermediate_locations - type: object - type: array - pickup_direction: - type: string - pickup_distance_from_top: - type: number - put_direction: - type: string - resource: - properties: - category: - type: string - children: - items: - type: string - type: array - config: - type: string - data: - type: string - id: - type: string - name: - type: string - parent: - type: string - pose: - properties: - orientation: - properties: - w: - type: number - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - - w - title: orientation - type: object - position: - properties: - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - title: position - type: object - required: - - position - - orientation - title: pose - type: object - sample_id: - type: string - type: - type: string - required: - - id - - name - - sample_id - - children - - parent - - type - - category - - pose - - config - - data - title: resource - type: object - resource_offset: - properties: - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - title: resource_offset - type: object - to: - properties: - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - title: to - type: object - required: - - resource - - to - - intermediate_locations - - resource_offset - - destination_offset - - pickup_distance_from_top - - pickup_direction - - drop_direction - - get_direction - - put_direction - title: LiquidHandlerMoveResource_Goal - type: object - result: - properties: - return_info: - type: string - success: - type: boolean - required: - - return_info - - success - title: LiquidHandlerMoveResource_Result - type: object - required: - - goal - title: LiquidHandlerMoveResource - type: object - type: LiquidHandlerMoveResource - move_to: - feedback: {} - goal: - channel: channel - dis_to_top: dis_to_top - well: well - goal_default: - channel: 0 - dis_to_top: 0.0 - well: - category: '' - children: [] - config: '' - data: '' - id: '' - name: '' - parent: '' - pose: - orientation: - w: 1.0 - x: 0.0 - y: 0.0 - z: 0.0 - position: - x: 0.0 - y: 0.0 - z: 0.0 - sample_id: '' - type: '' - handles: {} - result: {} - schema: - description: '' - properties: - feedback: - properties: {} - required: [] - title: LiquidHandlerMoveTo_Feedback - type: object - goal: - properties: - channel: - maximum: 2147483647 - minimum: -2147483648 - type: integer - dis_to_top: - type: number - well: - properties: - category: - type: string - children: - items: - type: string - type: array - config: - type: string - data: - type: string - id: - type: string - name: - type: string - parent: - type: string - pose: - properties: - orientation: - properties: - w: - type: number - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - - w - title: orientation - type: object - position: - properties: - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - title: position - type: object - required: - - position - - orientation - title: pose - type: object - sample_id: - type: string - type: - type: string - required: - - id - - name - - sample_id - - children - - parent - - type - - category - - pose - - config - - data - title: well - type: object - required: - - well - - dis_to_top - - channel - title: LiquidHandlerMoveTo_Goal - type: object - result: - properties: - return_info: - type: string - success: - type: boolean - required: - - return_info - - success - title: LiquidHandlerMoveTo_Result - type: object - required: - - goal - title: LiquidHandlerMoveTo - type: object - type: LiquidHandlerMoveTo - pick_up_tips: - feedback: {} - goal: - offsets: offsets - tip_spots: tip_spots - use_channels: use_channels - goal_default: - offsets: - - x: 0.0 - y: 0.0 - z: 0.0 - tip_spots: - - category: '' - children: [] - config: '' - data: '' - id: '' - name: '' - parent: '' - pose: - orientation: - w: 1.0 - x: 0.0 - y: 0.0 - z: 0.0 - position: - x: 0.0 - y: 0.0 - z: 0.0 - sample_id: '' - type: '' - use_channels: - - 0 - handles: {} - result: - name: name - schema: - description: '' - properties: - feedback: - properties: {} - required: [] - title: LiquidHandlerPickUpTips_Feedback - type: object - goal: - properties: - offsets: - items: - properties: - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - title: offsets - type: object - type: array - tip_spots: - items: - properties: - category: - type: string - children: - items: - type: string - type: array - config: - type: string - data: - type: string - id: - type: string - name: - type: string - parent: - type: string - pose: - properties: - orientation: - properties: - w: - type: number - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - - w - title: orientation - type: object - position: - properties: - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - title: position - type: object - required: - - position - - orientation - title: pose - type: object - sample_id: - type: string - type: - type: string - required: - - id - - name - - sample_id - - children - - parent - - type - - category - - pose - - config - - data - title: tip_spots - type: object - type: array - use_channels: - items: - maximum: 2147483647 - minimum: -2147483648 - type: integer - type: array - required: - - tip_spots - - use_channels - - offsets - title: LiquidHandlerPickUpTips_Goal - type: object - result: - properties: - return_info: - type: string - success: - type: boolean - required: - - return_info - - success - title: LiquidHandlerPickUpTips_Result - type: object - required: - - goal - title: LiquidHandlerPickUpTips - type: object - type: LiquidHandlerPickUpTips - pick_up_tips96: - feedback: {} - goal: - offset: offset - tip_rack: tip_rack - goal_default: - offset: - x: 0.0 - y: 0.0 - z: 0.0 - tip_rack: - category: '' - children: [] - config: '' - data: '' - id: '' - name: '' - parent: '' - pose: - orientation: - w: 1.0 - x: 0.0 - y: 0.0 - z: 0.0 - position: - x: 0.0 - y: 0.0 - z: 0.0 - sample_id: '' - type: '' - handles: {} - result: - name: name - schema: - description: '' - properties: - feedback: - properties: {} - required: [] - title: LiquidHandlerPickUpTips96_Feedback - type: object - goal: - properties: - offset: - properties: - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - title: offset - type: object - tip_rack: - properties: - category: - type: string - children: - items: - type: string - type: array - config: - type: string - data: - type: string - id: - type: string - name: - type: string - parent: - type: string - pose: - properties: - orientation: - properties: - w: - type: number - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - - w - title: orientation - type: object - position: - properties: - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - title: position - type: object - required: - - position - - orientation - title: pose - type: object - sample_id: - type: string - type: - type: string - required: - - id - - name - - sample_id - - children - - parent - - type - - category - - pose - - config - - data - title: tip_rack - type: object - required: - - tip_rack - - offset - title: LiquidHandlerPickUpTips96_Goal - type: object - result: - properties: - return_info: - type: string - success: - type: boolean - required: - - return_info - - success - title: LiquidHandlerPickUpTips96_Result - type: object - required: - - goal - title: LiquidHandlerPickUpTips96 - type: object - type: LiquidHandlerPickUpTips96 - remove: - feedback: {} - goal: - blow_out_air_volume: blow_out_air_volume - delays: delays - flow_rates: flow_rates - is_96_well: is_96_well - liquid_height: liquid_height - none_keys: none_keys - offsets: offsets - sources: sources - spread: spread - top: top - use_channels: use_channels - vols: vols - waste_liquid: waste_liquid - goal_default: - blow_out_air_volume: - - 0.0 - delays: - - 0 - flow_rates: - - 0.0 - is_96_well: false - liquid_height: - - 0.0 - none_keys: - - '' - offsets: - - x: 0.0 - y: 0.0 - z: 0.0 - sources: - - category: '' - children: [] - config: '' - data: '' - id: '' - name: '' - parent: '' - pose: - orientation: - w: 1.0 - x: 0.0 - y: 0.0 - z: 0.0 - position: - x: 0.0 - y: 0.0 - z: 0.0 - sample_id: '' - type: '' - spread: '' - top: - - 0.0 - use_channels: - - 0 - vols: - - 0.0 - waste_liquid: - category: '' - children: [] - config: '' - data: '' - id: '' - name: '' - parent: '' - pose: - orientation: - w: 1.0 - x: 0.0 - y: 0.0 - z: 0.0 - position: - x: 0.0 - y: 0.0 - z: 0.0 - sample_id: '' - type: '' - handles: {} - result: {} - schema: - description: '' - properties: - feedback: - properties: {} - required: [] - title: LiquidHandlerRemove_Feedback - type: object - goal: - properties: - blow_out_air_volume: - items: - type: number - type: array - delays: - items: - maximum: 2147483647 - minimum: -2147483648 - type: integer - type: array - flow_rates: - items: - type: number - type: array - is_96_well: - type: boolean - liquid_height: - items: - type: number - type: array - none_keys: - items: - type: string - type: array - offsets: - items: - properties: - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - title: offsets - type: object - type: array - sources: - items: - properties: - category: - type: string - children: - items: - type: string - type: array - config: - type: string - data: - type: string - id: - type: string - name: - type: string - parent: - type: string - pose: - properties: - orientation: - properties: - w: - type: number - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - - w - title: orientation - type: object - position: - properties: - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - title: position - type: object - required: - - position - - orientation - title: pose - type: object - sample_id: - type: string - type: - type: string - required: - - id - - name - - sample_id - - children - - parent - - type - - category - - pose - - config - - data - title: sources - type: object - type: array - spread: - type: string - top: - items: - type: number - type: array - use_channels: - items: - maximum: 2147483647 - minimum: -2147483648 - type: integer - type: array - vols: - items: - type: number - type: array - waste_liquid: - properties: - category: - type: string - children: - items: - type: string - type: array - config: - type: string - data: - type: string - id: - type: string - name: - type: string - parent: - type: string - pose: - properties: - orientation: - properties: - w: - type: number - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - - w - title: orientation - type: object - position: - properties: - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - title: position - type: object - required: - - position - - orientation - title: pose - type: object - sample_id: - type: string - type: - type: string - required: - - id - - name - - sample_id - - children - - parent - - type - - category - - pose - - config - - data - title: waste_liquid - type: object - required: - - vols - - sources - - waste_liquid - - use_channels - - flow_rates - - offsets - - liquid_height - - blow_out_air_volume - - spread - - delays - - is_96_well - - top - - none_keys - title: LiquidHandlerRemove_Goal - type: object - result: - properties: - return_info: - type: string - success: - type: boolean - required: - - return_info - - success - title: LiquidHandlerRemove_Result - type: object - required: - - goal - title: LiquidHandlerRemove - type: object - type: LiquidHandlerRemove - remove_liquid: - feedback: {} - goal: - blow_out_air_volume: blow_out_air_volume - delays: delays - flow_rates: flow_rates - is_96_well: is_96_well - liquid_height: liquid_height - none_keys: none_keys - offsets: offsets - sources: sources - spread: spread - top: top - use_channels: use_channels - vols: vols - waste_liquid: waste_liquid - goal_default: - blow_out_air_volume: - - 0.0 - delays: - - 0 - flow_rates: - - 0.0 - is_96_well: false - liquid_height: - - 0.0 - none_keys: - - '' - offsets: - - x: 0.0 - y: 0.0 - z: 0.0 - sources: - - category: '' - children: [] - config: '' - data: '' - id: '' - name: '' - parent: '' - pose: - orientation: - w: 1.0 - x: 0.0 - y: 0.0 - z: 0.0 - position: - x: 0.0 - y: 0.0 - z: 0.0 - sample_id: '' - type: '' - spread: '' - top: - - 0.0 - use_channels: - - 0 - vols: - - 0.0 - waste_liquid: - category: '' - children: [] - config: '' - data: '' - id: '' - name: '' - parent: '' - pose: - orientation: - w: 1.0 - x: 0.0 - y: 0.0 - z: 0.0 - position: - x: 0.0 - y: 0.0 - z: 0.0 - sample_id: '' - type: '' - handles: {} - placeholder_keys: - sources: unilabos_resources - waste_liquid: unilabos_resources - result: {} - schema: - description: '' - properties: - feedback: - properties: {} - required: [] - title: LiquidHandlerRemove_Feedback - type: object - goal: - properties: - blow_out_air_volume: - items: - type: number - type: array - delays: - items: - maximum: 2147483647 - minimum: -2147483648 - type: integer - type: array - flow_rates: - items: - type: number - type: array - is_96_well: - type: boolean - liquid_height: - items: - type: number - type: array - none_keys: - items: - type: string - type: array - offsets: - items: - properties: - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - title: offsets - type: object - type: array - sources: - items: - properties: - category: - type: string - children: - items: - type: string - type: array - config: - type: string - data: - type: string - id: - type: string - name: - type: string - parent: - type: string - pose: - properties: - orientation: - properties: - w: - type: number - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - - w - title: orientation - type: object - position: - properties: - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - title: position - type: object - required: - - position - - orientation - title: pose - type: object - sample_id: - type: string - type: - type: string - required: - - id - - name - - sample_id - - children - - parent - - type - - category - - pose - - config - - data - title: sources - type: object - type: array - spread: - type: string - top: - items: - type: number - type: array - use_channels: - items: - maximum: 2147483647 - minimum: -2147483648 - type: integer - type: array - vols: - items: - type: number - type: array - waste_liquid: - properties: - category: - type: string - children: - items: - type: string - type: array - config: - type: string - data: - type: string - id: - type: string - name: - type: string - parent: - type: string - pose: - properties: - orientation: - properties: - w: - type: number - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - - w - title: orientation - type: object - position: - properties: - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - title: position - type: object - required: - - position - - orientation - title: pose - type: object - sample_id: - type: string - type: - type: string - required: - - id - - name - - sample_id - - children - - parent - - type - - category - - pose - - config - - data - title: waste_liquid - type: object - required: - - vols - - sources - - waste_liquid - - use_channels - - flow_rates - - offsets - - liquid_height - - blow_out_air_volume - - spread - - delays - - is_96_well - - top - - none_keys - title: LiquidHandlerRemove_Goal - type: object - result: - properties: - return_info: - type: string - success: - type: boolean - required: - - return_info - - success - title: LiquidHandlerRemove_Result - type: object - required: - - goal - title: LiquidHandlerRemove - type: object - type: LiquidHandlerRemove - return_tips: - feedback: {} - goal: - allow_nonzero_volume: allow_nonzero_volume - use_channels: use_channels - goal_default: - allow_nonzero_volume: false - use_channels: - - 0 - handles: {} - result: - name: name - schema: - description: '' - properties: - feedback: - properties: {} - required: [] - title: LiquidHandlerReturnTips_Feedback - type: object - goal: - properties: - allow_nonzero_volume: - type: boolean - use_channels: - items: - maximum: 2147483647 - minimum: -2147483648 - type: integer - type: array - required: - - use_channels - - allow_nonzero_volume - title: LiquidHandlerReturnTips_Goal - type: object - result: - properties: - return_info: - type: string - success: - type: boolean - required: - - return_info - - success - title: LiquidHandlerReturnTips_Result - type: object - required: - - goal - title: LiquidHandlerReturnTips - type: object - type: LiquidHandlerReturnTips - return_tips96: - feedback: {} - goal: - allow_nonzero_volume: allow_nonzero_volume - goal_default: - allow_nonzero_volume: false - handles: {} - result: - name: name - schema: - description: '' - properties: - feedback: - properties: {} - required: [] - title: LiquidHandlerReturnTips96_Feedback - type: object - goal: - properties: - allow_nonzero_volume: - type: boolean - required: - - allow_nonzero_volume - title: LiquidHandlerReturnTips96_Goal - type: object - result: - properties: - return_info: - type: string - success: - type: boolean - required: - - return_info - - success - title: LiquidHandlerReturnTips96_Result - type: object - required: - - goal - title: LiquidHandlerReturnTips96 - type: object - type: LiquidHandlerReturnTips96 - stamp: - feedback: {} - goal: - aspiration_flow_rate: aspiration_flow_rate - dispense_flow_rate: dispense_flow_rate - source: source - target: target - volume: volume - goal_default: - aspiration_flow_rate: 0.0 - dispense_flow_rate: 0.0 - source: - category: '' - children: [] - config: '' - data: '' - id: '' - name: '' - parent: '' - pose: - orientation: - w: 1.0 - x: 0.0 - y: 0.0 - z: 0.0 - position: - x: 0.0 - y: 0.0 - z: 0.0 - sample_id: '' - type: '' - target: - category: '' - children: [] - config: '' - data: '' - id: '' - name: '' - parent: '' - pose: - orientation: - w: 1.0 - x: 0.0 - y: 0.0 - z: 0.0 - position: - x: 0.0 - y: 0.0 - z: 0.0 - sample_id: '' - type: '' - volume: 0.0 - handles: {} - result: - name: name - schema: - description: '' - properties: - feedback: - properties: {} - required: [] - title: LiquidHandlerStamp_Feedback - type: object - goal: - properties: - aspiration_flow_rate: - type: number - dispense_flow_rate: - type: number - source: - properties: - category: - type: string - children: - items: - type: string - type: array - config: - type: string - data: - type: string - id: - type: string - name: - type: string - parent: - type: string - pose: - properties: - orientation: - properties: - w: - type: number - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - - w - title: orientation - type: object - position: - properties: - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - title: position - type: object - required: - - position - - orientation - title: pose - type: object - sample_id: - type: string - type: - type: string - required: - - id - - name - - sample_id - - children - - parent - - type - - category - - pose - - config - - data - title: source - type: object - target: - properties: - category: - type: string - children: - items: - type: string - type: array - config: - type: string - data: - type: string - id: - type: string - name: - type: string - parent: - type: string - pose: - properties: - orientation: - properties: - w: - type: number - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - - w - title: orientation - type: object - position: - properties: - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - title: position - type: object - required: - - position - - orientation - title: pose - type: object - sample_id: - type: string - type: - type: string - required: - - id - - name - - sample_id - - children - - parent - - type - - category - - pose - - config - - data - title: target - type: object - volume: - type: number - required: - - source - - target - - volume - - aspiration_flow_rate - - dispense_flow_rate - title: LiquidHandlerStamp_Goal - type: object - result: - properties: - return_info: - type: string - success: - type: boolean - required: - - return_info - - success - title: LiquidHandlerStamp_Result - type: object - required: - - goal - title: LiquidHandlerStamp - type: object - type: LiquidHandlerStamp - transfer: - goal: - aspiration_flow_rate: aspiration_flow_rate - dispense_flow_rates: dispense_flow_rates - ratios: ratios - source: source - source_vol: source_vol - target_vols: target_vols - targets: targets - goal_default: - amount: '' - from_vessel: '' - rinsing_repeats: 0 - rinsing_solvent: '' - rinsing_volume: 0.0 - solid: false - time: 0.0 - to_vessel: '' - viscous: false - volume: 0.0 - handles: {} - schema: - description: '' - properties: - feedback: - properties: - current_status: - type: string - progress: - type: number - transferred_volume: - type: number - required: - - progress - - transferred_volume - - current_status - title: Transfer_Feedback - type: object - goal: - properties: - amount: - type: string - from_vessel: - type: string - rinsing_repeats: - maximum: 2147483647 - minimum: -2147483648 - type: integer - rinsing_solvent: - type: string - rinsing_volume: - type: number - solid: - type: boolean - time: - type: number - to_vessel: - type: string - viscous: - type: boolean - volume: - type: number - required: - - from_vessel - - to_vessel - - volume - - amount - - time - - viscous - - rinsing_solvent - - rinsing_volume - - rinsing_repeats - - solid - title: Transfer_Goal - type: object - result: - properties: - message: - type: string - return_info: - type: string - success: - type: boolean - required: - - success - - message - - return_info - title: Transfer_Result - type: object - required: - - goal - title: Transfer - type: object - type: Transfer - transfer_liquid: - feedback: {} - goal: - asp_flow_rates: asp_flow_rates - asp_vols: asp_vols - blow_out_air_volume: blow_out_air_volume - delays: delays - dis_flow_rates: dis_flow_rates - dis_vols: dis_vols - is_96_well: is_96_well - liquid_height: liquid_height - mix_liquid_height: mix_liquid_height - mix_rate: mix_rate - mix_stage: mix_stage - mix_times: mix_times - mix_vol: mix_vol - none_keys: none_keys - offsets: offsets - sources: sources - spread: spread - targets: targets - tip_racks: tip_racks - touch_tip: touch_tip - use_channels: use_channels - goal_default: - asp_flow_rates: - - 0.0 - asp_vols: - - 0.0 - blow_out_air_volume: - - 0.0 - delays: - - 0 - dis_flow_rates: - - 0.0 - dis_vols: - - 0.0 - is_96_well: false - liquid_height: - - 0.0 - mix_liquid_height: 0.0 - mix_rate: 0 - mix_stage: '' - mix_times: 0 - mix_vol: 0 - none_keys: - - '' - offsets: - - x: 0.0 - y: 0.0 - z: 0.0 - sources: - - category: '' - children: [] - config: '' - data: '' - id: '' - name: '' - parent: '' - pose: - orientation: - w: 1.0 - x: 0.0 - y: 0.0 - z: 0.0 - position: - x: 0.0 - y: 0.0 - z: 0.0 - sample_id: '' - type: '' - spread: '' - targets: - - category: '' - children: [] - config: '' - data: '' - id: '' - name: '' - parent: '' - pose: - orientation: - w: 1.0 - x: 0.0 - y: 0.0 - z: 0.0 - position: - x: 0.0 - y: 0.0 - z: 0.0 - sample_id: '' - type: '' - tip_racks: - - category: '' - children: [] - config: '' - data: '' - id: '' - name: '' - parent: '' - pose: - orientation: - w: 1.0 - x: 0.0 - y: 0.0 - z: 0.0 - position: - x: 0.0 - y: 0.0 - z: 0.0 - sample_id: '' - type: '' - touch_tip: false - use_channels: - - 0 - handles: - input: - - data_key: liquid - data_source: handle - data_type: resource - handler_key: sources - label: sources - - data_key: liquid - data_source: executor - data_type: resource - handler_key: targets - label: targets - - data_key: liquid - data_source: executor - data_type: resource - handler_key: tip_rack - label: tip_rack - output: - - data_key: liquid - data_source: handle - data_type: resource - handler_key: sources_out - label: sources - - data_key: liquid - data_source: executor - data_type: resource - handler_key: targets_out - label: targets - placeholder_keys: - sources: unilabos_resources - targets: unilabos_resources - tip_racks: unilabos_resources - result: {} - schema: - description: '' - properties: - feedback: - properties: {} - required: [] - title: LiquidHandlerTransfer_Feedback - type: object - goal: - properties: - asp_flow_rates: - items: - type: number - type: array - asp_vols: - items: - type: number - type: array - blow_out_air_volume: - items: - type: number - type: array - delays: - items: - maximum: 2147483647 - minimum: -2147483648 - type: integer - type: array - dis_flow_rates: - items: - type: number - type: array - dis_vols: - items: - type: number - type: array - is_96_well: - type: boolean - liquid_height: - items: - type: number - type: array - mix_liquid_height: - type: number - mix_rate: - maximum: 2147483647 - minimum: -2147483648 - type: integer - mix_stage: - type: string - mix_times: - maximum: 2147483647 - minimum: -2147483648 - type: integer - mix_vol: - maximum: 2147483647 - minimum: -2147483648 - type: integer - none_keys: - items: - type: string - type: array - offsets: - items: - properties: - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - title: offsets - type: object - type: array - sources: - items: - properties: - category: - type: string - children: - items: - type: string - type: array - config: - type: string - data: - type: string - id: - type: string - name: - type: string - parent: - type: string - pose: - properties: - orientation: - properties: - w: - type: number - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - - w - title: orientation - type: object - position: - properties: - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - title: position - type: object - required: - - position - - orientation - title: pose - type: object - sample_id: - type: string - type: - type: string - required: - - id - - name - - sample_id - - children - - parent - - type - - category - - pose - - config - - data - title: sources - type: object - type: array - spread: - type: string - targets: - items: - properties: - category: - type: string - children: - items: - type: string - type: array - config: - type: string - data: - type: string - id: - type: string - name: - type: string - parent: - type: string - pose: - properties: - orientation: - properties: - w: - type: number - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - - w - title: orientation - type: object - position: - properties: - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - title: position - type: object - required: - - position - - orientation - title: pose - type: object - sample_id: - type: string - type: - type: string - required: - - id - - name - - sample_id - - children - - parent - - type - - category - - pose - - config - - data - title: targets - type: object - type: array - tip_racks: - items: - properties: - category: - type: string - children: - items: - type: string - type: array - config: - type: string - data: - type: string - id: - type: string - name: - type: string - parent: - type: string - pose: - properties: - orientation: - properties: - w: - type: number - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - - w - title: orientation - type: object - position: - properties: - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - title: position - type: object - required: - - position - - orientation - title: pose - type: object - sample_id: - type: string - type: - type: string - required: - - id - - name - - sample_id - - children - - parent - - type - - category - - pose - - config - - data - title: tip_racks - type: object - type: array - touch_tip: - type: boolean - use_channels: - items: - maximum: 2147483647 - minimum: -2147483648 - type: integer - type: array - required: - - asp_vols - - dis_vols - - sources - - targets - - tip_racks - - use_channels - - asp_flow_rates - - dis_flow_rates - - offsets - - touch_tip - - liquid_height - - blow_out_air_volume - - spread - - is_96_well - - mix_stage - - mix_times - - mix_vol - - mix_rate - - mix_liquid_height - - delays - - none_keys - title: LiquidHandlerTransfer_Goal - type: object - result: - properties: - return_info: - type: string - success: - type: boolean - required: - - return_info - - success - title: LiquidHandlerTransfer_Result - type: object - required: - - goal - title: LiquidHandlerTransfer - type: object - type: LiquidHandlerTransfer - module: unilabos.devices.liquid_handling.liquid_handler_abstract:LiquidHandlerAbstract - status_types: {} - type: python - config_info: [] - description: Liquid handler device controlled by pylabrobot - handles: [] - icon: icon_yiyezhan.webp - init_param_schema: - config: - properties: - backend: - type: string - channel_num: - default: 8 - type: integer - deck: - type: string - simulator: - default: false - type: boolean - total_height: - default: 310 - type: number - required: - - backend - - deck - type: object - data: - properties: {} - required: [] - type: object - version: 1.0.0 -liquid_handler.biomek: - category: - - liquid_handler - class: - action_value_mappings: - auto-create_resource: - feedback: {} - goal: {} - goal_default: - bind_location: null - bind_parent_id: null - liquid_input_slot: null - liquid_type: null - liquid_volume: null - resource_tracker: null - resources: null - slot_on_deck: null - handles: {} - placeholder_keys: {} - result: {} - schema: - description: create_resource的参数schema - properties: - feedback: {} - goal: - properties: - bind_location: - type: object - bind_parent_id: - type: string - liquid_input_slot: - items: - type: integer - type: array - liquid_type: - items: - type: string - type: array - liquid_volume: - items: - type: integer - type: array - resource_tracker: - type: object - resources: - items: - type: object - type: array - slot_on_deck: - type: integer - required: - - resource_tracker - - resources - - bind_parent_id - - bind_location - - liquid_input_slot - - liquid_type - - liquid_volume - - slot_on_deck - type: object - result: {} - required: - - goal - title: create_resource参数 - type: object - type: UniLabJsonCommand - auto-instrument_setup_biomek: - feedback: {} - goal: {} - goal_default: - class_name: null - id: null - liquid_input_wells: null - liquid_type: null - liquid_volume: null - parent: null - slot_on_deck: null - handles: {} - placeholder_keys: {} - result: {} - schema: - description: instrument_setup_biomek的参数schema - properties: - feedback: {} - goal: - properties: - class_name: - type: string - id: - type: string - liquid_input_wells: - items: - type: string - type: array - liquid_type: - items: - type: string - type: array - liquid_volume: - items: - type: integer - type: array - parent: - type: string - slot_on_deck: - type: string - required: - - id - - parent - - slot_on_deck - - class_name - - liquid_type - - liquid_volume - - liquid_input_wells - type: object - result: {} - required: - - goal - title: instrument_setup_biomek参数 - type: object - type: UniLabJsonCommand - create_protocol: - feedback: {} - goal: - none_keys: none_keys - protocol_author: protocol_author - protocol_date: protocol_date - protocol_description: protocol_description - protocol_name: protocol_name - protocol_type: protocol_type - protocol_version: protocol_version - goal_default: - none_keys: - - '' - protocol_author: '' - protocol_date: '' - protocol_description: '' - protocol_name: '' - protocol_type: '' - protocol_version: '' - handles: {} - result: {} - schema: - description: '' - properties: - feedback: - properties: {} - required: [] - title: LiquidHandlerProtocolCreation_Feedback - type: object - goal: - properties: - none_keys: - items: - type: string - type: array - protocol_author: - type: string - protocol_date: - type: string - protocol_description: - type: string - protocol_name: - type: string - protocol_type: - type: string - protocol_version: - type: string - required: - - protocol_name - - protocol_description - - protocol_version - - protocol_author - - protocol_date - - protocol_type - - none_keys - title: LiquidHandlerProtocolCreation_Goal - type: object - result: - properties: - return_info: - type: string - required: - - return_info - title: LiquidHandlerProtocolCreation_Result - type: object - required: - - goal - title: LiquidHandlerProtocolCreation - type: object - type: LiquidHandlerProtocolCreation - incubation_biomek: - feedback: {} - goal: - time: time - goal_default: - time: 0 - handles: - input: - - data_key: liquid - data_source: handle - data_type: resource - handler_key: plate - label: plate - output: - - data_key: liquid - data_source: handle - data_type: resource - handler_key: plate_out - label: plate - result: {} - schema: - description: '' - properties: - feedback: - properties: {} - required: [] - title: LiquidHandlerIncubateBiomek_Feedback - type: object - goal: - properties: - time: - maximum: 2147483647 - minimum: -2147483648 - type: integer - required: - - time - title: LiquidHandlerIncubateBiomek_Goal - type: object - result: - properties: - return_info: - type: string - success: - type: boolean - required: - - return_info - - success - title: LiquidHandlerIncubateBiomek_Result - type: object - required: - - goal - title: LiquidHandlerIncubateBiomek - type: object - type: LiquidHandlerIncubateBiomek - move_biomek: - feedback: {} - goal: - source: sources - target: targets - goal_default: - sources: '' - targets: '' - handles: - input: - - data_key: liquid - data_source: handle - data_type: resource - handler_key: sources - label: sources - output: - - data_key: liquid - data_source: handle - data_type: resource - handler_key: targets - label: targets - result: - name: name - schema: - description: '' - properties: - feedback: - properties: {} - required: [] - title: LiquidHandlerMoveBiomek_Feedback - type: object - goal: - properties: - sources: - type: string - targets: - type: string - required: - - sources - - targets - title: LiquidHandlerMoveBiomek_Goal - type: object - result: - properties: - return_info: - type: string - success: - type: boolean - required: - - return_info - - success - title: LiquidHandlerMoveBiomek_Result - type: object - required: - - goal - title: LiquidHandlerMoveBiomek - type: object - type: LiquidHandlerMoveBiomek - oscillation_biomek: - feedback: {} - goal: - rpm: rpm - time: time - goal_default: - rpm: 0 - time: 0 - handles: - input: - - data_key: liquid - data_source: handle - data_type: resource - handler_key: plate - label: plate - output: - - data_key: liquid - data_source: handle - data_type: resource - handler_key: plate_out - label: plate - result: {} - schema: - description: '' - properties: - feedback: - properties: {} - required: [] - title: LiquidHandlerOscillateBiomek_Feedback - type: object - goal: - properties: - rpm: - maximum: 2147483647 - minimum: -2147483648 - type: integer - time: - maximum: 2147483647 - minimum: -2147483648 - type: integer - required: - - rpm - - time - title: LiquidHandlerOscillateBiomek_Goal - type: object - result: - properties: - return_info: - type: string - success: - type: boolean - required: - - return_info - - success - title: LiquidHandlerOscillateBiomek_Result - type: object - required: - - goal - title: LiquidHandlerOscillateBiomek - type: object - type: LiquidHandlerOscillateBiomek - run_protocol: - feedback: {} - goal: {} - goal_default: {} - handles: {} - result: {} - schema: - description: '' - properties: - feedback: - properties: {} - required: [] - title: EmptyIn_Feedback - type: object - goal: - properties: {} - required: [] - title: EmptyIn_Goal - type: object - result: - properties: - return_info: - type: string - required: - - return_info - title: EmptyIn_Result - type: object - required: - - goal - title: EmptyIn - type: object - type: EmptyIn - transfer_biomek: - feedback: {} - goal: - aspirate_techniques: aspirate_techniques - dispense_techniques: dispense_techniques - sources: sources - targets: targets - tip_rack: tip_rack - volume: volume - goal_default: - aspirate_technique: '' - dispense_technique: '' - sources: '' - targets: '' - tip_rack: '' - volume: 0.0 - handles: - input: - - data_key: liquid - data_source: handle - data_type: resource - handler_key: sources - label: sources - - data_key: liquid - data_source: executor - data_type: resource - handler_key: targets - label: targets - - data_key: liquid - data_source: executor - data_type: resource - handler_key: tip_rack - label: tip_rack - output: - - data_key: liquid - data_source: handle - data_type: resource - handler_key: sources_out - label: sources - - data_key: liquid - data_source: executor - data_type: resource - handler_key: targets_out - label: targets - result: {} - schema: - description: '' - properties: - feedback: - properties: {} - required: [] - title: LiquidHandlerTransferBiomek_Feedback - type: object - goal: - properties: - aspirate_technique: - type: string - dispense_technique: - type: string - sources: - type: string - targets: - type: string - tip_rack: - type: string - volume: - type: number - required: - - sources - - targets - - tip_rack - - volume - - aspirate_technique - - dispense_technique - title: LiquidHandlerTransferBiomek_Goal - type: object - result: - properties: - return_info: - type: string - success: - type: boolean - required: - - return_info - - success - title: LiquidHandlerTransferBiomek_Result - type: object - required: - - goal - title: LiquidHandlerTransferBiomek - type: object - type: LiquidHandlerTransferBiomek - transfer_liquid: - feedback: {} - goal: - asp_flow_rates: asp_flow_rates - asp_vols: asp_vols - blow_out_air_volume: blow_out_air_volume - delays: delays - dis_flow_rates: dis_flow_rates - dis_vols: dis_vols - is_96_well: is_96_well - liquid_height: liquid_height - mix_liquid_height: mix_liquid_height - mix_rate: mix_rate - mix_stage: mix_stage - mix_times: mix_times - mix_vol: mix_vol - none_keys: none_keys - offsets: offsets - sources: sources - spread: spread - targets: targets - tip_racks: tip_racks - touch_tip: touch_tip - use_channels: use_channels - goal_default: - asp_flow_rates: - - 0.0 - asp_vols: - - 0.0 - blow_out_air_volume: - - 0.0 - delays: - - 0 - dis_flow_rates: - - 0.0 - dis_vols: - - 0.0 - is_96_well: false - liquid_height: - - 0.0 - mix_liquid_height: 0.0 - mix_rate: 0 - mix_stage: '' - mix_times: 0 - mix_vol: 0 - none_keys: - - '' - offsets: - - x: 0.0 - y: 0.0 - z: 0.0 - sources: - - category: '' - children: [] - config: '' - data: '' - id: '' - name: '' - parent: '' - pose: - orientation: - w: 1.0 - x: 0.0 - y: 0.0 - z: 0.0 - position: - x: 0.0 - y: 0.0 - z: 0.0 - sample_id: '' - type: '' - spread: '' - targets: - - category: '' - children: [] - config: '' - data: '' - id: '' - name: '' - parent: '' - pose: - orientation: - w: 1.0 - x: 0.0 - y: 0.0 - z: 0.0 - position: - x: 0.0 - y: 0.0 - z: 0.0 - sample_id: '' - type: '' - tip_racks: - - category: '' - children: [] - config: '' - data: '' - id: '' - name: '' - parent: '' - pose: - orientation: - w: 1.0 - x: 0.0 - y: 0.0 - z: 0.0 - position: - x: 0.0 - y: 0.0 - z: 0.0 - sample_id: '' - type: '' - touch_tip: false - use_channels: - - 0 - handles: - input: - - data_key: liquid - data_source: handle - data_type: resource - handler_key: liquid-input - io_type: target - label: Liquid Input - output: - - data_key: liquid - data_source: executor - data_type: resource - handler_key: liquid-output - io_type: source - label: Liquid Output - placeholder_keys: - sources: unilabos_resources - targets: unilabos_resources - tip_racks: unilabos_resources - result: {} - schema: - description: '' - properties: - feedback: - properties: {} - required: [] - title: LiquidHandlerTransfer_Feedback - type: object - goal: - properties: - asp_flow_rates: - items: - type: number - type: array - asp_vols: - items: - type: number - type: array - blow_out_air_volume: - items: - type: number - type: array - delays: - items: - maximum: 2147483647 - minimum: -2147483648 - type: integer - type: array - dis_flow_rates: - items: - type: number - type: array - dis_vols: - items: - type: number - type: array - is_96_well: - type: boolean - liquid_height: - items: - type: number - type: array - mix_liquid_height: - type: number - mix_rate: - maximum: 2147483647 - minimum: -2147483648 - type: integer - mix_stage: - type: string - mix_times: - maximum: 2147483647 - minimum: -2147483648 - type: integer - mix_vol: - maximum: 2147483647 - minimum: -2147483648 - type: integer - none_keys: - items: - type: string - type: array - offsets: - items: - properties: - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - title: offsets - type: object - type: array - sources: - items: - properties: - category: - type: string - children: - items: - type: string - type: array - config: - type: string - data: - type: string - id: - type: string - name: - type: string - parent: - type: string - pose: - properties: - orientation: - properties: - w: - type: number - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - - w - title: orientation - type: object - position: - properties: - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - title: position - type: object - required: - - position - - orientation - title: pose - type: object - sample_id: - type: string - type: - type: string - required: - - id - - name - - sample_id - - children - - parent - - type - - category - - pose - - config - - data - title: sources - type: object - type: array - spread: - type: string - targets: - items: - properties: - category: - type: string - children: - items: - type: string - type: array - config: - type: string - data: - type: string - id: - type: string - name: - type: string - parent: - type: string - pose: - properties: - orientation: - properties: - w: - type: number - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - - w - title: orientation - type: object - position: - properties: - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - title: position - type: object - required: - - position - - orientation - title: pose - type: object - sample_id: - type: string - type: - type: string - required: - - id - - name - - sample_id - - children - - parent - - type - - category - - pose - - config - - data - title: targets - type: object - type: array - tip_racks: - items: - properties: - category: - type: string - children: - items: - type: string - type: array - config: - type: string - data: - type: string - id: - type: string - name: - type: string - parent: - type: string - pose: - properties: - orientation: - properties: - w: - type: number - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - - w - title: orientation - type: object - position: - properties: - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - title: position - type: object - required: - - position - - orientation - title: pose - type: object - sample_id: - type: string - type: - type: string - required: - - id - - name - - sample_id - - children - - parent - - type - - category - - pose - - config - - data - title: tip_racks - type: object - type: array - touch_tip: - type: boolean - use_channels: - items: - maximum: 2147483647 - minimum: -2147483648 - type: integer - type: array - required: - - asp_vols - - dis_vols - - sources - - targets - - tip_racks - - use_channels - - asp_flow_rates - - dis_flow_rates - - offsets - - touch_tip - - liquid_height - - blow_out_air_volume - - spread - - is_96_well - - mix_stage - - mix_times - - mix_vol - - mix_rate - - mix_liquid_height - - delays - - none_keys - title: LiquidHandlerTransfer_Goal - type: object - result: - properties: - return_info: - type: string - success: - type: boolean - required: - - return_info - - success - title: LiquidHandlerTransfer_Result - type: object - required: - - goal - title: LiquidHandlerTransfer - type: object - type: LiquidHandlerTransfer - module: unilabos.devices.liquid_handling.biomek:LiquidHandlerBiomek - status_types: - success: String - type: python - config_info: [] - description: Biomek液体处理器设备,基于pylabrobot控制 - handles: [] - icon: icon_yiyezhan.webp - init_param_schema: - config: - properties: {} - required: [] - type: object - data: - properties: - success: - type: string - required: - - success - type: object - version: 1.0.0 -liquid_handler.laiyu: - category: - - liquid_handler - class: - action_value_mappings: - add_liquid: - feedback: {} - goal: - asp_vols: asp_vols - blow_out_air_volume: blow_out_air_volume - dis_vols: dis_vols - flow_rates: flow_rates - is_96_well: is_96_well - liquid_height: liquid_height - mix_liquid_height: mix_liquid_height - mix_rate: mix_rate - mix_time: mix_time - mix_vol: mix_vol - none_keys: none_keys - offsets: offsets - reagent_sources: reagent_sources - spread: spread - targets: targets - use_channels: use_channels - goal_default: - asp_vols: - - 0.0 - blow_out_air_volume: - - 0.0 - dis_vols: - - 0.0 - flow_rates: - - 0.0 - is_96_well: false - liquid_height: - - 0.0 - mix_liquid_height: 0.0 - mix_rate: 0 - mix_time: 0 - mix_vol: 0 - none_keys: - - '' - offsets: - - x: 0.0 - y: 0.0 - z: 0.0 - reagent_sources: - - category: '' - children: [] - config: '' - data: '' - id: '' - name: '' - parent: '' - pose: - orientation: - w: 1.0 - x: 0.0 - y: 0.0 - z: 0.0 - position: - x: 0.0 - y: 0.0 - z: 0.0 - sample_id: '' - type: '' - spread: '' - targets: - - category: '' - children: [] - config: '' - data: '' - id: '' - name: '' - parent: '' - pose: - orientation: - w: 1.0 - x: 0.0 - y: 0.0 - z: 0.0 - position: - x: 0.0 - y: 0.0 - z: 0.0 - sample_id: '' - type: '' - use_channels: - - 0 - handles: {} - placeholder_keys: - reagent_sources: unilabos_resources - targets: unilabos_resources - result: {} - schema: - description: '' - properties: - feedback: - properties: {} - required: [] - title: LiquidHandlerAdd_Feedback - type: object - goal: - properties: - asp_vols: - items: - type: number - type: array - blow_out_air_volume: - items: - type: number - type: array - dis_vols: - items: - type: number - type: array - flow_rates: - items: - type: number - type: array - is_96_well: - type: boolean - liquid_height: - items: - type: number - type: array - mix_liquid_height: - type: number - mix_rate: - maximum: 2147483647 - minimum: -2147483648 - type: integer - mix_time: - maximum: 2147483647 - minimum: -2147483648 - type: integer - mix_vol: - maximum: 2147483647 - minimum: -2147483648 - type: integer - none_keys: - items: - type: string - type: array - offsets: - items: - properties: - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - title: offsets - type: object - type: array - reagent_sources: - items: - properties: - category: - type: string - children: - items: - type: string - type: array - config: - type: string - data: - type: string - id: - type: string - name: - type: string - parent: - type: string - pose: - properties: - orientation: - properties: - w: - type: number - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - - w - title: orientation - type: object - position: - properties: - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - title: position - type: object - required: - - position - - orientation - title: pose - type: object - sample_id: - type: string - type: - type: string - required: - - id - - name - - sample_id - - children - - parent - - type - - category - - pose - - config - - data - title: reagent_sources - type: object - type: array - spread: - type: string - targets: - items: - properties: - category: - type: string - children: - items: - type: string - type: array - config: - type: string - data: - type: string - id: - type: string - name: - type: string - parent: - type: string - pose: - properties: - orientation: - properties: - w: - type: number - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - - w - title: orientation - type: object - position: - properties: - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - title: position - type: object - required: - - position - - orientation - title: pose - type: object - sample_id: - type: string - type: - type: string - required: - - id - - name - - sample_id - - children - - parent - - type - - category - - pose - - config - - data - title: targets - type: object - type: array - use_channels: - items: - maximum: 2147483647 - minimum: -2147483648 - type: integer - type: array - required: - - asp_vols - - dis_vols - - reagent_sources - - targets - - use_channels - - flow_rates - - offsets - - liquid_height - - blow_out_air_volume - - spread - - is_96_well - - mix_time - - mix_vol - - mix_rate - - mix_liquid_height - - none_keys - title: LiquidHandlerAdd_Goal - type: object - result: - properties: - return_info: - type: string - success: - type: boolean - required: - - return_info - - success - title: LiquidHandlerAdd_Result - type: object - required: - - goal - title: LiquidHandlerAdd - type: object - type: LiquidHandlerAdd - aspirate: - feedback: {} - goal: - blow_out_air_volume: blow_out_air_volume - flow_rates: flow_rates - liquid_height: liquid_height - offsets: offsets - resources: resources - use_channels: use_channels - vols: vols - goal_default: - blow_out_air_volume: - - 0.0 - flow_rates: - - 0.0 - liquid_height: - - 0.0 - offsets: - - x: 0.0 - y: 0.0 - z: 0.0 - resources: - - category: '' - children: [] - config: '' - data: '' - id: '' - name: '' - parent: '' - pose: - orientation: - w: 1.0 - x: 0.0 - y: 0.0 - z: 0.0 - position: - x: 0.0 - y: 0.0 - z: 0.0 - sample_id: '' - type: '' - spread: '' - use_channels: - - 0 - vols: - - 0.0 - handles: {} - placeholder_keys: - resources: unilabos_resources - result: {} - schema: - description: '' - properties: - feedback: - properties: {} - required: [] - title: LiquidHandlerAspirate_Feedback - type: object - goal: - properties: - blow_out_air_volume: - items: - type: number - type: array - flow_rates: - items: - type: number - type: array - liquid_height: - items: - type: number - type: array - offsets: - items: - properties: - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - title: offsets - type: object - type: array - resources: - items: - properties: - category: - type: string - children: - items: - type: string - type: array - config: - type: string - data: - type: string - id: - type: string - name: - type: string - parent: - type: string - pose: - properties: - orientation: - properties: - w: - type: number - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - - w - title: orientation - type: object - position: - properties: - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - title: position - type: object - required: - - position - - orientation - title: pose - type: object - sample_id: - type: string - type: - type: string - required: - - id - - name - - sample_id - - children - - parent - - type - - category - - pose - - config - - data - title: resources - type: object - type: array - spread: - type: string - use_channels: - items: - maximum: 2147483647 - minimum: -2147483648 - type: integer - type: array - vols: - items: - type: number - type: array - required: - - resources - - vols - - use_channels - - flow_rates - - offsets - - liquid_height - - blow_out_air_volume - - spread - title: LiquidHandlerAspirate_Goal - type: object - result: - properties: - return_info: - type: string - success: - type: boolean - required: - - return_info - - success - title: LiquidHandlerAspirate_Result - type: object - required: - - goal - title: LiquidHandlerAspirate - type: object - type: LiquidHandlerAspirate - auto-transfer_liquid: - feedback: {} - goal: {} - goal_default: - asp_flow_rates: null - asp_vols: null - blow_out_air_volume: null - delays: null - dis_flow_rates: null - dis_vols: null - is_96_well: false - liquid_height: null - mix_liquid_height: null - mix_rate: null - mix_stage: none - mix_times: null - mix_vol: null - none_keys: [] - offsets: null - sources: null - spread: wide - targets: null - tip_racks: null - touch_tip: false - use_channels: null - handles: {} - placeholder_keys: {} - result: {} - schema: - description: '' - properties: - feedback: {} - goal: - properties: - asp_flow_rates: - type: string - asp_vols: - type: string - blow_out_air_volume: - type: string - delays: - type: string - dis_flow_rates: - type: string - dis_vols: - type: string - is_96_well: - default: false - type: boolean - liquid_height: - type: string - mix_liquid_height: - type: string - mix_rate: - type: string - mix_stage: - default: none - type: string - mix_times: - type: string - mix_vol: - type: string - none_keys: - default: [] - items: - type: string - type: array - offsets: - type: string - sources: - type: string - spread: - default: wide - type: string - targets: - type: string - tip_racks: - type: string - touch_tip: - default: false - type: boolean - use_channels: - type: string - required: - - sources - - targets - - tip_racks - - asp_vols - - dis_vols - type: object - result: {} - required: - - goal - title: transfer_liquid参数 - type: object - type: UniLabJsonCommandAsync - dispense: - feedback: {} - goal: - blow_out_air_volume: blow_out_air_volume - flow_rates: flow_rates - liquid_height: liquid_height - offsets: offsets - resources: resources - use_channels: use_channels - vols: vols - goal_default: - blow_out_air_volume: - - 0 - flow_rates: - - 0.0 - offsets: - - x: 0.0 - y: 0.0 - z: 0.0 - resources: - - category: '' - children: [] - config: '' - data: '' - id: '' - name: '' - parent: '' - pose: - orientation: - w: 1.0 - x: 0.0 - y: 0.0 - z: 0.0 - position: - x: 0.0 - y: 0.0 - z: 0.0 - sample_id: '' - type: '' - spread: '' - use_channels: - - 0 - vols: - - 0.0 - handles: {} - placeholder_keys: - resources: unilabos_resources - result: {} - schema: - description: '' - properties: - feedback: - properties: {} - required: [] - title: LiquidHandlerDispense_Feedback - type: object - goal: - properties: - blow_out_air_volume: - items: - maximum: 2147483647 - minimum: -2147483648 - type: integer - type: array - flow_rates: - items: - type: number - type: array - offsets: - items: - properties: - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - title: offsets - type: object - type: array - resources: - items: - properties: - category: - type: string - children: - items: - type: string - type: array - config: - type: string - data: - type: string - id: - type: string - name: - type: string - parent: - type: string - pose: - properties: - orientation: - properties: - w: - type: number - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - - w - title: orientation - type: object - position: - properties: - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - title: position - type: object - required: - - position - - orientation - title: pose - type: object - sample_id: - type: string - type: - type: string - required: - - id - - name - - sample_id - - children - - parent - - type - - category - - pose - - config - - data - title: resources - type: object - type: array - spread: - type: string - use_channels: - items: - maximum: 2147483647 - minimum: -2147483648 - type: integer - type: array - vols: - items: - type: number - type: array - required: - - resources - - vols - - use_channels - - flow_rates - - offsets - - blow_out_air_volume - - spread - title: LiquidHandlerDispense_Goal - type: object - result: - properties: - return_info: - type: string - success: - type: boolean - required: - - return_info - - success - title: LiquidHandlerDispense_Result - type: object - required: - - goal - title: LiquidHandlerDispense - type: object - type: LiquidHandlerDispense - drop_tips: - feedback: {} - goal: - allow_nonzero_volume: allow_nonzero_volume - offsets: offsets - tip_spots: tip_spots - use_channels: use_channels - goal_default: - allow_nonzero_volume: false - offsets: - - x: 0.0 - y: 0.0 - z: 0.0 - tip_spots: - - category: '' - children: [] - config: '' - data: '' - id: '' - name: '' - parent: '' - pose: - orientation: - w: 1.0 - x: 0.0 - y: 0.0 - z: 0.0 - position: - x: 0.0 - y: 0.0 - z: 0.0 - sample_id: '' - type: '' - use_channels: - - 0 - handles: {} - placeholder_keys: - tip_spots: unilabos_resources - result: {} - schema: - description: '' - properties: - feedback: - properties: {} - required: [] - title: LiquidHandlerDropTips_Feedback - type: object - goal: - properties: - allow_nonzero_volume: - type: boolean - offsets: - items: - properties: - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - title: offsets - type: object - type: array - tip_spots: - items: - properties: - category: - type: string - children: - items: - type: string - type: array - config: - type: string - data: - type: string - id: - type: string - name: - type: string - parent: - type: string - pose: - properties: - orientation: - properties: - w: - type: number - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - - w - title: orientation - type: object - position: - properties: - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - title: position - type: object - required: - - position - - orientation - title: pose - type: object - sample_id: - type: string - type: - type: string - required: - - id - - name - - sample_id - - children - - parent - - type - - category - - pose - - config - - data - title: tip_spots - type: object - type: array - use_channels: - items: - maximum: 2147483647 - minimum: -2147483648 - type: integer - type: array - required: - - tip_spots - - use_channels - - offsets - - allow_nonzero_volume - title: LiquidHandlerDropTips_Goal - type: object - result: - properties: - return_info: - type: string - success: - type: boolean - required: - - return_info - - success - title: LiquidHandlerDropTips_Result - type: object - required: - - goal - title: LiquidHandlerDropTips - type: object - type: LiquidHandlerDropTips - mix: - feedback: {} - goal: - height_to_bottom: height_to_bottom - mix_rate: mix_rate - mix_time: mix_time - mix_vol: mix_vol - none_keys: none_keys - offsets: offsets - targets: targets - goal_default: - height_to_bottom: 0.0 - mix_rate: 0.0 - mix_time: 0 - mix_vol: 0 - none_keys: - - '' - offsets: - - x: 0.0 - y: 0.0 - z: 0.0 - targets: - - category: '' - children: [] - config: '' - data: '' - id: '' - name: '' - parent: '' - pose: - orientation: - w: 1.0 - x: 0.0 - y: 0.0 - z: 0.0 - position: - x: 0.0 - y: 0.0 - z: 0.0 - sample_id: '' - type: '' - handles: {} - placeholder_keys: - targets: unilabos_resources - result: {} - schema: - description: '' - properties: - feedback: - properties: {} - required: [] - title: LiquidHandlerMix_Feedback - type: object - goal: - properties: - height_to_bottom: - type: number - mix_rate: - type: number - mix_time: - maximum: 2147483647 - minimum: -2147483648 - type: integer - mix_vol: - maximum: 2147483647 - minimum: -2147483648 - type: integer - none_keys: - items: - type: string - type: array - offsets: - items: - properties: - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - title: offsets - type: object - type: array - targets: - items: - properties: - category: - type: string - children: - items: - type: string - type: array - config: - type: string - data: - type: string - id: - type: string - name: - type: string - parent: - type: string - pose: - properties: - orientation: - properties: - w: - type: number - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - - w - title: orientation - type: object - position: - properties: - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - title: position - type: object - required: - - position - - orientation - title: pose - type: object - sample_id: - type: string - type: - type: string - required: - - id - - name - - sample_id - - children - - parent - - type - - category - - pose - - config - - data - title: targets - type: object - type: array - required: - - targets - - mix_time - - mix_vol - - height_to_bottom - - offsets - - mix_rate - - none_keys - title: LiquidHandlerMix_Goal - type: object - result: - properties: - return_info: - type: string - success: - type: boolean - required: - - return_info - - success - title: LiquidHandlerMix_Result - type: object - required: - - goal - title: LiquidHandlerMix - type: object - type: LiquidHandlerMix - pick_up_tips: - feedback: {} - goal: - offsets: offsets - tip_spots: tip_spots - use_channels: use_channels - goal_default: - offsets: - - x: 0.0 - y: 0.0 - z: 0.0 - tip_spots: - - category: '' - children: [] - config: '' - data: '' - id: '' - name: '' - parent: '' - pose: - orientation: - w: 1.0 - x: 0.0 - y: 0.0 - z: 0.0 - position: - x: 0.0 - y: 0.0 - z: 0.0 - sample_id: '' - type: '' - use_channels: - - 0 - handles: {} - placeholder_keys: - tip_spots: unilabos_resources - result: {} - schema: - description: '' - properties: - feedback: - properties: {} - required: [] - title: LiquidHandlerPickUpTips_Feedback - type: object - goal: - properties: - offsets: - items: - properties: - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - title: offsets - type: object - type: array - tip_spots: - items: - properties: - category: - type: string - children: - items: - type: string - type: array - config: - type: string - data: - type: string - id: - type: string - name: - type: string - parent: - type: string - pose: - properties: - orientation: - properties: - w: - type: number - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - - w - title: orientation - type: object - position: - properties: - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - title: position - type: object - required: - - position - - orientation - title: pose - type: object - sample_id: - type: string - type: - type: string - required: - - id - - name - - sample_id - - children - - parent - - type - - category - - pose - - config - - data - title: tip_spots - type: object - type: array - use_channels: - items: - maximum: 2147483647 - minimum: -2147483648 - type: integer - type: array - required: - - tip_spots - - use_channels - - offsets - title: LiquidHandlerPickUpTips_Goal - type: object - result: - properties: - return_info: - type: string - success: - type: boolean - required: - - return_info - - success - title: LiquidHandlerPickUpTips_Result - type: object - required: - - goal - title: LiquidHandlerPickUpTips - type: object - type: LiquidHandlerPickUpTips - module: unilabos.devices.liquid_handling.laiyu.laiyu:TransformXYZHandler - properties: - support_touch_tip: bool - status_types: {} - type: python - config_info: [] - description: Laiyu液体处理器设备,基于pylabrobot控制 - handles: [] - icon: icon_yiyezhan.webp - init_param_schema: - config: - properties: - channel_num: - default: 1 - type: string - deck: - type: object - host: - default: 127.0.0.1 - type: string - port: - default: 9999 - type: integer - simulator: - default: true - type: string - timeout: - default: 10.0 - type: number - required: - - deck - type: object - data: - properties: {} - required: [] - type: object - version: 1.0.0 -liquid_handler.prcxi: - category: - - liquid_handler - class: - action_value_mappings: - add_liquid: - feedback: {} - goal: - asp_vols: asp_vols - blow_out_air_volume: blow_out_air_volume - dis_vols: dis_vols - flow_rates: flow_rates - is_96_well: is_96_well - liquid_height: liquid_height - mix_liquid_height: mix_liquid_height - mix_rate: mix_rate - mix_time: mix_time - mix_vol: mix_vol - none_keys: none_keys - offsets: offsets - reagent_sources: reagent_sources - spread: spread - targets: targets - use_channels: use_channels - goal_default: - asp_vols: - - 0.0 - blow_out_air_volume: - - 0.0 - dis_vols: - - 0.0 - flow_rates: - - 0.0 - is_96_well: false - liquid_height: - - 0.0 - mix_liquid_height: 0.0 - mix_rate: 0 - mix_time: 0 - mix_vol: 0 - none_keys: - - '' - offsets: - - x: 0.0 - y: 0.0 - z: 0.0 - reagent_sources: - - category: '' - children: [] - config: '' - data: '' - id: '' - name: '' - parent: '' - pose: - orientation: - w: 1.0 - x: 0.0 - y: 0.0 - z: 0.0 - position: - x: 0.0 - y: 0.0 - z: 0.0 - sample_id: '' - type: '' - spread: '' - targets: - - category: '' - children: [] - config: '' - data: '' - id: '' - name: '' - parent: '' - pose: - orientation: - w: 1.0 - x: 0.0 - y: 0.0 - z: 0.0 - position: - x: 0.0 - y: 0.0 - z: 0.0 - sample_id: '' - type: '' - use_channels: - - 0 - handles: {} - placeholder_keys: - reagent_sources: unilabos_resources - targets: unilabos_resources - result: {} - schema: - description: '' - properties: - feedback: - properties: {} - required: [] - title: LiquidHandlerAdd_Feedback - type: object - goal: - properties: - asp_vols: - items: - type: number - type: array - blow_out_air_volume: - items: - type: number - type: array - dis_vols: - items: - type: number - type: array - flow_rates: - items: - type: number - type: array - is_96_well: - type: boolean - liquid_height: - items: - type: number - type: array - mix_liquid_height: - type: number - mix_rate: - maximum: 2147483647 - minimum: -2147483648 - type: integer - mix_time: - maximum: 2147483647 - minimum: -2147483648 - type: integer - mix_vol: - maximum: 2147483647 - minimum: -2147483648 - type: integer - none_keys: - items: - type: string - type: array - offsets: - items: - properties: - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - title: offsets - type: object - type: array - reagent_sources: - items: - properties: - category: - type: string - children: - items: - type: string - type: array - config: - type: string - data: - type: string - id: - type: string - name: - type: string - parent: - type: string - pose: - properties: - orientation: - properties: - w: - type: number - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - - w - title: orientation - type: object - position: - properties: - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - title: position - type: object - required: - - position - - orientation - title: pose - type: object - sample_id: - type: string - type: - type: string - required: - - id - - name - - sample_id - - children - - parent - - type - - category - - pose - - config - - data - title: reagent_sources - type: object - type: array - spread: - type: string - targets: - items: - properties: - category: - type: string - children: - items: - type: string - type: array - config: - type: string - data: - type: string - id: - type: string - name: - type: string - parent: - type: string - pose: - properties: - orientation: - properties: - w: - type: number - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - - w - title: orientation - type: object - position: - properties: - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - title: position - type: object - required: - - position - - orientation - title: pose - type: object - sample_id: - type: string - type: - type: string - required: - - id - - name - - sample_id - - children - - parent - - type - - category - - pose - - config - - data - title: targets - type: object - type: array - use_channels: - items: - maximum: 2147483647 - minimum: -2147483648 - type: integer - type: array - required: - - asp_vols - - dis_vols - - reagent_sources - - targets - - use_channels - - flow_rates - - offsets - - liquid_height - - blow_out_air_volume - - spread - - is_96_well - - mix_time - - mix_vol - - mix_rate - - mix_liquid_height - - none_keys - title: LiquidHandlerAdd_Goal - type: object - result: - properties: - return_info: - type: string - success: - type: boolean - required: - - return_info - - success - title: LiquidHandlerAdd_Result - type: object - required: - - goal - title: LiquidHandlerAdd - type: object - type: LiquidHandlerAdd - aspirate: - feedback: {} - goal: - blow_out_air_volume: blow_out_air_volume - flow_rates: flow_rates - liquid_height: liquid_height - offsets: offsets - resources: resources - use_channels: use_channels - vols: vols - goal_default: - blow_out_air_volume: - - 0.0 - flow_rates: - - 0.0 - liquid_height: - - 0.0 - offsets: - - x: 0.0 - y: 0.0 - z: 0.0 - resources: - - category: '' - children: [] - config: '' - data: '' - id: '' - name: '' - parent: '' - pose: - orientation: - w: 1.0 - x: 0.0 - y: 0.0 - z: 0.0 - position: - x: 0.0 - y: 0.0 - z: 0.0 - sample_id: '' - type: '' - spread: '' - use_channels: - - 0 - vols: - - 0.0 - handles: {} - placeholder_keys: - resources: unilabos_resources - result: {} - schema: - description: '' - properties: - feedback: - properties: {} - required: [] - title: LiquidHandlerAspirate_Feedback - type: object - goal: - properties: - blow_out_air_volume: - items: - type: number - type: array - flow_rates: - items: - type: number - type: array - liquid_height: - items: - type: number - type: array - offsets: - items: - properties: - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - title: offsets - type: object - type: array - resources: - items: - properties: - category: - type: string - children: - items: - type: string - type: array - config: - type: string - data: - type: string - id: - type: string - name: - type: string - parent: - type: string - pose: - properties: - orientation: - properties: - w: - type: number - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - - w - title: orientation - type: object - position: - properties: - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - title: position - type: object - required: - - position - - orientation - title: pose - type: object - sample_id: - type: string - type: - type: string - required: - - id - - name - - sample_id - - children - - parent - - type - - category - - pose - - config - - data - title: resources - type: object - type: array - spread: - type: string - use_channels: - items: - maximum: 2147483647 - minimum: -2147483648 - type: integer - type: array - vols: - items: - type: number - type: array - required: - - resources - - vols - - use_channels - - flow_rates - - offsets - - liquid_height - - blow_out_air_volume - - spread - title: LiquidHandlerAspirate_Goal - type: object - result: - properties: - return_info: - type: string - success: - type: boolean - required: - - return_info - - success - title: LiquidHandlerAspirate_Result - type: object - required: - - goal - title: LiquidHandlerAspirate - type: object - type: LiquidHandlerAspirate - auto-create_protocol: - feedback: {} - goal: {} - goal_default: - none_keys: [] - protocol_author: '' - protocol_date: '' - protocol_description: '' - protocol_name: '' - protocol_type: '' - protocol_version: '' - handles: {} - placeholder_keys: {} - result: {} - schema: - description: create_protocol的参数schema - properties: - feedback: {} - goal: - properties: - none_keys: - default: [] - items: - type: string - type: array - protocol_author: - default: '' - type: string - protocol_date: - default: '' - type: string - protocol_description: - default: '' - type: string - protocol_name: - default: '' - type: string - protocol_type: - default: '' - type: string - protocol_version: - default: '' - type: string - required: [] - type: object - result: {} - required: - - goal - title: create_protocol参数 - type: object - type: UniLabJsonCommandAsync - auto-custom_delay: - feedback: {} - goal: {} - goal_default: - msg: null - seconds: 0 - handles: {} - placeholder_keys: {} - result: {} - schema: - description: custom_delay的参数schema - properties: - feedback: {} - goal: - properties: - msg: - type: string - seconds: - default: 0 - type: string - required: [] - type: object - result: {} - required: - - goal - title: custom_delay参数 - type: object - type: UniLabJsonCommandAsync - auto-heater_action: - feedback: {} - goal: {} - goal_default: - temperature: null - time: null - handles: {} - placeholder_keys: {} - result: {} - schema: - description: '' - properties: - feedback: {} - goal: - properties: - temperature: - type: number - time: - type: integer - required: - - temperature - - time - type: object - result: {} - required: - - goal - title: heater_action参数 - type: object - type: UniLabJsonCommandAsync - auto-iter_tips: - feedback: {} - goal: {} - goal_default: - tip_racks: null - handles: {} - placeholder_keys: {} - result: {} - schema: - description: iter_tips的参数schema - properties: - feedback: {} - goal: - properties: - tip_racks: - type: string - required: - - tip_racks - type: object - result: {} - required: - - goal - title: iter_tips参数 - type: object - type: UniLabJsonCommand - auto-move_to: - feedback: {} - goal: {} - goal_default: - channel: 0 - dis_to_top: 0 - well: null - handles: {} - placeholder_keys: {} - result: {} - schema: - description: move_to的参数schema - properties: - feedback: {} - goal: - properties: - channel: - default: 0 - type: integer - dis_to_top: - default: 0 - type: number - well: - type: object - required: - - well - type: object - result: {} - required: - - goal - title: move_to参数 - type: object - type: UniLabJsonCommandAsync - auto-post_init: - feedback: {} - goal: {} - goal_default: - ros_node: null - handles: {} - placeholder_keys: {} - result: {} - schema: - description: '' - properties: - feedback: {} - goal: - properties: - ros_node: - type: object - required: - - ros_node - type: object - result: {} - required: - - goal - title: post_init参数 - type: object - type: UniLabJsonCommand - auto-run_protocol: - feedback: {} - goal: {} - goal_default: {} - handles: {} - placeholder_keys: {} - result: {} - schema: - description: run_protocol的参数schema - properties: - feedback: {} - goal: - properties: {} - required: [] - type: object - result: {} - required: - - goal - title: run_protocol参数 - type: object - type: UniLabJsonCommandAsync - auto-set_group: - feedback: {} - goal: {} - goal_default: - group_name: null - volumes: null - wells: null - handles: {} - placeholder_keys: {} - result: {} - schema: - description: '' - properties: - feedback: {} - goal: - properties: - group_name: - type: string - volumes: - items: - type: number - type: array - wells: - items: - type: object - type: array - required: - - group_name - - wells - - volumes - type: object - result: {} - required: - - goal - title: set_group参数 - type: object - type: UniLabJsonCommand - auto-shaker_action: - feedback: {} - goal: {} - goal_default: - amplitude: null - is_wait: null - module_no: null - time: null - handles: {} - placeholder_keys: {} - result: {} - schema: - description: '' - properties: - feedback: {} - goal: - properties: - amplitude: - type: integer - is_wait: - type: boolean - module_no: - type: integer - time: - type: integer - required: - - time - - module_no - - amplitude - - is_wait - type: object - result: {} - required: - - goal - title: shaker_action参数 - type: object - type: UniLabJsonCommandAsync - auto-touch_tip: - feedback: {} - goal: {} - goal_default: - targets: null - handles: {} - placeholder_keys: {} - result: {} - schema: - description: touch_tip的参数schema - properties: - feedback: {} - goal: - properties: - targets: - type: string - required: - - targets - type: object - result: {} - required: - - goal - title: touch_tip参数 - type: object - type: UniLabJsonCommandAsync - auto-transfer_group: - feedback: {} - goal: {} - goal_default: - source_group_name: null - target_group_name: null - unit_volume: null - handles: {} - placeholder_keys: {} - result: {} - schema: - description: '' - properties: - feedback: {} - goal: - properties: - source_group_name: - type: string - target_group_name: - type: string - unit_volume: - type: number - required: - - source_group_name - - target_group_name - - unit_volume - type: object - result: {} - required: - - goal - title: transfer_group参数 - type: object - type: UniLabJsonCommandAsync - discard_tips: - feedback: {} - goal: - use_channels: use_channels - goal_default: - use_channels: - - 0 - handles: {} - result: {} - schema: - description: '' - properties: - feedback: - properties: {} - required: [] - title: LiquidHandlerDiscardTips_Feedback - type: object - goal: - properties: - use_channels: - items: - maximum: 2147483647 - minimum: -2147483648 - type: integer - type: array - required: - - use_channels - title: LiquidHandlerDiscardTips_Goal - type: object - result: - properties: - return_info: - type: string - success: - type: boolean - required: - - return_info - - success - title: LiquidHandlerDiscardTips_Result - type: object - required: - - goal - title: LiquidHandlerDiscardTips - type: object - type: LiquidHandlerDiscardTips - dispense: - feedback: {} - goal: - blow_out_air_volume: blow_out_air_volume - flow_rates: flow_rates - offsets: offsets - resources: resources - spread: spread - use_channels: use_channels - vols: vols - goal_default: - blow_out_air_volume: - - 0 - flow_rates: - - 0.0 - offsets: - - x: 0.0 - y: 0.0 - z: 0.0 - resources: - - category: '' - children: [] - config: '' - data: '' - id: '' - name: '' - parent: '' - pose: - orientation: - w: 1.0 - x: 0.0 - y: 0.0 - z: 0.0 - position: - x: 0.0 - y: 0.0 - z: 0.0 - sample_id: '' - type: '' - spread: '' - use_channels: - - 0 - vols: - - 0.0 - handles: {} - placeholder_keys: - resources: unilabos_resources - result: {} - schema: - description: '' - properties: - feedback: - properties: {} - required: [] - title: LiquidHandlerDispense_Feedback - type: object - goal: - properties: - blow_out_air_volume: - items: - maximum: 2147483647 - minimum: -2147483648 - type: integer - type: array - flow_rates: - items: - type: number - type: array - offsets: - items: - properties: - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - title: offsets - type: object - type: array - resources: - items: - properties: - category: - type: string - children: - items: - type: string - type: array - config: - type: string - data: - type: string - id: - type: string - name: - type: string - parent: - type: string - pose: - properties: - orientation: - properties: - w: - type: number - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - - w - title: orientation - type: object - position: - properties: - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - title: position - type: object - required: - - position - - orientation - title: pose - type: object - sample_id: - type: string - type: - type: string - required: - - id - - name - - sample_id - - children - - parent - - type - - category - - pose - - config - - data - title: resources - type: object - type: array - spread: - type: string - use_channels: - items: - maximum: 2147483647 - minimum: -2147483648 - type: integer - type: array - vols: - items: - type: number - type: array - required: - - resources - - vols - - use_channels - - flow_rates - - offsets - - blow_out_air_volume - - spread - title: LiquidHandlerDispense_Goal - type: object - result: - properties: - return_info: - type: string - success: - type: boolean - required: - - return_info - - success - title: LiquidHandlerDispense_Result - type: object - required: - - goal - title: LiquidHandlerDispense - type: object - type: LiquidHandlerDispense - drop_tips: - feedback: {} - goal: - allow_nonzero_volume: allow_nonzero_volume - offsets: offsets - tip_spots: tip_spots - use_channels: use_channels - goal_default: - allow_nonzero_volume: false - offsets: - - x: 0.0 - y: 0.0 - z: 0.0 - tip_spots: - - category: '' - children: [] - config: '' - data: '' - id: '' - name: '' - parent: '' - pose: - orientation: - w: 1.0 - x: 0.0 - y: 0.0 - z: 0.0 - position: - x: 0.0 - y: 0.0 - z: 0.0 - sample_id: '' - type: '' - use_channels: - - 0 - handles: {} - placeholder_keys: - tip_spots: unilabos_resources - result: {} - schema: - description: '' - properties: - feedback: - properties: {} - required: [] - title: LiquidHandlerDropTips_Feedback - type: object - goal: - properties: - allow_nonzero_volume: - type: boolean - offsets: - items: - properties: - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - title: offsets - type: object - type: array - tip_spots: - items: - properties: - category: - type: string - children: - items: - type: string - type: array - config: - type: string - data: - type: string - id: - type: string - name: - type: string - parent: - type: string - pose: - properties: - orientation: - properties: - w: - type: number - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - - w - title: orientation - type: object - position: - properties: - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - title: position - type: object - required: - - position - - orientation - title: pose - type: object - sample_id: - type: string - type: - type: string - required: - - id - - name - - sample_id - - children - - parent - - type - - category - - pose - - config - - data - title: tip_spots - type: object - type: array - use_channels: - items: - maximum: 2147483647 - minimum: -2147483648 - type: integer - type: array - required: - - tip_spots - - use_channels - - offsets - - allow_nonzero_volume - title: LiquidHandlerDropTips_Goal - type: object - result: - properties: - return_info: - type: string - success: - type: boolean - required: - - return_info - - success - title: LiquidHandlerDropTips_Result - type: object - required: - - goal - title: LiquidHandlerDropTips - type: object - type: LiquidHandlerDropTips - mix: - feedback: {} - goal: - height_to_bottom: height_to_bottom - mix_rate: mix_rate - mix_time: mix_time - mix_vol: mix_vol - none_keys: none_keys - offsets: offsets - targets: targets - goal_default: - height_to_bottom: 0.0 - mix_rate: 0.0 - mix_time: 0 - mix_vol: 0 - none_keys: - - '' - offsets: - - x: 0.0 - y: 0.0 - z: 0.0 - targets: - - category: '' - children: [] - config: '' - data: '' - id: '' - name: '' - parent: '' - pose: - orientation: - w: 1.0 - x: 0.0 - y: 0.0 - z: 0.0 - position: - x: 0.0 - y: 0.0 - z: 0.0 - sample_id: '' - type: '' - handles: {} - placeholder_keys: - targets: unilabos_resources - result: {} - schema: - description: '' - properties: - feedback: - properties: {} - required: [] - title: LiquidHandlerMix_Feedback - type: object - goal: - properties: - height_to_bottom: - type: number - mix_rate: - type: number - mix_time: - maximum: 2147483647 - minimum: -2147483648 - type: integer - mix_vol: - maximum: 2147483647 - minimum: -2147483648 - type: integer - none_keys: - items: - type: string - type: array - offsets: - items: - properties: - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - title: offsets - type: object - type: array - targets: - items: - properties: - category: - type: string - children: - items: - type: string - type: array - config: - type: string - data: - type: string - id: - type: string - name: - type: string - parent: - type: string - pose: - properties: - orientation: - properties: - w: - type: number - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - - w - title: orientation - type: object - position: - properties: - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - title: position - type: object - required: - - position - - orientation - title: pose - type: object - sample_id: - type: string - type: - type: string - required: - - id - - name - - sample_id - - children - - parent - - type - - category - - pose - - config - - data - title: targets - type: object - type: array - required: - - targets - - mix_time - - mix_vol - - height_to_bottom - - offsets - - mix_rate - - none_keys - title: LiquidHandlerMix_Goal - type: object - result: - properties: - return_info: - type: string - success: - type: boolean - required: - - return_info - - success - title: LiquidHandlerMix_Result - type: object - required: - - goal - title: LiquidHandlerMix - type: object - type: LiquidHandlerMix - move_plate: - feedback: {} - goal: - destination_offset: destination_offset - drop_direction: drop_direction - get_direction: get_direction - intermediate_locations: intermediate_locations - pickup_direction: pickup_direction - pickup_offset: pickup_offset - plate: plate - put_direction: put_direction - resource_offset: resource_offset - to: to - goal_default: - destination_offset: - x: 0.0 - y: 0.0 - z: 0.0 - drop_direction: '' - get_direction: '' - intermediate_locations: - - x: 0.0 - y: 0.0 - z: 0.0 - pickup_direction: '' - pickup_distance_from_top: 0.0 - pickup_offset: - x: 0.0 - y: 0.0 - z: 0.0 - plate: - category: '' - children: [] - config: '' - data: '' - id: '' - name: '' - parent: '' - pose: - orientation: - w: 1.0 - x: 0.0 - y: 0.0 - z: 0.0 - position: - x: 0.0 - y: 0.0 - z: 0.0 - sample_id: '' - type: '' - put_direction: '' - resource_offset: - x: 0.0 - y: 0.0 - z: 0.0 - to: - category: '' - children: [] - config: '' - data: '' - id: '' - name: '' - parent: '' - pose: - orientation: - w: 1.0 - x: 0.0 - y: 0.0 - z: 0.0 - position: - x: 0.0 - y: 0.0 - z: 0.0 - sample_id: '' - type: '' - handles: {} - placeholder_keys: - plate: unilabos_resources - to: unilabos_resources - result: - name: name - schema: - description: '' - properties: - feedback: - properties: {} - required: [] - title: LiquidHandlerMovePlate_Feedback - type: object - goal: - properties: - destination_offset: - properties: - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - title: destination_offset - type: object - drop_direction: - type: string - get_direction: - type: string - intermediate_locations: - items: - properties: - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - title: intermediate_locations - type: object - type: array - pickup_direction: - type: string - pickup_distance_from_top: - type: number - pickup_offset: - properties: - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - title: pickup_offset - type: object - plate: - properties: - category: - type: string - children: - items: - type: string - type: array - config: - type: string - data: - type: string - id: - type: string - name: - type: string - parent: - type: string - pose: - properties: - orientation: - properties: - w: - type: number - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - - w - title: orientation - type: object - position: - properties: - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - title: position - type: object - required: - - position - - orientation - title: pose - type: object - sample_id: - type: string - type: - type: string - required: - - id - - name - - sample_id - - children - - parent - - type - - category - - pose - - config - - data - title: plate - type: object - put_direction: - type: string - resource_offset: - properties: - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - title: resource_offset - type: object - to: - properties: - category: - type: string - children: - items: - type: string - type: array - config: - type: string - data: - type: string - id: - type: string - name: - type: string - parent: - type: string - pose: - properties: - orientation: - properties: - w: - type: number - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - - w - title: orientation - type: object - position: - properties: - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - title: position - type: object - required: - - position - - orientation - title: pose - type: object - sample_id: - type: string - type: - type: string - required: - - id - - name - - sample_id - - children - - parent - - type - - category - - pose - - config - - data - title: to - type: object - required: - - plate - - to - - intermediate_locations - - resource_offset - - pickup_offset - - destination_offset - - pickup_direction - - drop_direction - - get_direction - - put_direction - - pickup_distance_from_top - title: LiquidHandlerMovePlate_Goal - type: object - result: - properties: - return_info: - type: string - success: - type: boolean - required: - - return_info - - success - title: LiquidHandlerMovePlate_Result - type: object - required: - - goal - title: LiquidHandlerMovePlate - type: object - type: LiquidHandlerMovePlate - pick_up_tips: - feedback: {} - goal: - offsets: offsets - tip_spots: tip_spots - use_channels: use_channels - goal_default: - offsets: - - x: 0.0 - y: 0.0 - z: 0.0 - tip_spots: - - category: '' - children: [] - config: '' - data: '' - id: '' - name: '' - parent: '' - pose: - orientation: - w: 1.0 - x: 0.0 - y: 0.0 - z: 0.0 - position: - x: 0.0 - y: 0.0 - z: 0.0 - sample_id: '' - type: '' - use_channels: - - 0 - handles: {} - placeholder_keys: - tip_spots: unilabos_resources - result: {} - schema: - description: '' - properties: - feedback: - properties: {} - required: [] - title: LiquidHandlerPickUpTips_Feedback - type: object - goal: - properties: - offsets: - items: - properties: - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - title: offsets - type: object - type: array - tip_spots: - items: - properties: - category: - type: string - children: - items: - type: string - type: array - config: - type: string - data: - type: string - id: - type: string - name: - type: string - parent: - type: string - pose: - properties: - orientation: - properties: - w: - type: number - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - - w - title: orientation - type: object - position: - properties: - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - title: position - type: object - required: - - position - - orientation - title: pose - type: object - sample_id: - type: string - type: - type: string - required: - - id - - name - - sample_id - - children - - parent - - type - - category - - pose - - config - - data - title: tip_spots - type: object - type: array - use_channels: - items: - maximum: 2147483647 - minimum: -2147483648 - type: integer - type: array - required: - - tip_spots - - use_channels - - offsets - title: LiquidHandlerPickUpTips_Goal - type: object - result: - properties: - return_info: - type: string - success: - type: boolean - required: - - return_info - - success - title: LiquidHandlerPickUpTips_Result - type: object - required: - - goal - title: LiquidHandlerPickUpTips - type: object - type: LiquidHandlerPickUpTips - remove_liquid: - feedback: {} - goal: - blow_out_air_volume: blow_out_air_volume - delays: delays - flow_rates: flow_rates - is_96_well: is_96_well - liquid_height: liquid_height - none_keys: none_keys - offsets: offsets - sources: sources - spread: spread - top: top - use_channels: use_channels - vols: vols - waste_liquid: waste_liquid - goal_default: - blow_out_air_volume: - - 0.0 - delays: - - 0 - flow_rates: - - 0.0 - is_96_well: false - liquid_height: - - 0.0 - none_keys: - - '' - offsets: - - x: 0.0 - y: 0.0 - z: 0.0 - sources: - - category: '' - children: [] - config: '' - data: '' - id: '' - name: '' - parent: '' - pose: - orientation: - w: 1.0 - x: 0.0 - y: 0.0 - z: 0.0 - position: - x: 0.0 - y: 0.0 - z: 0.0 - sample_id: '' - type: '' - spread: '' - top: - - 0.0 - use_channels: - - 0 - vols: - - 0.0 - waste_liquid: - category: '' - children: [] - config: '' - data: '' - id: '' - name: '' - parent: '' - pose: - orientation: - w: 1.0 - x: 0.0 - y: 0.0 - z: 0.0 - position: - x: 0.0 - y: 0.0 - z: 0.0 - sample_id: '' - type: '' - handles: {} - placeholder_keys: - sources: unilabos_resources - waste_liquid: unilabos_resources - result: {} - schema: - description: '' - properties: - feedback: - properties: {} - required: [] - title: LiquidHandlerRemove_Feedback - type: object - goal: - properties: - blow_out_air_volume: - items: - type: number - type: array - delays: - items: - maximum: 2147483647 - minimum: -2147483648 - type: integer - type: array - flow_rates: - items: - type: number - type: array - is_96_well: - type: boolean - liquid_height: - items: - type: number - type: array - none_keys: - items: - type: string - type: array - offsets: - items: - properties: - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - title: offsets - type: object - type: array - sources: - items: - properties: - category: - type: string - children: - items: - type: string - type: array - config: - type: string - data: - type: string - id: - type: string - name: - type: string - parent: - type: string - pose: - properties: - orientation: - properties: - w: - type: number - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - - w - title: orientation - type: object - position: - properties: - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - title: position - type: object - required: - - position - - orientation - title: pose - type: object - sample_id: - type: string - type: - type: string - required: - - id - - name - - sample_id - - children - - parent - - type - - category - - pose - - config - - data - title: sources - type: object - type: array - spread: - type: string - top: - items: - type: number - type: array - use_channels: - items: - maximum: 2147483647 - minimum: -2147483648 - type: integer - type: array - vols: - items: - type: number - type: array - waste_liquid: - properties: - category: - type: string - children: - items: - type: string - type: array - config: - type: string - data: - type: string - id: - type: string - name: - type: string - parent: - type: string - pose: - properties: - orientation: - properties: - w: - type: number - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - - w - title: orientation - type: object - position: - properties: - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - title: position - type: object - required: - - position - - orientation - title: pose - type: object - sample_id: - type: string - type: - type: string - required: - - id - - name - - sample_id - - children - - parent - - type - - category - - pose - - config - - data - title: waste_liquid - type: object - required: - - vols - - sources - - waste_liquid - - use_channels - - flow_rates - - offsets - - liquid_height - - blow_out_air_volume - - spread - - delays - - is_96_well - - top - - none_keys - title: LiquidHandlerRemove_Goal - type: object - result: - properties: - return_info: - type: string - success: - type: boolean - required: - - return_info - - success - title: LiquidHandlerRemove_Result - type: object - required: - - goal - title: LiquidHandlerRemove - type: object - type: LiquidHandlerRemove - set_liquid: - feedback: {} - goal: - liquid_names: liquid_names - volumes: volumes - wells: wells - goal_default: - liquid_names: - - '' - volumes: - - 0.0 - wells: - - category: '' - children: [] - config: '' - data: '' - id: '' - name: '' - parent: '' - pose: - orientation: - w: 1.0 - x: 0.0 - y: 0.0 - z: 0.0 - position: - x: 0.0 - y: 0.0 - z: 0.0 - sample_id: '' - type: '' - handles: {} - placeholder_keys: - wells: unilabos_resources - result: {} - schema: - description: '' - properties: - feedback: - properties: {} - required: [] - title: LiquidHandlerSetLiquid_Feedback - type: object - goal: - properties: - liquid_names: - items: - type: string - type: array - volumes: - items: - type: number - type: array - wells: - items: - properties: - category: - type: string - children: - items: - type: string - type: array - config: - type: string - data: - type: string - id: - type: string - name: - type: string - parent: - type: string - pose: - properties: - orientation: - properties: - w: - type: number - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - - w - title: orientation - type: object - position: - properties: - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - title: position - type: object - required: - - position - - orientation - title: pose - type: object - sample_id: - type: string - type: - type: string - required: - - id - - name - - sample_id - - children - - parent - - type - - category - - pose - - config - - data - title: wells - type: object - type: array - required: - - wells - - liquid_names - - volumes - title: LiquidHandlerSetLiquid_Goal - type: object - result: - properties: - return_info: - type: string - required: - - return_info - title: LiquidHandlerSetLiquid_Result - type: object - required: - - goal - title: LiquidHandlerSetLiquid - type: object - type: LiquidHandlerSetLiquid - set_tiprack: - feedback: {} - goal: - tip_racks: tip_racks - goal_default: - tip_racks: - - category: '' - children: [] - config: '' - data: '' - id: '' - name: '' - parent: '' - pose: - orientation: - w: 1.0 - x: 0.0 - y: 0.0 - z: 0.0 - position: - x: 0.0 - y: 0.0 - z: 0.0 - sample_id: '' - type: '' - handles: {} - placeholder_keys: - tip_racks: unilabos_resources - result: {} - schema: - description: '' - properties: - feedback: - properties: {} - required: [] - title: LiquidHandlerSetTipRack_Feedback - type: object - goal: - properties: - tip_racks: - items: - properties: - category: - type: string - children: - items: - type: string - type: array - config: - type: string - data: - type: string - id: - type: string - name: - type: string - parent: - type: string - pose: - properties: - orientation: - properties: - w: - type: number - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - - w - title: orientation - type: object - position: - properties: - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - title: position - type: object - required: - - position - - orientation - title: pose - type: object - sample_id: - type: string - type: - type: string - required: - - id - - name - - sample_id - - children - - parent - - type - - category - - pose - - config - - data - title: tip_racks - type: object - type: array - required: - - tip_racks - title: LiquidHandlerSetTipRack_Goal - type: object - result: - properties: - return_info: - type: string - success: - type: boolean - required: - - return_info - - success - title: LiquidHandlerSetTipRack_Result - type: object - required: - - goal - title: LiquidHandlerSetTipRack - type: object - type: LiquidHandlerSetTipRack - transfer: - goal: - aspiration_flow_rate: aspiration_flow_rate - dispense_flow_rates: dispense_flow_rates - ratios: ratios - source: source - source_vol: source_vol - target_vols: target_vols - targets: targets - goal_default: - amount: '' - from_vessel: '' - rinsing_repeats: 0 - rinsing_solvent: '' - rinsing_volume: 0.0 - solid: false - time: 0.0 - to_vessel: '' - viscous: false - volume: 0.0 - handles: {} - schema: - description: '' - properties: - feedback: - properties: - current_status: - type: string - progress: - type: number - transferred_volume: - type: number - required: - - progress - - transferred_volume - - current_status - title: Transfer_Feedback - type: object - goal: - properties: - amount: - type: string - from_vessel: - type: string - rinsing_repeats: - maximum: 2147483647 - minimum: -2147483648 - type: integer - rinsing_solvent: - type: string - rinsing_volume: - type: number - solid: - type: boolean - time: - type: number - to_vessel: - type: string - viscous: - type: boolean - volume: - type: number - required: - - from_vessel - - to_vessel - - volume - - amount - - time - - viscous - - rinsing_solvent - - rinsing_volume - - rinsing_repeats - - solid - title: Transfer_Goal - type: object - result: - properties: - message: - type: string - return_info: - type: string - success: - type: boolean - required: - - success - - message - - return_info - title: Transfer_Result - type: object - required: - - goal - title: Transfer - type: object - type: Transfer - transfer_liquid: - feedback: {} - goal: - asp_flow_rates: asp_flow_rates - asp_vols: asp_vols - blow_out_air_volume: blow_out_air_volume - delays: delays - dis_flow_rates: dis_flow_rates - dis_vols: dis_vols - is_96_well: is_96_well - liquid_height: liquid_height - mix_liquid_height: mix_liquid_height - mix_rate: mix_rate - mix_stage: mix_stage - mix_times: mix_times - mix_vol: mix_vol - none_keys: none_keys - offsets: offsets - sources: sources - spread: spread - targets: targets - tip_racks: tip_racks - touch_tip: touch_tip - use_channels: use_channels - goal_default: - asp_flow_rates: - - 0.0 - asp_vols: - - 0.0 - blow_out_air_volume: - - 0.0 - delays: - - 0 - dis_flow_rates: - - 0.0 - dis_vols: - - 0.0 - is_96_well: false - liquid_height: - - 0.0 - mix_liquid_height: 0.0 - mix_rate: 0 - mix_stage: '' - mix_times: 0 - mix_vol: 0 - none_keys: - - '' - offsets: - - x: 0.0 - y: 0.0 - z: 0.0 - sources: - - category: '' - children: [] - config: '' - data: '' - id: '' - name: '' - parent: '' - pose: - orientation: - w: 1.0 - x: 0.0 - y: 0.0 - z: 0.0 - position: - x: 0.0 - y: 0.0 - z: 0.0 - sample_id: '' - type: '' - spread: '' - targets: - - category: '' - children: [] - config: '' - data: '' - id: '' - name: '' - parent: '' - pose: - orientation: - w: 1.0 - x: 0.0 - y: 0.0 - z: 0.0 - position: - x: 0.0 - y: 0.0 - z: 0.0 - sample_id: '' - type: '' - tip_racks: - - category: '' - children: [] - config: '' - data: '' - id: '' - name: '' - parent: '' - pose: - orientation: - w: 1.0 - x: 0.0 - y: 0.0 - z: 0.0 - position: - x: 0.0 - y: 0.0 - z: 0.0 - sample_id: '' - type: '' - touch_tip: false - use_channels: - - 0 - handles: - input: - - data_key: liquid - data_source: handle - data_type: resource - handler_key: sources - label: sources - - data_key: liquid - data_source: executor - data_type: resource - handler_key: targets - label: targets - - data_key: liquid - data_source: executor - data_type: resource - handler_key: tip_rack - label: tip_rack - output: - - data_key: liquid - data_source: handle - data_type: resource - handler_key: sources_out - label: sources - - data_key: liquid - data_source: executor - data_type: resource - handler_key: targets_out - label: targets - placeholder_keys: - sources: unilabos_resources - targets: unilabos_resources - tip_racks: unilabos_resources - result: {} - schema: - description: '' - properties: - feedback: - properties: {} - required: [] - title: LiquidHandlerTransfer_Feedback - type: object - goal: - properties: - asp_flow_rates: - items: - type: number - type: array - asp_vols: - items: - type: number - type: array - blow_out_air_volume: - items: - type: number - type: array - delays: - items: - maximum: 2147483647 - minimum: -2147483648 - type: integer - type: array - dis_flow_rates: - items: - type: number - type: array - dis_vols: - items: - type: number - type: array - is_96_well: - type: boolean - liquid_height: - items: - type: number - type: array - mix_liquid_height: - type: number - mix_rate: - maximum: 2147483647 - minimum: -2147483648 - type: integer - mix_stage: - type: string - mix_times: - maximum: 2147483647 - minimum: -2147483648 - type: integer - mix_vol: - maximum: 2147483647 - minimum: -2147483648 - type: integer - none_keys: - items: - type: string - type: array - offsets: - items: - properties: - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - title: offsets - type: object - type: array - sources: - items: - properties: - category: - type: string - children: - items: - type: string - type: array - config: - type: string - data: - type: string - id: - type: string - name: - type: string - parent: - type: string - pose: - properties: - orientation: - properties: - w: - type: number - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - - w - title: orientation - type: object - position: - properties: - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - title: position - type: object - required: - - position - - orientation - title: pose - type: object - sample_id: - type: string - type: - type: string - required: - - id - - name - - sample_id - - children - - parent - - type - - category - - pose - - config - - data - title: sources - type: object - type: array - spread: - type: string - targets: - items: - properties: - category: - type: string - children: - items: - type: string - type: array - config: - type: string - data: - type: string - id: - type: string - name: - type: string - parent: - type: string - pose: - properties: - orientation: - properties: - w: - type: number - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - - w - title: orientation - type: object - position: - properties: - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - title: position - type: object - required: - - position - - orientation - title: pose - type: object - sample_id: - type: string - type: - type: string - required: - - id - - name - - sample_id - - children - - parent - - type - - category - - pose - - config - - data - title: targets - type: object - type: array - tip_racks: - items: - properties: - category: - type: string - children: - items: - type: string - type: array - config: - type: string - data: - type: string - id: - type: string - name: - type: string - parent: - type: string - pose: - properties: - orientation: - properties: - w: - type: number - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - - w - title: orientation - type: object - position: - properties: - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - title: position - type: object - required: - - position - - orientation - title: pose - type: object - sample_id: - type: string - type: - type: string - required: - - id - - name - - sample_id - - children - - parent - - type - - category - - pose - - config - - data - title: tip_racks - type: object - type: array - touch_tip: - type: boolean - use_channels: - items: - maximum: 2147483647 - minimum: -2147483648 - type: integer - type: array - required: - - asp_vols - - dis_vols - - sources - - targets - - tip_racks - - use_channels - - asp_flow_rates - - dis_flow_rates - - offsets - - touch_tip - - liquid_height - - blow_out_air_volume - - spread - - is_96_well - - mix_stage - - mix_times - - mix_vol - - mix_rate - - mix_liquid_height - - delays - - none_keys - title: LiquidHandlerTransfer_Goal - type: object - result: - properties: - return_info: - type: string - success: - type: boolean - required: - - return_info - - success - title: LiquidHandlerTransfer_Result - type: object - required: - - goal - title: LiquidHandlerTransfer - type: object - type: LiquidHandlerTransfer - module: unilabos.devices.liquid_handling.prcxi.prcxi:PRCXI9300Handler - status_types: - reset_ok: bool - type: python - config_info: [] - description: prcxi液体处理器设备,基于pylabrobot控制 - handles: [] - icon: icon_yiyezhan.webp - init_param_schema: - config: - properties: - axis: - default: Left - type: string - channel_num: - default: 8 - type: string - debug: - default: false - type: string - deck: - type: object - host: - type: string - is_9320: - default: false - type: string - matrix_id: - default: '' - type: string - port: - type: integer - setup: - default: true - type: string - simulator: - default: false - type: string - step_mode: - default: false - type: string - timeout: - type: number - required: - - deck - - host - - port - - timeout - type: object - data: - properties: - reset_ok: - type: boolean - required: - - reset_ok - type: object - version: 1.0.0 -liquid_handler.revvity: - category: - - liquid_handler - class: - action_value_mappings: - run: - feedback: - status: status - goal: - params: params - resource: resource - wf_name: file_path - goal_default: - params: '' - resource: - category: '' - children: [] - config: '' - data: '' - id: '' - name: '' - parent: '' - pose: - orientation: - w: 1.0 - x: 0.0 - y: 0.0 - z: 0.0 - position: - x: 0.0 - y: 0.0 - z: 0.0 - sample_id: '' - type: '' - wf_name: '' - handles: {} - result: - success: success - schema: - description: '' - properties: - feedback: - properties: - gantt: - type: string - status: - type: string - required: - - status - - gantt - title: WorkStationRun_Feedback - type: object - goal: - properties: - params: - type: string - resource: - properties: - category: - type: string - children: - items: - type: string - type: array - config: - type: string - data: - type: string - id: - type: string - name: - type: string - parent: - type: string - pose: - properties: - orientation: - properties: - w: - type: number - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - - w - title: orientation - type: object - position: - properties: - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - title: position - type: object - required: - - position - - orientation - title: pose - type: object - sample_id: - type: string - type: - type: string - required: - - id - - name - - sample_id - - children - - parent - - type - - category - - pose - - config - - data - title: resource - type: object - wf_name: - type: string - required: - - wf_name - - params - - resource - title: WorkStationRun_Goal - type: object - result: - properties: - return_info: - type: string - success: - type: boolean - required: - - return_info - - success - title: WorkStationRun_Result - type: object - required: - - goal - title: WorkStationRun - type: object - type: WorkStationRun - module: unilabos.devices.liquid_handling.revvity:Revvity - status_types: - status: str - success: bool - type: python - config_info: [] - description: '' - handles: [] - icon: '' - init_param_schema: - config: - properties: {} - required: [] - type: object - data: - properties: - status: - type: string - success: - type: boolean - required: - - success - - status - type: object - version: 1.0.0 diff --git a/unilabos/registry/devices/neware_battery_test_system.yaml b/unilabos/registry/devices/neware_battery_test_system.yaml deleted file mode 100644 index ea6bedc4..00000000 --- a/unilabos/registry/devices/neware_battery_test_system.yaml +++ /dev/null @@ -1,539 +0,0 @@ -neware_battery_test_system: - category: - - neware_battery_test_system - - neware - - battery_test - class: - action_value_mappings: - auto-post_init: - feedback: {} - goal: {} - goal_default: - ros_node: null - handles: {} - placeholder_keys: {} - result: {} - schema: - description: '' - properties: - feedback: {} - goal: - properties: - ros_node: - type: string - required: - - ros_node - type: object - result: {} - required: - - goal - title: post_init参数 - type: object - type: UniLabJsonCommand - auto-print_status_summary: - feedback: {} - goal: {} - goal_default: {} - handles: {} - placeholder_keys: {} - result: {} - schema: - description: '' - properties: - feedback: {} - goal: - properties: {} - required: [] - type: object - result: {} - required: - - goal - title: print_status_summary参数 - type: object - type: UniLabJsonCommand - auto-test_connection: - feedback: {} - goal: {} - goal_default: {} - handles: {} - placeholder_keys: {} - result: {} - schema: - description: '' - properties: - feedback: {} - goal: - properties: {} - required: [] - type: object - result: {} - required: - - goal - title: test_connection参数 - type: object - type: UniLabJsonCommand - debug_resource_names: - feedback: {} - goal: {} - goal_default: {} - handles: {} - result: - return_info: return_info - success: success - schema: - description: 调试方法:显示所有资源的实际名称 - properties: - feedback: {} - goal: - properties: {} - required: [] - type: object - result: - properties: - return_info: - description: 资源调试信息 - type: string - success: - description: 是否成功 - type: boolean - required: - - return_info - - success - type: object - required: - - goal - type: object - type: UniLabJsonCommand - export_status_json: - feedback: {} - goal: - filepath: filepath - goal_default: - filepath: bts_status.json - handles: {} - result: - return_info: return_info - success: success - schema: - description: 导出当前状态数据到JSON文件 - properties: - feedback: {} - goal: - properties: - filepath: - default: bts_status.json - description: 输出JSON文件路径 - type: string - required: [] - type: object - result: - properties: - return_info: - description: 导出操作结果信息 - type: string - success: - description: 导出是否成功 - type: boolean - required: - - return_info - - success - type: object - required: - - goal - type: object - type: UniLabJsonCommand - get_device_summary: - feedback: {} - goal: {} - goal_default: {} - handles: {} - result: - return_info: return_info - success: success - schema: - description: 获取设备级别的摘要统计信息 - properties: - feedback: {} - goal: - properties: {} - required: [] - type: object - result: - properties: - return_info: - description: 设备摘要信息JSON格式 - type: string - success: - description: 查询是否成功 - type: boolean - required: - - return_info - - success - type: object - required: - - goal - type: object - type: UniLabJsonCommand - get_plate_status: - feedback: {} - goal: - plate_num: plate_num - goal_default: - plate_num: null - handles: {} - result: - plate_data: plate_data - return_info: return_info - success: success - schema: - description: 获取指定盘或所有盘的状态信息 - properties: - feedback: {} - goal: - properties: - plate_num: - description: 盘号 (1 或 2),如果为null则返回所有盘的状态 - maximum: 2 - minimum: 1 - type: integer - required: [] - type: object - result: - properties: - plate_data: - description: 盘状态数据(单盘或所有盘) - type: object - return_info: - description: 操作结果信息 - type: string - success: - description: 查询是否成功 - type: boolean - required: - - return_info - - success - - plate_data - type: object - required: - - goal - type: object - type: UniLabJsonCommand - print_status_summary_action: - feedback: {} - goal: {} - goal_default: {} - handles: {} - result: - return_info: return_info - success: success - schema: - description: 打印通道状态摘要信息到控制台 - properties: - feedback: {} - goal: - properties: {} - required: [] - type: object - result: - properties: - return_info: - description: 打印操作结果信息 - type: string - success: - description: 打印是否成功 - type: boolean - required: - - return_info - - success - type: object - required: - - goal - type: object - type: UniLabJsonCommand - query_plate_action: - feedback: {} - goal: - string: plate_id - goal_default: - string: '' - handles: {} - result: - return_info: return_info - success: success - schema: - description: '' - properties: - feedback: - properties: {} - required: [] - title: StrSingleInput_Feedback - type: object - goal: - properties: - string: - type: string - required: - - string - title: StrSingleInput_Goal - type: object - result: - properties: - return_info: - type: string - success: - type: boolean - required: - - return_info - - success - title: StrSingleInput_Result - type: object - required: - - goal - title: StrSingleInput - type: object - type: StrSingleInput - submit_from_csv: - feedback: {} - goal: - csv_path: string - output_dir: string - goal_default: - csv_path: '' - output_dir: . - handles: {} - result: - return_info: return_info - submitted_count: submitted_count - success: success - schema: - description: 从CSV文件批量提交Neware测试任务 - properties: - feedback: {} - goal: - properties: - csv_path: - description: 输入CSV文件的绝对路径 - type: string - output_dir: - description: 输出目录(用于存储XML和备份文件),默认当前目录 - type: string - required: - - csv_path - type: object - result: - properties: - return_info: - description: 执行结果详细信息 - type: string - submitted_count: - description: 成功提交的任务数量 - type: integer - success: - description: 是否成功 - type: boolean - total_count: - description: CSV文件中的总行数 - type: integer - required: - - return_info - - success - type: object - required: - - goal - type: object - type: UniLabJsonCommand - test_connection_action: - feedback: {} - goal: {} - goal_default: {} - handles: {} - result: - return_info: return_info - success: success - schema: - description: 测试与电池测试系统的TCP连接 - properties: - feedback: {} - goal: - properties: {} - required: [] - type: object - result: - properties: - return_info: - description: 连接测试结果信息 - type: string - success: - description: 连接测试是否成功 - type: boolean - required: - - return_info - - success - type: object - required: - - goal - type: object - type: UniLabJsonCommand - upload_backup_to_oss: - feedback: {} - goal: - backup_dir: backup_dir - file_pattern: file_pattern - oss_prefix: oss_prefix - goal_default: - backup_dir: null - file_pattern: '*' - oss_prefix: null - handles: - output: - - data_key: uploaded_files - data_source: executor - data_type: array - handler_key: uploaded_files - io_type: sink - label: Uploaded Files (with standard flow info) - result: - failed_files: failed_files - return_info: return_info - success: success - total_count: total_count - uploaded_count: uploaded_count - schema: - description: 上传备份文件到阿里云OSS - properties: - feedback: {} - goal: - properties: - backup_dir: - description: 备份目录路径(默认使用最近一次submit_from_csv的backup_dir) - type: string - file_pattern: - default: '*' - description: 文件通配符模式,例如 *.csv 或 Battery_*.nda - type: string - oss_prefix: - description: OSS对象路径前缀(默认使用self.oss_prefix) - type: string - required: [] - type: object - result: - properties: - failed_files: - description: 上传失败的文件名列表 - items: - type: string - type: array - return_info: - description: 上传操作结果信息 - type: string - success: - description: 上传是否成功 - type: boolean - total_count: - description: 总文件数 - type: integer - uploaded_count: - description: 成功上传的文件数 - type: integer - uploaded_files: - description: 成功上传的文件详情列表 - items: - properties: - Battery_Code: - description: 电池编码 - type: string - Electrolyte_Code: - description: 电解液编码 - type: string - filename: - description: 文件名 - type: string - url: - description: OSS下载链接 - type: string - required: - - filename - - url - - Battery_Code - - Electrolyte_Code - type: object - type: array - required: - - return_info - - success - - uploaded_count - - total_count - - failed_files - - uploaded_files - type: object - required: - - goal - type: object - type: UniLabJsonCommand - module: unilabos.devices.neware_battery_test_system.neware_battery_test_system:NewareBatteryTestSystem - status_types: - channel_status: dict - connection_info: dict - device_summary: dict - plate_status: dict - status: str - total_channels: int - type: python - config_info: [] - description: 新威电池测试系统驱动,提供720个通道的电池测试状态监控、物料管理和CSV批量提交功能。支持TCP通信实现远程控制,包含完整的物料管理系统(2盘电池状态映射),以及从CSV文件批量提交测试任务的能力。 - handles: [] - icon: '' - init_param_schema: - config: - properties: - devtype: - type: string - ip: - type: string - machine_id: - default: 1 - type: integer - oss_prefix: - default: neware_backup - type: string - oss_upload_enabled: - default: false - type: boolean - port: - type: integer - size_x: - default: 50 - type: number - size_y: - default: 50 - type: number - size_z: - default: 20 - type: number - timeout: - type: integer - required: [] - type: object - data: - properties: - channel_status: - type: object - connection_info: - type: object - device_summary: - type: object - plate_status: - type: object - status: - type: string - total_channels: - type: integer - required: - - status - - channel_status - - connection_info - - total_channels - - plate_status - - device_summary - type: object - version: 1.0.0 diff --git a/unilabos/registry/devices/opcua_example.yaml b/unilabos/registry/devices/opcua_example.yaml deleted file mode 100644 index 0f500cfa..00000000 --- a/unilabos/registry/devices/opcua_example.yaml +++ /dev/null @@ -1,196 +0,0 @@ -opcua_example: - category: - - opcua_example - class: - action_value_mappings: - auto-disconnect: - feedback: {} - goal: {} - goal_default: {} - handles: {} - placeholder_keys: {} - result: {} - schema: - description: '' - properties: - feedback: {} - goal: - properties: {} - required: [] - type: object - result: {} - required: - - goal - title: disconnect参数 - type: object - type: UniLabJsonCommand - auto-load_config: - feedback: {} - goal: {} - goal_default: - config_path: null - handles: {} - placeholder_keys: {} - result: {} - schema: - description: '' - properties: - feedback: {} - goal: - properties: - config_path: - type: string - required: - - config_path - type: object - result: {} - required: - - goal - title: load_config参数 - type: object - type: UniLabJsonCommand - auto-post_init: - feedback: {} - goal: {} - goal_default: - ros_node: null - handles: {} - placeholder_keys: {} - result: {} - schema: - description: '' - properties: - feedback: {} - goal: - properties: - ros_node: - type: string - required: - - ros_node - type: object - result: {} - required: - - goal - title: post_init参数 - type: object - type: UniLabJsonCommand - auto-print_cache_stats: - feedback: {} - goal: {} - goal_default: {} - handles: {} - placeholder_keys: {} - result: {} - schema: - description: '' - properties: - feedback: {} - goal: - properties: {} - required: [] - type: object - result: {} - required: - - goal - title: print_cache_stats参数 - type: object - type: UniLabJsonCommand - auto-read_node: - feedback: {} - goal: {} - goal_default: - node_name: null - handles: {} - placeholder_keys: {} - result: {} - schema: - description: '' - properties: - feedback: {} - goal: - properties: - node_name: - type: string - required: - - node_name - type: object - result: {} - required: - - goal - title: read_node参数 - type: object - type: UniLabJsonCommand - auto-set_node_value: - feedback: {} - goal: {} - goal_default: - name: null - value: null - handles: {} - placeholder_keys: {} - result: {} - schema: - description: '' - properties: - feedback: {} - goal: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - result: {} - required: - - goal - title: set_node_value参数 - type: object - type: UniLabJsonCommand - module: unilabos.device_comms.opcua_client.client:OpcUaClient - status_types: - cache_stats: dict - node_value: String - type: python - config_info: [] - description: null - handles: [] - icon: '' - init_param_schema: - config: - properties: - cache_timeout: - default: 5.0 - type: number - config_path: - type: string - deck: - type: string - password: - type: string - subscription_interval: - default: 500 - type: integer - url: - type: string - use_subscription: - default: true - type: boolean - username: - type: string - required: - - url - type: object - data: - properties: - cache_stats: - type: object - node_value: - type: string - required: - - node_value - - cache_stats - type: object - version: 1.0.0 diff --git a/unilabos/registry/devices/opsky_ATR30007.yaml b/unilabos/registry/devices/opsky_ATR30007.yaml deleted file mode 100644 index ee8b8871..00000000 --- a/unilabos/registry/devices/opsky_ATR30007.yaml +++ /dev/null @@ -1,235 +0,0 @@ -opsky_ATR30007: - category: - - characterization_optic - - opsky_ATR30007 - class: - action_value_mappings: - auto-ensure_connected: - feedback: {} - goal: {} - goal_default: - client: null - ip: null - name: null - port: null - handles: {} - placeholder_keys: {} - result: {} - schema: - description: '' - properties: - feedback: {} - goal: - properties: - client: - type: string - ip: - type: string - name: - type: string - port: - type: string - required: - - client - - name - - ip - - port - type: object - result: {} - required: - - goal - title: ensure_connected参数 - type: object - type: UniLabJsonCommand - auto-run_once: - feedback: {} - goal: {} - goal_default: - integration_time: '5000' - laser_power: '200' - norm_max: '1.0' - normalize: 'true' - save_csv: 'true' - save_plot: 'true' - handles: {} - placeholder_keys: {} - result: {} - schema: - description: 执行一次站控-扫码-拉曼流程的大函数入口,参数以字符串形式传入。 - properties: - feedback: {} - goal: - properties: - integration_time: - default: '5000' - type: string - laser_power: - default: '200' - type: string - norm_max: - default: '1.0' - type: string - normalize: - default: 'true' - type: string - save_csv: - default: 'true' - type: string - save_plot: - default: 'true' - type: string - required: [] - type: object - result: {} - required: - - goal - title: run_once参数 - type: object - type: UniLabJsonCommand - auto-safe_read: - feedback: {} - goal: {} - goal_default: - client: null - delay: 0.3 - func: null - name: null - retries: 3 - handles: {} - placeholder_keys: {} - result: {} - schema: - description: '' - properties: - feedback: {} - goal: - properties: - client: - type: string - delay: - default: 0.3 - type: string - func: - type: string - name: - type: string - retries: - default: 3 - type: string - required: - - client - - name - - func - type: object - result: {} - required: - - goal - title: safe_read参数 - type: object - type: UniLabJsonCommand - auto-safe_write: - feedback: {} - goal: {} - goal_default: - client: null - delay: 0.3 - func: null - name: null - retries: 3 - handles: {} - placeholder_keys: {} - result: {} - schema: - description: '' - properties: - feedback: {} - goal: - properties: - client: - type: string - delay: - default: 0.3 - type: string - func: - type: string - name: - type: string - retries: - default: 3 - type: string - required: - - client - - name - - func - type: object - result: {} - required: - - goal - title: safe_write参数 - type: object - type: UniLabJsonCommand - auto-wait_with_quit_check: - feedback: {} - goal: {} - goal_default: - addr_quit: 270 - robot: null - seconds: null - handles: {} - placeholder_keys: {} - result: {} - schema: - description: '' - properties: - feedback: {} - goal: - properties: - addr_quit: - default: 270 - type: string - robot: - type: string - seconds: - type: string - required: - - robot - - seconds - type: object - result: {} - required: - - goal - title: wait_with_quit_check参数 - type: object - type: UniLabJsonCommand - module: unilabos.devices.opsky_Raman.opsky_ATR30007:opsky_ATR30007 - status_types: {} - type: python - config_info: [] - description: OPSKY ATR30007 光纤拉曼模块,提供单一入口大函数以执行一次完整流程。 - handles: [] - icon: '' - init_param_schema: - config: - properties: - plc_ip: - default: 192.168.1.88 - type: string - plc_port: - default: 502 - type: integer - robot_ip: - default: 192.168.1.200 - type: string - robot_port: - default: 502 - type: integer - scan_csv_file: - default: scan_results.csv - type: string - required: [] - type: object - data: - properties: {} - required: [] - type: object - version: 1.0.0 diff --git a/unilabos/registry/devices/organic_miscellaneous.yaml b/unilabos/registry/devices/organic_miscellaneous.yaml deleted file mode 100644 index 3085c823..00000000 --- a/unilabos/registry/devices/organic_miscellaneous.yaml +++ /dev/null @@ -1,486 +0,0 @@ -rotavap.one: - category: - - organic_miscellaneous - class: - action_value_mappings: - auto-cmd_write: - feedback: {} - goal: {} - goal_default: - cmd: null - handles: {} - placeholder_keys: {} - result: {} - schema: - description: cmd_write的参数schema - properties: - feedback: {} - goal: - properties: - cmd: - type: string - required: - - cmd - type: object - result: {} - required: - - goal - title: cmd_write参数 - type: object - type: UniLabJsonCommand - auto-main_loop: - feedback: {} - goal: {} - goal_default: {} - handles: {} - placeholder_keys: {} - result: {} - schema: - description: main_loop的参数schema - properties: - feedback: {} - goal: - properties: {} - required: [] - type: object - result: {} - required: - - goal - title: main_loop参数 - type: object - type: UniLabJsonCommand - auto-set_pump_time: - feedback: {} - goal: {} - goal_default: - time: null - handles: {} - placeholder_keys: {} - result: {} - schema: - description: set_pump_time的参数schema - properties: - feedback: {} - goal: - properties: - time: - type: string - required: - - time - type: object - result: {} - required: - - goal - title: set_pump_time参数 - type: object - type: UniLabJsonCommand - auto-set_rotate_time: - feedback: {} - goal: {} - goal_default: - time: null - handles: {} - placeholder_keys: {} - result: {} - schema: - description: set_rotate_time的参数schema - properties: - feedback: {} - goal: - properties: - time: - type: string - required: - - time - type: object - result: {} - required: - - goal - title: set_rotate_time参数 - type: object - type: UniLabJsonCommand - set_timer: - feedback: {} - goal: - command: command - goal_default: - command: '' - handles: {} - result: - success: success - schema: - description: '' - properties: - feedback: - properties: - status: - type: string - required: - - status - title: SendCmd_Feedback - type: object - goal: - properties: - command: - type: string - required: - - command - title: SendCmd_Goal - type: object - result: - properties: - return_info: - type: string - success: - type: boolean - required: - - return_info - - success - title: SendCmd_Result - type: object - required: - - goal - title: SendCmd - type: object - type: SendCmd - module: unilabos.devices.rotavap.rotavap_one:RotavapOne - status_types: {} - type: python - config_info: [] - description: 旋转蒸发仪设备,用于有机化学实验中的溶剂回收和浓缩操作。该设备通过串口通信控制,集成旋转和真空泵功能,支持定时控制和自动化操作。具备旋转速度调节、真空度控制、温度管理等功能,实现高效的溶剂蒸发和回收。适用于有机合成、天然产物提取、药物制备等需要溶剂去除和浓缩的实验室应用场景。 - handles: [] - icon: '' - init_param_schema: - config: - properties: - port: - type: string - rate: - default: 9600 - type: string - required: - - port - type: object - data: - properties: {} - required: [] - type: object - version: 1.0.0 -separator.homemade: - category: - - organic_miscellaneous - class: - action_value_mappings: - auto-read_sensor_loop: - feedback: {} - goal: {} - goal_default: {} - handles: {} - placeholder_keys: {} - result: {} - schema: - description: read_sensor_loop的参数schema - properties: - feedback: {} - goal: - properties: {} - required: [] - type: object - result: {} - required: - - goal - title: read_sensor_loop参数 - type: object - type: UniLabJsonCommand - auto-valve_open: - feedback: {} - goal: {} - goal_default: - condition: null - value: null - handles: {} - placeholder_keys: {} - result: {} - schema: - description: valve_open的参数schema - properties: - feedback: {} - goal: - properties: - condition: - type: string - value: - type: string - required: - - condition - - value - type: object - result: {} - required: - - goal - title: valve_open参数 - type: object - type: UniLabJsonCommand - auto-write: - feedback: {} - goal: {} - goal_default: - data: null - handles: {} - placeholder_keys: {} - result: {} - schema: - description: write的参数schema - properties: - feedback: {} - goal: - properties: - data: - type: string - required: - - data - type: object - result: {} - required: - - goal - title: write参数 - type: object - type: UniLabJsonCommand - stir: - feedback: - status: status - goal: - settling_time: settling_time - stir_speed: stir_speed - stir_time: stir_time, - goal_default: - event: '' - settling_time: '' - stir_speed: 0.0 - stir_time: 0.0 - time: '' - time_spec: '' - vessel: - category: '' - children: [] - config: '' - data: '' - id: '' - name: '' - parent: '' - pose: - orientation: - w: 1.0 - x: 0.0 - y: 0.0 - z: 0.0 - position: - x: 0.0 - y: 0.0 - z: 0.0 - sample_id: '' - type: '' - handles: {} - result: - success: success - schema: - description: '' - properties: - feedback: - properties: - status: - type: string - required: - - status - title: Stir_Feedback - type: object - goal: - properties: - event: - type: string - settling_time: - type: string - stir_speed: - type: number - stir_time: - type: number - time: - type: string - time_spec: - type: string - vessel: - properties: - category: - type: string - children: - items: - type: string - type: array - config: - type: string - data: - type: string - id: - type: string - name: - type: string - parent: - type: string - pose: - properties: - orientation: - properties: - w: - type: number - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - - w - title: orientation - type: object - position: - properties: - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - title: position - type: object - required: - - position - - orientation - title: pose - type: object - sample_id: - type: string - type: - type: string - required: - - id - - name - - sample_id - - children - - parent - - type - - category - - pose - - config - - data - title: vessel - type: object - required: - - vessel - - time - - event - - time_spec - - stir_time - - stir_speed - - settling_time - title: Stir_Goal - type: object - result: - properties: - message: - type: string - return_info: - type: string - success: - type: boolean - required: - - success - - message - - return_info - title: Stir_Result - type: object - required: - - goal - title: Stir - type: object - type: Stir - valve_open_cmd: - feedback: - status: status - goal: - command: command - goal_default: - command: '' - handles: {} - result: - success: success - schema: - description: '' - properties: - feedback: - properties: - status: - type: string - required: - - status - title: SendCmd_Feedback - type: object - goal: - properties: - command: - type: string - required: - - command - title: SendCmd_Goal - type: object - result: - properties: - return_info: - type: string - success: - type: boolean - required: - - return_info - - success - title: SendCmd_Result - type: object - required: - - goal - title: SendCmd - type: object - type: SendCmd - module: unilabos.devices.separator.homemade_grbl_conductivity:SeparatorController - status_types: {} - type: python - config_info: [] - description: 液-液分离器设备,基于自制Grbl控制器的自动化分离系统。该设备集成搅拌、沉降、阀门控制和电导率传感器,通过串口通信实现精确的分离操作控制。支持自动搅拌、分层沉降、基于传感器反馈的智能分液等功能。适用于有机化学中的萃取分离、相分离、液-液提取等需要精确分离控制的实验应用。 - handles: [] - icon: '' - init_param_schema: - config: - properties: - baudrate_executor: - default: 115200 - type: integer - baudrate_sensor: - default: 115200 - type: integer - port_executor: - type: string - port_sensor: - type: string - required: - - port_executor - - port_sensor - type: object - data: - properties: {} - required: [] - type: object - version: 1.0.0 diff --git a/unilabos/registry/devices/post_process_station.yaml b/unilabos/registry/devices/post_process_station.yaml deleted file mode 100644 index be42bad4..00000000 --- a/unilabos/registry/devices/post_process_station.yaml +++ /dev/null @@ -1,747 +0,0 @@ -post_process_station: - category: - - post_process_station - class: - action_value_mappings: - auto-load_config: - feedback: {} - goal: {} - goal_default: - config_path: null - handles: {} - placeholder_keys: {} - result: {} - schema: - description: '' - properties: - feedback: {} - goal: - properties: - config_path: - type: string - required: - - config_path - type: object - result: {} - required: - - goal - title: load_config参数 - type: object - type: UniLabJsonCommand - auto-post_init: - feedback: {} - goal: {} - goal_default: - ros_node: null - handles: {} - placeholder_keys: {} - result: {} - schema: - description: '' - properties: - feedback: {} - goal: - properties: - ros_node: - type: string - required: - - ros_node - type: object - result: {} - required: - - goal - title: post_init参数 - type: object - type: UniLabJsonCommand - auto-print_cache_stats: - feedback: {} - goal: {} - goal_default: {} - handles: {} - placeholder_keys: {} - result: {} - schema: - description: '' - properties: - feedback: {} - goal: - properties: {} - required: [] - type: object - result: {} - required: - - goal - title: print_cache_stats参数 - type: object - type: UniLabJsonCommand - auto-set_node_value: - feedback: {} - goal: {} - goal_default: - name: null - value: null - handles: {} - placeholder_keys: {} - result: {} - schema: - description: '' - properties: - feedback: {} - goal: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - result: {} - required: - - goal - title: set_node_value参数 - type: object - type: UniLabJsonCommand - disconnect: - feedback: {} - goal: - command: {} - goal_default: - command: '' - handles: {} - result: - success: success - schema: - description: '' - properties: - feedback: - properties: - status: - type: string - required: - - status - title: SendCmd_Feedback - type: object - goal: - properties: - command: - type: string - required: - - command - title: SendCmd_Goal - type: object - result: - properties: - return_info: - type: string - success: - type: boolean - required: - - return_info - - success - title: SendCmd_Result - type: object - required: - - goal - title: SendCmd - type: object - type: SendCmd - read_node: - feedback: - result: result - goal: - command: node_name - goal_default: - command: '' - handles: {} - result: - success: success - schema: - description: '' - properties: - feedback: - properties: - status: - type: string - required: - - status - title: SendCmd_Feedback - type: object - goal: - properties: - command: - type: string - required: - - command - title: SendCmd_Goal - type: object - result: - properties: - return_info: - type: string - success: - type: boolean - required: - - return_info - - success - title: SendCmd_Result - type: object - required: - - goal - title: SendCmd - type: object - type: SendCmd - trigger_cleaning_action: - feedback: {} - goal: - acetone_inner_wall_cleaning_count: acetone_inner_wall_cleaning_count - acetone_inner_wall_cleaning_injection: acetone_inner_wall_cleaning_injection - acetone_inner_wall_cleaning_waste_time: acetone_inner_wall_cleaning_waste_time - acetone_outer_wall_cleaning_count: acetone_outer_wall_cleaning_count - acetone_outer_wall_cleaning_injection: acetone_outer_wall_cleaning_injection - acetone_outer_wall_cleaning_wait_time: acetone_outer_wall_cleaning_wait_time - acetone_outer_wall_cleaning_waste_time: acetone_outer_wall_cleaning_waste_time - acetone_pump_cleaning_suction_count: acetone_pump_cleaning_suction_count - acetone_stirrer_cleaning_count: acetone_stirrer_cleaning_count - acetone_stirrer_cleaning_injection: acetone_stirrer_cleaning_injection - acetone_stirrer_cleaning_wait_time: acetone_stirrer_cleaning_wait_time - acetone_stirrer_cleaning_waste_time: acetone_stirrer_cleaning_waste_time - filtration_liquid_selection: filtration_liquid_selection - injection_pump_forward_empty_suction_count: injection_pump_forward_empty_suction_count - injection_pump_reverse_empty_suction_count: injection_pump_reverse_empty_suction_count - nmp_inner_wall_cleaning_count: nmp_inner_wall_cleaning_count - nmp_inner_wall_cleaning_injection: nmp_inner_wall_cleaning_injection - nmp_inner_wall_cleaning_waste_time: nmp_inner_wall_cleaning_waste_time - nmp_outer_wall_cleaning_count: nmp_outer_wall_cleaning_count - nmp_outer_wall_cleaning_injection: nmp_outer_wall_cleaning_injection - nmp_outer_wall_cleaning_wait_time: nmp_outer_wall_cleaning_wait_time - nmp_outer_wall_cleaning_waste_time: nmp_outer_wall_cleaning_waste_time - nmp_pump_cleaning_suction_count: nmp_pump_cleaning_suction_count - nmp_stirrer_cleaning_count: nmp_stirrer_cleaning_count - nmp_stirrer_cleaning_injection: nmp_stirrer_cleaning_injection - nmp_stirrer_cleaning_wait_time: nmp_stirrer_cleaning_wait_time - nmp_stirrer_cleaning_waste_time: nmp_stirrer_cleaning_waste_time - pipe_blowing_time: pipe_blowing_time - water_inner_wall_cleaning_count: water_inner_wall_cleaning_count - water_inner_wall_cleaning_injection: water_inner_wall_cleaning_injection - water_inner_wall_cleaning_waste_time: water_inner_wall_cleaning_waste_time - water_outer_wall_cleaning_count: water_outer_wall_cleaning_count - water_outer_wall_cleaning_injection: water_outer_wall_cleaning_injection - water_outer_wall_cleaning_wait_time: water_outer_wall_cleaning_wait_time - water_outer_wall_cleaning_waste_time: water_outer_wall_cleaning_waste_time - water_pump_cleaning_suction_count: water_pump_cleaning_suction_count - water_stirrer_cleaning_count: water_stirrer_cleaning_count - water_stirrer_cleaning_injection: water_stirrer_cleaning_injection - water_stirrer_cleaning_wait_time: water_stirrer_cleaning_wait_time - water_stirrer_cleaning_waste_time: water_stirrer_cleaning_waste_time - goal_default: - acetone_inner_wall_cleaning_count: 0 - acetone_inner_wall_cleaning_injection: 0.0 - acetone_inner_wall_cleaning_waste_time: 0 - acetone_outer_wall_cleaning_count: 0 - acetone_outer_wall_cleaning_injection: 0.0 - acetone_outer_wall_cleaning_wait_time: 0 - acetone_outer_wall_cleaning_waste_time: 0 - acetone_pump_cleaning_suction_count: 0 - acetone_stirrer_cleaning_count: 0 - acetone_stirrer_cleaning_injection: 0.0 - acetone_stirrer_cleaning_wait_time: 0 - acetone_stirrer_cleaning_waste_time: 0 - filtration_liquid_selection: 0 - injection_pump_forward_empty_suction_count: 0 - injection_pump_reverse_empty_suction_count: 0 - nmp_inner_wall_cleaning_count: 0 - nmp_inner_wall_cleaning_injection: 0.0 - nmp_inner_wall_cleaning_waste_time: 0 - nmp_outer_wall_cleaning_count: 0 - nmp_outer_wall_cleaning_injection: 0.0 - nmp_outer_wall_cleaning_wait_time: 0 - nmp_outer_wall_cleaning_waste_time: 0 - nmp_pump_cleaning_suction_count: 0 - nmp_stirrer_cleaning_count: 0 - nmp_stirrer_cleaning_injection: 0.0 - nmp_stirrer_cleaning_wait_time: 0 - nmp_stirrer_cleaning_waste_time: 0 - pipe_blowing_time: 0 - water_inner_wall_cleaning_count: 0 - water_inner_wall_cleaning_injection: 0.0 - water_inner_wall_cleaning_waste_time: 0 - water_outer_wall_cleaning_count: 0 - water_outer_wall_cleaning_injection: 0.0 - water_outer_wall_cleaning_wait_time: 0 - water_outer_wall_cleaning_waste_time: 0 - water_pump_cleaning_suction_count: 0 - water_stirrer_cleaning_count: 0 - water_stirrer_cleaning_injection: 0.0 - water_stirrer_cleaning_wait_time: 0 - water_stirrer_cleaning_waste_time: 0 - handles: {} - result: - return_info: return_info - schema: - description: '' - properties: - feedback: - properties: {} - required: [] - title: PostProcessTriggerClean_Feedback - type: object - goal: - properties: - acetone_inner_wall_cleaning_count: - maximum: 2147483647 - minimum: -2147483648 - type: integer - acetone_inner_wall_cleaning_injection: - type: number - acetone_inner_wall_cleaning_waste_time: - maximum: 2147483647 - minimum: -2147483648 - type: integer - acetone_outer_wall_cleaning_count: - maximum: 2147483647 - minimum: -2147483648 - type: integer - acetone_outer_wall_cleaning_injection: - type: number - acetone_outer_wall_cleaning_wait_time: - maximum: 2147483647 - minimum: -2147483648 - type: integer - acetone_outer_wall_cleaning_waste_time: - maximum: 2147483647 - minimum: -2147483648 - type: integer - acetone_pump_cleaning_suction_count: - maximum: 2147483647 - minimum: -2147483648 - type: integer - acetone_stirrer_cleaning_count: - maximum: 2147483647 - minimum: -2147483648 - type: integer - acetone_stirrer_cleaning_injection: - type: number - acetone_stirrer_cleaning_wait_time: - maximum: 2147483647 - minimum: -2147483648 - type: integer - acetone_stirrer_cleaning_waste_time: - maximum: 2147483647 - minimum: -2147483648 - type: integer - filtration_liquid_selection: - maximum: 2147483647 - minimum: -2147483648 - type: integer - injection_pump_forward_empty_suction_count: - maximum: 2147483647 - minimum: -2147483648 - type: integer - injection_pump_reverse_empty_suction_count: - maximum: 2147483647 - minimum: -2147483648 - type: integer - nmp_inner_wall_cleaning_count: - maximum: 2147483647 - minimum: -2147483648 - type: integer - nmp_inner_wall_cleaning_injection: - type: number - nmp_inner_wall_cleaning_waste_time: - maximum: 2147483647 - minimum: -2147483648 - type: integer - nmp_outer_wall_cleaning_count: - maximum: 2147483647 - minimum: -2147483648 - type: integer - nmp_outer_wall_cleaning_injection: - type: number - nmp_outer_wall_cleaning_wait_time: - maximum: 2147483647 - minimum: -2147483648 - type: integer - nmp_outer_wall_cleaning_waste_time: - maximum: 2147483647 - minimum: -2147483648 - type: integer - nmp_pump_cleaning_suction_count: - maximum: 2147483647 - minimum: -2147483648 - type: integer - nmp_stirrer_cleaning_count: - maximum: 2147483647 - minimum: -2147483648 - type: integer - nmp_stirrer_cleaning_injection: - type: number - nmp_stirrer_cleaning_wait_time: - maximum: 2147483647 - minimum: -2147483648 - type: integer - nmp_stirrer_cleaning_waste_time: - maximum: 2147483647 - minimum: -2147483648 - type: integer - pipe_blowing_time: - maximum: 2147483647 - minimum: -2147483648 - type: integer - water_inner_wall_cleaning_count: - maximum: 2147483647 - minimum: -2147483648 - type: integer - water_inner_wall_cleaning_injection: - type: number - water_inner_wall_cleaning_waste_time: - maximum: 2147483647 - minimum: -2147483648 - type: integer - water_outer_wall_cleaning_count: - maximum: 2147483647 - minimum: -2147483648 - type: integer - water_outer_wall_cleaning_injection: - type: number - water_outer_wall_cleaning_wait_time: - maximum: 2147483647 - minimum: -2147483648 - type: integer - water_outer_wall_cleaning_waste_time: - maximum: 2147483647 - minimum: -2147483648 - type: integer - water_pump_cleaning_suction_count: - maximum: 2147483647 - minimum: -2147483648 - type: integer - water_stirrer_cleaning_count: - maximum: 2147483647 - minimum: -2147483648 - type: integer - water_stirrer_cleaning_injection: - type: number - water_stirrer_cleaning_wait_time: - maximum: 2147483647 - minimum: -2147483648 - type: integer - water_stirrer_cleaning_waste_time: - maximum: 2147483647 - minimum: -2147483648 - type: integer - required: - - nmp_outer_wall_cleaning_injection - - nmp_outer_wall_cleaning_count - - nmp_outer_wall_cleaning_wait_time - - nmp_outer_wall_cleaning_waste_time - - nmp_inner_wall_cleaning_injection - - nmp_inner_wall_cleaning_count - - nmp_pump_cleaning_suction_count - - nmp_inner_wall_cleaning_waste_time - - nmp_stirrer_cleaning_injection - - nmp_stirrer_cleaning_count - - nmp_stirrer_cleaning_wait_time - - nmp_stirrer_cleaning_waste_time - - water_outer_wall_cleaning_injection - - water_outer_wall_cleaning_count - - water_outer_wall_cleaning_wait_time - - water_outer_wall_cleaning_waste_time - - water_inner_wall_cleaning_injection - - water_inner_wall_cleaning_count - - water_pump_cleaning_suction_count - - water_inner_wall_cleaning_waste_time - - water_stirrer_cleaning_injection - - water_stirrer_cleaning_count - - water_stirrer_cleaning_wait_time - - water_stirrer_cleaning_waste_time - - acetone_outer_wall_cleaning_injection - - acetone_outer_wall_cleaning_count - - acetone_outer_wall_cleaning_wait_time - - acetone_outer_wall_cleaning_waste_time - - acetone_inner_wall_cleaning_injection - - acetone_inner_wall_cleaning_count - - acetone_pump_cleaning_suction_count - - acetone_inner_wall_cleaning_waste_time - - acetone_stirrer_cleaning_injection - - acetone_stirrer_cleaning_count - - acetone_stirrer_cleaning_wait_time - - acetone_stirrer_cleaning_waste_time - - pipe_blowing_time - - injection_pump_forward_empty_suction_count - - injection_pump_reverse_empty_suction_count - - filtration_liquid_selection - title: PostProcessTriggerClean_Goal - type: object - result: - properties: - return_info: - type: string - required: - - return_info - title: PostProcessTriggerClean_Result - type: object - required: - - goal - title: PostProcessTriggerClean - type: object - type: PostProcessTriggerClean - trigger_grab_action: - feedback: {} - goal: - raw_tank_number: raw_tank_number - reaction_tank_number: reaction_tank_number - goal_default: - raw_tank_number: 0 - reaction_tank_number: 0 - handles: {} - result: - return_info: return_info - schema: - description: '' - properties: - feedback: - properties: {} - required: [] - title: PostProcessGrab_Feedback - type: object - goal: - properties: - raw_tank_number: - maximum: 2147483647 - minimum: -2147483648 - type: integer - reaction_tank_number: - maximum: 2147483647 - minimum: -2147483648 - type: integer - required: - - reaction_tank_number - - raw_tank_number - title: PostProcessGrab_Goal - type: object - result: - properties: - return_info: - type: string - required: - - return_info - title: PostProcessGrab_Result - type: object - required: - - goal - title: PostProcessGrab - type: object - type: PostProcessGrab - trigger_post_processing: - feedback: {} - goal: - atomization_fast_speed: atomization_fast_speed - atomization_pressure_kpa: atomization_pressure_kpa - first_powder_mixing_tim: first_powder_mixing_tim - first_powder_wash_count: first_powder_wash_count - first_wash_water_amount: first_wash_water_amount - initial_water_amount: initial_water_amount - injection_pump_push_speed: injection_pump_push_speed - injection_pump_suction_speed: injection_pump_suction_speed - pre_filtration_mixing_time: pre_filtration_mixing_time - raw_liquid_suction_count: raw_liquid_suction_count - second_powder_mixing_time: second_powder_mixing_time - second_powder_wash_count: second_powder_wash_count - second_wash_water_amount: second_wash_water_amount - wash_slow_speed: wash_slow_speed - goal_default: - atomization_fast_speed: 0.0 - atomization_pressure_kpa: 0 - first_powder_mixing_tim: 0 - first_powder_wash_count: 0 - first_wash_water_amount: 0.0 - initial_water_amount: 0.0 - injection_pump_push_speed: 0 - injection_pump_suction_speed: 0 - pre_filtration_mixing_time: 0 - raw_liquid_suction_count: 0 - second_powder_mixing_time: 0 - second_powder_wash_count: 0 - second_wash_water_amount: 0.0 - wash_slow_speed: 0.0 - handles: {} - result: - return_info: return_info - schema: - description: '' - properties: - feedback: - properties: {} - required: [] - title: PostProcessTriggerPostPro_Feedback - type: object - goal: - properties: - atomization_fast_speed: - type: number - atomization_pressure_kpa: - maximum: 2147483647 - minimum: -2147483648 - type: integer - first_powder_mixing_tim: - maximum: 2147483647 - minimum: -2147483648 - type: integer - first_powder_wash_count: - maximum: 2147483647 - minimum: -2147483648 - type: integer - first_wash_water_amount: - type: number - initial_water_amount: - type: number - injection_pump_push_speed: - maximum: 2147483647 - minimum: -2147483648 - type: integer - injection_pump_suction_speed: - maximum: 2147483647 - minimum: -2147483648 - type: integer - pre_filtration_mixing_time: - maximum: 2147483647 - minimum: -2147483648 - type: integer - raw_liquid_suction_count: - maximum: 2147483647 - minimum: -2147483648 - type: integer - second_powder_mixing_time: - maximum: 2147483647 - minimum: -2147483648 - type: integer - second_powder_wash_count: - maximum: 2147483647 - minimum: -2147483648 - type: integer - second_wash_water_amount: - type: number - wash_slow_speed: - type: number - required: - - atomization_fast_speed - - wash_slow_speed - - injection_pump_suction_speed - - injection_pump_push_speed - - raw_liquid_suction_count - - first_wash_water_amount - - second_wash_water_amount - - first_powder_mixing_tim - - second_powder_mixing_time - - first_powder_wash_count - - second_powder_wash_count - - initial_water_amount - - pre_filtration_mixing_time - - atomization_pressure_kpa - title: PostProcessTriggerPostPro_Goal - type: object - result: - properties: - return_info: - type: string - required: - - return_info - title: PostProcessTriggerPostPro_Result - type: object - required: - - goal - title: PostProcessTriggerPostPro - type: object - type: PostProcessTriggerPostPro - write_node: - feedback: - result: result - goal: - command: json_input - goal_default: - command: '' - handles: {} - result: - success: success - schema: - description: '' - properties: - feedback: - properties: - status: - type: string - required: - - status - title: SendCmd_Feedback - type: object - goal: - properties: - command: - type: string - required: - - command - title: SendCmd_Goal - type: object - result: - properties: - return_info: - type: string - success: - type: boolean - required: - - return_info - - success - title: SendCmd_Result - type: object - required: - - goal - title: SendCmd - type: object - type: SendCmd - module: unilabos.devices.workstation.post_process.post_process:OpcUaClient - status_types: - cache_stats: dict - node_value: String - type: python - config_info: [] - description: 后处理站 - handles: [] - icon: post_process_station.webp - init_param_schema: - config: - properties: - cache_timeout: - default: 5.0 - type: number - config_path: - type: string - deck: - type: string - password: - type: string - subscription_interval: - default: 500 - type: integer - url: - type: string - use_subscription: - default: true - type: boolean - username: - type: string - required: - - url - type: object - data: - properties: - cache_stats: - type: object - node_value: - type: string - required: - - node_value - - cache_stats - type: object - version: 1.0.0 diff --git a/unilabos/registry/devices/pump_and_valve.yaml b/unilabos/registry/devices/pump_and_valve.yaml deleted file mode 100644 index 40fd9d3e..00000000 --- a/unilabos/registry/devices/pump_and_valve.yaml +++ /dev/null @@ -1,1435 +0,0 @@ -solenoid_valve: - category: - - pump_and_valve - class: - action_value_mappings: - auto-close: - feedback: {} - goal: {} - goal_default: {} - handles: {} - placeholder_keys: {} - result: {} - schema: - description: close的参数schema - properties: - feedback: {} - goal: - properties: {} - required: [] - type: object - result: {} - required: - - goal - title: close参数 - type: object - type: UniLabJsonCommand - auto-is_closed: - feedback: {} - goal: {} - goal_default: {} - handles: {} - placeholder_keys: {} - result: {} - schema: - description: is_closed的参数schema - properties: - feedback: {} - goal: - properties: {} - required: [] - type: object - result: {} - required: - - goal - title: is_closed参数 - type: object - type: UniLabJsonCommand - auto-is_open: - feedback: {} - goal: {} - goal_default: {} - handles: {} - placeholder_keys: {} - result: {} - schema: - description: is_open的参数schema - properties: - feedback: {} - goal: - properties: {} - required: [] - type: object - result: {} - required: - - goal - title: is_open参数 - type: object - type: UniLabJsonCommand - auto-open: - feedback: {} - goal: {} - goal_default: {} - handles: {} - placeholder_keys: {} - result: {} - schema: - description: '' - properties: - feedback: {} - goal: - properties: {} - required: [] - type: object - result: {} - required: - - goal - title: open参数 - type: object - type: UniLabJsonCommand - auto-read_data: - feedback: {} - goal: {} - goal_default: {} - handles: {} - placeholder_keys: {} - result: {} - schema: - description: read_data的参数schema - properties: - feedback: {} - goal: - properties: {} - required: [] - type: object - result: {} - required: - - goal - title: read_data参数 - type: object - type: UniLabJsonCommand - auto-send_command: - feedback: {} - goal: {} - goal_default: - command: null - handles: {} - placeholder_keys: {} - result: {} - schema: - description: send_command的参数schema - properties: - feedback: {} - goal: - properties: - command: - type: string - required: - - command - type: object - result: {} - required: - - goal - title: send_command参数 - type: object - type: UniLabJsonCommand - set_valve_position: - feedback: {} - goal: - string: position - goal_default: - string: '' - handles: {} - result: {} - schema: - description: '' - properties: - feedback: - properties: {} - required: [] - title: StrSingleInput_Feedback - type: object - goal: - properties: - string: - type: string - required: - - string - title: StrSingleInput_Goal - type: object - result: - properties: - return_info: - type: string - success: - type: boolean - required: - - return_info - - success - title: StrSingleInput_Result - type: object - required: - - goal - title: StrSingleInput - type: object - type: StrSingleInput - module: unilabos.devices.pump_and_valve.solenoid_valve:SolenoidValve - status_types: - status: str - valve_position: str - type: python - config_info: [] - description: 电磁阀控制设备,用于精确的流体路径控制和开关操作。该设备通过串口通信控制电磁阀的开关状态,支持远程操作和状态监测。具备快速响应、可靠密封、状态反馈等特性,广泛应用于流体输送、样品进样、路径切换等需要精确流体控制的实验室自动化应用。 - handles: [] - icon: '' - init_param_schema: - config: - properties: - io_device_port: - type: string - required: - - io_device_port - type: object - data: - properties: - status: - type: string - valve_position: - type: string - required: - - status - - valve_position - type: object - version: 1.0.0 -solenoid_valve.mock: - category: - - pump_and_valve - class: - action_value_mappings: - auto-is_closed: - feedback: {} - goal: {} - goal_default: {} - handles: {} - placeholder_keys: {} - result: {} - schema: - description: is_closed的参数schema - properties: - feedback: {} - goal: - properties: {} - required: [] - type: object - result: {} - required: - - goal - title: is_closed参数 - type: object - type: UniLabJsonCommand - auto-is_open: - feedback: {} - goal: {} - goal_default: {} - handles: {} - placeholder_keys: {} - result: {} - schema: - description: is_open的参数schema - properties: - feedback: {} - goal: - properties: {} - required: [] - type: object - result: {} - required: - - goal - title: is_open参数 - type: object - type: UniLabJsonCommand - auto-set_valve_position: - feedback: {} - goal: {} - goal_default: - position: null - handles: {} - placeholder_keys: {} - result: {} - schema: - description: set_valve_position的参数schema - properties: - feedback: {} - goal: - properties: - position: - type: string - required: - - position - type: object - result: {} - required: - - goal - title: set_valve_position参数 - type: object - type: UniLabJsonCommand - close: - feedback: {} - goal: {} - goal_default: {} - handles: {} - result: {} - schema: - description: '' - properties: - feedback: - properties: {} - required: [] - title: EmptyIn_Feedback - type: object - goal: - properties: {} - required: [] - title: EmptyIn_Goal - type: object - result: - properties: - return_info: - type: string - required: - - return_info - title: EmptyIn_Result - type: object - required: - - goal - title: EmptyIn - type: object - type: EmptyIn - open: - feedback: {} - goal: {} - goal_default: {} - handles: {} - result: {} - schema: - description: '' - properties: - feedback: - properties: {} - required: [] - title: EmptyIn_Feedback - type: object - goal: - properties: {} - required: [] - title: EmptyIn_Goal - type: object - result: - properties: - return_info: - type: string - required: - - return_info - title: EmptyIn_Result - type: object - required: - - goal - title: EmptyIn - type: object - type: EmptyIn - module: unilabos.devices.pump_and_valve.solenoid_valve_mock:SolenoidValveMock - status_types: - status: str - valve_position: str - type: python - config_info: [] - description: 模拟电磁阀设备,用于系统测试和开发调试。该设备模拟真实电磁阀的开关操作和状态变化,提供与实际设备相同的控制接口和反馈机制。支持流体路径的虚拟控制,便于在没有实际硬件的情况下进行流体系统的集成测试和算法验证。适用于系统开发、流程调试和培训演示等场景。 - handles: - - data_type: fluid - handler_key: in - io_type: target - label: in - side: NORTH - - data_type: fluid - handler_key: out - io_type: source - label: out - side: SOUTH - icon: '' - init_param_schema: - config: - properties: - port: - default: COM6 - type: string - required: [] - type: object - data: - properties: - status: - type: string - valve_position: - type: string - required: - - status - - valve_position - type: object - version: 1.0.0 -syringe_pump_with_valve.runze.SY03B-T06: - category: - - pump_and_valve - class: - action_value_mappings: - auto-close: - feedback: {} - goal: {} - goal_default: {} - handles: {} - placeholder_keys: {} - result: {} - schema: - description: close的参数schema - properties: - feedback: {} - goal: - properties: {} - required: [] - type: object - result: {} - required: - - goal - title: close参数 - type: object - type: UniLabJsonCommand - auto-initialize: - feedback: {} - goal: {} - goal_default: {} - handles: {} - placeholder_keys: {} - result: {} - schema: - description: initialize的参数schema - properties: - feedback: {} - goal: - properties: {} - required: [] - type: object - result: {} - required: - - goal - title: initialize参数 - type: object - type: UniLabJsonCommand - auto-pull_plunger: - feedback: {} - goal: {} - goal_default: - volume: null - handles: {} - placeholder_keys: {} - result: {} - schema: - description: pull_plunger的参数schema - properties: - feedback: {} - goal: - properties: - volume: - type: number - required: - - volume - type: object - result: {} - required: - - goal - title: pull_plunger参数 - type: object - type: UniLabJsonCommand - auto-push_plunger: - feedback: {} - goal: {} - goal_default: - volume: null - handles: {} - placeholder_keys: {} - result: {} - schema: - description: push_plunger的参数schema - properties: - feedback: {} - goal: - properties: - volume: - type: number - required: - - volume - type: object - result: {} - required: - - goal - title: push_plunger参数 - type: object - type: UniLabJsonCommand - auto-query_aux_input_status_1: - feedback: {} - goal: {} - goal_default: {} - handles: {} - placeholder_keys: {} - result: {} - schema: - description: query_aux_input_status_1的参数schema - properties: - feedback: {} - goal: - properties: {} - required: [] - type: object - result: {} - required: - - goal - title: query_aux_input_status_1参数 - type: object - type: UniLabJsonCommand - auto-query_aux_input_status_2: - feedback: {} - goal: {} - goal_default: {} - handles: {} - placeholder_keys: {} - result: {} - schema: - description: query_aux_input_status_2的参数schema - properties: - feedback: {} - goal: - properties: {} - required: [] - type: object - result: {} - required: - - goal - title: query_aux_input_status_2参数 - type: object - type: UniLabJsonCommand - auto-query_backlash_position: - feedback: {} - goal: {} - goal_default: {} - handles: {} - placeholder_keys: {} - result: {} - schema: - description: query_backlash_position的参数schema - properties: - feedback: {} - goal: - properties: {} - required: [] - type: object - result: {} - required: - - goal - title: query_backlash_position参数 - type: object - type: UniLabJsonCommand - auto-query_command_buffer_status: - feedback: {} - goal: {} - goal_default: {} - handles: {} - placeholder_keys: {} - result: {} - schema: - description: query_command_buffer_status的参数schema - properties: - feedback: {} - goal: - properties: {} - required: [] - type: object - result: {} - required: - - goal - title: query_command_buffer_status参数 - type: object - type: UniLabJsonCommand - auto-query_software_version: - feedback: {} - goal: {} - goal_default: {} - handles: {} - placeholder_keys: {} - result: {} - schema: - description: query_software_version的参数schema - properties: - feedback: {} - goal: - properties: {} - required: [] - type: object - result: {} - required: - - goal - title: query_software_version参数 - type: object - type: UniLabJsonCommand - auto-send_command: - feedback: {} - goal: {} - goal_default: - full_command: null - handles: {} - placeholder_keys: {} - result: {} - schema: - description: send_command的参数schema - properties: - feedback: {} - goal: - properties: - full_command: - type: string - required: - - full_command - type: object - result: {} - required: - - goal - title: send_command参数 - type: object - type: UniLabJsonCommand - auto-set_baudrate: - feedback: {} - goal: {} - goal_default: - baudrate: null - handles: {} - placeholder_keys: {} - result: {} - schema: - description: set_baudrate的参数schema - properties: - feedback: {} - goal: - properties: - baudrate: - type: string - required: - - baudrate - type: object - result: {} - required: - - goal - title: set_baudrate参数 - type: object - type: UniLabJsonCommand - auto-set_max_velocity: - feedback: {} - goal: {} - goal_default: - velocity: null - handles: {} - placeholder_keys: {} - result: {} - schema: - description: set_max_velocity的参数schema - properties: - feedback: {} - goal: - properties: - velocity: - type: number - required: - - velocity - type: object - result: {} - required: - - goal - title: set_max_velocity参数 - type: object - type: UniLabJsonCommand - auto-set_position: - feedback: {} - goal: {} - goal_default: - max_velocity: null - position: null - handles: {} - placeholder_keys: {} - result: {} - schema: - description: set_position的参数schema - properties: - feedback: {} - goal: - properties: - max_velocity: - type: number - position: - type: number - required: - - position - type: object - result: {} - required: - - goal - title: set_position参数 - type: object - type: UniLabJsonCommand - auto-set_valve_position: - feedback: {} - goal: {} - goal_default: - position: null - handles: {} - placeholder_keys: {} - result: {} - schema: - description: set_valve_position的参数schema - properties: - feedback: {} - goal: - properties: - position: - type: string - required: - - position - type: object - result: {} - required: - - goal - title: set_valve_position参数 - type: object - type: UniLabJsonCommand - auto-set_velocity_grade: - feedback: {} - goal: {} - goal_default: - velocity: null - handles: {} - placeholder_keys: {} - result: {} - schema: - description: set_velocity_grade的参数schema - properties: - feedback: {} - goal: - properties: - velocity: - type: string - required: - - velocity - type: object - result: {} - required: - - goal - title: set_velocity_grade参数 - type: object - type: UniLabJsonCommand - auto-stop_operation: - feedback: {} - goal: {} - goal_default: {} - handles: {} - placeholder_keys: {} - result: {} - schema: - description: stop_operation的参数schema - properties: - feedback: {} - goal: - properties: {} - required: [] - type: object - result: {} - required: - - goal - title: stop_operation参数 - type: object - type: UniLabJsonCommand - auto-wait_error: - feedback: {} - goal: {} - goal_default: {} - handles: {} - placeholder_keys: {} - result: {} - schema: - description: wait_error的参数schema - properties: - feedback: {} - goal: - properties: {} - required: [] - type: object - result: {} - required: - - goal - title: wait_error参数 - type: object - type: UniLabJsonCommand - hardware_interface: - name: hardware_interface - read: send_command - write: send_command - module: unilabos.devices.pump_and_valve.runze_backbone:RunzeSyringePump - status_types: - max_velocity: float - mode: int - plunger_position: String - position: float - status: str - valve_position: str - velocity_end: String - velocity_grade: String - velocity_init: String - type: python - config_info: [] - description: 润泽精密注射泵设备,集成阀门控制的高精度流体输送系统。该设备通过串口通信控制,支持多种运行模式和精确的体积控制。具备可变速度控制、精密定位、阀门切换、实时状态监控等功能。适用于微量液体输送、精密进样、流速控制、化学反应进料等需要高精度流体操作的实验室自动化应用。 - handles: - - data_key: fluid_port_1 - data_source: executor - data_type: fluid - description: 八通阀门端口1 - handler_key: '1' - io_type: source - label: '1' - side: NORTH - - data_key: fluid_port_2 - data_source: executor - data_type: fluid - description: 八通阀门端口2 - handler_key: '2' - io_type: source - label: '2' - side: EAST - - data_key: fluid_port_3 - data_source: executor - data_type: fluid - description: 八通阀门端口3 - handler_key: '3' - io_type: source - label: '3' - side: SOUTH - - data_key: fluid_port_4 - data_source: executor - data_type: fluid - description: 八通阀门端口4 - handler_key: '4' - io_type: source - label: '4' - side: SOUTH - - data_key: fluid_port_5 - data_source: executor - data_type: fluid - description: 八通阀门端口5 - handler_key: '5' - io_type: source - label: '5' - side: EAST - - data_key: fluid_port_6 - data_source: executor - data_type: fluid - description: 八通阀门端口6 - handler_key: '6' - io_type: source - label: '6' - side: NORTH - - data_key: fluid_port_6 - data_source: executor - data_type: fluid - description: 六通阀门端口6-特殊输入 - handler_key: '6' - io_type: target - label: 6-in - side: WEST - icon: '' - init_param_schema: - config: - properties: - address: - default: '1' - type: string - max_volume: - default: 25.0 - type: number - mode: - type: object - port: - type: string - required: - - port - type: object - data: - properties: - max_velocity: - type: number - mode: - type: integer - plunger_position: - type: string - position: - type: number - status: - type: string - valve_position: - type: string - velocity_end: - type: string - velocity_grade: - type: string - velocity_init: - type: string - required: - - status - - mode - - max_velocity - - velocity_grade - - velocity_init - - velocity_end - - valve_position - - position - - plunger_position - type: object - version: 1.0.0 -syringe_pump_with_valve.runze.SY03B-T08: - category: - - pump_and_valve - class: - action_value_mappings: - auto-close: - feedback: {} - goal: {} - goal_default: {} - handles: {} - placeholder_keys: {} - result: {} - schema: - description: close的参数schema - properties: - feedback: {} - goal: - properties: {} - required: [] - type: object - result: {} - required: - - goal - title: close参数 - type: object - type: UniLabJsonCommand - auto-initialize: - feedback: {} - goal: {} - goal_default: {} - handles: {} - placeholder_keys: {} - result: {} - schema: - description: initialize的参数schema - properties: - feedback: {} - goal: - properties: {} - required: [] - type: object - result: {} - required: - - goal - title: initialize参数 - type: object - type: UniLabJsonCommand - auto-pull_plunger: - feedback: {} - goal: {} - goal_default: - volume: null - handles: {} - placeholder_keys: {} - result: {} - schema: - description: pull_plunger的参数schema - properties: - feedback: {} - goal: - properties: - volume: - type: number - required: - - volume - type: object - result: {} - required: - - goal - title: pull_plunger参数 - type: object - type: UniLabJsonCommand - auto-push_plunger: - feedback: {} - goal: {} - goal_default: - volume: null - handles: {} - placeholder_keys: {} - result: {} - schema: - description: push_plunger的参数schema - properties: - feedback: {} - goal: - properties: - volume: - type: number - required: - - volume - type: object - result: {} - required: - - goal - title: push_plunger参数 - type: object - type: UniLabJsonCommand - auto-query_aux_input_status_1: - feedback: {} - goal: {} - goal_default: {} - handles: {} - placeholder_keys: {} - result: {} - schema: - description: query_aux_input_status_1的参数schema - properties: - feedback: {} - goal: - properties: {} - required: [] - type: object - result: {} - required: - - goal - title: query_aux_input_status_1参数 - type: object - type: UniLabJsonCommand - auto-query_aux_input_status_2: - feedback: {} - goal: {} - goal_default: {} - handles: {} - placeholder_keys: {} - result: {} - schema: - description: query_aux_input_status_2的参数schema - properties: - feedback: {} - goal: - properties: {} - required: [] - type: object - result: {} - required: - - goal - title: query_aux_input_status_2参数 - type: object - type: UniLabJsonCommand - auto-query_backlash_position: - feedback: {} - goal: {} - goal_default: {} - handles: {} - placeholder_keys: {} - result: {} - schema: - description: query_backlash_position的参数schema - properties: - feedback: {} - goal: - properties: {} - required: [] - type: object - result: {} - required: - - goal - title: query_backlash_position参数 - type: object - type: UniLabJsonCommand - auto-query_command_buffer_status: - feedback: {} - goal: {} - goal_default: {} - handles: {} - placeholder_keys: {} - result: {} - schema: - description: query_command_buffer_status的参数schema - properties: - feedback: {} - goal: - properties: {} - required: [] - type: object - result: {} - required: - - goal - title: query_command_buffer_status参数 - type: object - type: UniLabJsonCommand - auto-query_software_version: - feedback: {} - goal: {} - goal_default: {} - handles: {} - placeholder_keys: {} - result: {} - schema: - description: query_software_version的参数schema - properties: - feedback: {} - goal: - properties: {} - required: [] - type: object - result: {} - required: - - goal - title: query_software_version参数 - type: object - type: UniLabJsonCommand - auto-send_command: - feedback: {} - goal: {} - goal_default: - full_command: null - handles: {} - placeholder_keys: {} - result: {} - schema: - description: send_command的参数schema - properties: - feedback: {} - goal: - properties: - full_command: - type: string - required: - - full_command - type: object - result: {} - required: - - goal - title: send_command参数 - type: object - type: UniLabJsonCommand - auto-set_baudrate: - feedback: {} - goal: {} - goal_default: - baudrate: null - handles: {} - placeholder_keys: {} - result: {} - schema: - description: set_baudrate的参数schema - properties: - feedback: {} - goal: - properties: - baudrate: - type: string - required: - - baudrate - type: object - result: {} - required: - - goal - title: set_baudrate参数 - type: object - type: UniLabJsonCommand - auto-set_max_velocity: - feedback: {} - goal: {} - goal_default: - velocity: null - handles: {} - placeholder_keys: {} - result: {} - schema: - description: set_max_velocity的参数schema - properties: - feedback: {} - goal: - properties: - velocity: - type: number - required: - - velocity - type: object - result: {} - required: - - goal - title: set_max_velocity参数 - type: object - type: UniLabJsonCommand - auto-set_position: - feedback: {} - goal: {} - goal_default: - max_velocity: null - position: null - handles: {} - placeholder_keys: {} - result: {} - schema: - description: set_position的参数schema - properties: - feedback: {} - goal: - properties: - max_velocity: - type: number - position: - type: number - required: - - position - type: object - result: {} - required: - - goal - title: set_position参数 - type: object - type: UniLabJsonCommand - auto-set_valve_position: - feedback: {} - goal: {} - goal_default: - position: null - handles: {} - placeholder_keys: {} - result: {} - schema: - description: set_valve_position的参数schema - properties: - feedback: {} - goal: - properties: - position: - type: string - required: - - position - type: object - result: {} - required: - - goal - title: set_valve_position参数 - type: object - type: UniLabJsonCommand - auto-set_velocity_grade: - feedback: {} - goal: {} - goal_default: - velocity: null - handles: {} - placeholder_keys: {} - result: {} - schema: - description: set_velocity_grade的参数schema - properties: - feedback: {} - goal: - properties: - velocity: - type: string - required: - - velocity - type: object - result: {} - required: - - goal - title: set_velocity_grade参数 - type: object - type: UniLabJsonCommand - auto-stop_operation: - feedback: {} - goal: {} - goal_default: {} - handles: {} - placeholder_keys: {} - result: {} - schema: - description: stop_operation的参数schema - properties: - feedback: {} - goal: - properties: {} - required: [] - type: object - result: {} - required: - - goal - title: stop_operation参数 - type: object - type: UniLabJsonCommand - auto-wait_error: - feedback: {} - goal: {} - goal_default: {} - handles: {} - placeholder_keys: {} - result: {} - schema: - description: wait_error的参数schema - properties: - feedback: {} - goal: - properties: {} - required: [] - type: object - result: {} - required: - - goal - title: wait_error参数 - type: object - type: UniLabJsonCommand - hardware_interface: - name: hardware_interface - read: send_command - write: send_command - module: unilabos.devices.pump_and_valve.runze_backbone:RunzeSyringePump - status_types: - max_velocity: float - mode: int - plunger_position: String - position: float - status: str - valve_position: str - velocity_end: String - velocity_grade: String - velocity_init: String - type: python - config_info: [] - description: 润泽精密注射泵设备,集成阀门控制的高精度流体输送系统。该设备通过串口通信控制,支持多种运行模式和精确的体积控制。具备可变速度控制、精密定位、阀门切换、实时状态监控等功能。适用于微量液体输送、精密进样、流速控制、化学反应进料等需要高精度流体操作的实验室自动化应用。 - handles: - - data_key: fluid_port_1 - data_source: executor - data_type: fluid - description: 八通阀门端口1 - handler_key: '1' - io_type: source - label: '1' - side: NORTH - - data_key: fluid_port_2 - data_source: executor - data_type: fluid - description: 八通阀门端口2 - handler_key: '2' - io_type: source - label: '2' - side: EAST - - data_key: fluid_port_3 - data_source: executor - data_type: fluid - description: 八通阀门端口3 - handler_key: '3' - io_type: source - label: '3' - side: EAST - - data_key: fluid_port_4 - data_source: executor - data_type: fluid - description: 八通阀门端口4 - handler_key: '4' - io_type: source - label: '4' - side: SOUTH - - data_key: fluid_port_5 - data_source: executor - data_type: fluid - description: 八通阀门端口5 - handler_key: '5' - io_type: source - label: '5' - side: SOUTH - - data_key: fluid_port_6 - data_source: executor - data_type: fluid - description: 八通阀门端口6 - handler_key: '6' - io_type: source - label: '6' - side: WEST - - data_key: fluid_port_7 - data_source: executor - data_type: fluid - description: 八通阀门端口7 - handler_key: '7' - io_type: source - label: '7' - side: WEST - - data_key: fluid_port_8 - data_source: executor - data_type: fluid - description: 八通阀门端口8-特殊输入 - handler_key: '8' - io_type: target - label: '8' - side: WEST - - data_key: fluid_port_8 - data_source: executor - data_type: fluid - description: 八通阀门端口8 - handler_key: '8' - io_type: source - label: '8' - side: NORTH - icon: '' - init_param_schema: - config: - properties: - address: - default: '1' - type: string - max_volume: - default: 25.0 - type: number - mode: - type: object - port: - type: string - required: - - port - type: object - data: - properties: - max_velocity: - type: number - mode: - type: integer - plunger_position: - type: string - position: - type: number - status: - type: string - valve_position: - type: string - velocity_end: - type: string - velocity_grade: - type: string - velocity_init: - type: string - required: - - status - - mode - - max_velocity - - velocity_grade - - velocity_init - - velocity_end - - valve_position - - position - - plunger_position - type: object - version: 1.0.0 diff --git a/unilabos/registry/devices/reaction_station_bioyond.yaml b/unilabos/registry/devices/reaction_station_bioyond.yaml deleted file mode 100644 index b7d10a60..00000000 --- a/unilabos/registry/devices/reaction_station_bioyond.yaml +++ /dev/null @@ -1,816 +0,0 @@ -reaction_station.bioyond: - category: - - work_station - - reaction_station_bioyond - class: - action_value_mappings: - auto-create_order: - feedback: {} - goal: {} - goal_default: - json_str: null - handles: {} - placeholder_keys: {} - result: {} - schema: - description: '' - properties: - feedback: {} - goal: - properties: - json_str: - type: string - required: - - json_str - type: object - result: {} - required: - - goal - title: create_order参数 - type: object - type: UniLabJsonCommand - auto-hard_delete_merged_workflows: - feedback: {} - goal: {} - goal_default: - workflow_ids: null - handles: {} - placeholder_keys: {} - result: {} - schema: - description: '' - properties: - feedback: {} - goal: - properties: - workflow_ids: - items: - type: string - type: array - required: - - workflow_ids - type: object - result: {} - required: - - goal - title: hard_delete_merged_workflows参数 - type: object - type: UniLabJsonCommand - auto-merge_workflow_with_parameters: - feedback: {} - goal: {} - goal_default: - json_str: null - handles: {} - placeholder_keys: {} - result: {} - schema: - description: '' - properties: - feedback: {} - goal: - properties: - json_str: - type: string - required: - - json_str - type: object - result: {} - required: - - goal - title: merge_workflow_with_parameters参数 - type: object - type: UniLabJsonCommand - auto-process_temperature_cutoff_report: - feedback: {} - goal: {} - goal_default: - report_request: null - handles: {} - placeholder_keys: {} - result: {} - schema: - description: '' - properties: - feedback: {} - goal: - properties: - report_request: - type: string - required: - - report_request - type: object - result: {} - required: - - goal - title: process_temperature_cutoff_report参数 - type: object - type: UniLabJsonCommand - auto-process_web_workflows: - feedback: {} - goal: {} - goal_default: - web_workflow_json: null - handles: {} - placeholder_keys: {} - result: {} - schema: - description: '' - properties: - feedback: {} - goal: - properties: - web_workflow_json: - type: string - required: - - web_workflow_json - type: object - result: {} - required: - - goal - title: process_web_workflows参数 - type: object - type: UniLabJsonCommand - auto-skip_titration_steps: - feedback: {} - goal: {} - goal_default: - preintake_id: null - handles: {} - placeholder_keys: {} - result: {} - schema: - description: '' - properties: - feedback: {} - goal: - properties: - preintake_id: - type: string - required: - - preintake_id - type: object - result: {} - required: - - goal - title: skip_titration_steps参数 - type: object - type: UniLabJsonCommand - auto-wait_for_multiple_orders_and_get_reports: - feedback: {} - goal: {} - goal_default: - batch_create_result: null - check_interval: 10 - timeout: 7200 - handles: {} - placeholder_keys: {} - result: {} - schema: - description: '' - properties: - feedback: {} - goal: - properties: - batch_create_result: - type: string - check_interval: - default: 10 - type: integer - timeout: - default: 7200 - type: integer - required: [] - type: object - result: {} - required: - - goal - title: wait_for_multiple_orders_and_get_reports参数 - type: object - type: UniLabJsonCommand - auto-workflow_step_query: - feedback: {} - goal: {} - goal_default: - workflow_id: null - handles: {} - placeholder_keys: {} - result: {} - schema: - description: '' - properties: - feedback: {} - goal: - properties: - workflow_id: - type: string - required: - - workflow_id - type: object - result: {} - required: - - goal - title: workflow_step_query参数 - type: object - type: UniLabJsonCommand - drip_back: - feedback: {} - goal: - assign_material_name: assign_material_name - temperature: temperature - time: time - titration_type: titration_type - torque_variation: torque_variation - volume: volume - goal_default: - assign_material_name: '' - temperature: '' - time: '' - titration_type: '' - torque_variation: '' - volume: '' - handles: {} - result: {} - schema: - description: 滴回去 - properties: - feedback: {} - goal: - properties: - assign_material_name: - description: 物料名称(不能为空) - type: string - temperature: - description: 温度设定(°C) - type: string - time: - description: 观察时间(分钟) - type: string - titration_type: - description: 是否滴定(1=否, 2=是) - type: string - torque_variation: - description: 是否观察 (1=否, 2=是) - type: string - volume: - description: 分液公式(μL) - type: string - required: - - volume - - assign_material_name - - time - - torque_variation - - titration_type - - temperature - type: object - result: {} - required: - - goal - title: drip_back参数 - type: object - type: UniLabJsonCommand - extract_actuals_from_batch_reports: - feedback: {} - goal: - batch_reports_result: batch_reports_result - goal_default: - batch_reports_result: '' - handles: - input: - - data_key: batch_reports_result - data_source: handle - data_type: string - handler_key: BATCH_REPORTS_RESULT - io_type: source - label: Batch Order Completion Reports - output: - - data_key: return_info - data_source: executor - data_type: string - handler_key: ACTUALS_EXTRACTED - io_type: sink - label: Extracted Actuals - result: - return_info: return_info - schema: - description: 从批量任务完成报告中提取每个订单的实际加料量,输出extracted列表。 - properties: - feedback: {} - goal: - properties: - batch_reports_result: - description: 批量任务完成信息JSON字符串或对象,包含reports数组 - type: string - required: - - batch_reports_result - type: object - result: - properties: - return_info: - description: JSON字符串,包含actuals数组,每项含order_code, order_id, actualTargetWeigh, - actualVolume - type: string - required: - - return_info - title: extract_actuals_from_batch_reports结果 - type: object - required: - - goal - title: extract_actuals_from_batch_reports参数 - type: object - type: UniLabJsonCommand - liquid_feeding_beaker: - feedback: {} - goal: - assign_material_name: assign_material_name - temperature: temperature - time: time - titration_type: titration_type - torque_variation: torque_variation - volume: volume - goal_default: - assign_material_name: '' - temperature: '' - time: '' - titration_type: '' - torque_variation: '' - volume: '' - handles: {} - result: {} - schema: - description: 液体进料烧杯 - properties: - feedback: {} - goal: - properties: - assign_material_name: - description: 物料名称 - type: string - temperature: - description: 温度设定(°C) - type: string - time: - description: 观察时间(分钟) - type: string - titration_type: - description: 是否滴定(1=否, 2=是) - type: string - torque_variation: - description: 是否观察 (1=否, 2=是) - type: string - volume: - description: 分液公式(μL) - type: string - required: - - volume - - assign_material_name - - time - - torque_variation - - titration_type - - temperature - type: object - result: {} - required: - - goal - title: liquid_feeding_beaker参数 - type: object - type: UniLabJsonCommand - liquid_feeding_solvents: - feedback: {} - goal: - assign_material_name: assign_material_name - solvents: solvents - temperature: temperature - time: time - titration_type: titration_type - torque_variation: torque_variation - volume: volume - goal_default: - assign_material_name: '' - solvents: '' - temperature: '25.00' - time: '360' - titration_type: '1' - torque_variation: '2' - volume: '' - handles: - input: - - data_key: solvents - data_source: handle - data_type: object - handler_key: solvents - io_type: source - label: Solvents Data From Calculation Node - result: {} - schema: - description: 液体投料-溶剂。可以直接提供volume(μL),或通过solvents对象自动从additional_solvent(mL)计算volume。 - properties: - feedback: {} - goal: - properties: - assign_material_name: - description: 物料名称 - type: string - solvents: - description: '溶剂信息对象(可选),包含: additional_solvent(溶剂体积mL), total_liquid_volume(总液体体积mL)。如果提供,将自动计算volume' - type: string - temperature: - default: '25.00' - description: 温度设定(°C),默认25.00 - type: string - time: - default: '360' - description: 观察时间(分钟),默认360 - type: string - titration_type: - default: '1' - description: 是否滴定(1=否, 2=是),默认1 - type: string - torque_variation: - default: '2' - description: 是否观察 (1=否, 2=是),默认2 - type: string - volume: - description: 分液量(μL)。可直接提供,或通过solvents参数自动计算 - type: string - required: - - assign_material_name - type: object - result: {} - required: - - goal - title: liquid_feeding_solvents参数 - type: object - type: UniLabJsonCommand - liquid_feeding_titration: - feedback: {} - goal: - assign_material_name: assign_material_name - extracted_actuals: extracted_actuals - feeding_order_data: feeding_order_data - temperature: temperature - time: time - titration_type: titration_type - torque_variation: torque_variation - volume_formula: volume_formula - x_value: x_value - goal_default: - assign_material_name: '' - extracted_actuals: '' - feeding_order_data: '' - temperature: '25.00' - time: '90' - titration_type: '2' - torque_variation: '2' - volume_formula: '' - x_value: '' - handles: - input: - - data_key: extracted_actuals - data_source: handle - data_type: string - handler_key: ACTUALS_EXTRACTED - io_type: source - label: Extracted Actuals From Reports - - data_key: feeding_order_data - data_source: handle - data_type: object - handler_key: feeding_order - io_type: source - label: Feeding Order Data From Calculation Node - result: {} - schema: - description: 液体进料(滴定)。支持两种模式:1)直接提供volume_formula;2)自动计算-提供x_value+feeding_order_data+extracted_actuals,系统自动生成公式"1000*(m二酐-x)*V二酐滴定/m二酐滴定" - properties: - feedback: {} - goal: - properties: - assign_material_name: - description: 物料名称 - type: string - extracted_actuals: - description: 从报告提取的实际加料量JSON字符串,包含actualTargetWeigh(m二酐滴定)和actualVolume(V二酐滴定) - type: string - feeding_order_data: - description: 'feeding_order JSON对象,用于获取m二酐值(type为main_anhydride的amount)。示例: - {"feeding_order": [{"type": "main_anhydride", "amount": 1.915}]}' - type: string - temperature: - default: '25.00' - description: 温度设定(°C),默认25.00 - type: string - time: - default: '90' - description: 观察时间(分钟),默认90 - type: string - titration_type: - default: '2' - description: 是否滴定(1=否, 2=是),默认2 - type: string - torque_variation: - default: '2' - description: 是否观察 (1=否, 2=是),默认2 - type: string - volume_formula: - description: 分液公式(μL)。可直接提供固定公式,或留空由系统根据x_value、feeding_order_data、extracted_actuals自动生成 - type: string - x_value: - description: 公式中的x值,手工输入,格式为"{{1-2-3}}"(包含双花括号)。用于自动公式计算 - type: string - required: - - assign_material_name - type: object - result: {} - required: - - goal - title: liquid_feeding_titration参数 - type: object - type: UniLabJsonCommand - liquid_feeding_vials_non_titration: - feedback: {} - goal: - assign_material_name: assign_material_name - temperature: temperature - time: time - titration_type: titration_type - torque_variation: torque_variation - volume_formula: volume_formula - goal_default: - assign_material_name: '' - temperature: '' - time: '' - titration_type: '' - torque_variation: '' - volume_formula: '' - handles: {} - result: {} - schema: - description: 液体进料小瓶(非滴定) - properties: - feedback: {} - goal: - properties: - assign_material_name: - description: 物料名称 - type: string - temperature: - description: 温度设定(°C) - type: string - time: - description: 观察时间(分钟) - type: string - titration_type: - description: 是否滴定(1=否, 2=是) - type: string - torque_variation: - description: 是否观察 (1=否, 2=是) - type: string - volume_formula: - description: 分液公式(μL) - type: string - required: - - volume_formula - - assign_material_name - - time - - torque_variation - - titration_type - - temperature - type: object - result: {} - required: - - goal - title: liquid_feeding_vials_non_titration参数 - type: object - type: UniLabJsonCommand - process_and_execute_workflow: - feedback: {} - goal: - task_name: task_name - workflow_name: workflow_name - goal_default: - task_name: '' - workflow_name: '' - handles: {} - result: {} - schema: - description: 处理并执行工作流 - properties: - feedback: {} - goal: - properties: - task_name: - description: 任务名称 - type: string - workflow_name: - description: 工作流名称 - type: string - required: - - workflow_name - - task_name - type: object - result: {} - required: - - goal - title: process_and_execute_workflow参数 - type: object - type: UniLabJsonCommand - reactor_taken_in: - feedback: {} - goal: - assign_material_name: assign_material_name - cutoff: cutoff - temperature: temperature - goal_default: - assign_material_name: '' - cutoff: '' - temperature: '' - handles: {} - result: {} - schema: - description: 反应器放入 - 将反应器放入工作站,配置物料名称、粘度上限和温度参数 - properties: - feedback: {} - goal: - properties: - assign_material_name: - description: 物料名称 - type: string - cutoff: - description: 粘度上限 - type: string - temperature: - description: 温度设定(°C) - type: string - required: - - cutoff - - temperature - - assign_material_name - type: object - result: {} - required: - - goal - title: reactor_taken_in参数 - type: object - type: UniLabJsonCommand - reactor_taken_out: - feedback: {} - goal: {} - goal_default: {} - handles: {} - result: {} - schema: - description: 反应器取出 - 从工作站中取出反应器,无需参数的简单操作 - properties: - feedback: {} - goal: - properties: {} - required: [] - type: object - result: - properties: - code: - description: 操作结果代码(1表示成功,0表示失败) - type: integer - return_info: - description: 操作结果详细信息 - type: string - type: object - required: - - goal - title: reactor_taken_out参数 - type: object - type: UniLabJsonCommand - solid_feeding_vials: - feedback: {} - goal: - assign_material_name: assign_material_name - material_id: material_id - temperature: temperature - time: time - torque_variation: torque_variation - goal_default: - assign_material_name: '' - material_id: '' - temperature: '' - time: '' - torque_variation: '' - handles: {} - result: {} - schema: - description: 固体进料小瓶 - 通过小瓶向反应器中添加固体物料,支持多种粉末类型(盐、面粉、BTDA) - properties: - feedback: {} - goal: - properties: - assign_material_name: - description: 物料名称(用于获取试剂瓶位ID) - type: string - material_id: - description: 粉末类型ID,1=盐(21分钟),2=面粉(27分钟),3=BTDA(38分钟) - type: string - temperature: - description: 温度设定(°C) - type: string - time: - description: 观察时间(分钟) - type: string - torque_variation: - description: 是否观察 (1=否, 2=是) - type: string - required: - - assign_material_name - - material_id - - time - - torque_variation - - temperature - type: object - result: {} - required: - - goal - title: solid_feeding_vials参数 - type: object - type: UniLabJsonCommand - module: unilabos.devices.workstation.bioyond_studio.reaction_station:BioyondReactionStation - protocol_type: [] - status_types: - workflow_sequence: String - type: python - config_info: [] - description: Bioyond反应站 - handles: [] - icon: reaction_station.webp - init_param_schema: - config: - properties: - config: - type: object - deck: - type: string - protocol_type: - type: string - required: [] - type: object - data: - properties: - workflow_sequence: - items: - type: string - type: array - required: - - workflow_sequence - type: object - version: 1.0.0 -reaction_station.reactor: - category: - - reactor - - reaction_station_bioyond - class: - action_value_mappings: - auto-update_metrics: - feedback: {} - goal: {} - goal_default: - payload: null - handles: {} - placeholder_keys: {} - result: {} - schema: - description: '' - properties: - feedback: {} - goal: - properties: - payload: - type: object - required: - - payload - type: object - result: {} - required: - - goal - title: update_metrics参数 - type: object - type: UniLabJsonCommand - module: unilabos.devices.workstation.bioyond_studio.reaction_station:BioyondReactor - status_types: {} - type: python - config_info: [] - description: 反应站子设备-反应器 - handles: [] - icon: reaction_station.webp - init_param_schema: - config: - properties: - config: - type: object - deck: - type: string - protocol_type: - type: string - required: [] - type: object - data: - properties: {} - required: [] - type: object - version: 1.0.0 diff --git a/unilabos/registry/devices/robot_agv.yaml b/unilabos/registry/devices/robot_agv.yaml deleted file mode 100644 index 9f45bd5e..00000000 --- a/unilabos/registry/devices/robot_agv.yaml +++ /dev/null @@ -1,110 +0,0 @@ -agv.SEER: - category: - - robot_agv - class: - action_value_mappings: - auto-send: - feedback: {} - goal: {} - goal_default: - cmd: null - ex_data: '' - obj: receive_socket - handles: {} - placeholder_keys: {} - result: {} - schema: - description: AGV底层通信命令发送函数。通过TCP socket连接向AGV发送底层控制命令,支持pose(位置)、status(状态)、nav(导航)等命令类型。用于获取AGV当前位置坐标、运行状态或发送导航指令。该函数封装了AGV的通信协议,将命令转换为十六进制数据包并处理响应解析。 - properties: - feedback: {} - goal: - properties: - cmd: - type: string - ex_data: - default: '' - type: string - obj: - default: receive_socket - type: string - required: - - cmd - type: object - result: {} - required: - - goal - title: send参数 - type: object - type: UniLabJsonCommand - send_nav_task: - feedback: {} - goal: - command: command - goal_default: - command: '' - handles: {} - result: - success: success - schema: - description: '' - properties: - feedback: - properties: - status: - type: string - required: - - status - title: SendCmd_Feedback - type: object - goal: - properties: - command: - type: string - required: - - command - title: SendCmd_Goal - type: object - result: - properties: - return_info: - type: string - success: - type: boolean - required: - - return_info - - success - title: SendCmd_Result - type: object - required: - - goal - title: SendCmd - type: object - type: SendCmd - module: unilabos.devices.agv.agv_navigator:AgvNavigator - status_types: - pose: list - status: str - type: python - config_info: [] - description: SEER AGV自动导引车设备,用于实验室内物料和设备的自主移动运输。该AGV通过TCP socket与导航系统通信,具备精确的定位和路径规划能力。支持实时位置监控、状态查询和导航任务执行,可在预设的实验室环境中自主移动至指定位置。适用于样品运输、设备转移、多工位协作等实验室自动化物流场景。 - handles: [] - icon: '' - init_param_schema: - config: - properties: - host: - type: string - required: - - host - type: object - data: - properties: - pose: - type: array - status: - type: string - required: - - pose - - status - type: object - version: 1.0.0 diff --git a/unilabos/registry/devices/robot_arm.yaml b/unilabos/registry/devices/robot_arm.yaml deleted file mode 100644 index 147eab4d..00000000 --- a/unilabos/registry/devices/robot_arm.yaml +++ /dev/null @@ -1,806 +0,0 @@ -robotic_arm.SCARA_with_slider.moveit.virtual: - category: - - robot_arm - class: - action_value_mappings: - auto-check_tf_update_actions: - feedback: {} - goal: {} - goal_default: {} - handles: {} - placeholder_keys: {} - result: {} - schema: - description: check_tf_update_actions的参数schema - properties: - feedback: {} - goal: - properties: {} - required: [] - type: object - result: {} - required: - - goal - title: check_tf_update_actions参数 - type: object - type: UniLabJsonCommand - auto-moveit_joint_task: - feedback: {} - goal: {} - goal_default: - joint_names: null - joint_positions: null - move_group: null - retry: 10 - speed: 1 - handles: {} - placeholder_keys: {} - result: {} - schema: - description: moveit_joint_task的参数schema - properties: - feedback: {} - goal: - properties: - joint_names: - type: string - joint_positions: - type: string - move_group: - type: string - retry: - default: 10 - type: string - speed: - default: 1 - type: string - required: - - move_group - - joint_positions - type: object - result: {} - required: - - goal - title: moveit_joint_task参数 - type: object - type: UniLabJsonCommand - auto-moveit_task: - feedback: {} - goal: {} - goal_default: - cartesian: false - move_group: null - offsets: - - 0 - - 0 - - 0 - position: null - quaternion: null - retry: 10 - speed: 1 - target_link: null - handles: {} - placeholder_keys: {} - result: {} - schema: - description: moveit_task的参数schema - properties: - feedback: {} - goal: - properties: - cartesian: - default: false - type: string - move_group: - type: string - offsets: - default: - - 0 - - 0 - - 0 - type: string - position: - type: string - quaternion: - type: string - retry: - default: 10 - type: string - speed: - default: 1 - type: string - target_link: - type: string - required: - - move_group - - position - - quaternion - type: object - result: {} - required: - - goal - title: moveit_task参数 - type: object - type: UniLabJsonCommand - auto-post_init: - feedback: {} - goal: {} - goal_default: - ros_node: null - handles: {} - placeholder_keys: {} - result: {} - schema: - description: post_init的参数schema - properties: - feedback: {} - goal: - properties: - ros_node: - type: object - required: - - ros_node - type: object - result: {} - required: - - goal - title: post_init参数 - type: object - type: UniLabJsonCommand - auto-resource_manager: - feedback: {} - goal: {} - goal_default: - parent_link: null - resource: null - handles: {} - placeholder_keys: {} - result: {} - schema: - description: resource_manager的参数schema - properties: - feedback: {} - goal: - properties: - parent_link: - type: string - resource: - type: string - required: - - resource - - parent_link - type: object - result: {} - required: - - goal - title: resource_manager参数 - type: object - type: UniLabJsonCommand - auto-wait_for_resource_action: - feedback: {} - goal: {} - goal_default: {} - handles: {} - placeholder_keys: {} - result: {} - schema: - description: wait_for_resource_action的参数schema - properties: - feedback: {} - goal: - properties: {} - required: [] - type: object - result: {} - required: - - goal - title: wait_for_resource_action参数 - type: object - type: UniLabJsonCommand - pick_and_place: - feedback: {} - goal: - command: command - goal_default: - command: '' - handles: {} - result: {} - schema: - description: '' - properties: - feedback: - properties: - status: - type: string - required: - - status - title: SendCmd_Feedback - type: object - goal: - properties: - command: - type: string - required: - - command - title: SendCmd_Goal - type: object - result: - properties: - return_info: - type: string - success: - type: boolean - required: - - return_info - - success - title: SendCmd_Result - type: object - required: - - goal - title: SendCmd - type: object - type: SendCmd - set_position: - feedback: {} - goal: - command: command - goal_default: - command: '' - handles: {} - result: {} - schema: - description: '' - properties: - feedback: - properties: - status: - type: string - required: - - status - title: SendCmd_Feedback - type: object - goal: - properties: - command: - type: string - required: - - command - title: SendCmd_Goal - type: object - result: - properties: - return_info: - type: string - success: - type: boolean - required: - - return_info - - success - title: SendCmd_Result - type: object - required: - - goal - title: SendCmd - type: object - type: SendCmd - set_status: - feedback: {} - goal: - command: command - goal_default: - command: '' - handles: {} - result: {} - schema: - description: '' - properties: - feedback: - properties: - status: - type: string - required: - - status - title: SendCmd_Feedback - type: object - goal: - properties: - command: - type: string - required: - - command - title: SendCmd_Goal - type: object - result: - properties: - return_info: - type: string - success: - type: boolean - required: - - return_info - - success - title: SendCmd_Result - type: object - required: - - goal - title: SendCmd - type: object - type: SendCmd - module: unilabos.devices.ros_dev.moveit_interface:MoveitInterface - status_types: {} - type: python - config_info: [] - description: 机械臂与滑块运动系统,基于MoveIt2运动规划框架的多自由度机械臂控制设备。该系统集成机械臂和线性滑块,通过ROS2和MoveIt2实现精确的轨迹规划和协调运动控制。支持笛卡尔空间和关节空间的运动规划、碰撞检测、逆运动学求解等功能。适用于复杂的pick-and-place操作、精密装配、多工位协作等需要高精度多轴协调运动的实验室自动化应用。 - handles: [] - icon: '' - init_param_schema: - config: - properties: - device_config: - type: string - joint_poses: - type: string - moveit_type: - type: string - rotation: - type: string - required: - - moveit_type - - joint_poses - type: object - data: - properties: {} - required: [] - type: object - model: - mesh: arm_slider - path: https://uni-lab.oss-cn-zhangjiakou.aliyuncs.com/uni-lab/devices/arm_slider/macro_device.xacro - type: device - version: 1.0.0 -robotic_arm.UR: - category: - - robot_arm - class: - action_value_mappings: - auto-arm_init: - feedback: {} - goal: {} - goal_default: {} - handles: {} - placeholder_keys: {} - result: {} - schema: - description: 机械臂初始化函数。执行UR机械臂的完整初始化流程,包括上电、释放制动器、解除保护停止状态等。该函数确保机械臂从安全停止状态恢复到可操作状态,是机械臂使用前的必要步骤。初始化完成后机械臂将处于就绪状态,可以接收后续的运动指令。 - properties: - feedback: {} - goal: - properties: {} - required: [] - type: object - result: {} - required: - - goal - title: arm_init参数 - type: object - type: UniLabJsonCommand - auto-load_pose_data: - feedback: {} - goal: {} - goal_default: - data: null - handles: {} - placeholder_keys: {} - result: {} - schema: - description: 从JSON字符串加载位置数据函数。接收包含机械臂位置信息的JSON格式字符串,解析并存储位置数据供后续运动任务使用。位置数据通常包含多个预定义的工作位置坐标,用于实现精确的多点运动控制。适用于动态配置机械臂工作位置的场景。 - properties: - feedback: {} - goal: - properties: - data: - type: string - required: - - data - type: object - result: {} - required: - - goal - title: load_pose_data参数 - type: object - type: UniLabJsonCommand - auto-load_pose_file: - feedback: {} - goal: {} - goal_default: - file: null - handles: {} - placeholder_keys: {} - result: {} - schema: - description: 从文件加载位置数据函数。读取指定的JSON文件并加载其中的机械臂位置信息。该函数支持从外部配置文件中获取预设的工作位置,便于位置数据的管理和重用。适用于需要从固定配置文件中读取复杂位置序列的应用场景。 - properties: - feedback: {} - goal: - properties: - file: - type: string - required: - - file - type: object - result: {} - required: - - goal - title: load_pose_file参数 - type: object - type: UniLabJsonCommand - auto-reload_pose: - feedback: {} - goal: {} - goal_default: {} - handles: {} - placeholder_keys: {} - result: {} - schema: - description: 重新加载位置数据函数。重新读取并解析之前设置的位置文件,更新内存中的位置数据。该函数用于在位置文件被修改后刷新机械臂的位置配置,无需重新初始化整个系统。适用于动态更新机械臂工作位置的场景。 - properties: - feedback: {} - goal: - properties: {} - required: [] - type: object - result: {} - required: - - goal - title: reload_pose参数 - type: object - type: UniLabJsonCommand - move_pos_task: - feedback: {} - goal: - command: command - goal_default: - command: '' - handles: {} - result: - success: success - schema: - description: '' - properties: - feedback: - properties: - status: - type: string - required: - - status - title: SendCmd_Feedback - type: object - goal: - properties: - command: - type: string - required: - - command - title: SendCmd_Goal - type: object - result: - properties: - return_info: - type: string - success: - type: boolean - required: - - return_info - - success - title: SendCmd_Result - type: object - required: - - goal - title: SendCmd - type: object - type: SendCmd - module: unilabos.devices.agv.ur_arm_task:UrArmTask - status_types: - arm_pose: list - arm_status: str - gripper_pose: float - gripper_status: str - type: python - config_info: [] - description: Universal Robots机械臂设备,用于实验室精密操作和自动化作业。该设备集成了UR机械臂本体、Robotiq夹爪和RTDE通信接口,支持六自由度精确运动控制和力觉反馈。具备实时位置监控、状态反馈、轨迹规划等功能,可执行复杂的多点位运动任务。适用于样品抓取、精密装配、实验器具操作等需要高精度和高重复性的实验室自动化场景。 - handles: [] - icon: '' - init_param_schema: - config: - properties: - host: - type: string - retry: - default: 30 - type: string - required: - - host - type: object - data: - properties: - arm_pose: - type: array - arm_status: - type: string - gripper_pose: - type: number - gripper_status: - type: string - required: - - arm_pose - - gripper_pose - - arm_status - - gripper_status - type: object - version: 1.0.0 -robotic_arm.elite: - category: - - robot_arm - class: - action_value_mappings: - auto-close: - feedback: {} - goal: {} - goal_default: {} - handles: {} - placeholder_keys: {} - result: {} - schema: - description: '' - properties: - feedback: {} - goal: - properties: {} - required: [] - type: object - result: {} - required: - - goal - title: close参数 - type: object - type: UniLabJsonCommand - auto-modbus_close: - feedback: {} - goal: {} - goal_default: {} - handles: {} - placeholder_keys: {} - result: {} - schema: - description: '' - properties: - feedback: {} - goal: - properties: {} - required: [] - type: object - result: {} - required: - - goal - title: modbus_close参数 - type: object - type: UniLabJsonCommand - auto-modbus_read_holding_registers: - feedback: {} - goal: {} - goal_default: - quantity: null - start_addr: null - unit_id: null - handles: {} - placeholder_keys: {} - result: {} - schema: - description: '' - properties: - feedback: {} - goal: - properties: - quantity: - type: string - start_addr: - type: string - unit_id: - type: string - required: - - unit_id - - start_addr - - quantity - type: object - result: {} - required: - - goal - title: modbus_read_holding_registers参数 - type: object - type: UniLabJsonCommand - auto-modbus_task: - feedback: {} - goal: {} - goal_default: - job_id: null - handles: {} - placeholder_keys: {} - result: {} - schema: - description: '' - properties: - feedback: {} - goal: - properties: - job_id: - type: string - required: - - job_id - type: object - result: {} - required: - - goal - title: modbus_task参数 - type: object - type: UniLabJsonCommand - auto-modbus_write_single_register: - feedback: {} - goal: {} - goal_default: - register_addr: null - unit_id: null - value: null - handles: {} - placeholder_keys: {} - result: {} - schema: - description: '' - properties: - feedback: {} - goal: - properties: - register_addr: - type: string - unit_id: - type: string - value: - type: string - required: - - unit_id - - register_addr - - value - type: object - result: {} - required: - - goal - title: modbus_write_single_register参数 - type: object - type: UniLabJsonCommand - auto-parse_success_response: - feedback: {} - goal: {} - goal_default: - response: null - handles: {} - placeholder_keys: {} - result: {} - schema: - description: '' - properties: - feedback: {} - goal: - properties: - response: - type: string - required: - - response - type: object - result: {} - required: - - goal - title: parse_success_response参数 - type: object - type: UniLabJsonCommand - auto-send_command: - feedback: {} - goal: {} - goal_default: - command: null - handles: {} - placeholder_keys: {} - result: {} - schema: - description: '' - properties: - feedback: {} - goal: - properties: - command: - type: string - required: - - command - type: object - result: {} - required: - - goal - title: send_command参数 - type: object - type: UniLabJsonCommand - modbus_task_cmd: - feedback: {} - goal: - command: command - goal_default: - command: '' - handles: {} - result: {} - schema: - description: '' - properties: - feedback: - properties: - status: - type: string - required: - - status - title: SendCmd_Feedback - type: object - goal: - properties: - command: - type: string - required: - - command - title: SendCmd_Goal - type: object - result: - properties: - return_info: - type: string - success: - type: boolean - required: - - return_info - - success - title: SendCmd_Result - type: object - required: - - goal - title: SendCmd - type: object - type: SendCmd - module: unilabos.devices.arm.elite_robot:EliteRobot - status_types: - actual_joint_positions: String - arm_pose: String - type: python - config_info: [] - description: Elite robot arm - handles: [] - icon: '' - init_param_schema: - config: - properties: - device_id: - type: string - host: - type: string - required: - - device_id - - host - type: object - data: - properties: - actual_joint_positions: - type: string - arm_pose: - items: - type: number - type: array - required: - - arm_pose - - actual_joint_positions - type: object - model: - mesh: elite_robot - type: device - version: 1.0.0 diff --git a/unilabos/registry/devices/robot_gripper.yaml b/unilabos/registry/devices/robot_gripper.yaml deleted file mode 100644 index 295c48a0..00000000 --- a/unilabos/registry/devices/robot_gripper.yaml +++ /dev/null @@ -1,611 +0,0 @@ -gripper.misumi_rz: - category: - - robot_gripper - class: - action_value_mappings: - auto-data_loop: - feedback: {} - goal: {} - goal_default: {} - handles: {} - placeholder_keys: {} - result: {} - schema: - description: data_loop的参数schema - properties: - feedback: {} - goal: - properties: {} - required: [] - type: object - result: {} - required: - - goal - title: data_loop参数 - type: object - type: UniLabJsonCommand - auto-data_reader: - feedback: {} - goal: {} - goal_default: {} - handles: {} - placeholder_keys: {} - result: {} - schema: - description: data_reader的参数schema - properties: - feedback: {} - goal: - properties: {} - required: [] - type: object - result: {} - required: - - goal - title: data_reader参数 - type: object - type: UniLabJsonCommand - auto-gripper_move: - feedback: {} - goal: {} - goal_default: - force: null - pos: null - speed: null - handles: {} - placeholder_keys: {} - result: {} - schema: - description: 夹爪抓取运动控制函数。控制夹爪的开合运动,支持位置、速度、力矩的精确设定。位置参数控制夹爪开合程度,速度参数控制运动快慢,力矩参数控制夹持强度。该函数提供安全的力控制,避免损坏被抓取物体,适用于各种形状和材质的物品抓取。 - properties: - feedback: {} - goal: - properties: - force: - type: string - pos: - type: string - speed: - type: string - required: - - pos - - speed - - force - type: object - result: {} - required: - - goal - title: gripper_move参数 - type: object - type: UniLabJsonCommand - auto-init_gripper: - feedback: {} - goal: {} - goal_default: {} - handles: {} - placeholder_keys: {} - result: {} - schema: - description: 夹爪初始化函数。执行Misumi RZ夹爪的完整初始化流程,包括Modbus通信建立、电机参数配置、传感器校准等。该函数确保夹爪系统从安全状态恢复到可操作状态,是夹爪使用前的必要步骤。初始化完成后夹爪将处于就绪状态,可接收抓取和旋转指令。 - properties: - feedback: {} - goal: - properties: {} - required: [] - type: object - result: {} - required: - - goal - title: init_gripper参数 - type: object - type: UniLabJsonCommand - auto-modbus_crc: - feedback: {} - goal: {} - goal_default: - data: null - handles: {} - placeholder_keys: {} - result: {} - schema: - description: modbus_crc的参数schema - properties: - feedback: {} - goal: - properties: - data: - type: string - required: - - data - type: object - result: {} - required: - - goal - title: modbus_crc参数 - type: object - type: UniLabJsonCommand - auto-move_and_rotate: - feedback: {} - goal: {} - goal_default: - grasp_F: null - grasp_pos: null - grasp_v: null - spin_F: null - spin_pos: null - spin_v: null - handles: {} - placeholder_keys: {} - result: {} - schema: - description: move_and_rotate的参数schema - properties: - feedback: {} - goal: - properties: - grasp_F: - type: string - grasp_pos: - type: string - grasp_v: - type: string - spin_F: - type: string - spin_pos: - type: string - spin_v: - type: string - required: - - spin_pos - - grasp_pos - - spin_v - - grasp_v - - spin_F - - grasp_F - type: object - result: {} - required: - - goal - title: move_and_rotate参数 - type: object - type: UniLabJsonCommand - auto-node_gripper_move: - feedback: {} - goal: {} - goal_default: - cmd: null - handles: {} - placeholder_keys: {} - result: {} - schema: - description: 节点夹爪移动任务函数。接收逗号分隔的命令字符串,解析位置、速度、力矩参数并执行夹爪抓取动作。该函数等待运动完成并返回执行结果,提供同步的运动控制接口。适用于需要可靠完成确认的精密抓取操作。 - properties: - feedback: {} - goal: - properties: - cmd: - type: string - required: - - cmd - type: object - result: {} - required: - - goal - title: node_gripper_move参数 - type: object - type: UniLabJsonCommand - auto-node_rotate_move: - feedback: {} - goal: {} - goal_default: - cmd: null - handles: {} - placeholder_keys: {} - result: {} - schema: - description: 节点旋转移动任务函数。接收逗号分隔的命令字符串,解析角度、速度、力矩参数并执行夹爪旋转动作。该函数等待旋转完成并返回执行结果,提供同步的旋转控制接口。适用于需要精确角度定位和完成确认的旋转操作。 - properties: - feedback: {} - goal: - properties: - cmd: - type: string - required: - - cmd - type: object - result: {} - required: - - goal - title: node_rotate_move参数 - type: object - type: UniLabJsonCommand - auto-read_address: - feedback: {} - goal: {} - goal_default: - address: null - data_len: null - id: null - handles: {} - placeholder_keys: {} - result: {} - schema: - description: read_address的参数schema - properties: - feedback: {} - goal: - properties: - address: - type: string - data_len: - type: string - id: - type: string - required: - - id - - address - - data_len - type: object - result: {} - required: - - goal - title: read_address参数 - type: object - type: UniLabJsonCommand - auto-rotate_move_abs: - feedback: {} - goal: {} - goal_default: - force: null - pos: null - speed: null - handles: {} - placeholder_keys: {} - result: {} - schema: - description: 夹爪绝对位置旋转控制函数。控制夹爪主轴旋转到指定的绝对角度位置,支持360度连续旋转。位置参数指定目标角度,速度参数控制旋转速率,力矩参数设定旋转阻力限制。该函数提供高精度的角度定位,适用于需要精确方向控制的操作场景。 - properties: - feedback: {} - goal: - properties: - force: - type: string - pos: - type: string - speed: - type: string - required: - - pos - - speed - - force - type: object - result: {} - required: - - goal - title: rotate_move_abs参数 - type: object - type: UniLabJsonCommand - auto-send_cmd: - feedback: {} - goal: {} - goal_default: - address: null - data: null - fun: null - id: null - handles: {} - placeholder_keys: {} - result: {} - schema: - description: send_cmd的参数schema - properties: - feedback: {} - goal: - properties: - address: - type: string - data: - type: string - fun: - type: string - id: - type: string - required: - - id - - fun - - address - - data - type: object - result: {} - required: - - goal - title: send_cmd参数 - type: object - type: UniLabJsonCommand - auto-wait_for_gripper: - feedback: {} - goal: {} - goal_default: {} - handles: {} - placeholder_keys: {} - result: {} - schema: - description: wait_for_gripper的参数schema - properties: - feedback: {} - goal: - properties: {} - required: [] - type: object - result: {} - required: - - goal - title: wait_for_gripper参数 - type: object - type: UniLabJsonCommand - auto-wait_for_gripper_init: - feedback: {} - goal: {} - goal_default: {} - handles: {} - placeholder_keys: {} - result: {} - schema: - description: wait_for_gripper_init的参数schema - properties: - feedback: {} - goal: - properties: {} - required: [] - type: object - result: {} - required: - - goal - title: wait_for_gripper_init参数 - type: object - type: UniLabJsonCommand - auto-wait_for_rotate: - feedback: {} - goal: {} - goal_default: {} - handles: {} - placeholder_keys: {} - result: {} - schema: - description: wait_for_rotate的参数schema - properties: - feedback: {} - goal: - properties: {} - required: [] - type: object - result: {} - required: - - goal - title: wait_for_rotate参数 - type: object - type: UniLabJsonCommand - execute_command_from_outer: - feedback: {} - goal: - command: command - goal_default: - command: '' - handles: {} - result: - success: success - schema: - description: '' - properties: - feedback: - properties: - status: - type: string - required: - - status - title: SendCmd_Feedback - type: object - goal: - properties: - command: - type: string - required: - - command - title: SendCmd_Goal - type: object - result: - properties: - return_info: - type: string - success: - type: boolean - required: - - return_info - - success - title: SendCmd_Result - type: object - required: - - goal - title: SendCmd - type: object - type: SendCmd - module: unilabos.devices.motor.Grasp:EleGripper - status_types: - status: str - type: python - config_info: [] - description: Misumi RZ系列电子夹爪设备,集成旋转和抓取双重功能的精密夹爪系统。该设备通过Modbus RTU协议与控制系统通信,支持位置、速度、力矩的精确控制。具备高精度的位置反馈、实时状态监控和故障检测功能。适用于需要精密抓取和旋转操作的实验室自动化场景,如样品管理、精密装配、器件操作等应用。 - handles: [] - icon: '' - init_param_schema: - config: - properties: - baudrate: - default: 115200 - type: string - id: - default: 9 - type: string - port: - type: string - pos_error: - default: -11 - type: string - required: - - port - type: object - data: - properties: - status: - type: string - required: - - status - type: object - version: 1.0.0 -gripper.mock: - category: - - robot_gripper - class: - action_value_mappings: - auto-edit_id: - feedback: {} - goal: {} - goal_default: - params: '{}' - resource: - Gripper1: {} - wf_name: gripper_run - handles: {} - placeholder_keys: {} - result: {} - schema: - description: 模拟夹爪资源ID编辑函数。用于测试和演示资源管理功能,模拟修改夹爪资源的标识信息。该函数接收工作流名称、参数和资源对象,模拟真实的资源更新过程并返回修改后的资源信息。适用于系统测试和开发调试场景。 - properties: - feedback: {} - goal: - properties: - params: - default: '{}' - type: string - resource: - default: - Gripper1: {} - type: object - wf_name: - default: gripper_run - type: string - required: [] - type: object - result: {} - required: - - goal - title: edit_id参数 - type: object - type: UniLabJsonCommand - push_to: - feedback: - effort: torque - position: position - goal: - command.max_effort: torque - command.position: position - goal_default: - command: - max_effort: 0.0 - position: 0.0 - handles: {} - result: - effort: torque - position: position - schema: - description: '' - properties: - feedback: - properties: - effort: - type: number - position: - type: number - reached_goal: - type: boolean - stalled: - type: boolean - required: - - position - - effort - - stalled - - reached_goal - title: GripperCommand_Feedback - type: object - goal: - properties: - command: - properties: - max_effort: - type: number - position: - type: number - required: - - position - - max_effort - title: command - type: object - required: - - command - title: GripperCommand_Goal - type: object - result: - properties: - effort: - type: number - position: - type: number - reached_goal: - type: boolean - stalled: - type: boolean - required: - - position - - effort - - stalled - - reached_goal - title: GripperCommand_Result - type: object - required: - - goal - title: GripperCommand - type: object - type: GripperCommand - module: unilabos.devices.gripper.mock:MockGripper - status_types: - position: float - status: str - torque: float - velocity: float - type: python - config_info: [] - description: 模拟夹爪设备,用于系统测试和开发调试。该设备模拟真实夹爪的位置、速度、力矩等物理特性,支持虚拟的抓取和移动操作。提供与真实夹爪相同的接口和状态反馈,便于在没有实际硬件的情况下进行系统集成测试和算法验证。适用于软件开发、系统调试和培训演示等场景。 - handles: [] - icon: '' - init_param_schema: - config: - properties: {} - required: [] - type: object - data: - properties: - position: - type: number - status: - type: string - torque: - type: number - velocity: - type: number - required: - - position - - velocity - - torque - - status - type: object - version: 1.0.0 diff --git a/unilabos/registry/devices/robot_linear_motion.yaml b/unilabos/registry/devices/robot_linear_motion.yaml deleted file mode 100644 index 0f8506e9..00000000 --- a/unilabos/registry/devices/robot_linear_motion.yaml +++ /dev/null @@ -1,1007 +0,0 @@ -linear_motion.grbl: - category: - - robot_linear_motion - class: - action_value_mappings: - auto-initialize: - feedback: {} - goal: {} - goal_default: {} - handles: {} - placeholder_keys: {} - result: {} - schema: - description: CNC设备初始化函数。执行Grbl CNC的完整初始化流程,包括归零操作、轴校准和状态复位。该函数将所有轴移动到原点位置(0,0,0),确保设备处于已知的参考状态。初始化完成后设备进入空闲状态,可接收后续的运动指令。 - properties: - feedback: {} - goal: - properties: {} - required: [] - type: object - result: {} - required: - - goal - title: initialize参数 - type: object - type: UniLabJsonCommand - auto-set_position: - feedback: {} - goal: {} - goal_default: - position: null - handles: {} - placeholder_keys: {} - result: {} - schema: - description: CNC绝对位置设定函数。控制CNC设备移动到指定的三维坐标位置(x,y,z)。该函数支持安全限位检查,防止超出设备工作范围。移动过程中会监控设备状态,确保安全到达目标位置。适用于精确定位和轨迹控制操作。 - properties: - feedback: {} - goal: - properties: - position: - type: object - required: - - position - type: object - result: {} - required: - - goal - title: set_position参数 - type: object - type: UniLabJsonCommand - auto-stop_operation: - feedback: {} - goal: {} - goal_default: {} - handles: {} - placeholder_keys: {} - result: {} - schema: - description: CNC操作停止函数。立即停止当前正在执行的所有CNC运动,包括轴移动和主轴旋转。该函数用于紧急停止或任务中断,确保设备和工件的安全。停止后设备将保持当前位置,等待新的指令。 - properties: - feedback: {} - goal: - properties: {} - required: [] - type: object - result: {} - required: - - goal - title: stop_operation参数 - type: object - type: UniLabJsonCommand - auto-wait_error: - feedback: {} - goal: {} - goal_default: {} - handles: {} - placeholder_keys: {} - result: {} - schema: - description: wait_error的参数schema - properties: - feedback: {} - goal: - properties: {} - required: [] - type: object - result: {} - required: - - goal - title: wait_error参数 - type: object - type: UniLabJsonCommandAsync - move_through_points: - feedback: - current_pose.pose.position: position - estimated_time_remaining.sec: time_remaining - navigation_time.sec: time_spent - number_of_poses_remaining: pose_number_remaining - goal: - poses[].pose.position: positions[] - goal_default: - behavior_tree: '' - poses: - - header: - frame_id: '' - stamp: - nanosec: 0 - sec: 0 - pose: - orientation: - w: 1.0 - x: 0.0 - y: 0.0 - z: 0.0 - position: - x: 0.0 - y: 0.0 - z: 0.0 - handles: {} - result: {} - schema: - description: '' - properties: - feedback: - properties: - current_pose: - properties: - header: - properties: - frame_id: - type: string - stamp: - properties: - nanosec: - maximum: 4294967295 - minimum: 0 - type: integer - sec: - maximum: 2147483647 - minimum: -2147483648 - type: integer - required: - - sec - - nanosec - title: stamp - type: object - required: - - stamp - - frame_id - title: header - type: object - pose: - properties: - orientation: - properties: - w: - type: number - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - - w - title: orientation - type: object - position: - properties: - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - title: position - type: object - required: - - position - - orientation - title: pose - type: object - required: - - header - - pose - title: current_pose - type: object - distance_remaining: - type: number - estimated_time_remaining: - properties: - nanosec: - maximum: 4294967295 - minimum: 0 - type: integer - sec: - maximum: 2147483647 - minimum: -2147483648 - type: integer - required: - - sec - - nanosec - title: estimated_time_remaining - type: object - navigation_time: - properties: - nanosec: - maximum: 4294967295 - minimum: 0 - type: integer - sec: - maximum: 2147483647 - minimum: -2147483648 - type: integer - required: - - sec - - nanosec - title: navigation_time - type: object - number_of_poses_remaining: - maximum: 32767 - minimum: -32768 - type: integer - number_of_recoveries: - maximum: 32767 - minimum: -32768 - type: integer - required: - - current_pose - - navigation_time - - estimated_time_remaining - - number_of_recoveries - - distance_remaining - - number_of_poses_remaining - title: NavigateThroughPoses_Feedback - type: object - goal: - properties: - behavior_tree: - type: string - poses: - items: - properties: - header: - properties: - frame_id: - type: string - stamp: - properties: - nanosec: - maximum: 4294967295 - minimum: 0 - type: integer - sec: - maximum: 2147483647 - minimum: -2147483648 - type: integer - required: - - sec - - nanosec - title: stamp - type: object - required: - - stamp - - frame_id - title: header - type: object - pose: - properties: - orientation: - properties: - w: - type: number - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - - w - title: orientation - type: object - position: - properties: - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - title: position - type: object - required: - - position - - orientation - title: pose - type: object - required: - - header - - pose - title: poses - type: object - type: array - required: - - poses - - behavior_tree - title: NavigateThroughPoses_Goal - type: object - result: - properties: - result: - properties: {} - required: [] - title: result - type: object - required: - - result - title: NavigateThroughPoses_Result - type: object - required: - - goal - title: NavigateThroughPoses - type: object - type: NavigateThroughPoses - set_spindle_speed: - feedback: - position: spindle_speed - goal: - position: spindle_speed - goal_default: - max_velocity: 0.0 - min_duration: - nanosec: 0 - sec: 0 - position: 0.0 - handles: {} - result: {} - schema: - description: '' - properties: - feedback: - properties: - error: - type: number - header: - properties: - frame_id: - type: string - stamp: - properties: - nanosec: - maximum: 4294967295 - minimum: 0 - type: integer - sec: - maximum: 2147483647 - minimum: -2147483648 - type: integer - required: - - sec - - nanosec - title: stamp - type: object - required: - - stamp - - frame_id - title: header - type: object - position: - type: number - velocity: - type: number - required: - - header - - position - - velocity - - error - title: SingleJointPosition_Feedback - type: object - goal: - properties: - max_velocity: - type: number - min_duration: - properties: - nanosec: - maximum: 4294967295 - minimum: 0 - type: integer - sec: - maximum: 2147483647 - minimum: -2147483648 - type: integer - required: - - sec - - nanosec - title: min_duration - type: object - position: - type: number - required: - - position - - min_duration - - max_velocity - title: SingleJointPosition_Goal - type: object - result: - properties: {} - required: [] - title: SingleJointPosition_Result - type: object - required: - - goal - title: SingleJointPosition - type: object - type: SingleJointPosition - module: unilabos.devices.cnc.grbl_sync:GrblCNC - status_types: - position: unilabos.messages:Point3D - spindle_speed: float - status: str - type: python - config_info: [] - description: Grbl数控机床(CNC)设备,用于实验室精密加工和三轴定位操作。该设备基于Grbl固件,通过串口通信控制步进电机实现X、Y、Z三轴的精确运动。支持绝对定位、轨迹规划、主轴控制和实时状态监控。具备安全限位保护和运动平滑控制功能。适用于精密钻孔、铣削、雕刻、样品制备等需要高精度定位和加工的实验室应用场景。 - handles: [] - icon: '' - init_param_schema: - config: - properties: - address: - default: '1' - type: string - limits: - default: - - -150 - - 150 - - -200 - - 0 - - -80 - - 0 - items: - type: integer - type: array - port: - type: string - required: - - port - type: object - data: - properties: - position: - type: object - spindle_speed: - type: number - status: - type: string - required: - - status - - position - - spindle_speed - type: object - version: 1.0.0 -linear_motion.toyo_xyz.sim: - category: - - robot_linear_motion - class: - action_value_mappings: - auto-check_tf_update_actions: - feedback: {} - goal: {} - goal_default: {} - handles: {} - placeholder_keys: {} - result: {} - schema: - description: check_tf_update_actions的参数schema - properties: - feedback: {} - goal: - properties: {} - required: [] - type: object - result: {} - required: - - goal - title: check_tf_update_actions参数 - type: object - type: UniLabJsonCommand - auto-moveit_joint_task: - feedback: {} - goal: {} - goal_default: - joint_names: null - joint_positions: null - move_group: null - retry: 10 - speed: 1 - handles: {} - placeholder_keys: {} - result: {} - schema: - description: moveit_joint_task的参数schema - properties: - feedback: {} - goal: - properties: - joint_names: - type: string - joint_positions: - type: string - move_group: - type: string - retry: - default: 10 - type: string - speed: - default: 1 - type: string - required: - - move_group - - joint_positions - type: object - result: {} - required: - - goal - title: moveit_joint_task参数 - type: object - type: UniLabJsonCommand - auto-moveit_task: - feedback: {} - goal: {} - goal_default: - cartesian: false - move_group: null - offsets: - - 0 - - 0 - - 0 - position: null - quaternion: null - retry: 10 - speed: 1 - target_link: null - handles: {} - placeholder_keys: {} - result: {} - schema: - description: moveit_task的参数schema - properties: - feedback: {} - goal: - properties: - cartesian: - default: false - type: string - move_group: - type: string - offsets: - default: - - 0 - - 0 - - 0 - type: string - position: - type: string - quaternion: - type: string - retry: - default: 10 - type: string - speed: - default: 1 - type: string - target_link: - type: string - required: - - move_group - - position - - quaternion - type: object - result: {} - required: - - goal - title: moveit_task参数 - type: object - type: UniLabJsonCommand - auto-post_init: - feedback: {} - goal: {} - goal_default: - ros_node: null - handles: {} - placeholder_keys: {} - result: {} - schema: - description: post_init的参数schema - properties: - feedback: {} - goal: - properties: - ros_node: - type: object - required: - - ros_node - type: object - result: {} - required: - - goal - title: post_init参数 - type: object - type: UniLabJsonCommand - auto-resource_manager: - feedback: {} - goal: {} - goal_default: - parent_link: null - resource: null - handles: {} - placeholder_keys: {} - result: {} - schema: - description: resource_manager的参数schema - properties: - feedback: {} - goal: - properties: - parent_link: - type: string - resource: - type: string - required: - - resource - - parent_link - type: object - result: {} - required: - - goal - title: resource_manager参数 - type: object - type: UniLabJsonCommand - auto-wait_for_resource_action: - feedback: {} - goal: {} - goal_default: {} - handles: {} - placeholder_keys: {} - result: {} - schema: - description: wait_for_resource_action的参数schema - properties: - feedback: {} - goal: - properties: {} - required: [] - type: object - result: {} - required: - - goal - title: wait_for_resource_action参数 - type: object - type: UniLabJsonCommand - pick_and_place: - feedback: {} - goal: - command: command - goal_default: - command: '' - handles: {} - result: {} - schema: - description: '' - properties: - feedback: - properties: - status: - type: string - required: - - status - title: SendCmd_Feedback - type: object - goal: - properties: - command: - type: string - required: - - command - title: SendCmd_Goal - type: object - result: - properties: - return_info: - type: string - success: - type: boolean - required: - - return_info - - success - title: SendCmd_Result - type: object - required: - - goal - title: SendCmd - type: object - type: SendCmd - set_position: - feedback: {} - goal: - command: command - goal_default: - command: '' - handles: {} - result: {} - schema: - description: '' - properties: - feedback: - properties: - status: - type: string - required: - - status - title: SendCmd_Feedback - type: object - goal: - properties: - command: - type: string - required: - - command - title: SendCmd_Goal - type: object - result: - properties: - return_info: - type: string - success: - type: boolean - required: - - return_info - - success - title: SendCmd_Result - type: object - required: - - goal - title: SendCmd - type: object - type: SendCmd - set_status: - feedback: {} - goal: - command: command - goal_default: - command: '' - handles: {} - result: {} - schema: - description: '' - properties: - feedback: - properties: - status: - type: string - required: - - status - title: SendCmd_Feedback - type: object - goal: - properties: - command: - type: string - required: - - command - title: SendCmd_Goal - type: object - result: - properties: - return_info: - type: string - success: - type: boolean - required: - - return_info - - success - title: SendCmd_Result - type: object - required: - - goal - title: SendCmd - type: object - type: SendCmd - module: unilabos.devices.ros_dev.moveit_interface:MoveitInterface - status_types: {} - type: python - config_info: [] - description: 东洋XYZ三轴运动平台,基于MoveIt2运动规划框架的精密定位设备。该设备通过ROS2和MoveIt2实现三维空间的精确运动控制,支持复杂轨迹规划、多点定位、速度控制等功能。具备高精度定位、平稳运动、实时轨迹监控等特性。适用于精密加工、样品定位、检测扫描、自动化装配等需要高精度三维运动控制的实验室和工业应用场景。 - handles: [] - icon: '' - init_param_schema: - config: - properties: - device_config: - type: string - joint_poses: - type: string - moveit_type: - type: string - rotation: - type: string - required: - - moveit_type - - joint_poses - type: object - data: - properties: {} - required: [] - type: object - model: - mesh: toyo_xyz - type: device - version: 1.0.0 -motor.iCL42: - category: - - robot_linear_motion - class: - action_value_mappings: - auto-execute_run_motor: - feedback: {} - goal: {} - goal_default: - mode: null - position: null - velocity: null - handles: {} - placeholder_keys: {} - result: {} - schema: - description: 步进电机执行运动函数。直接执行电机运动命令,包括位置设定、速度控制和路径规划。该函数处理底层的电机控制协议,消除警告信息,设置运动参数并启动电机运行。适用于需要直接控制电机运动的应用场景。 - properties: - feedback: {} - goal: - properties: - mode: - type: string - position: - type: number - velocity: - type: integer - required: - - mode - - position - - velocity - type: object - result: {} - required: - - goal - title: execute_run_motor参数 - type: object - type: UniLabJsonCommand - auto-init_device: - feedback: {} - goal: {} - goal_default: {} - handles: {} - placeholder_keys: {} - result: {} - schema: - description: iCL42电机设备初始化函数。建立与iCL42步进电机驱动器的串口通信连接,配置通信参数包括波特率、数据位、校验位等。该函数是电机使用前的必要步骤,确保驱动器处于可控状态并准备接收运动指令。 - properties: - feedback: {} - goal: - properties: {} - required: [] - type: object - result: {} - required: - - goal - title: init_device参数 - type: object - type: UniLabJsonCommand - auto-run_motor: - feedback: {} - goal: {} - goal_default: - mode: null - position: null - velocity: null - handles: {} - placeholder_keys: {} - result: {} - schema: - description: 步进电机运动控制函数。根据指定的运动模式、目标位置和速度参数控制电机运动。支持多种运动模式和精确的位置控制,自动处理运动轨迹规划和执行。该函数提供异步执行和状态反馈,确保运动的准确性和可靠性。 - properties: - feedback: {} - goal: - properties: - mode: - type: string - position: - type: number - velocity: - type: integer - required: - - mode - - position - - velocity - type: object - result: {} - required: - - goal - title: run_motor参数 - type: object - type: UniLabJsonCommand - execute_command_from_outer: - feedback: {} - goal: - command: command - goal_default: - command: '' - handles: {} - result: - success: success - schema: - description: '' - properties: - feedback: - properties: - status: - type: string - required: - - status - title: SendCmd_Feedback - type: object - goal: - properties: - command: - type: string - required: - - command - title: SendCmd_Goal - type: object - result: - properties: - return_info: - type: string - success: - type: boolean - required: - - return_info - - success - title: SendCmd_Result - type: object - required: - - goal - title: SendCmd - type: object - type: SendCmd - module: unilabos.devices.motor.iCL42:iCL42Driver - status_types: - is_executing_run: bool - motor_position: int - success: bool - type: python - config_info: [] - description: iCL42步进电机驱动器,用于实验室设备的精密线性运动控制。该设备通过串口通信控制iCL42型步进电机驱动器,支持多种运动模式和精确的位置、速度控制。具备位置反馈、运行状态监控和故障检测功能。适用于自动进样器、样品传送、精密定位平台等需要准确线性运动控制的实验室自动化设备。 - handles: [] - icon: '' - init_param_schema: - config: - properties: - device_address: - default: 1 - type: integer - device_com: - default: COM9 - type: string - required: [] - type: object - data: - properties: - is_executing_run: - type: boolean - motor_position: - type: integer - success: - type: boolean - required: - - motor_position - - is_executing_run - - success - type: object - version: 1.0.0 diff --git a/unilabos/registry/devices/solid_dispenser.yaml b/unilabos/registry/devices/solid_dispenser.yaml deleted file mode 100644 index 9bceb54b..00000000 --- a/unilabos/registry/devices/solid_dispenser.yaml +++ /dev/null @@ -1,387 +0,0 @@ -solid_dispenser.laiyu: - category: - - solid_dispenser - class: - action_value_mappings: - add_powder_tube: - feedback: {} - goal: - compound_mass: compound_mass - powder_tube_number: powder_tube_number - target_tube_position: target_tube_position - goal_default: - compound_mass: 0.0 - powder_tube_number: 0 - target_tube_position: '' - handles: {} - result: - actual_mass_mg: actual_mass_mg - schema: - description: '' - properties: - feedback: - properties: {} - required: [] - title: SolidDispenseAddPowderTube_Feedback - type: object - goal: - properties: - compound_mass: - type: number - powder_tube_number: - maximum: 2147483647 - minimum: -2147483648 - type: integer - target_tube_position: - type: string - required: - - powder_tube_number - - target_tube_position - - compound_mass - title: SolidDispenseAddPowderTube_Goal - type: object - result: - properties: - actual_mass_mg: - type: number - return_info: - type: string - success: - type: boolean - required: - - return_info - - actual_mass_mg - - success - title: SolidDispenseAddPowderTube_Result - type: object - required: - - goal - title: SolidDispenseAddPowderTube - type: object - type: SolidDispenseAddPowderTube - auto-calculate_crc: - feedback: {} - goal: {} - goal_default: - data: null - handles: {} - placeholder_keys: {} - result: {} - schema: - description: Modbus CRC-16校验码计算函数。计算Modbus RTU通信协议所需的CRC-16校验码,确保数据传输的完整性和可靠性。该函数实现标准的CRC-16算法,用于构造完整的Modbus指令帧。 - properties: - feedback: {} - goal: - properties: - data: - type: string - required: - - data - type: object - result: {} - required: - - goal - title: calculate_crc参数 - type: object - type: UniLabJsonCommand - auto-send_command: - feedback: {} - goal: {} - goal_default: - command: null - handles: {} - placeholder_keys: {} - result: {} - schema: - description: Modbus指令发送函数。构造完整的Modbus RTU指令帧(包含CRC校验),发送给分装设备并等待响应。该函数处理底层通信协议,确保指令的正确传输和响应接收,支持最长3分钟的响应等待时间。 - properties: - feedback: {} - goal: - properties: - command: - type: string - required: - - command - type: object - result: {} - required: - - goal - title: send_command参数 - type: object - type: UniLabJsonCommand - discharge: - feedback: {} - goal: - float_input: float_input - goal_default: - float_in: 0.0 - handles: {} - result: {} - schema: - description: '' - properties: - feedback: - properties: {} - required: [] - title: FloatSingleInput_Feedback - type: object - goal: - properties: - float_in: - type: number - required: - - float_in - title: FloatSingleInput_Goal - type: object - result: - properties: - return_info: - type: string - success: - type: boolean - required: - - return_info - - success - title: FloatSingleInput_Result - type: object - required: - - goal - title: FloatSingleInput - type: object - type: FloatSingleInput - move_to_plate: - feedback: {} - goal: - string: string - goal_default: - string: '' - handles: {} - result: {} - schema: - description: '' - properties: - feedback: - properties: {} - required: [] - title: StrSingleInput_Feedback - type: object - goal: - properties: - string: - type: string - required: - - string - title: StrSingleInput_Goal - type: object - result: - properties: - return_info: - type: string - success: - type: boolean - required: - - return_info - - success - title: StrSingleInput_Result - type: object - required: - - goal - title: StrSingleInput - type: object - type: StrSingleInput - move_to_xyz: - feedback: {} - goal: - x: x - y: y - z: z - goal_default: - x: 0.0 - y: 0.0 - z: 0.0 - handles: {} - result: {} - schema: - description: '' - properties: - feedback: - properties: {} - required: [] - title: Point3DSeparateInput_Feedback - type: object - goal: - properties: - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - title: Point3DSeparateInput_Goal - type: object - result: - properties: - return_info: - type: string - success: - type: boolean - required: - - return_info - - success - title: Point3DSeparateInput_Result - type: object - required: - - goal - title: Point3DSeparateInput - type: object - type: Point3DSeparateInput - pick_powder_tube: - feedback: {} - goal: - int_input: int_input - goal_default: - int_input: 0 - handles: {} - result: {} - schema: - description: '' - properties: - feedback: - properties: {} - required: [] - title: IntSingleInput_Feedback - type: object - goal: - properties: - int_input: - maximum: 2147483647 - minimum: -2147483648 - type: integer - required: - - int_input - title: IntSingleInput_Goal - type: object - result: - properties: - return_info: - type: string - success: - type: boolean - required: - - return_info - - success - title: IntSingleInput_Result - type: object - required: - - goal - title: IntSingleInput - type: object - type: IntSingleInput - put_powder_tube: - feedback: {} - goal: - int_input: int_input - goal_default: - int_input: 0 - handles: {} - result: {} - schema: - description: '' - properties: - feedback: - properties: {} - required: [] - title: IntSingleInput_Feedback - type: object - goal: - properties: - int_input: - maximum: 2147483647 - minimum: -2147483648 - type: integer - required: - - int_input - title: IntSingleInput_Goal - type: object - result: - properties: - return_info: - type: string - success: - type: boolean - required: - - return_info - - success - title: IntSingleInput_Result - type: object - required: - - goal - title: IntSingleInput - type: object - type: IntSingleInput - reset: - feedback: {} - goal: {} - goal_default: {} - handles: {} - result: {} - schema: - description: '' - properties: - feedback: - properties: {} - required: [] - title: EmptyIn_Feedback - type: object - goal: - properties: {} - required: [] - title: EmptyIn_Goal - type: object - result: - properties: - return_info: - type: string - required: - - return_info - title: EmptyIn_Result - type: object - required: - - goal - title: EmptyIn - type: object - type: EmptyIn - module: unilabos.devices.powder_dispense.laiyu:Laiyu - status_types: - status: str - type: python - config_info: [] - description: 来渝固体粉末自动分装设备,用于实验室化学试剂的精确称量和分装。该设备通过Modbus RTU协议与控制系统通信,集成了精密天平、三轴运动平台、粉筒管理系统等组件。支持多种粉末试剂的自动拿取、精确称量、定点分装和归位操作。具备高精度称量、位置控制和批量处理能力,适用于化学合成、药物研发、材料制备等需要精确固体试剂配制的实验室应用场景。 - handles: [] - icon: '' - init_param_schema: - config: - properties: - baudrate: - default: 115200 - type: string - port: - type: string - timeout: - default: 0.5 - type: string - required: - - port - type: object - data: - properties: - status: - type: string - required: - - status - type: object - version: 1.0.0 diff --git a/unilabos/registry/devices/temperature.yaml b/unilabos/registry/devices/temperature.yaml deleted file mode 100644 index 874fe517..00000000 --- a/unilabos/registry/devices/temperature.yaml +++ /dev/null @@ -1,769 +0,0 @@ -chiller: - category: - - temperature - class: - action_value_mappings: - auto-build_modbus_frame: - feedback: {} - goal: {} - goal_default: - device_address: null - function_code: null - register_address: null - value: null - handles: {} - placeholder_keys: {} - result: {} - schema: - description: build_modbus_frame的参数schema - properties: - feedback: {} - goal: - properties: - device_address: - type: integer - function_code: - type: integer - register_address: - type: integer - value: - type: integer - required: - - device_address - - function_code - - register_address - - value - type: object - result: {} - required: - - goal - title: build_modbus_frame参数 - type: object - type: UniLabJsonCommand - auto-convert_temperature_to_modbus_value: - feedback: {} - goal: {} - goal_default: - decimal_points: 1 - temperature: null - handles: {} - placeholder_keys: {} - result: {} - schema: - description: convert_temperature_to_modbus_value的参数schema - properties: - feedback: {} - goal: - properties: - decimal_points: - default: 1 - type: integer - temperature: - type: number - required: - - temperature - type: object - result: {} - required: - - goal - title: convert_temperature_to_modbus_value参数 - type: object - type: UniLabJsonCommand - auto-modbus_crc: - feedback: {} - goal: {} - goal_default: - data: null - handles: {} - placeholder_keys: {} - result: {} - schema: - description: modbus_crc的参数schema - properties: - feedback: {} - goal: - properties: - data: - type: string - required: - - data - type: object - result: {} - required: - - goal - title: modbus_crc参数 - type: object - type: UniLabJsonCommand - auto-stop: - feedback: {} - goal: {} - goal_default: {} - handles: {} - placeholder_keys: {} - result: {} - schema: - description: stop的参数schema - properties: - feedback: {} - goal: - properties: {} - required: [] - type: object - result: {} - required: - - goal - title: stop参数 - type: object - type: UniLabJsonCommand - set_temperature: - feedback: {} - goal: - command: command - goal_default: - command: '' - handles: {} - result: - success: success - schema: - description: '' - properties: - feedback: - properties: - status: - type: string - required: - - status - title: SendCmd_Feedback - type: object - goal: - properties: - command: - type: string - required: - - command - title: SendCmd_Goal - type: object - result: - properties: - return_info: - type: string - success: - type: boolean - required: - - return_info - - success - title: SendCmd_Result - type: object - required: - - goal - title: SendCmd - type: object - type: SendCmd - module: unilabos.devices.temperature.chiller:Chiller - status_types: {} - type: python - config_info: [] - description: 实验室制冷设备,用于精确的温度控制和冷却操作。该设备通过Modbus RTU协议与控制系统通信,支持精确的温度设定和监控。具备快速降温、恒温控制和温度保持功能,广泛应用于需要低温环境的化学反应、样品保存、结晶操作等实验场景。提供稳定可靠的冷却性能,确保实验过程的温度精度。 - handles: [] - icon: '' - init_param_schema: - config: - properties: - port: - type: string - rate: - default: 9600 - type: string - required: - - port - type: object - data: - properties: {} - required: [] - type: object - version: 1.0.0 -heaterstirrer.dalong: - category: - - temperature - class: - action_value_mappings: - auto-close: - feedback: {} - goal: {} - goal_default: {} - handles: {} - placeholder_keys: {} - result: {} - schema: - description: close的参数schema - properties: - feedback: {} - goal: - properties: {} - required: [] - type: object - result: {} - required: - - goal - title: close参数 - type: object - type: UniLabJsonCommand - auto-set_stir_speed: - feedback: {} - goal: {} - goal_default: - speed: null - handles: {} - placeholder_keys: {} - result: {} - schema: - description: set_stir_speed的参数schema - properties: - feedback: {} - goal: - properties: - speed: - type: number - required: - - speed - type: object - result: {} - required: - - goal - title: set_stir_speed参数 - type: object - type: UniLabJsonCommand - auto-set_temp_inner: - feedback: {} - goal: {} - goal_default: - temp: null - type: warning - handles: {} - placeholder_keys: {} - result: {} - schema: - description: set_temp_inner的参数schema - properties: - feedback: {} - goal: - properties: - temp: - type: number - type: - default: warning - type: string - required: - - temp - type: object - result: {} - required: - - goal - title: set_temp_inner参数 - type: object - type: UniLabJsonCommand - heatchill: - feedback: - status: status - goal: - purpose: purpose - temp: temp - time: time - vessel: vessel - goal_default: - pressure: '' - purpose: '' - reflux_solvent: '' - stir: false - stir_speed: 0.0 - temp: 0.0 - temp_spec: '' - time: '' - time_spec: '' - vessel: - category: '' - children: [] - config: '' - data: '' - id: '' - name: '' - parent: '' - pose: - orientation: - w: 1.0 - x: 0.0 - y: 0.0 - z: 0.0 - position: - x: 0.0 - y: 0.0 - z: 0.0 - sample_id: '' - type: '' - handles: {} - result: - success: success - schema: - description: '' - properties: - feedback: - properties: - status: - type: string - required: - - status - title: HeatChill_Feedback - type: object - goal: - properties: - pressure: - type: string - purpose: - type: string - reflux_solvent: - type: string - stir: - type: boolean - stir_speed: - type: number - temp: - type: number - temp_spec: - type: string - time: - type: string - time_spec: - type: string - vessel: - properties: - category: - type: string - children: - items: - type: string - type: array - config: - type: string - data: - type: string - id: - type: string - name: - type: string - parent: - type: string - pose: - properties: - orientation: - properties: - w: - type: number - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - - w - title: orientation - type: object - position: - properties: - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - title: position - type: object - required: - - position - - orientation - title: pose - type: object - sample_id: - type: string - type: - type: string - required: - - id - - name - - sample_id - - children - - parent - - type - - category - - pose - - config - - data - title: vessel - type: object - required: - - vessel - - temp - - time - - temp_spec - - time_spec - - pressure - - reflux_solvent - - stir - - stir_speed - - purpose - title: HeatChill_Goal - type: object - result: - properties: - message: - type: string - return_info: - type: string - success: - type: boolean - required: - - success - - message - - return_info - title: HeatChill_Result - type: object - required: - - goal - title: HeatChill - type: object - type: HeatChill - set_temp_target: - feedback: {} - goal: - command: temp - goal_default: - command: '' - handles: {} - result: - success: success - schema: - description: '' - properties: - feedback: - properties: - status: - type: string - required: - - status - title: SendCmd_Feedback - type: object - goal: - properties: - command: - type: string - required: - - command - title: SendCmd_Goal - type: object - result: - properties: - return_info: - type: string - success: - type: boolean - required: - - return_info - - success - title: SendCmd_Result - type: object - required: - - goal - title: SendCmd - type: object - type: SendCmd - set_temp_warning: - feedback: {} - goal: - command: temp - goal_default: - command: '' - handles: {} - result: - success: success - schema: - description: '' - properties: - feedback: - properties: - status: - type: string - required: - - status - title: SendCmd_Feedback - type: object - goal: - properties: - command: - type: string - required: - - command - title: SendCmd_Goal - type: object - result: - properties: - return_info: - type: string - success: - type: boolean - required: - - return_info - - success - title: SendCmd_Result - type: object - required: - - goal - title: SendCmd - type: object - type: SendCmd - module: unilabos.devices.heaterstirrer.dalong:HeaterStirrer_DaLong - status_types: - status: str - stir_speed: float - temp: float - temp_target: float - temp_warning: float - type: python - config_info: [] - description: 大龙加热搅拌器,集成加热和搅拌双重功能的实验室设备。该设备通过串口通信控制,支持精确的温度调节、搅拌速度控制和安全保护功能。具备实时温度监测、目标温度设定、安全温度报警等特性。适用于化学合成、样品制备、反应控制等需要同时进行加热和搅拌的实验操作,提供稳定均匀的反应环境。 - handles: [] - icon: '' - init_param_schema: - config: - properties: - baudrate: - default: 9600 - type: integer - port: - default: COM6 - type: string - temp_warning: - default: 50.0 - type: string - required: [] - type: object - data: - properties: - status: - type: string - stir_speed: - type: number - temp: - type: number - temp_target: - type: number - temp_warning: - type: number - required: - - status - - stir_speed - - temp - - temp_warning - - temp_target - type: object - version: 1.0.0 -tempsensor: - category: - - temperature - class: - action_value_mappings: - auto-build_modbus_request: - feedback: {} - goal: {} - goal_default: - device_id: null - function_code: null - register_address: null - register_count: null - handles: {} - placeholder_keys: {} - result: {} - schema: - description: build_modbus_request的参数schema - properties: - feedback: {} - goal: - properties: - device_id: - type: string - function_code: - type: string - register_address: - type: string - register_count: - type: string - required: - - device_id - - function_code - - register_address - - register_count - type: object - result: {} - required: - - goal - title: build_modbus_request参数 - type: object - type: UniLabJsonCommand - auto-calculate_crc: - feedback: {} - goal: {} - goal_default: - data: null - handles: {} - placeholder_keys: {} - result: {} - schema: - description: calculate_crc的参数schema - properties: - feedback: {} - goal: - properties: - data: - type: string - required: - - data - type: object - result: {} - required: - - goal - title: calculate_crc参数 - type: object - type: UniLabJsonCommand - auto-read_modbus_response: - feedback: {} - goal: {} - goal_default: - response: null - handles: {} - placeholder_keys: {} - result: {} - schema: - description: read_modbus_response的参数schema - properties: - feedback: {} - goal: - properties: - response: - type: string - required: - - response - type: object - result: {} - required: - - goal - title: read_modbus_response参数 - type: object - type: UniLabJsonCommand - auto-send_prototype_command: - feedback: {} - goal: {} - goal_default: - command: null - handles: {} - placeholder_keys: {} - result: {} - schema: - description: send_prototype_command的参数schema - properties: - feedback: {} - goal: - properties: - command: - type: string - required: - - command - type: object - result: {} - required: - - goal - title: send_prototype_command参数 - type: object - type: UniLabJsonCommand - set_warning: - feedback: {} - goal: - command: command - goal_default: - command: '' - handles: {} - result: - success: success - schema: - description: '' - properties: - feedback: - properties: - status: - type: string - required: - - status - title: SendCmd_Feedback - type: object - goal: - properties: - command: - type: string - required: - - command - title: SendCmd_Goal - type: object - result: - properties: - return_info: - type: string - success: - type: boolean - required: - - return_info - - success - title: SendCmd_Result - type: object - required: - - goal - title: SendCmd - type: object - type: SendCmd - module: unilabos.devices.temperature.sensor_node:TempSensorNode - status_types: - value: float - type: python - config_info: [] - description: 高精度温度传感器设备,用于实验室环境和设备的温度监测。该传感器通过Modbus RTU协议与控制系统通信,提供实时准确的温度数据。具备高精度测量、报警温度设定、数据稳定性好等特点。适用于反应器监控、环境温度监测、设备保护等需要精确温度测量的实验场景,为实验安全和数据可靠性提供保障。 - handles: [] - icon: '' - init_param_schema: - config: - properties: - address: - type: string - baudrate: - default: 9600 - type: string - port: - type: string - warning: - type: string - required: - - port - - warning - - address - type: object - data: - properties: - value: - type: number - required: - - value - type: object - version: 1.0.0 diff --git a/unilabos/registry/devices/virtual_device.yaml b/unilabos/registry/devices/virtual_device.yaml deleted file mode 100644 index 77ac5336..00000000 --- a/unilabos/registry/devices/virtual_device.yaml +++ /dev/null @@ -1,5794 +0,0 @@ -virtual_centrifuge: - category: - - virtual_device - class: - action_value_mappings: - auto-cleanup: - feedback: {} - goal: {} - goal_default: {} - handles: {} - placeholder_keys: {} - result: {} - schema: - description: cleanup的参数schema - properties: - feedback: {} - goal: - properties: {} - required: [] - type: object - result: {} - required: - - goal - title: cleanup参数 - type: object - type: UniLabJsonCommandAsync - auto-initialize: - feedback: {} - goal: {} - goal_default: {} - handles: {} - placeholder_keys: {} - result: {} - schema: - description: initialize的参数schema - properties: - feedback: {} - goal: - properties: {} - required: [] - type: object - result: {} - required: - - goal - title: initialize参数 - type: object - type: UniLabJsonCommandAsync - auto-post_init: - feedback: {} - goal: {} - goal_default: - ros_node: null - handles: {} - placeholder_keys: {} - result: {} - schema: - description: '' - properties: - feedback: {} - goal: - properties: - ros_node: - type: object - required: - - ros_node - type: object - result: {} - required: - - goal - title: post_init参数 - type: object - type: UniLabJsonCommand - centrifuge: - feedback: - current_speed: current_speed - current_status: status - current_temp: current_temp - progress: progress - goal: - speed: speed - temp: temp - time: time - vessel: vessel - goal_default: - speed: 0.0 - temp: 0.0 - time: 0.0 - vessel: - category: '' - children: [] - config: '' - data: '' - id: '' - name: '' - parent: '' - pose: - orientation: - w: 1.0 - x: 0.0 - y: 0.0 - z: 0.0 - position: - x: 0.0 - y: 0.0 - z: 0.0 - sample_id: '' - type: '' - handles: {} - result: - message: message - success: success - schema: - description: '' - properties: - feedback: - properties: - current_speed: - type: number - current_status: - type: string - current_temp: - type: number - progress: - type: number - required: - - progress - - current_speed - - current_temp - - current_status - title: Centrifuge_Feedback - type: object - goal: - properties: - speed: - type: number - temp: - type: number - time: - type: number - vessel: - properties: - category: - type: string - children: - items: - type: string - type: array - config: - type: string - data: - type: string - id: - type: string - name: - type: string - parent: - type: string - pose: - properties: - orientation: - properties: - w: - type: number - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - - w - title: orientation - type: object - position: - properties: - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - title: position - type: object - required: - - position - - orientation - title: pose - type: object - sample_id: - type: string - type: - type: string - required: - - id - - name - - sample_id - - children - - parent - - type - - category - - pose - - config - - data - title: vessel - type: object - required: - - vessel - - speed - - time - - temp - title: Centrifuge_Goal - type: object - result: - properties: - message: - type: string - return_info: - type: string - success: - type: boolean - required: - - success - - message - - return_info - title: Centrifuge_Result - type: object - required: - - goal - title: Centrifuge - type: object - type: Centrifuge - module: unilabos.devices.virtual.virtual_centrifuge:VirtualCentrifuge - status_types: - centrifuge_state: str - current_speed: float - current_temp: float - max_speed: float - max_temp: float - message: str - min_temp: float - progress: float - status: str - target_speed: float - target_temp: float - time_remaining: float - type: python - config_info: [] - description: Virtual Centrifuge for CentrifugeProtocol Testing - handles: - - data_key: vessel - data_source: handle - data_type: transport - description: 需要离心的样品容器 - handler_key: centrifuge - io_type: target - label: centrifuge - side: NORTH - icon: '' - init_param_schema: - config: - properties: - config: - type: string - device_id: - type: string - required: [] - type: object - data: - properties: - centrifuge_state: - type: string - current_speed: - type: number - current_temp: - type: number - max_speed: - type: number - max_temp: - type: number - message: - type: string - min_temp: - type: number - progress: - type: number - status: - type: string - target_speed: - type: number - target_temp: - type: number - time_remaining: - type: number - required: - - status - - centrifuge_state - - current_speed - - target_speed - - current_temp - - target_temp - - max_speed - - max_temp - - min_temp - - time_remaining - - progress - - message - type: object - version: 1.0.0 -virtual_column: - category: - - virtual_device - class: - action_value_mappings: - auto-cleanup: - feedback: {} - goal: {} - goal_default: {} - handles: {} - placeholder_keys: {} - result: {} - schema: - description: cleanup的参数schema - properties: - feedback: {} - goal: - properties: {} - required: [] - type: object - result: {} - required: - - goal - title: cleanup参数 - type: object - type: UniLabJsonCommandAsync - auto-initialize: - feedback: {} - goal: {} - goal_default: {} - handles: {} - placeholder_keys: {} - result: {} - schema: - description: initialize的参数schema - properties: - feedback: {} - goal: - properties: {} - required: [] - type: object - result: {} - required: - - goal - title: initialize参数 - type: object - type: UniLabJsonCommandAsync - auto-post_init: - feedback: {} - goal: {} - goal_default: - ros_node: null - handles: {} - placeholder_keys: {} - result: {} - schema: - description: '' - properties: - feedback: {} - goal: - properties: - ros_node: - type: object - required: - - ros_node - type: object - result: {} - required: - - goal - title: post_init参数 - type: object - type: UniLabJsonCommand - run_column: - feedback: - current_status: current_status - processed_volume: processed_volume - progress: progress - goal: - column: column - from_vessel: from_vessel - to_vessel: to_vessel - goal_default: - column: '' - from_vessel: - category: '' - children: [] - config: '' - data: '' - id: '' - name: '' - parent: '' - pose: - orientation: - w: 1.0 - x: 0.0 - y: 0.0 - z: 0.0 - position: - x: 0.0 - y: 0.0 - z: 0.0 - sample_id: '' - type: '' - pct1: '' - pct2: '' - ratio: '' - rf: '' - solvent1: '' - solvent2: '' - to_vessel: - category: '' - children: [] - config: '' - data: '' - id: '' - name: '' - parent: '' - pose: - orientation: - w: 1.0 - x: 0.0 - y: 0.0 - z: 0.0 - position: - x: 0.0 - y: 0.0 - z: 0.0 - sample_id: '' - type: '' - handles: {} - result: - message: current_status - return_info: current_status - success: success - schema: - description: '' - properties: - feedback: - properties: - progress: - type: number - status: - type: string - required: - - status - - progress - title: RunColumn_Feedback - type: object - goal: - properties: - column: - type: string - from_vessel: - properties: - category: - type: string - children: - items: - type: string - type: array - config: - type: string - data: - type: string - id: - type: string - name: - type: string - parent: - type: string - pose: - properties: - orientation: - properties: - w: - type: number - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - - w - title: orientation - type: object - position: - properties: - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - title: position - type: object - required: - - position - - orientation - title: pose - type: object - sample_id: - type: string - type: - type: string - required: - - id - - name - - sample_id - - children - - parent - - type - - category - - pose - - config - - data - title: from_vessel - type: object - pct1: - type: string - pct2: - type: string - ratio: - type: string - rf: - type: string - solvent1: - type: string - solvent2: - type: string - to_vessel: - properties: - category: - type: string - children: - items: - type: string - type: array - config: - type: string - data: - type: string - id: - type: string - name: - type: string - parent: - type: string - pose: - properties: - orientation: - properties: - w: - type: number - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - - w - title: orientation - type: object - position: - properties: - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - title: position - type: object - required: - - position - - orientation - title: pose - type: object - sample_id: - type: string - type: - type: string - required: - - id - - name - - sample_id - - children - - parent - - type - - category - - pose - - config - - data - title: to_vessel - type: object - required: - - from_vessel - - to_vessel - - column - - rf - - pct1 - - pct2 - - solvent1 - - solvent2 - - ratio - title: RunColumn_Goal - type: object - result: - properties: - message: - type: string - return_info: - type: string - success: - type: boolean - required: - - success - - message - - return_info - title: RunColumn_Result - type: object - required: - - goal - title: RunColumn - type: object - type: RunColumn - module: unilabos.devices.virtual.virtual_column:VirtualColumn - status_types: - column_diameter: float - column_length: float - column_state: str - current_flow_rate: float - current_phase: str - current_status: str - final_volume: float - max_flow_rate: float - processed_volume: float - progress: float - status: str - type: python - config_info: [] - description: Virtual Column Chromatography Device for RunColumn Protocol Testing - handles: - - data_key: from_vessel - data_source: handle - data_type: transport - description: 样品输入口 - handler_key: columnin - io_type: target - label: columnin - side: WEST - - data_key: to_vessel - data_source: handle - data_type: transport - description: 产物输出口 - handler_key: columnout - io_type: source - label: columnout - side: EAST - icon: '' - init_param_schema: - config: - properties: - config: - type: object - device_id: - type: string - required: [] - type: object - data: - properties: - column_diameter: - type: number - column_length: - type: number - column_state: - type: string - current_flow_rate: - type: number - current_phase: - type: string - current_status: - type: string - final_volume: - type: number - max_flow_rate: - type: number - processed_volume: - type: number - progress: - type: number - status: - type: string - required: - - status - - column_state - - current_flow_rate - - max_flow_rate - - column_length - - column_diameter - - processed_volume - - progress - - current_status - - current_phase - - final_volume - type: object - version: 1.0.0 -virtual_filter: - category: - - virtual_device - class: - action_value_mappings: - auto-cleanup: - feedback: {} - goal: {} - goal_default: {} - handles: {} - placeholder_keys: {} - result: {} - schema: - description: cleanup的参数schema - properties: - feedback: {} - goal: - properties: {} - required: [] - type: object - result: {} - required: - - goal - title: cleanup参数 - type: object - type: UniLabJsonCommandAsync - auto-initialize: - feedback: {} - goal: {} - goal_default: {} - handles: {} - placeholder_keys: {} - result: {} - schema: - description: initialize的参数schema - properties: - feedback: {} - goal: - properties: {} - required: [] - type: object - result: {} - required: - - goal - title: initialize参数 - type: object - type: UniLabJsonCommandAsync - auto-post_init: - feedback: {} - goal: {} - goal_default: - ros_node: null - handles: {} - placeholder_keys: {} - result: {} - schema: - description: '' - properties: - feedback: {} - goal: - properties: - ros_node: - type: object - required: - - ros_node - type: object - result: {} - required: - - goal - title: post_init参数 - type: object - type: UniLabJsonCommand - filter: - feedback: - current_status: current_status - current_temp: current_temp - filtered_volume: filtered_volume - progress: progress - goal: - continue_heatchill: continue_heatchill - filtrate_vessel: filtrate_vessel - stir: stir - stir_speed: stir_speed - temp: temp - vessel: vessel - volume: volume - goal_default: - continue_heatchill: false - filtrate_vessel: - category: '' - children: [] - config: '' - data: '' - id: '' - name: '' - parent: '' - pose: - orientation: - w: 1.0 - x: 0.0 - y: 0.0 - z: 0.0 - position: - x: 0.0 - y: 0.0 - z: 0.0 - sample_id: '' - type: '' - stir: false - stir_speed: 0.0 - temp: 0.0 - vessel: - category: '' - children: [] - config: '' - data: '' - id: '' - name: '' - parent: '' - pose: - orientation: - w: 1.0 - x: 0.0 - y: 0.0 - z: 0.0 - position: - x: 0.0 - y: 0.0 - z: 0.0 - sample_id: '' - type: '' - volume: 0.0 - handles: {} - result: - message: message - return_info: message - success: success - schema: - description: '' - properties: - feedback: - properties: - current_status: - type: string - current_temp: - type: number - filtered_volume: - type: number - progress: - type: number - required: - - progress - - current_temp - - filtered_volume - - current_status - title: Filter_Feedback - type: object - goal: - properties: - continue_heatchill: - type: boolean - filtrate_vessel: - properties: - category: - type: string - children: - items: - type: string - type: array - config: - type: string - data: - type: string - id: - type: string - name: - type: string - parent: - type: string - pose: - properties: - orientation: - properties: - w: - type: number - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - - w - title: orientation - type: object - position: - properties: - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - title: position - type: object - required: - - position - - orientation - title: pose - type: object - sample_id: - type: string - type: - type: string - required: - - id - - name - - sample_id - - children - - parent - - type - - category - - pose - - config - - data - title: filtrate_vessel - type: object - stir: - type: boolean - stir_speed: - type: number - temp: - type: number - vessel: - properties: - category: - type: string - children: - items: - type: string - type: array - config: - type: string - data: - type: string - id: - type: string - name: - type: string - parent: - type: string - pose: - properties: - orientation: - properties: - w: - type: number - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - - w - title: orientation - type: object - position: - properties: - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - title: position - type: object - required: - - position - - orientation - title: pose - type: object - sample_id: - type: string - type: - type: string - required: - - id - - name - - sample_id - - children - - parent - - type - - category - - pose - - config - - data - title: vessel - type: object - volume: - type: number - required: - - vessel - - filtrate_vessel - - stir - - stir_speed - - temp - - continue_heatchill - - volume - title: Filter_Goal - type: object - result: - properties: - message: - type: string - return_info: - type: string - success: - type: boolean - required: - - success - - message - - return_info - title: Filter_Result - type: object - required: - - goal - title: Filter - type: object - type: Filter - module: unilabos.devices.virtual.virtual_filter:VirtualFilter - status_types: - current_status: str - current_temp: float - filtered_volume: float - max_stir_speed: float - max_temp: float - max_volume: float - message: str - progress: float - status: str - type: python - config_info: [] - description: Virtual Filter for FilterProtocol Testing - handles: - - data_key: vessel_in - data_source: handle - data_type: transport - description: 需要过滤的样品容器 - handler_key: filterin - io_type: target - label: filter_in - side: NORTH - - data_key: filtrate_out - data_source: handle - data_type: transport - description: 滤液出口 - handler_key: filtrateout - io_type: source - label: filtrate_out - side: SOUTH - - data_key: retentate_out - data_source: handle - data_type: transport - description: 滤渣/固体出口 - handler_key: retentateout - io_type: source - label: retentate_out - side: EAST - icon: '' - init_param_schema: - config: - properties: - config: - type: string - device_id: - type: string - required: [] - type: object - data: - properties: - current_status: - type: string - current_temp: - type: number - filtered_volume: - type: number - max_stir_speed: - type: number - max_temp: - type: number - max_volume: - type: number - message: - type: string - progress: - type: number - status: - type: string - required: - - status - - progress - - current_temp - - current_status - - filtered_volume - - message - - max_temp - - max_stir_speed - - max_volume - type: object - version: 1.0.0 -virtual_gas_source: - category: - - virtual_device - class: - action_value_mappings: - auto-cleanup: - feedback: {} - goal: {} - goal_default: {} - handles: {} - placeholder_keys: {} - result: {} - schema: - description: cleanup的参数schema - properties: - feedback: {} - goal: - properties: {} - required: [] - type: object - result: {} - required: - - goal - title: cleanup参数 - type: object - type: UniLabJsonCommandAsync - auto-initialize: - feedback: {} - goal: {} - goal_default: {} - handles: {} - placeholder_keys: {} - result: {} - schema: - description: initialize的参数schema - properties: - feedback: {} - goal: - properties: {} - required: [] - type: object - result: {} - required: - - goal - title: initialize参数 - type: object - type: UniLabJsonCommandAsync - auto-is_closed: - feedback: {} - goal: {} - goal_default: {} - handles: {} - placeholder_keys: {} - result: {} - schema: - description: is_closed的参数schema - properties: - feedback: {} - goal: - properties: {} - required: [] - type: object - result: {} - required: - - goal - title: is_closed参数 - type: object - type: UniLabJsonCommand - auto-is_open: - feedback: {} - goal: {} - goal_default: {} - handles: {} - placeholder_keys: {} - result: {} - schema: - description: is_open的参数schema - properties: - feedback: {} - goal: - properties: {} - required: [] - type: object - result: {} - required: - - goal - title: is_open参数 - type: object - type: UniLabJsonCommand - close: - feedback: {} - goal: {} - goal_default: {} - handles: {} - result: {} - schema: - description: '' - properties: - feedback: - properties: {} - required: [] - title: EmptyIn_Feedback - type: object - goal: - properties: {} - required: [] - title: EmptyIn_Goal - type: object - result: - properties: - return_info: - type: string - required: - - return_info - title: EmptyIn_Result - type: object - required: - - goal - title: EmptyIn - type: object - type: EmptyIn - open: - feedback: {} - goal: {} - goal_default: {} - handles: {} - result: {} - schema: - description: '' - properties: - feedback: - properties: {} - required: [] - title: EmptyIn_Feedback - type: object - goal: - properties: {} - required: [] - title: EmptyIn_Goal - type: object - result: - properties: - return_info: - type: string - required: - - return_info - title: EmptyIn_Result - type: object - required: - - goal - title: EmptyIn - type: object - type: EmptyIn - set_status: - feedback: {} - goal: - string: string - goal_default: - string: '' - handles: {} - result: {} - schema: - description: '' - properties: - feedback: - properties: {} - required: [] - title: StrSingleInput_Feedback - type: object - goal: - properties: - string: - type: string - required: - - string - title: StrSingleInput_Goal - type: object - result: - properties: - return_info: - type: string - success: - type: boolean - required: - - return_info - - success - title: StrSingleInput_Result - type: object - required: - - goal - title: StrSingleInput - type: object - type: StrSingleInput - module: unilabos.devices.virtual.virtual_gas_source:VirtualGasSource - status_types: - status: str - type: python - config_info: [] - description: Virtual gas source - handles: - - data_key: fluid_out - data_source: executor - data_type: fluid - description: 气源出气口 - handler_key: gassource - io_type: source - label: gassource - side: SOUTH - icon: '' - init_param_schema: - config: - properties: - config: - type: string - device_id: - type: string - required: [] - type: object - data: - properties: - status: - type: string - required: - - status - type: object - version: 1.0.0 -virtual_heatchill: - category: - - virtual_device - class: - action_value_mappings: - auto-cleanup: - feedback: {} - goal: {} - goal_default: {} - handles: {} - placeholder_keys: {} - result: {} - schema: - description: cleanup的参数schema - properties: - feedback: {} - goal: - properties: {} - required: [] - type: object - result: {} - required: - - goal - title: cleanup参数 - type: object - type: UniLabJsonCommandAsync - auto-initialize: - feedback: {} - goal: {} - goal_default: {} - handles: {} - placeholder_keys: {} - result: {} - schema: - description: initialize的参数schema - properties: - feedback: {} - goal: - properties: {} - required: [] - type: object - result: {} - required: - - goal - title: initialize参数 - type: object - type: UniLabJsonCommandAsync - auto-post_init: - feedback: {} - goal: {} - goal_default: - ros_node: null - handles: {} - placeholder_keys: {} - result: {} - schema: - description: '' - properties: - feedback: {} - goal: - properties: - ros_node: - type: object - required: - - ros_node - type: object - result: {} - required: - - goal - title: post_init参数 - type: object - type: UniLabJsonCommand - heat_chill: - feedback: - status: status - goal: - purpose: purpose - stir: stir - stir_speed: stir_speed - temp: temp - time: time - vessel: vessel - goal_default: - pressure: '' - purpose: '' - reflux_solvent: '' - stir: false - stir_speed: 0.0 - temp: 0.0 - temp_spec: '' - time: '' - time_spec: '' - vessel: - category: '' - children: [] - config: '' - data: '' - id: '' - name: '' - parent: '' - pose: - orientation: - w: 1.0 - x: 0.0 - y: 0.0 - z: 0.0 - position: - x: 0.0 - y: 0.0 - z: 0.0 - sample_id: '' - type: '' - handles: {} - result: - success: success - schema: - description: '' - properties: - feedback: - properties: - status: - type: string - required: - - status - title: HeatChill_Feedback - type: object - goal: - properties: - pressure: - type: string - purpose: - type: string - reflux_solvent: - type: string - stir: - type: boolean - stir_speed: - type: number - temp: - type: number - temp_spec: - type: string - time: - type: string - time_spec: - type: string - vessel: - properties: - category: - type: string - children: - items: - type: string - type: array - config: - type: string - data: - type: string - id: - type: string - name: - type: string - parent: - type: string - pose: - properties: - orientation: - properties: - w: - type: number - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - - w - title: orientation - type: object - position: - properties: - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - title: position - type: object - required: - - position - - orientation - title: pose - type: object - sample_id: - type: string - type: - type: string - required: - - id - - name - - sample_id - - children - - parent - - type - - category - - pose - - config - - data - title: vessel - type: object - required: - - vessel - - temp - - time - - temp_spec - - time_spec - - pressure - - reflux_solvent - - stir - - stir_speed - - purpose - title: HeatChill_Goal - type: object - result: - properties: - message: - type: string - return_info: - type: string - success: - type: boolean - required: - - success - - message - - return_info - title: HeatChill_Result - type: object - required: - - goal - title: HeatChill - type: object - type: HeatChill - heat_chill_start: - feedback: - status: status - goal: - purpose: purpose - temp: temp - vessel: vessel - goal_default: - purpose: '' - temp: 0.0 - vessel: - category: '' - children: [] - config: '' - data: '' - id: '' - name: '' - parent: '' - pose: - orientation: - w: 1.0 - x: 0.0 - y: 0.0 - z: 0.0 - position: - x: 0.0 - y: 0.0 - z: 0.0 - sample_id: '' - type: '' - handles: {} - result: - success: success - schema: - description: '' - properties: - feedback: - properties: - status: - type: string - required: - - status - title: HeatChillStart_Feedback - type: object - goal: - properties: - purpose: - type: string - temp: - type: number - vessel: - properties: - category: - type: string - children: - items: - type: string - type: array - config: - type: string - data: - type: string - id: - type: string - name: - type: string - parent: - type: string - pose: - properties: - orientation: - properties: - w: - type: number - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - - w - title: orientation - type: object - position: - properties: - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - title: position - type: object - required: - - position - - orientation - title: pose - type: object - sample_id: - type: string - type: - type: string - required: - - id - - name - - sample_id - - children - - parent - - type - - category - - pose - - config - - data - title: vessel - type: object - required: - - vessel - - temp - - purpose - title: HeatChillStart_Goal - type: object - result: - properties: - return_info: - type: string - success: - type: boolean - required: - - return_info - - success - title: HeatChillStart_Result - type: object - required: - - goal - title: HeatChillStart - type: object - type: HeatChillStart - heat_chill_stop: - feedback: - status: status - goal: - vessel: vessel - goal_default: - vessel: - category: '' - children: [] - config: '' - data: '' - id: '' - name: '' - parent: '' - pose: - orientation: - w: 1.0 - x: 0.0 - y: 0.0 - z: 0.0 - position: - x: 0.0 - y: 0.0 - z: 0.0 - sample_id: '' - type: '' - handles: {} - result: - success: success - schema: - description: '' - properties: - feedback: - properties: - status: - type: string - required: - - status - title: HeatChillStop_Feedback - type: object - goal: - properties: - vessel: - properties: - category: - type: string - children: - items: - type: string - type: array - config: - type: string - data: - type: string - id: - type: string - name: - type: string - parent: - type: string - pose: - properties: - orientation: - properties: - w: - type: number - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - - w - title: orientation - type: object - position: - properties: - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - title: position - type: object - required: - - position - - orientation - title: pose - type: object - sample_id: - type: string - type: - type: string - required: - - id - - name - - sample_id - - children - - parent - - type - - category - - pose - - config - - data - title: vessel - type: object - required: - - vessel - title: HeatChillStop_Goal - type: object - result: - properties: - return_info: - type: string - success: - type: boolean - required: - - return_info - - success - title: HeatChillStop_Result - type: object - required: - - goal - title: HeatChillStop - type: object - type: HeatChillStop - module: unilabos.devices.virtual.virtual_heatchill:VirtualHeatChill - status_types: - is_stirring: bool - max_stir_speed: float - max_temp: float - min_temp: float - operation_mode: str - progress: float - remaining_time: float - status: str - stir_speed: float - type: python - config_info: [] - description: Virtual HeatChill for HeatChillProtocol Testing - handles: - - data_key: vessel - data_source: handle - data_type: mechanical - description: 加热/冷却器的物理连接口 - handler_key: heatchill - io_type: source - label: heatchill - side: NORTH - icon: Heater.webp - init_param_schema: - config: - properties: - config: - type: object - device_id: - type: string - required: [] - type: object - data: - properties: - is_stirring: - type: boolean - max_stir_speed: - type: number - max_temp: - type: number - min_temp: - type: number - operation_mode: - type: string - progress: - type: number - remaining_time: - type: number - status: - type: string - stir_speed: - type: number - required: - - status - - operation_mode - - is_stirring - - stir_speed - - remaining_time - - progress - - max_temp - - min_temp - - max_stir_speed - type: object - version: 1.0.0 -virtual_multiway_valve: - category: - - virtual_device - class: - action_value_mappings: - auto-close: - feedback: {} - goal: {} - goal_default: {} - handles: {} - placeholder_keys: {} - result: {} - schema: - description: close的参数schema - properties: - feedback: {} - goal: - properties: {} - required: [] - type: object - result: {} - required: - - goal - title: close参数 - type: object - type: UniLabJsonCommand - auto-is_at_port: - feedback: {} - goal: {} - goal_default: - port_number: null - handles: {} - placeholder_keys: {} - result: {} - schema: - description: is_at_port的参数schema - properties: - feedback: {} - goal: - properties: - port_number: - type: integer - required: - - port_number - type: object - result: {} - required: - - goal - title: is_at_port参数 - type: object - type: UniLabJsonCommand - auto-is_at_position: - feedback: {} - goal: {} - goal_default: - position: null - handles: {} - placeholder_keys: {} - result: {} - schema: - description: is_at_position的参数schema - properties: - feedback: {} - goal: - properties: - position: - type: integer - required: - - position - type: object - result: {} - required: - - goal - title: is_at_position参数 - type: object - type: UniLabJsonCommand - auto-is_at_pump_position: - feedback: {} - goal: {} - goal_default: {} - handles: {} - placeholder_keys: {} - result: {} - schema: - description: is_at_pump_position的参数schema - properties: - feedback: {} - goal: - properties: {} - required: [] - type: object - result: {} - required: - - goal - title: is_at_pump_position参数 - type: object - type: UniLabJsonCommand - auto-open: - feedback: {} - goal: {} - goal_default: {} - handles: {} - placeholder_keys: {} - result: {} - schema: - description: '' - properties: - feedback: {} - goal: - properties: {} - required: [] - type: object - result: {} - required: - - goal - title: open参数 - type: object - type: UniLabJsonCommand - auto-reset: - feedback: {} - goal: {} - goal_default: {} - handles: {} - placeholder_keys: {} - result: {} - schema: - description: reset的参数schema - properties: - feedback: {} - goal: - properties: {} - required: [] - type: object - result: {} - required: - - goal - title: reset参数 - type: object - type: UniLabJsonCommand - auto-set_to_port: - feedback: {} - goal: {} - goal_default: - port_number: null - handles: {} - placeholder_keys: {} - result: {} - schema: - description: set_to_port的参数schema - properties: - feedback: {} - goal: - properties: - port_number: - type: integer - required: - - port_number - type: object - result: {} - required: - - goal - title: set_to_port参数 - type: object - type: UniLabJsonCommand - auto-set_to_pump_position: - feedback: {} - goal: {} - goal_default: {} - handles: {} - placeholder_keys: {} - result: {} - schema: - description: set_to_pump_position的参数schema - properties: - feedback: {} - goal: - properties: {} - required: [] - type: object - result: {} - required: - - goal - title: set_to_pump_position参数 - type: object - type: UniLabJsonCommand - auto-switch_between_pump_and_port: - feedback: {} - goal: {} - goal_default: - port_number: null - handles: {} - placeholder_keys: {} - result: {} - schema: - description: switch_between_pump_and_port的参数schema - properties: - feedback: {} - goal: - properties: - port_number: - type: integer - required: - - port_number - type: object - result: {} - required: - - goal - title: switch_between_pump_and_port参数 - type: object - type: UniLabJsonCommand - set_position: - feedback: {} - goal: - command: command - goal_default: - command: '' - handles: {} - result: - success: success - schema: - description: '' - properties: - feedback: - properties: - status: - type: string - required: - - status - title: SendCmd_Feedback - type: object - goal: - properties: - command: - type: string - required: - - command - title: SendCmd_Goal - type: object - result: - properties: - return_info: - type: string - success: - type: boolean - required: - - return_info - - success - title: SendCmd_Result - type: object - required: - - goal - title: SendCmd - type: object - type: SendCmd - set_valve_position: - feedback: {} - goal: - command: command - goal_default: - command: '' - handles: {} - result: - success: success - schema: - description: '' - properties: - feedback: - properties: - status: - type: string - required: - - status - title: SendCmd_Feedback - type: object - goal: - properties: - command: - type: string - required: - - command - title: SendCmd_Goal - type: object - result: - properties: - return_info: - type: string - success: - type: boolean - required: - - return_info - - success - title: SendCmd_Result - type: object - required: - - goal - title: SendCmd - type: object - type: SendCmd - module: unilabos.devices.virtual.virtual_multiway_valve:VirtualMultiwayValve - status_types: - current_port: str - current_position: int - flow_path: str - status: str - target_position: int - valve_position: int - valve_state: str - type: python - config_info: [] - description: Virtual 8-Way Valve for flow direction control - handles: - - data_key: fluid_in - data_source: handle - data_type: fluid - description: 八通阀门进液口 - handler_key: transferpump - io_type: target - label: transferpump - side: NORTH - - data_key: fluid_port_1 - data_source: executor - data_type: fluid - description: 八通阀门端口1 - handler_key: '1' - io_type: source - label: '1' - side: NORTH - - data_key: fluid_port_2 - data_source: executor - data_type: fluid - description: 八通阀门端口2 - handler_key: '2' - io_type: source - label: '2' - side: EAST - - data_key: fluid_port_3 - data_source: executor - data_type: fluid - description: 八通阀门端口3 - handler_key: '3' - io_type: source - label: '3' - side: EAST - - data_key: fluid_port_4 - data_source: executor - data_type: fluid - description: 八通阀门端口4 - handler_key: '4' - io_type: source - label: '4' - side: SOUTH - - data_key: fluid_port_5 - data_source: executor - data_type: fluid - description: 八通阀门端口5 - handler_key: '5' - io_type: source - label: '5' - side: SOUTH - - data_key: fluid_port_6 - data_source: executor - data_type: fluid - description: 八通阀门端口6 - handler_key: '6' - io_type: source - label: '6' - side: WEST - - data_key: fluid_port_7 - data_source: executor - data_type: fluid - description: 八通阀门端口7 - handler_key: '7' - io_type: source - label: '7' - side: WEST - - data_key: fluid_port_8 - data_source: executor - data_type: fluid - description: 八通阀门端口8-特殊输入 - handler_key: '8' - io_type: target - label: '8' - side: WEST - - data_key: fluid_port_8 - data_source: executor - data_type: fluid - description: 八通阀门端口8 - handler_key: '8' - io_type: source - label: '8' - side: NORTH - icon: EightPipeline.webp - init_param_schema: - config: - properties: - port: - default: VIRTUAL - type: string - positions: - default: 8 - type: integer - required: [] - type: object - data: - properties: - current_port: - type: string - current_position: - type: integer - flow_path: - type: string - status: - type: string - target_position: - type: integer - valve_position: - type: integer - valve_state: - type: string - required: - - status - - valve_state - - current_position - - target_position - - current_port - - valve_position - - flow_path - type: object - version: 1.0.0 -virtual_rotavap: - category: - - virtual_device - class: - action_value_mappings: - auto-cleanup: - feedback: {} - goal: {} - goal_default: {} - handles: {} - placeholder_keys: {} - result: {} - schema: - description: cleanup的参数schema - properties: - feedback: {} - goal: - properties: {} - required: [] - type: object - result: {} - required: - - goal - title: cleanup参数 - type: object - type: UniLabJsonCommandAsync - auto-initialize: - feedback: {} - goal: {} - goal_default: {} - handles: {} - placeholder_keys: {} - result: {} - schema: - description: initialize的参数schema - properties: - feedback: {} - goal: - properties: {} - required: [] - type: object - result: {} - required: - - goal - title: initialize参数 - type: object - type: UniLabJsonCommandAsync - auto-post_init: - feedback: {} - goal: {} - goal_default: - ros_node: null - handles: {} - placeholder_keys: {} - result: {} - schema: - description: '' - properties: - feedback: {} - goal: - properties: - ros_node: - type: object - required: - - ros_node - type: object - result: {} - required: - - goal - title: post_init参数 - type: object - type: UniLabJsonCommand - evaporate: - feedback: - current_device: current_device - status: status - goal: - pressure: pressure - stir_speed: stir_speed - temp: temp - time: time - vessel: vessel - goal_default: - pressure: 0.0 - solvent: '' - stir_speed: 0.0 - temp: 0.0 - time: '' - vessel: - category: '' - children: [] - config: '' - data: '' - id: '' - name: '' - parent: '' - pose: - orientation: - w: 1.0 - x: 0.0 - y: 0.0 - z: 0.0 - position: - x: 0.0 - y: 0.0 - z: 0.0 - sample_id: '' - type: '' - handles: {} - result: - message: message - success: success - schema: - description: '' - properties: - feedback: - properties: - current_device: - type: string - status: - type: string - time_remaining: - properties: - nanosec: - maximum: 4294967295 - minimum: 0 - type: integer - sec: - maximum: 2147483647 - minimum: -2147483648 - type: integer - required: - - sec - - nanosec - title: time_remaining - type: object - time_spent: - properties: - nanosec: - maximum: 4294967295 - minimum: 0 - type: integer - sec: - maximum: 2147483647 - minimum: -2147483648 - type: integer - required: - - sec - - nanosec - title: time_spent - type: object - required: - - status - - current_device - - time_spent - - time_remaining - title: Evaporate_Feedback - type: object - goal: - properties: - pressure: - type: number - solvent: - type: string - stir_speed: - type: number - temp: - type: number - time: - type: string - vessel: - properties: - category: - type: string - children: - items: - type: string - type: array - config: - type: string - data: - type: string - id: - type: string - name: - type: string - parent: - type: string - pose: - properties: - orientation: - properties: - w: - type: number - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - - w - title: orientation - type: object - position: - properties: - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - title: position - type: object - required: - - position - - orientation - title: pose - type: object - sample_id: - type: string - type: - type: string - required: - - id - - name - - sample_id - - children - - parent - - type - - category - - pose - - config - - data - title: vessel - type: object - required: - - vessel - - pressure - - temp - - time - - stir_speed - - solvent - title: Evaporate_Goal - type: object - result: - properties: - return_info: - type: string - success: - type: boolean - required: - - return_info - - success - title: Evaporate_Result - type: object - required: - - goal - title: Evaporate - type: object - type: Evaporate - module: unilabos.devices.virtual.virtual_rotavap:VirtualRotavap - status_types: - current_temp: float - evaporated_volume: float - max_rotation_speed: float - max_temp: float - message: str - progress: float - remaining_time: float - rotation_speed: float - rotavap_state: str - status: str - vacuum_pressure: float - type: python - config_info: [] - description: Virtual Rotary Evaporator for EvaporateProtocol Testing - handles: - - data_key: vessel_in - data_source: handle - data_type: fluid - description: 样品连接口 - handler_key: samplein - io_type: target - label: sample_in - side: NORTH - - data_key: product_out - data_source: handle - data_type: fluid - description: 浓缩产物出口 - handler_key: productout - io_type: source - label: product_out - side: SOUTH - - data_key: solvent_out - data_source: handle - data_type: fluid - description: 冷凝溶剂出口 - handler_key: solventout - io_type: source - label: solvent_out - side: EAST - icon: Rotaryevaporator.webp - init_param_schema: - config: - properties: - config: - type: string - device_id: - type: string - required: [] - type: object - data: - properties: - current_temp: - type: number - evaporated_volume: - type: number - max_rotation_speed: - type: number - max_temp: - type: number - message: - type: string - progress: - type: number - remaining_time: - type: number - rotation_speed: - type: number - rotavap_state: - type: string - status: - type: string - vacuum_pressure: - type: number - required: - - status - - rotavap_state - - current_temp - - rotation_speed - - vacuum_pressure - - evaporated_volume - - progress - - message - - max_temp - - max_rotation_speed - - remaining_time - type: object - version: 1.0.0 -virtual_separator: - category: - - virtual_device - class: - action_value_mappings: - auto-cleanup: - feedback: {} - goal: {} - goal_default: {} - handles: {} - placeholder_keys: {} - result: {} - schema: - description: cleanup的参数schema - properties: - feedback: {} - goal: - properties: {} - required: [] - type: object - result: {} - required: - - goal - title: cleanup参数 - type: object - type: UniLabJsonCommandAsync - auto-initialize: - feedback: {} - goal: {} - goal_default: {} - handles: {} - placeholder_keys: {} - result: {} - schema: - description: initialize的参数schema - properties: - feedback: {} - goal: - properties: {} - required: [] - type: object - result: {} - required: - - goal - title: initialize参数 - type: object - type: UniLabJsonCommandAsync - auto-post_init: - feedback: {} - goal: {} - goal_default: - ros_node: null - handles: {} - placeholder_keys: {} - result: {} - schema: - description: '' - properties: - feedback: {} - goal: - properties: - ros_node: - type: object - required: - - ros_node - type: object - result: {} - required: - - goal - title: post_init参数 - type: object - type: UniLabJsonCommand - separate: - feedback: - current_status: status - progress: progress - goal: - from_vessel: from_vessel - product_phase: product_phase - purpose: purpose - repeats: repeats - separation_vessel: separation_vessel - settling_time: settling_time - solvent: solvent - solvent_volume: solvent_volume - stir_speed: stir_speed - stir_time: stir_time - through: through - to_vessel: to_vessel - waste_phase_to_vessel: waste_phase_to_vessel - goal_default: - from_vessel: - category: '' - children: [] - config: '' - data: '' - id: '' - name: '' - parent: '' - pose: - orientation: - w: 1.0 - x: 0.0 - y: 0.0 - z: 0.0 - position: - x: 0.0 - y: 0.0 - z: 0.0 - sample_id: '' - type: '' - product_phase: '' - product_vessel: - category: '' - children: [] - config: '' - data: '' - id: '' - name: '' - parent: '' - pose: - orientation: - w: 1.0 - x: 0.0 - y: 0.0 - z: 0.0 - position: - x: 0.0 - y: 0.0 - z: 0.0 - sample_id: '' - type: '' - purpose: '' - repeats: 0 - separation_vessel: - category: '' - children: [] - config: '' - data: '' - id: '' - name: '' - parent: '' - pose: - orientation: - w: 1.0 - x: 0.0 - y: 0.0 - z: 0.0 - position: - x: 0.0 - y: 0.0 - z: 0.0 - sample_id: '' - type: '' - settling_time: 0.0 - solvent: '' - solvent_volume: '' - stir_speed: 0.0 - stir_time: 0.0 - through: '' - to_vessel: - category: '' - children: [] - config: '' - data: '' - id: '' - name: '' - parent: '' - pose: - orientation: - w: 1.0 - x: 0.0 - y: 0.0 - z: 0.0 - position: - x: 0.0 - y: 0.0 - z: 0.0 - sample_id: '' - type: '' - vessel: - category: '' - children: [] - config: '' - data: '' - id: '' - name: '' - parent: '' - pose: - orientation: - w: 1.0 - x: 0.0 - y: 0.0 - z: 0.0 - position: - x: 0.0 - y: 0.0 - z: 0.0 - sample_id: '' - type: '' - volume: '' - waste_phase_to_vessel: - category: '' - children: [] - config: '' - data: '' - id: '' - name: '' - parent: '' - pose: - orientation: - w: 1.0 - x: 0.0 - y: 0.0 - z: 0.0 - position: - x: 0.0 - y: 0.0 - z: 0.0 - sample_id: '' - type: '' - waste_vessel: - category: '' - children: [] - config: '' - data: '' - id: '' - name: '' - parent: '' - pose: - orientation: - w: 1.0 - x: 0.0 - y: 0.0 - z: 0.0 - position: - x: 0.0 - y: 0.0 - z: 0.0 - sample_id: '' - type: '' - handles: {} - result: - message: message - success: success - schema: - description: '' - properties: - feedback: - properties: - progress: - type: number - status: - type: string - required: - - status - - progress - title: Separate_Feedback - type: object - goal: - properties: - from_vessel: - properties: - category: - type: string - children: - items: - type: string - type: array - config: - type: string - data: - type: string - id: - type: string - name: - type: string - parent: - type: string - pose: - properties: - orientation: - properties: - w: - type: number - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - - w - title: orientation - type: object - position: - properties: - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - title: position - type: object - required: - - position - - orientation - title: pose - type: object - sample_id: - type: string - type: - type: string - required: - - id - - name - - sample_id - - children - - parent - - type - - category - - pose - - config - - data - title: from_vessel - type: object - product_phase: - type: string - product_vessel: - properties: - category: - type: string - children: - items: - type: string - type: array - config: - type: string - data: - type: string - id: - type: string - name: - type: string - parent: - type: string - pose: - properties: - orientation: - properties: - w: - type: number - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - - w - title: orientation - type: object - position: - properties: - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - title: position - type: object - required: - - position - - orientation - title: pose - type: object - sample_id: - type: string - type: - type: string - required: - - id - - name - - sample_id - - children - - parent - - type - - category - - pose - - config - - data - title: product_vessel - type: object - purpose: - type: string - repeats: - maximum: 2147483647 - minimum: -2147483648 - type: integer - separation_vessel: - properties: - category: - type: string - children: - items: - type: string - type: array - config: - type: string - data: - type: string - id: - type: string - name: - type: string - parent: - type: string - pose: - properties: - orientation: - properties: - w: - type: number - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - - w - title: orientation - type: object - position: - properties: - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - title: position - type: object - required: - - position - - orientation - title: pose - type: object - sample_id: - type: string - type: - type: string - required: - - id - - name - - sample_id - - children - - parent - - type - - category - - pose - - config - - data - title: separation_vessel - type: object - settling_time: - type: number - solvent: - type: string - solvent_volume: - type: string - stir_speed: - type: number - stir_time: - type: number - through: - type: string - to_vessel: - properties: - category: - type: string - children: - items: - type: string - type: array - config: - type: string - data: - type: string - id: - type: string - name: - type: string - parent: - type: string - pose: - properties: - orientation: - properties: - w: - type: number - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - - w - title: orientation - type: object - position: - properties: - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - title: position - type: object - required: - - position - - orientation - title: pose - type: object - sample_id: - type: string - type: - type: string - required: - - id - - name - - sample_id - - children - - parent - - type - - category - - pose - - config - - data - title: to_vessel - type: object - vessel: - properties: - category: - type: string - children: - items: - type: string - type: array - config: - type: string - data: - type: string - id: - type: string - name: - type: string - parent: - type: string - pose: - properties: - orientation: - properties: - w: - type: number - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - - w - title: orientation - type: object - position: - properties: - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - title: position - type: object - required: - - position - - orientation - title: pose - type: object - sample_id: - type: string - type: - type: string - required: - - id - - name - - sample_id - - children - - parent - - type - - category - - pose - - config - - data - title: vessel - type: object - volume: - type: string - waste_phase_to_vessel: - properties: - category: - type: string - children: - items: - type: string - type: array - config: - type: string - data: - type: string - id: - type: string - name: - type: string - parent: - type: string - pose: - properties: - orientation: - properties: - w: - type: number - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - - w - title: orientation - type: object - position: - properties: - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - title: position - type: object - required: - - position - - orientation - title: pose - type: object - sample_id: - type: string - type: - type: string - required: - - id - - name - - sample_id - - children - - parent - - type - - category - - pose - - config - - data - title: waste_phase_to_vessel - type: object - waste_vessel: - properties: - category: - type: string - children: - items: - type: string - type: array - config: - type: string - data: - type: string - id: - type: string - name: - type: string - parent: - type: string - pose: - properties: - orientation: - properties: - w: - type: number - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - - w - title: orientation - type: object - position: - properties: - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - title: position - type: object - required: - - position - - orientation - title: pose - type: object - sample_id: - type: string - type: - type: string - required: - - id - - name - - sample_id - - children - - parent - - type - - category - - pose - - config - - data - title: waste_vessel - type: object - required: - - vessel - - purpose - - product_phase - - from_vessel - - separation_vessel - - to_vessel - - waste_phase_to_vessel - - product_vessel - - waste_vessel - - solvent - - solvent_volume - - volume - - through - - repeats - - stir_time - - stir_speed - - settling_time - title: Separate_Goal - type: object - result: - properties: - message: - type: string - return_info: - type: string - success: - type: boolean - required: - - success - - message - - return_info - title: Separate_Result - type: object - required: - - goal - title: Separate - type: object - type: Separate - module: unilabos.devices.virtual.virtual_separator:VirtualSeparator - status_types: - has_phases: bool - message: str - phase_separation: bool - progress: float - separator_state: str - settling_time: float - status: str - stir_speed: float - volume: float - type: python - config_info: [] - description: Virtual Separator for SeparateProtocol Testing - handles: - - data_key: from_vessel - data_source: handle - data_type: fluid - description: 需要分离的混合液体输入口 - handler_key: separatorin - io_type: target - label: separator_in - side: NORTH - - data_key: bottom_outlet - data_source: executor - data_type: fluid - description: 下相(重相)液体输出口 - handler_key: bottomphaseout - io_type: source - label: bottom_phase_out - side: SOUTH - - data_key: mechanical_port - data_source: handle - data_type: mechanical - description: 用于连接搅拌器等机械设备的接口 - handler_key: bind - io_type: target - label: bind - side: WEST - icon: Separator.webp - init_param_schema: - config: - properties: - config: - type: string - device_id: - type: string - required: [] - type: object - data: - properties: - has_phases: - type: boolean - message: - type: string - phase_separation: - type: boolean - progress: - type: number - separator_state: - type: string - settling_time: - type: number - status: - type: string - stir_speed: - type: number - volume: - type: number - required: - - status - - separator_state - - volume - - has_phases - - phase_separation - - stir_speed - - settling_time - - progress - - message - type: object - version: 1.0.0 -virtual_solenoid_valve: - category: - - virtual_device - class: - action_value_mappings: - auto-cleanup: - feedback: {} - goal: {} - goal_default: {} - handles: {} - placeholder_keys: {} - result: {} - schema: - description: cleanup的参数schema - properties: - feedback: {} - goal: - properties: {} - required: [] - type: object - result: {} - required: - - goal - title: cleanup参数 - type: object - type: UniLabJsonCommandAsync - auto-initialize: - feedback: {} - goal: {} - goal_default: {} - handles: {} - placeholder_keys: {} - result: {} - schema: - description: initialize的参数schema - properties: - feedback: {} - goal: - properties: {} - required: [] - type: object - result: {} - required: - - goal - title: initialize参数 - type: object - type: UniLabJsonCommandAsync - auto-is_closed: - feedback: {} - goal: {} - goal_default: {} - handles: {} - placeholder_keys: {} - result: {} - schema: - description: is_closed的参数schema - properties: - feedback: {} - goal: - properties: {} - required: [] - type: object - result: {} - required: - - goal - title: is_closed参数 - type: object - type: UniLabJsonCommand - auto-post_init: - feedback: {} - goal: {} - goal_default: - ros_node: null - handles: {} - placeholder_keys: {} - result: {} - schema: - description: '' - properties: - feedback: {} - goal: - properties: - ros_node: - type: object - required: - - ros_node - type: object - result: {} - required: - - goal - title: post_init参数 - type: object - type: UniLabJsonCommand - auto-reset: - feedback: {} - goal: {} - goal_default: {} - handles: {} - placeholder_keys: {} - result: {} - schema: - description: reset的参数schema - properties: - feedback: {} - goal: - properties: {} - required: [] - type: object - result: {} - required: - - goal - title: reset参数 - type: object - type: UniLabJsonCommandAsync - auto-toggle: - feedback: {} - goal: {} - goal_default: {} - handles: {} - placeholder_keys: {} - result: {} - schema: - description: toggle的参数schema - properties: - feedback: {} - goal: - properties: {} - required: [] - type: object - result: {} - required: - - goal - title: toggle参数 - type: object - type: UniLabJsonCommand - close: - feedback: {} - goal: - command: CLOSED - goal_default: {} - handles: {} - result: - success: success - schema: - description: '' - properties: - feedback: - properties: {} - required: [] - title: EmptyIn_Feedback - type: object - goal: - properties: {} - required: [] - title: EmptyIn_Goal - type: object - result: - properties: - return_info: - type: string - required: - - return_info - title: EmptyIn_Result - type: object - required: - - goal - title: EmptyIn - type: object - type: EmptyIn - open: - feedback: {} - goal: {} - goal_default: {} - handles: {} - result: {} - schema: - description: '' - properties: - feedback: - properties: {} - required: [] - title: EmptyIn_Feedback - type: object - goal: - properties: {} - required: [] - title: EmptyIn_Goal - type: object - result: - properties: - return_info: - type: string - required: - - return_info - title: EmptyIn_Result - type: object - required: - - goal - title: EmptyIn - type: object - type: EmptyIn - set_status: - feedback: {} - goal: - string: string - goal_default: - string: '' - handles: {} - result: {} - schema: - description: '' - properties: - feedback: - properties: {} - required: [] - title: StrSingleInput_Feedback - type: object - goal: - properties: - string: - type: string - required: - - string - title: StrSingleInput_Goal - type: object - result: - properties: - return_info: - type: string - success: - type: boolean - required: - - return_info - - success - title: StrSingleInput_Result - type: object - required: - - goal - title: StrSingleInput - type: object - type: StrSingleInput - set_valve_position: - feedback: {} - goal: - command: command - goal_default: - command: '' - handles: {} - result: - message: message - success: success - valve_position: valve_position - schema: - description: '' - properties: - feedback: - properties: - status: - type: string - required: - - status - title: SendCmd_Feedback - type: object - goal: - properties: - command: - type: string - required: - - command - title: SendCmd_Goal - type: object - result: - properties: - return_info: - type: string - success: - type: boolean - required: - - return_info - - success - title: SendCmd_Result - type: object - required: - - goal - title: SendCmd - type: object - type: SendCmd - module: unilabos.devices.virtual.virtual_solenoid_valve:VirtualSolenoidValve - status_types: - is_open: bool - status: str - valve_position: str - valve_state: str - type: python - config_info: [] - description: Virtual Solenoid Valve for simple on/off flow control - handles: - - data_key: fluid_port_in - data_source: handle - data_type: fluid - description: 电磁阀的进液口 - handler_key: in - io_type: target - label: in - side: NORTH - - data_key: fluid_port_out - data_source: handle - data_type: fluid - description: 电磁阀的出液口 - handler_key: out - io_type: source - label: out - side: SOUTH - icon: '' - init_param_schema: - config: - properties: - config: - type: object - device_id: - type: string - required: [] - type: object - data: - properties: - is_open: - type: boolean - status: - type: string - valve_position: - type: string - valve_state: - type: string - required: - - status - - valve_state - - is_open - - valve_position - type: object - version: 1.0.0 -virtual_solid_dispenser: - category: - - virtual_device - class: - action_value_mappings: - add_solid: - feedback: - current_status: status - progress: progress - goal: - equiv: equiv - event: event - mass: mass - mol: mol - purpose: purpose - rate_spec: rate_spec - ratio: ratio - reagent: reagent - vessel: vessel - goal_default: - amount: '' - equiv: '' - event: '' - mass: '' - mol: '' - purpose: '' - rate_spec: '' - ratio: '' - reagent: '' - stir: false - stir_speed: 0.0 - time: '' - vessel: - category: '' - children: [] - config: '' - data: '' - id: '' - name: '' - parent: '' - pose: - orientation: - w: 1.0 - x: 0.0 - y: 0.0 - z: 0.0 - position: - x: 0.0 - y: 0.0 - z: 0.0 - sample_id: '' - type: '' - viscous: false - volume: '' - handles: {} - result: - message: message - return_info: return_info - success: success - schema: - description: '' - properties: - feedback: - properties: - current_status: - type: string - progress: - type: number - required: - - progress - - current_status - title: Add_Feedback - type: object - goal: - properties: - amount: - type: string - equiv: - type: string - event: - type: string - mass: - type: string - mol: - type: string - purpose: - type: string - rate_spec: - type: string - ratio: - type: string - reagent: - type: string - stir: - type: boolean - stir_speed: - type: number - time: - type: string - vessel: - properties: - category: - type: string - children: - items: - type: string - type: array - config: - type: string - data: - type: string - id: - type: string - name: - type: string - parent: - type: string - pose: - properties: - orientation: - properties: - w: - type: number - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - - w - title: orientation - type: object - position: - properties: - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - title: position - type: object - required: - - position - - orientation - title: pose - type: object - sample_id: - type: string - type: - type: string - required: - - id - - name - - sample_id - - children - - parent - - type - - category - - pose - - config - - data - title: vessel - type: object - viscous: - type: boolean - volume: - type: string - required: - - vessel - - reagent - - volume - - mass - - amount - - time - - stir - - stir_speed - - viscous - - purpose - - event - - mol - - rate_spec - - equiv - - ratio - title: Add_Goal - type: object - result: - properties: - message: - type: string - return_info: - type: string - success: - type: boolean - required: - - success - - message - - return_info - title: Add_Result - type: object - required: - - goal - title: Add - type: object - type: Add - auto-cleanup: - feedback: {} - goal: {} - goal_default: {} - handles: {} - placeholder_keys: {} - result: {} - schema: - description: cleanup的参数schema - properties: - feedback: {} - goal: - properties: {} - required: [] - type: object - result: {} - required: - - goal - title: cleanup参数 - type: object - type: UniLabJsonCommandAsync - auto-find_solid_reagent_bottle: - feedback: {} - goal: {} - goal_default: - reagent_name: null - handles: {} - placeholder_keys: {} - result: {} - schema: - description: '' - properties: - feedback: {} - goal: - properties: - reagent_name: - type: string - required: - - reagent_name - type: object - result: {} - required: - - goal - title: find_solid_reagent_bottle参数 - type: object - type: UniLabJsonCommand - auto-initialize: - feedback: {} - goal: {} - goal_default: {} - handles: {} - placeholder_keys: {} - result: {} - schema: - description: initialize的参数schema - properties: - feedback: {} - goal: - properties: {} - required: [] - type: object - result: {} - required: - - goal - title: initialize参数 - type: object - type: UniLabJsonCommandAsync - auto-parse_mass_string: - feedback: {} - goal: {} - goal_default: - mass_str: null - handles: {} - placeholder_keys: {} - result: {} - schema: - description: '' - properties: - feedback: {} - goal: - properties: - mass_str: - type: string - required: - - mass_str - type: object - result: {} - required: - - goal - title: parse_mass_string参数 - type: object - type: UniLabJsonCommand - auto-parse_mol_string: - feedback: {} - goal: {} - goal_default: - mol_str: null - handles: {} - placeholder_keys: {} - result: {} - schema: - description: '' - properties: - feedback: {} - goal: - properties: - mol_str: - type: string - required: - - mol_str - type: object - result: {} - required: - - goal - title: parse_mol_string参数 - type: object - type: UniLabJsonCommand - auto-post_init: - feedback: {} - goal: {} - goal_default: - ros_node: null - handles: {} - placeholder_keys: {} - result: {} - schema: - description: '' - properties: - feedback: {} - goal: - properties: - ros_node: - type: object - required: - - ros_node - type: object - result: {} - required: - - goal - title: post_init参数 - type: object - type: UniLabJsonCommand - module: unilabos.devices.virtual.virtual_solid_dispenser:VirtualSolidDispenser - status_types: - current_reagent: str - dispensed_amount: float - status: str - total_operations: int - type: python - config_info: [] - description: Virtual Solid Dispenser for Add Protocol Testing - supports mass and - molar additions - handles: - - data_key: solid_out - data_source: executor - data_type: resource - description: 固体试剂输出口 - handler_key: SolidOut - io_type: source - label: SolidOut - side: SOUTH - - data_key: solid_in - data_source: handle - data_type: resource - description: 固体试剂输入口(连接试剂瓶) - handler_key: SolidIn - io_type: target - label: SolidIn - side: NORTH - icon: '' - init_param_schema: - config: - properties: - config: - type: object - device_id: - type: string - required: [] - type: object - data: - properties: - current_reagent: - type: string - dispensed_amount: - type: number - status: - type: string - total_operations: - type: integer - required: - - status - - current_reagent - - dispensed_amount - - total_operations - type: object - version: 1.0.0 -virtual_stirrer: - category: - - virtual_device - class: - action_value_mappings: - auto-cleanup: - feedback: {} - goal: {} - goal_default: {} - handles: {} - placeholder_keys: {} - result: {} - schema: - description: cleanup的参数schema - properties: - feedback: {} - goal: - properties: {} - required: [] - type: object - result: {} - required: - - goal - title: cleanup参数 - type: object - type: UniLabJsonCommandAsync - auto-initialize: - feedback: {} - goal: {} - goal_default: {} - handles: {} - placeholder_keys: {} - result: {} - schema: - description: initialize的参数schema - properties: - feedback: {} - goal: - properties: {} - required: [] - type: object - result: {} - required: - - goal - title: initialize参数 - type: object - type: UniLabJsonCommandAsync - auto-post_init: - feedback: {} - goal: {} - goal_default: - ros_node: null - handles: {} - placeholder_keys: {} - result: {} - schema: - description: '' - properties: - feedback: {} - goal: - properties: - ros_node: - type: object - required: - - ros_node - type: object - result: {} - required: - - goal - title: post_init参数 - type: object - type: UniLabJsonCommand - start_stir: - feedback: - status: status - goal: - purpose: purpose - stir_speed: stir_speed - vessel: vessel - goal_default: - purpose: '' - stir_speed: 0.0 - vessel: - category: '' - children: [] - config: '' - data: '' - id: '' - name: '' - parent: '' - pose: - orientation: - w: 1.0 - x: 0.0 - y: 0.0 - z: 0.0 - position: - x: 0.0 - y: 0.0 - z: 0.0 - sample_id: '' - type: '' - handles: {} - result: - success: success - schema: - description: '' - properties: - feedback: - properties: - current_speed: - type: number - current_status: - type: string - progress: - type: number - required: - - progress - - current_speed - - current_status - title: StartStir_Feedback - type: object - goal: - properties: - purpose: - type: string - stir_speed: - type: number - vessel: - properties: - category: - type: string - children: - items: - type: string - type: array - config: - type: string - data: - type: string - id: - type: string - name: - type: string - parent: - type: string - pose: - properties: - orientation: - properties: - w: - type: number - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - - w - title: orientation - type: object - position: - properties: - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - title: position - type: object - required: - - position - - orientation - title: pose - type: object - sample_id: - type: string - type: - type: string - required: - - id - - name - - sample_id - - children - - parent - - type - - category - - pose - - config - - data - title: vessel - type: object - required: - - vessel - - stir_speed - - purpose - title: StartStir_Goal - type: object - result: - properties: - message: - type: string - return_info: - type: string - success: - type: boolean - required: - - success - - message - - return_info - title: StartStir_Result - type: object - required: - - goal - title: StartStir - type: object - type: StartStir - stir: - feedback: - status: status - goal: - settling_time: settling_time - stir_speed: stir_speed - stir_time: stir_time - goal_default: - event: '' - settling_time: '' - stir_speed: 0.0 - stir_time: 0.0 - time: '' - time_spec: '' - vessel: - category: '' - children: [] - config: '' - data: '' - id: '' - name: '' - parent: '' - pose: - orientation: - w: 1.0 - x: 0.0 - y: 0.0 - z: 0.0 - position: - x: 0.0 - y: 0.0 - z: 0.0 - sample_id: '' - type: '' - handles: {} - result: - success: success - schema: - description: '' - properties: - feedback: - properties: - status: - type: string - required: - - status - title: Stir_Feedback - type: object - goal: - properties: - event: - type: string - settling_time: - type: string - stir_speed: - type: number - stir_time: - type: number - time: - type: string - time_spec: - type: string - vessel: - properties: - category: - type: string - children: - items: - type: string - type: array - config: - type: string - data: - type: string - id: - type: string - name: - type: string - parent: - type: string - pose: - properties: - orientation: - properties: - w: - type: number - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - - w - title: orientation - type: object - position: - properties: - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - title: position - type: object - required: - - position - - orientation - title: pose - type: object - sample_id: - type: string - type: - type: string - required: - - id - - name - - sample_id - - children - - parent - - type - - category - - pose - - config - - data - title: vessel - type: object - required: - - vessel - - time - - event - - time_spec - - stir_time - - stir_speed - - settling_time - title: Stir_Goal - type: object - result: - properties: - message: - type: string - return_info: - type: string - success: - type: boolean - required: - - success - - message - - return_info - title: Stir_Result - type: object - required: - - goal - title: Stir - type: object - type: Stir - stop_stir: - feedback: - status: status - goal: - vessel: vessel - goal_default: - vessel: - category: '' - children: [] - config: '' - data: '' - id: '' - name: '' - parent: '' - pose: - orientation: - w: 1.0 - x: 0.0 - y: 0.0 - z: 0.0 - position: - x: 0.0 - y: 0.0 - z: 0.0 - sample_id: '' - type: '' - handles: {} - result: - success: success - schema: - description: '' - properties: - feedback: - properties: - current_status: - type: string - progress: - type: number - required: - - progress - - current_status - title: StopStir_Feedback - type: object - goal: - properties: - vessel: - properties: - category: - type: string - children: - items: - type: string - type: array - config: - type: string - data: - type: string - id: - type: string - name: - type: string - parent: - type: string - pose: - properties: - orientation: - properties: - w: - type: number - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - - w - title: orientation - type: object - position: - properties: - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - title: position - type: object - required: - - position - - orientation - title: pose - type: object - sample_id: - type: string - type: - type: string - required: - - id - - name - - sample_id - - children - - parent - - type - - category - - pose - - config - - data - title: vessel - type: object - required: - - vessel - title: StopStir_Goal - type: object - result: - properties: - message: - type: string - return_info: - type: string - success: - type: boolean - required: - - success - - message - - return_info - title: StopStir_Result - type: object - required: - - goal - title: StopStir - type: object - type: StopStir - module: unilabos.devices.virtual.virtual_stirrer:VirtualStirrer - status_types: - current_speed: float - current_vessel: str - device_info: dict - is_stirring: bool - max_speed: float - min_speed: float - operation_mode: str - remaining_time: float - status: str - type: python - config_info: [] - description: Virtual Stirrer for StirProtocol Testing - handles: - - data_key: vessel - data_source: handle - data_type: mechanical - description: 搅拌器的机械连接口 - handler_key: stirrer - io_type: source - label: stirrer - side: NORTH - icon: Stirrer.webp - init_param_schema: - config: - properties: - config: - type: object - device_id: - type: string - required: [] - type: object - data: - properties: - current_speed: - type: number - current_vessel: - type: string - device_info: - type: object - is_stirring: - type: boolean - max_speed: - type: number - min_speed: - type: number - operation_mode: - type: string - remaining_time: - type: number - status: - type: string - required: - - status - - operation_mode - - current_vessel - - current_speed - - is_stirring - - remaining_time - - max_speed - - min_speed - - device_info - type: object - version: 1.0.0 -virtual_transfer_pump: - category: - - virtual_device - class: - action_value_mappings: - auto-aspirate: - feedback: {} - goal: {} - goal_default: - velocity: null - volume: null - handles: {} - placeholder_keys: {} - result: {} - schema: - description: aspirate的参数schema - properties: - feedback: {} - goal: - properties: - velocity: - type: number - volume: - type: number - required: - - volume - type: object - result: {} - required: - - goal - title: aspirate参数 - type: object - type: UniLabJsonCommandAsync - auto-cleanup: - feedback: {} - goal: {} - goal_default: {} - handles: {} - placeholder_keys: {} - result: {} - schema: - description: cleanup的参数schema - properties: - feedback: {} - goal: - properties: {} - required: [] - type: object - result: {} - required: - - goal - title: cleanup参数 - type: object - type: UniLabJsonCommandAsync - auto-dispense: - feedback: {} - goal: {} - goal_default: - velocity: null - volume: null - handles: {} - placeholder_keys: {} - result: {} - schema: - description: dispense的参数schema - properties: - feedback: {} - goal: - properties: - velocity: - type: number - volume: - type: number - required: - - volume - type: object - result: {} - required: - - goal - title: dispense参数 - type: object - type: UniLabJsonCommandAsync - auto-empty_syringe: - feedback: {} - goal: {} - goal_default: - velocity: null - handles: {} - placeholder_keys: {} - result: {} - schema: - description: empty_syringe的参数schema - properties: - feedback: {} - goal: - properties: - velocity: - type: number - required: [] - type: object - result: {} - required: - - goal - title: empty_syringe参数 - type: object - type: UniLabJsonCommandAsync - auto-fill_syringe: - feedback: {} - goal: {} - goal_default: - velocity: null - handles: {} - placeholder_keys: {} - result: {} - schema: - description: fill_syringe的参数schema - properties: - feedback: {} - goal: - properties: - velocity: - type: number - required: [] - type: object - result: {} - required: - - goal - title: fill_syringe参数 - type: object - type: UniLabJsonCommandAsync - auto-initialize: - feedback: {} - goal: {} - goal_default: {} - handles: {} - placeholder_keys: {} - result: {} - schema: - description: initialize的参数schema - properties: - feedback: {} - goal: - properties: {} - required: [] - type: object - result: {} - required: - - goal - title: initialize参数 - type: object - type: UniLabJsonCommandAsync - auto-is_empty: - feedback: {} - goal: {} - goal_default: {} - handles: {} - placeholder_keys: {} - result: {} - schema: - description: is_empty的参数schema - properties: - feedback: {} - goal: - properties: {} - required: [] - type: object - result: {} - required: - - goal - title: is_empty参数 - type: object - type: UniLabJsonCommand - auto-is_full: - feedback: {} - goal: {} - goal_default: {} - handles: {} - placeholder_keys: {} - result: {} - schema: - description: is_full的参数schema - properties: - feedback: {} - goal: - properties: {} - required: [] - type: object - result: {} - required: - - goal - title: is_full参数 - type: object - type: UniLabJsonCommand - auto-post_init: - feedback: {} - goal: {} - goal_default: - ros_node: null - handles: {} - placeholder_keys: {} - result: {} - schema: - description: '' - properties: - feedback: {} - goal: - properties: - ros_node: - type: object - required: - - ros_node - type: object - result: {} - required: - - goal - title: post_init参数 - type: object - type: UniLabJsonCommand - auto-pull_plunger: - feedback: {} - goal: {} - goal_default: - velocity: null - volume: null - handles: {} - placeholder_keys: {} - result: {} - schema: - description: pull_plunger的参数schema - properties: - feedback: {} - goal: - properties: - velocity: - type: number - volume: - type: number - required: - - volume - type: object - result: {} - required: - - goal - title: pull_plunger参数 - type: object - type: UniLabJsonCommandAsync - auto-push_plunger: - feedback: {} - goal: {} - goal_default: - velocity: null - volume: null - handles: {} - placeholder_keys: {} - result: {} - schema: - description: push_plunger的参数schema - properties: - feedback: {} - goal: - properties: - velocity: - type: number - volume: - type: number - required: - - volume - type: object - result: {} - required: - - goal - title: push_plunger参数 - type: object - type: UniLabJsonCommandAsync - auto-set_max_velocity: - feedback: {} - goal: {} - goal_default: - velocity: null - handles: {} - placeholder_keys: {} - result: {} - schema: - description: set_max_velocity的参数schema - properties: - feedback: {} - goal: - properties: - velocity: - type: number - required: - - velocity - type: object - result: {} - required: - - goal - title: set_max_velocity参数 - type: object - type: UniLabJsonCommand - auto-stop_operation: - feedback: {} - goal: {} - goal_default: {} - handles: {} - placeholder_keys: {} - result: {} - schema: - description: stop_operation的参数schema - properties: - feedback: {} - goal: - properties: {} - required: [] - type: object - result: {} - required: - - goal - title: stop_operation参数 - type: object - type: UniLabJsonCommandAsync - set_position: - feedback: - current_position: current_position - progress: progress - status: status - goal: - max_velocity: max_velocity - position: position - goal_default: - max_velocity: 0.0 - position: 0.0 - handles: {} - result: - message: message - success: success - schema: - description: '' - properties: - feedback: - properties: - current_position: - type: number - progress: - type: number - status: - type: string - required: - - status - - current_position - - progress - title: SetPumpPosition_Feedback - type: object - goal: - properties: - max_velocity: - type: number - position: - type: number - required: - - position - - max_velocity - title: SetPumpPosition_Goal - type: object - result: - properties: - message: - type: string - return_info: - type: string - success: - type: boolean - required: - - return_info - - success - - message - title: SetPumpPosition_Result - type: object - required: - - goal - title: SetPumpPosition - type: object - type: SetPumpPosition - transfer: - feedback: - current_status: current_status - progress: progress - transferred_volume: transferred_volume - goal: - amount: amount - from_vessel: from_vessel - rinsing_repeats: rinsing_repeats - rinsing_solvent: rinsing_solvent - rinsing_volume: rinsing_volume - solid: solid - time: time - to_vessel: to_vessel - viscous: viscous - volume: volume - goal_default: - amount: '' - from_vessel: '' - rinsing_repeats: 0 - rinsing_solvent: '' - rinsing_volume: 0.0 - solid: false - time: 0.0 - to_vessel: '' - viscous: false - volume: 0.0 - handles: {} - result: - message: message - success: success - schema: - description: '' - properties: - feedback: - properties: - current_status: - type: string - progress: - type: number - transferred_volume: - type: number - required: - - progress - - transferred_volume - - current_status - title: Transfer_Feedback - type: object - goal: - properties: - amount: - type: string - from_vessel: - type: string - rinsing_repeats: - maximum: 2147483647 - minimum: -2147483648 - type: integer - rinsing_solvent: - type: string - rinsing_volume: - type: number - solid: - type: boolean - time: - type: number - to_vessel: - type: string - viscous: - type: boolean - volume: - type: number - required: - - from_vessel - - to_vessel - - volume - - amount - - time - - viscous - - rinsing_solvent - - rinsing_volume - - rinsing_repeats - - solid - title: Transfer_Goal - type: object - result: - properties: - message: - type: string - return_info: - type: string - success: - type: boolean - required: - - success - - message - - return_info - title: Transfer_Result - type: object - required: - - goal - title: Transfer - type: object - type: Transfer - module: unilabos.devices.virtual.virtual_transferpump:VirtualTransferPump - status_types: - current_volume: float - max_velocity: float - position: float - remaining_capacity: float - status: str - transfer_rate: float - type: python - config_info: [] - description: Virtual Transfer Pump for TransferProtocol Testing (Syringe-style) - handles: - - data_key: fluid_port - data_source: handle - data_type: fluid - description: 注射器式转移泵的连接口 - handler_key: transferpump - io_type: source - label: transferpump - side: SOUTH - icon: Pump.webp - init_param_schema: - config: - properties: - config: - type: object - device_id: - type: string - required: [] - type: object - data: - properties: - current_volume: - type: number - max_velocity: - type: number - position: - type: number - remaining_capacity: - type: number - status: - type: string - transfer_rate: - type: number - required: - - status - - position - - current_volume - - max_velocity - - transfer_rate - - remaining_capacity - type: object - version: 1.0.0 -virtual_vacuum_pump: - category: - - virtual_device - class: - action_value_mappings: - auto-cleanup: - feedback: {} - goal: {} - goal_default: {} - handles: {} - placeholder_keys: {} - result: {} - schema: - description: cleanup的参数schema - properties: - feedback: {} - goal: - properties: {} - required: [] - type: object - result: {} - required: - - goal - title: cleanup参数 - type: object - type: UniLabJsonCommandAsync - auto-initialize: - feedback: {} - goal: {} - goal_default: {} - handles: {} - placeholder_keys: {} - result: {} - schema: - description: initialize的参数schema - properties: - feedback: {} - goal: - properties: {} - required: [] - type: object - result: {} - required: - - goal - title: initialize参数 - type: object - type: UniLabJsonCommandAsync - auto-is_closed: - feedback: {} - goal: {} - goal_default: {} - handles: {} - placeholder_keys: {} - result: {} - schema: - description: is_closed的参数schema - properties: - feedback: {} - goal: - properties: {} - required: [] - type: object - result: {} - required: - - goal - title: is_closed参数 - type: object - type: UniLabJsonCommand - auto-is_open: - feedback: {} - goal: {} - goal_default: {} - handles: {} - placeholder_keys: {} - result: {} - schema: - description: is_open的参数schema - properties: - feedback: {} - goal: - properties: {} - required: [] - type: object - result: {} - required: - - goal - title: is_open参数 - type: object - type: UniLabJsonCommand - close: - feedback: {} - goal: {} - goal_default: {} - handles: {} - result: {} - schema: - description: '' - properties: - feedback: - properties: {} - required: [] - title: EmptyIn_Feedback - type: object - goal: - properties: {} - required: [] - title: EmptyIn_Goal - type: object - result: - properties: - return_info: - type: string - required: - - return_info - title: EmptyIn_Result - type: object - required: - - goal - title: EmptyIn - type: object - type: EmptyIn - open: - feedback: {} - goal: {} - goal_default: {} - handles: {} - result: {} - schema: - description: '' - properties: - feedback: - properties: {} - required: [] - title: EmptyIn_Feedback - type: object - goal: - properties: {} - required: [] - title: EmptyIn_Goal - type: object - result: - properties: - return_info: - type: string - required: - - return_info - title: EmptyIn_Result - type: object - required: - - goal - title: EmptyIn - type: object - type: EmptyIn - set_status: - feedback: {} - goal: - string: string - goal_default: - string: '' - handles: {} - result: {} - schema: - description: '' - properties: - feedback: - properties: {} - required: [] - title: StrSingleInput_Feedback - type: object - goal: - properties: - string: - type: string - required: - - string - title: StrSingleInput_Goal - type: object - result: - properties: - return_info: - type: string - success: - type: boolean - required: - - return_info - - success - title: StrSingleInput_Result - type: object - required: - - goal - title: StrSingleInput - type: object - type: StrSingleInput - module: unilabos.devices.virtual.virtual_vacuum_pump:VirtualVacuumPump - status_types: - status: str - type: python - config_info: [] - description: Virtual vacuum pump - handles: - - data_key: fluid_in - data_source: handle - data_type: fluid - description: 真空泵进气口 - handler_key: vacuumpump - io_type: source - label: vacuumpump - side: SOUTH - icon: Vacuum.webp - init_param_schema: - config: - properties: - config: - type: string - device_id: - type: string - required: [] - type: object - data: - properties: - status: - type: string - required: - - status - type: object - version: 1.0.0 diff --git a/unilabos/registry/devices/work_station.yaml b/unilabos/registry/devices/work_station.yaml deleted file mode 100644 index e1be7f3d..00000000 --- a/unilabos/registry/devices/work_station.yaml +++ /dev/null @@ -1,6051 +0,0 @@ -workstation: - category: - - work_station - class: - action_value_mappings: - AGVTransferProtocol: - feedback: {} - goal: - from_repo: from_repo - from_repo_position: from_repo_position - to_repo: to_repo - to_repo_position: to_repo_position - goal_default: - from_repo: - category: '' - children: [] - config: '' - data: '' - id: '' - name: '' - parent: '' - pose: - orientation: - w: 1.0 - x: 0.0 - y: 0.0 - z: 0.0 - position: - x: 0.0 - y: 0.0 - z: 0.0 - sample_id: '' - type: '' - from_repo_position: '' - to_repo: - category: '' - children: [] - config: '' - data: '' - id: '' - name: '' - parent: '' - pose: - orientation: - w: 1.0 - x: 0.0 - y: 0.0 - z: 0.0 - position: - x: 0.0 - y: 0.0 - z: 0.0 - sample_id: '' - type: '' - to_repo_position: '' - handles: {} - result: {} - schema: - description: '' - properties: - feedback: - properties: - status: - type: string - required: - - status - title: AGVTransfer_Feedback - type: object - goal: - properties: - from_repo: - properties: - category: - type: string - children: - items: - type: string - type: array - config: - type: string - data: - type: string - id: - type: string - name: - type: string - parent: - type: string - pose: - properties: - orientation: - properties: - w: - type: number - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - - w - title: orientation - type: object - position: - properties: - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - title: position - type: object - required: - - position - - orientation - title: pose - type: object - sample_id: - type: string - type: - type: string - required: - - id - - name - - sample_id - - children - - parent - - type - - category - - pose - - config - - data - title: from_repo - type: object - from_repo_position: - type: string - to_repo: - properties: - category: - type: string - children: - items: - type: string - type: array - config: - type: string - data: - type: string - id: - type: string - name: - type: string - parent: - type: string - pose: - properties: - orientation: - properties: - w: - type: number - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - - w - title: orientation - type: object - position: - properties: - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - title: position - type: object - required: - - position - - orientation - title: pose - type: object - sample_id: - type: string - type: - type: string - required: - - id - - name - - sample_id - - children - - parent - - type - - category - - pose - - config - - data - title: to_repo - type: object - to_repo_position: - type: string - required: - - from_repo - - from_repo_position - - to_repo - - to_repo_position - title: AGVTransfer_Goal - type: object - result: - properties: - return_info: - type: string - success: - type: boolean - required: - - return_info - - success - title: AGVTransfer_Result - type: object - required: - - goal - title: AGVTransfer - type: object - type: AGVTransfer - AddProtocol: - feedback: {} - goal: - amount: amount - equiv: equiv - event: event - mass: mass - mol: mol - purpose: purpose - rate_spec: rate_spec - ratio: ratio - reagent: reagent - stir: stir - stir_speed: stir_speed - time: time - vessel: vessel - viscous: viscous - volume: volume - goal_default: - amount: '' - equiv: '' - event: '' - mass: '' - mol: '' - purpose: '' - rate_spec: '' - ratio: '' - reagent: '' - stir: false - stir_speed: 0.0 - time: '' - vessel: - category: '' - children: [] - config: '' - data: '' - id: '' - name: '' - parent: '' - pose: - orientation: - w: 1.0 - x: 0.0 - y: 0.0 - z: 0.0 - position: - x: 0.0 - y: 0.0 - z: 0.0 - sample_id: '' - type: '' - viscous: false - volume: '' - handles: - input: - - data_key: vessel - data_source: handle - data_type: resource - handler_key: Vessel - label: Vessel - - data_key: reagent - data_source: handle - data_type: resource - handler_key: reagent - label: Reagent - output: - - data_key: vessel - data_source: executor - data_type: resource - handler_key: VesselOut - label: Vessel - placeholder_keys: - vessel: unilabos_resources - result: {} - schema: - description: '' - properties: - feedback: - properties: - current_status: - type: string - progress: - type: number - required: - - progress - - current_status - title: Add_Feedback - type: object - goal: - properties: - amount: - type: string - equiv: - type: string - event: - type: string - mass: - type: string - mol: - type: string - purpose: - type: string - rate_spec: - type: string - ratio: - type: string - reagent: - type: string - stir: - type: boolean - stir_speed: - type: number - time: - type: string - vessel: - properties: - category: - type: string - children: - items: - type: string - type: array - config: - type: string - data: - type: string - id: - type: string - name: - type: string - parent: - type: string - pose: - properties: - orientation: - properties: - w: - type: number - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - - w - title: orientation - type: object - position: - properties: - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - title: position - type: object - required: - - position - - orientation - title: pose - type: object - sample_id: - type: string - type: - type: string - required: - - id - - name - - sample_id - - children - - parent - - type - - category - - pose - - config - - data - title: vessel - type: object - viscous: - type: boolean - volume: - type: string - required: - - vessel - - reagent - - volume - - mass - - amount - - time - - stir - - stir_speed - - viscous - - purpose - - event - - mol - - rate_spec - - equiv - - ratio - title: Add_Goal - type: object - result: - properties: - message: - type: string - return_info: - type: string - success: - type: boolean - required: - - success - - message - - return_info - title: Add_Result - type: object - required: - - goal - title: Add - type: object - type: Add - AdjustPHProtocol: - feedback: {} - goal: - ph_value: ph_value - reagent: reagent - settling_time: settling_time - stir: stir - stir_speed: stir_speed - stir_time: stir_time - vessel: vessel - volume: volume - goal_default: - ph_value: 0.0 - reagent: '' - vessel: - category: '' - children: [] - config: '' - data: '' - id: '' - name: '' - parent: '' - pose: - orientation: - w: 1.0 - x: 0.0 - y: 0.0 - z: 0.0 - position: - x: 0.0 - y: 0.0 - z: 0.0 - sample_id: '' - type: '' - handles: - input: - - data_key: vessel - data_source: handle - data_type: resource - handler_key: Vessel - label: Vessel - - data_key: reagent - data_source: handle - data_type: resource - handler_key: reagent - label: Reagent - output: - - data_key: vessel - data_source: executor - data_type: resource - handler_key: VesselOut - label: Vessel - placeholder_keys: - vessel: unilabos_resources - result: {} - schema: - description: '' - properties: - feedback: - properties: - progress: - type: number - status: - type: string - required: - - status - - progress - title: AdjustPH_Feedback - type: object - goal: - properties: - ph_value: - type: number - reagent: - type: string - vessel: - properties: - category: - type: string - children: - items: - type: string - type: array - config: - type: string - data: - type: string - id: - type: string - name: - type: string - parent: - type: string - pose: - properties: - orientation: - properties: - w: - type: number - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - - w - title: orientation - type: object - position: - properties: - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - title: position - type: object - required: - - position - - orientation - title: pose - type: object - sample_id: - type: string - type: - type: string - required: - - id - - name - - sample_id - - children - - parent - - type - - category - - pose - - config - - data - title: vessel - type: object - required: - - vessel - - ph_value - - reagent - title: AdjustPH_Goal - type: object - result: - properties: - message: - type: string - return_info: - type: string - success: - type: boolean - required: - - success - - message - - return_info - title: AdjustPH_Result - type: object - required: - - goal - title: AdjustPH - type: object - type: AdjustPH - CentrifugeProtocol: - feedback: {} - goal: - speed: speed - temp: temp - time: time - vessel: vessel - goal_default: - speed: 0.0 - temp: 0.0 - time: 0.0 - vessel: - category: '' - children: [] - config: '' - data: '' - id: '' - name: '' - parent: '' - pose: - orientation: - w: 1.0 - x: 0.0 - y: 0.0 - z: 0.0 - position: - x: 0.0 - y: 0.0 - z: 0.0 - sample_id: '' - type: '' - handles: - input: - - data_key: vessel - data_source: handle - data_type: resource - handler_key: Vessel - label: Vessel - output: - - data_key: vessel - data_source: executor - data_type: resource - handler_key: VesselOut - label: Vessel - placeholder_keys: - vessel: unilabos_resources - result: {} - schema: - description: '' - properties: - feedback: - properties: - current_speed: - type: number - current_status: - type: string - current_temp: - type: number - progress: - type: number - required: - - progress - - current_speed - - current_temp - - current_status - title: Centrifuge_Feedback - type: object - goal: - properties: - speed: - type: number - temp: - type: number - time: - type: number - vessel: - properties: - category: - type: string - children: - items: - type: string - type: array - config: - type: string - data: - type: string - id: - type: string - name: - type: string - parent: - type: string - pose: - properties: - orientation: - properties: - w: - type: number - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - - w - title: orientation - type: object - position: - properties: - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - title: position - type: object - required: - - position - - orientation - title: pose - type: object - sample_id: - type: string - type: - type: string - required: - - id - - name - - sample_id - - children - - parent - - type - - category - - pose - - config - - data - title: vessel - type: object - required: - - vessel - - speed - - time - - temp - title: Centrifuge_Goal - type: object - result: - properties: - message: - type: string - return_info: - type: string - success: - type: boolean - required: - - success - - message - - return_info - title: Centrifuge_Result - type: object - required: - - goal - title: Centrifuge - type: object - type: Centrifuge - CleanProtocol: - feedback: {} - goal: - repeats: repeats - solvent: solvent - temp: temp - vessel: vessel - volume: volume - goal_default: - repeats: 0 - solvent: '' - temp: 0.0 - vessel: - category: '' - children: [] - config: '' - data: '' - id: '' - name: '' - parent: '' - pose: - orientation: - w: 1.0 - x: 0.0 - y: 0.0 - z: 0.0 - position: - x: 0.0 - y: 0.0 - z: 0.0 - sample_id: '' - type: '' - volume: 0.0 - handles: - input: - - data_key: vessel - data_source: handle - data_type: resource - handler_key: Vessel - label: Vessel - - data_key: solvent - data_source: handle - data_type: resource - handler_key: solvent - label: Solvent - output: - - data_key: vessel - data_source: executor - data_type: resource - handler_key: VesselOut - label: Vessel - placeholder_keys: - vessel: unilabos_resources - result: {} - schema: - description: '' - properties: - feedback: - properties: - current_device: - type: string - status: - type: string - time_remaining: - properties: - nanosec: - maximum: 4294967295 - minimum: 0 - type: integer - sec: - maximum: 2147483647 - minimum: -2147483648 - type: integer - required: - - sec - - nanosec - title: time_remaining - type: object - time_spent: - properties: - nanosec: - maximum: 4294967295 - minimum: 0 - type: integer - sec: - maximum: 2147483647 - minimum: -2147483648 - type: integer - required: - - sec - - nanosec - title: time_spent - type: object - required: - - status - - current_device - - time_spent - - time_remaining - title: Clean_Feedback - type: object - goal: - properties: - repeats: - maximum: 2147483647 - minimum: -2147483648 - type: integer - solvent: - type: string - temp: - type: number - vessel: - properties: - category: - type: string - children: - items: - type: string - type: array - config: - type: string - data: - type: string - id: - type: string - name: - type: string - parent: - type: string - pose: - properties: - orientation: - properties: - w: - type: number - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - - w - title: orientation - type: object - position: - properties: - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - title: position - type: object - required: - - position - - orientation - title: pose - type: object - sample_id: - type: string - type: - type: string - required: - - id - - name - - sample_id - - children - - parent - - type - - category - - pose - - config - - data - title: vessel - type: object - volume: - type: number - required: - - vessel - - solvent - - volume - - temp - - repeats - title: Clean_Goal - type: object - result: - properties: - return_info: - type: string - success: - type: boolean - required: - - return_info - - success - title: Clean_Result - type: object - required: - - goal - title: Clean - type: object - type: Clean - CleanVesselProtocol: - feedback: {} - goal: - repeats: repeats - solvent: solvent - temp: temp - vessel: vessel - volume: volume - goal_default: - repeats: 0 - solvent: '' - temp: 0.0 - vessel: - category: '' - children: [] - config: '' - data: '' - id: '' - name: '' - parent: '' - pose: - orientation: - w: 1.0 - x: 0.0 - y: 0.0 - z: 0.0 - position: - x: 0.0 - y: 0.0 - z: 0.0 - sample_id: '' - type: '' - volume: 0.0 - handles: - input: - - data_key: vessel - data_source: handle - data_type: resource - handler_key: Vessel - label: Vessel - - data_key: solvent - data_source: handle - data_type: resource - handler_key: solvent - label: Solvent - output: - - data_key: vessel - data_source: executor - data_type: resource - handler_key: VesselOut - label: Vessel - placeholder_keys: - vessel: unilabos_resources - result: {} - schema: - description: '' - properties: - feedback: - properties: - progress: - type: number - status: - type: string - required: - - status - - progress - title: CleanVessel_Feedback - type: object - goal: - properties: - repeats: - maximum: 2147483647 - minimum: -2147483648 - type: integer - solvent: - type: string - temp: - type: number - vessel: - properties: - category: - type: string - children: - items: - type: string - type: array - config: - type: string - data: - type: string - id: - type: string - name: - type: string - parent: - type: string - pose: - properties: - orientation: - properties: - w: - type: number - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - - w - title: orientation - type: object - position: - properties: - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - title: position - type: object - required: - - position - - orientation - title: pose - type: object - sample_id: - type: string - type: - type: string - required: - - id - - name - - sample_id - - children - - parent - - type - - category - - pose - - config - - data - title: vessel - type: object - volume: - type: number - required: - - vessel - - solvent - - volume - - temp - - repeats - title: CleanVessel_Goal - type: object - result: - properties: - message: - type: string - return_info: - type: string - success: - type: boolean - required: - - success - - message - - return_info - title: CleanVessel_Result - type: object - required: - - goal - title: CleanVessel - type: object - type: CleanVessel - DissolveProtocol: - feedback: {} - goal: - amount: amount - event: event - mass: mass - mol: mol - reagent: reagent - solvent: solvent - stir_speed: stir_speed - temp: temp - time: time - vessel: vessel - volume: volume - goal_default: - amount: '' - event: '' - mass: '' - mol: '' - reagent: '' - solvent: '' - stir_speed: 0.0 - temp: '' - time: '' - vessel: - category: '' - children: [] - config: '' - data: '' - id: '' - name: '' - parent: '' - pose: - orientation: - w: 1.0 - x: 0.0 - y: 0.0 - z: 0.0 - position: - x: 0.0 - y: 0.0 - z: 0.0 - sample_id: '' - type: '' - volume: '' - handles: - input: - - data_key: vessel - data_source: handle - data_type: resource - handler_key: Vessel - label: Vessel - - data_key: solvent - data_source: handle - data_type: resource - handler_key: solvent - label: Solvent - - data_key: reagent - data_source: handle - data_type: resource - handler_key: reagent - label: Reagent - output: - - data_key: vessel - data_source: executor - data_type: resource - handler_key: VesselOut - label: Vessel - placeholder_keys: - vessel: unilabos_resources - result: {} - schema: - description: '' - properties: - feedback: - properties: - progress: - type: number - status: - type: string - required: - - status - - progress - title: Dissolve_Feedback - type: object - goal: - properties: - amount: - type: string - event: - type: string - mass: - type: string - mol: - type: string - reagent: - type: string - solvent: - type: string - stir_speed: - type: number - temp: - type: string - time: - type: string - vessel: - properties: - category: - type: string - children: - items: - type: string - type: array - config: - type: string - data: - type: string - id: - type: string - name: - type: string - parent: - type: string - pose: - properties: - orientation: - properties: - w: - type: number - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - - w - title: orientation - type: object - position: - properties: - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - title: position - type: object - required: - - position - - orientation - title: pose - type: object - sample_id: - type: string - type: - type: string - required: - - id - - name - - sample_id - - children - - parent - - type - - category - - pose - - config - - data - title: vessel - type: object - volume: - type: string - required: - - vessel - - solvent - - volume - - amount - - temp - - time - - stir_speed - - mass - - mol - - reagent - - event - title: Dissolve_Goal - type: object - result: - properties: - message: - type: string - return_info: - type: string - success: - type: boolean - required: - - success - - message - - return_info - title: Dissolve_Result - type: object - required: - - goal - title: Dissolve - type: object - type: Dissolve - DryProtocol: - feedback: {} - goal: - compound: compound - vessel: vessel - goal_default: - compound: '' - vessel: - category: '' - children: [] - config: '' - data: '' - id: '' - name: '' - parent: '' - pose: - orientation: - w: 1.0 - x: 0.0 - y: 0.0 - z: 0.0 - position: - x: 0.0 - y: 0.0 - z: 0.0 - sample_id: '' - type: '' - handles: - input: - - data_key: vessel - data_source: handle - data_type: resource - handler_key: Vessel - label: Vessel - output: - - data_key: vessel - data_source: executor - data_type: resource - handler_key: VesselOut - label: Vessel - placeholder_keys: - vessel: unilabos_resources - result: {} - schema: - description: '' - properties: - feedback: - properties: - progress: - type: number - status: - type: string - required: - - status - - progress - title: Dry_Feedback - type: object - goal: - properties: - compound: - type: string - vessel: - properties: - category: - type: string - children: - items: - type: string - type: array - config: - type: string - data: - type: string - id: - type: string - name: - type: string - parent: - type: string - pose: - properties: - orientation: - properties: - w: - type: number - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - - w - title: orientation - type: object - position: - properties: - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - title: position - type: object - required: - - position - - orientation - title: pose - type: object - sample_id: - type: string - type: - type: string - required: - - id - - name - - sample_id - - children - - parent - - type - - category - - pose - - config - - data - title: vessel - type: object - required: - - compound - - vessel - title: Dry_Goal - type: object - result: - properties: - message: - type: string - return_info: - type: string - success: - type: boolean - required: - - success - - message - - return_info - title: Dry_Result - type: object - required: - - goal - title: Dry - type: object - type: Dry - EvacuateAndRefillProtocol: - feedback: {} - goal: - gas: gas - vessel: vessel - goal_default: - gas: '' - vessel: - category: '' - children: [] - config: '' - data: '' - id: '' - name: '' - parent: '' - pose: - orientation: - w: 1.0 - x: 0.0 - y: 0.0 - z: 0.0 - position: - x: 0.0 - y: 0.0 - z: 0.0 - sample_id: '' - type: '' - handles: - input: - - data_key: vessel - data_source: handle - data_type: resource - handler_key: Vessel - label: Vessel - output: - - data_key: vessel - data_source: executor - data_type: resource - handler_key: VesselOut - label: Vessel - placeholder_keys: - vessel: unilabos_resources - result: {} - schema: - description: '' - properties: - feedback: - properties: - current_device: - type: string - status: - type: string - time_remaining: - properties: - nanosec: - maximum: 4294967295 - minimum: 0 - type: integer - sec: - maximum: 2147483647 - minimum: -2147483648 - type: integer - required: - - sec - - nanosec - title: time_remaining - type: object - time_spent: - properties: - nanosec: - maximum: 4294967295 - minimum: 0 - type: integer - sec: - maximum: 2147483647 - minimum: -2147483648 - type: integer - required: - - sec - - nanosec - title: time_spent - type: object - required: - - status - - current_device - - time_spent - - time_remaining - title: EvacuateAndRefill_Feedback - type: object - goal: - properties: - gas: - type: string - vessel: - properties: - category: - type: string - children: - items: - type: string - type: array - config: - type: string - data: - type: string - id: - type: string - name: - type: string - parent: - type: string - pose: - properties: - orientation: - properties: - w: - type: number - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - - w - title: orientation - type: object - position: - properties: - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - title: position - type: object - required: - - position - - orientation - title: pose - type: object - sample_id: - type: string - type: - type: string - required: - - id - - name - - sample_id - - children - - parent - - type - - category - - pose - - config - - data - title: vessel - type: object - required: - - vessel - - gas - title: EvacuateAndRefill_Goal - type: object - result: - properties: - return_info: - type: string - success: - type: boolean - required: - - return_info - - success - title: EvacuateAndRefill_Result - type: object - required: - - goal - title: EvacuateAndRefill - type: object - type: EvacuateAndRefill - EvaporateProtocol: - feedback: {} - goal: - pressure: pressure - solvent: solvent - stir_speed: stir_speed - temp: temp - time: time - vessel: vessel - goal_default: - pressure: 0.0 - solvent: '' - stir_speed: 0.0 - temp: 0.0 - time: '' - vessel: - category: '' - children: [] - config: '' - data: '' - id: '' - name: '' - parent: '' - pose: - orientation: - w: 1.0 - x: 0.0 - y: 0.0 - z: 0.0 - position: - x: 0.0 - y: 0.0 - z: 0.0 - sample_id: '' - type: '' - handles: - input: - - data_key: vessel - data_source: handle - data_type: resource - handler_key: Vessel - label: Evaporation Vessel - - data_key: solvent - data_source: handle - data_type: resource - handler_key: solvent - label: Eluting Solvent - output: - - data_key: vessel - data_source: handle - data_type: resource - handler_key: VesselOut - label: Evaporation Vessel - placeholder_keys: - vessel: unilabos_nodes - result: {} - schema: - description: '' - properties: - feedback: - properties: - current_device: - type: string - status: - type: string - time_remaining: - properties: - nanosec: - maximum: 4294967295 - minimum: 0 - type: integer - sec: - maximum: 2147483647 - minimum: -2147483648 - type: integer - required: - - sec - - nanosec - title: time_remaining - type: object - time_spent: - properties: - nanosec: - maximum: 4294967295 - minimum: 0 - type: integer - sec: - maximum: 2147483647 - minimum: -2147483648 - type: integer - required: - - sec - - nanosec - title: time_spent - type: object - required: - - status - - current_device - - time_spent - - time_remaining - title: Evaporate_Feedback - type: object - goal: - properties: - pressure: - type: number - solvent: - type: string - stir_speed: - type: number - temp: - type: number - time: - type: string - vessel: - properties: - category: - type: string - children: - items: - type: string - type: array - config: - type: string - data: - type: string - id: - type: string - name: - type: string - parent: - type: string - pose: - properties: - orientation: - properties: - w: - type: number - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - - w - title: orientation - type: object - position: - properties: - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - title: position - type: object - required: - - position - - orientation - title: pose - type: object - sample_id: - type: string - type: - type: string - required: - - id - - name - - sample_id - - children - - parent - - type - - category - - pose - - config - - data - title: vessel - type: object - required: - - vessel - - pressure - - temp - - time - - stir_speed - - solvent - title: Evaporate_Goal - type: object - result: - properties: - return_info: - type: string - success: - type: boolean - required: - - return_info - - success - title: Evaporate_Result - type: object - required: - - goal - title: Evaporate - type: object - type: Evaporate - FilterProtocol: - feedback: {} - goal: - continue_heatchill: continue_heatchill - filtrate_vessel: filtrate_vessel - stir: stir - stir_speed: stir_speed - temp: temp - vessel: vessel - volume: volume - goal_default: - continue_heatchill: false - filtrate_vessel: - category: '' - children: [] - config: '' - data: '' - id: '' - name: '' - parent: '' - pose: - orientation: - w: 1.0 - x: 0.0 - y: 0.0 - z: 0.0 - position: - x: 0.0 - y: 0.0 - z: 0.0 - sample_id: '' - type: '' - stir: false - stir_speed: 0.0 - temp: 0.0 - vessel: - category: '' - children: [] - config: '' - data: '' - id: '' - name: '' - parent: '' - pose: - orientation: - w: 1.0 - x: 0.0 - y: 0.0 - z: 0.0 - position: - x: 0.0 - y: 0.0 - z: 0.0 - sample_id: '' - type: '' - volume: 0.0 - handles: - input: - - data_key: vessel - data_source: handle - data_type: resource - handler_key: Vessel - label: Vessel - - data_key: filtrate_vessel - data_source: handle - data_type: resource - handler_key: FiltrateVessel - label: Filtrate Vessel - output: - - data_key: vessel - data_source: executor - data_type: resource - handler_key: VesselOut - label: Vessel - - data_key: filtrate_vessel - data_source: executor - data_type: resource - handler_key: FiltrateOut - label: Filtrate Vessel - placeholder_keys: - filtrate_vessel: unilabos_resources - vessel: unilabos_nodes - result: {} - schema: - description: '' - properties: - feedback: - properties: - current_status: - type: string - current_temp: - type: number - filtered_volume: - type: number - progress: - type: number - required: - - progress - - current_temp - - filtered_volume - - current_status - title: Filter_Feedback - type: object - goal: - properties: - continue_heatchill: - type: boolean - filtrate_vessel: - properties: - category: - type: string - children: - items: - type: string - type: array - config: - type: string - data: - type: string - id: - type: string - name: - type: string - parent: - type: string - pose: - properties: - orientation: - properties: - w: - type: number - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - - w - title: orientation - type: object - position: - properties: - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - title: position - type: object - required: - - position - - orientation - title: pose - type: object - sample_id: - type: string - type: - type: string - required: - - id - - name - - sample_id - - children - - parent - - type - - category - - pose - - config - - data - title: filtrate_vessel - type: object - stir: - type: boolean - stir_speed: - type: number - temp: - type: number - vessel: - properties: - category: - type: string - children: - items: - type: string - type: array - config: - type: string - data: - type: string - id: - type: string - name: - type: string - parent: - type: string - pose: - properties: - orientation: - properties: - w: - type: number - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - - w - title: orientation - type: object - position: - properties: - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - title: position - type: object - required: - - position - - orientation - title: pose - type: object - sample_id: - type: string - type: - type: string - required: - - id - - name - - sample_id - - children - - parent - - type - - category - - pose - - config - - data - title: vessel - type: object - volume: - type: number - required: - - vessel - - filtrate_vessel - - stir - - stir_speed - - temp - - continue_heatchill - - volume - title: Filter_Goal - type: object - result: - properties: - message: - type: string - return_info: - type: string - success: - type: boolean - required: - - success - - message - - return_info - title: Filter_Result - type: object - required: - - goal - title: Filter - type: object - type: Filter - FilterThroughProtocol: - feedback: {} - goal: - eluting_repeats: eluting_repeats - eluting_solvent: eluting_solvent - eluting_volume: eluting_volume - filter_through: filter_through - from_vessel: from_vessel - residence_time: residence_time - to_vessel: to_vessel - goal_default: - eluting_repeats: 0 - eluting_solvent: '' - eluting_volume: 0.0 - filter_through: - category: '' - children: [] - config: '' - data: '' - id: '' - name: '' - parent: '' - pose: - orientation: - w: 1.0 - x: 0.0 - y: 0.0 - z: 0.0 - position: - x: 0.0 - y: 0.0 - z: 0.0 - sample_id: '' - type: '' - from_vessel: - category: '' - children: [] - config: '' - data: '' - id: '' - name: '' - parent: '' - pose: - orientation: - w: 1.0 - x: 0.0 - y: 0.0 - z: 0.0 - position: - x: 0.0 - y: 0.0 - z: 0.0 - sample_id: '' - type: '' - residence_time: 0.0 - to_vessel: - category: '' - children: [] - config: '' - data: '' - id: '' - name: '' - parent: '' - pose: - orientation: - w: 1.0 - x: 0.0 - y: 0.0 - z: 0.0 - position: - x: 0.0 - y: 0.0 - z: 0.0 - sample_id: '' - type: '' - handles: - input: - - data_key: vessel - data_source: handle - data_type: resource - handler_key: FromVessel - label: From Vessel - - data_key: vessel - data_source: executor - data_type: resource - handler_key: ToVessel - label: To Vessel - - data_key: solvent - data_source: handle - data_type: resource - handler_key: solvent - label: Eluting Solvent - output: - - data_key: vessel - data_source: handle - data_type: resource - handler_key: FromVesselOut - label: From Vessel - - data_key: vessel - data_source: executor - data_type: resource - handler_key: ToVesselOut - label: To Vessel - placeholder_keys: - from_vessel: unilabos_resources - to_vessel: unilabos_resources - result: {} - schema: - description: '' - properties: - feedback: - properties: - progress: - type: number - status: - type: string - required: - - status - - progress - title: FilterThrough_Feedback - type: object - goal: - properties: - eluting_repeats: - maximum: 2147483647 - minimum: -2147483648 - type: integer - eluting_solvent: - type: string - eluting_volume: - type: number - filter_through: - properties: - category: - type: string - children: - items: - type: string - type: array - config: - type: string - data: - type: string - id: - type: string - name: - type: string - parent: - type: string - pose: - properties: - orientation: - properties: - w: - type: number - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - - w - title: orientation - type: object - position: - properties: - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - title: position - type: object - required: - - position - - orientation - title: pose - type: object - sample_id: - type: string - type: - type: string - required: - - id - - name - - sample_id - - children - - parent - - type - - category - - pose - - config - - data - title: filter_through - type: object - from_vessel: - properties: - category: - type: string - children: - items: - type: string - type: array - config: - type: string - data: - type: string - id: - type: string - name: - type: string - parent: - type: string - pose: - properties: - orientation: - properties: - w: - type: number - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - - w - title: orientation - type: object - position: - properties: - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - title: position - type: object - required: - - position - - orientation - title: pose - type: object - sample_id: - type: string - type: - type: string - required: - - id - - name - - sample_id - - children - - parent - - type - - category - - pose - - config - - data - title: from_vessel - type: object - residence_time: - type: number - to_vessel: - properties: - category: - type: string - children: - items: - type: string - type: array - config: - type: string - data: - type: string - id: - type: string - name: - type: string - parent: - type: string - pose: - properties: - orientation: - properties: - w: - type: number - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - - w - title: orientation - type: object - position: - properties: - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - title: position - type: object - required: - - position - - orientation - title: pose - type: object - sample_id: - type: string - type: - type: string - required: - - id - - name - - sample_id - - children - - parent - - type - - category - - pose - - config - - data - title: to_vessel - type: object - required: - - from_vessel - - to_vessel - - filter_through - - eluting_solvent - - eluting_volume - - eluting_repeats - - residence_time - title: FilterThrough_Goal - type: object - result: - properties: - message: - type: string - return_info: - type: string - success: - type: boolean - required: - - success - - message - - return_info - title: FilterThrough_Result - type: object - required: - - goal - title: FilterThrough - type: object - type: FilterThrough - HeatChillProtocol: - feedback: {} - goal: - pressure: pressure - purpose: purpose - reflux_solvent: reflux_solvent - stir: stir - stir_speed: stir_speed - temp: temp - temp_spec: temp_spec - time: time - time_spec: time_spec - vessel: vessel - goal_default: - pressure: '' - purpose: '' - reflux_solvent: '' - stir: false - stir_speed: 0.0 - temp: 0.0 - temp_spec: '' - time: '' - time_spec: '' - vessel: - category: '' - children: [] - config: '' - data: '' - id: '' - name: '' - parent: '' - pose: - orientation: - w: 1.0 - x: 0.0 - y: 0.0 - z: 0.0 - position: - x: 0.0 - y: 0.0 - z: 0.0 - sample_id: '' - type: '' - handles: - input: - - data_key: vessel - data_source: handle - data_type: resource - handler_key: Vessel - label: Vessel - output: - - data_key: vessel - data_source: executor - data_type: resource - handler_key: VesselOut - label: Vessel - placeholder_keys: - vessel: unilabos_resources - result: {} - schema: - description: '' - properties: - feedback: - properties: - status: - type: string - required: - - status - title: HeatChill_Feedback - type: object - goal: - properties: - pressure: - type: string - purpose: - type: string - reflux_solvent: - type: string - stir: - type: boolean - stir_speed: - type: number - temp: - type: number - temp_spec: - type: string - time: - type: string - time_spec: - type: string - vessel: - properties: - category: - type: string - children: - items: - type: string - type: array - config: - type: string - data: - type: string - id: - type: string - name: - type: string - parent: - type: string - pose: - properties: - orientation: - properties: - w: - type: number - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - - w - title: orientation - type: object - position: - properties: - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - title: position - type: object - required: - - position - - orientation - title: pose - type: object - sample_id: - type: string - type: - type: string - required: - - id - - name - - sample_id - - children - - parent - - type - - category - - pose - - config - - data - title: vessel - type: object - required: - - vessel - - temp - - time - - temp_spec - - time_spec - - pressure - - reflux_solvent - - stir - - stir_speed - - purpose - title: HeatChill_Goal - type: object - result: - properties: - message: - type: string - return_info: - type: string - success: - type: boolean - required: - - success - - message - - return_info - title: HeatChill_Result - type: object - required: - - goal - title: HeatChill - type: object - type: HeatChill - HeatChillStartProtocol: - feedback: {} - goal: - purpose: purpose - temp: temp - vessel: vessel - goal_default: - purpose: '' - temp: 0.0 - vessel: - category: '' - children: [] - config: '' - data: '' - id: '' - name: '' - parent: '' - pose: - orientation: - w: 1.0 - x: 0.0 - y: 0.0 - z: 0.0 - position: - x: 0.0 - y: 0.0 - z: 0.0 - sample_id: '' - type: '' - handles: - input: - - data_key: vessel - data_source: handle - data_type: resource - handler_key: Vessel - label: Vessel - output: - - data_key: vessel - data_source: executor - data_type: resource - handler_key: VesselOut - label: Vessel - placeholder_keys: - vessel: unilabos_resources - result: {} - schema: - description: '' - properties: - feedback: - properties: - status: - type: string - required: - - status - title: HeatChillStart_Feedback - type: object - goal: - properties: - purpose: - type: string - temp: - type: number - vessel: - properties: - category: - type: string - children: - items: - type: string - type: array - config: - type: string - data: - type: string - id: - type: string - name: - type: string - parent: - type: string - pose: - properties: - orientation: - properties: - w: - type: number - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - - w - title: orientation - type: object - position: - properties: - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - title: position - type: object - required: - - position - - orientation - title: pose - type: object - sample_id: - type: string - type: - type: string - required: - - id - - name - - sample_id - - children - - parent - - type - - category - - pose - - config - - data - title: vessel - type: object - required: - - vessel - - temp - - purpose - title: HeatChillStart_Goal - type: object - result: - properties: - return_info: - type: string - success: - type: boolean - required: - - return_info - - success - title: HeatChillStart_Result - type: object - required: - - goal - title: HeatChillStart - type: object - type: HeatChillStart - HeatChillStopProtocol: - feedback: {} - goal: - vessel: vessel - goal_default: - vessel: - category: '' - children: [] - config: '' - data: '' - id: '' - name: '' - parent: '' - pose: - orientation: - w: 1.0 - x: 0.0 - y: 0.0 - z: 0.0 - position: - x: 0.0 - y: 0.0 - z: 0.0 - sample_id: '' - type: '' - handles: - input: - - data_key: vessel - data_source: handle - data_type: resource - handler_key: Vessel - label: Vessel - output: - - data_key: vessel - data_source: executor - data_type: resource - handler_key: VesselOut - label: Vessel - placeholder_keys: - vessel: unilabos_resources - result: {} - schema: - description: '' - properties: - feedback: - properties: - status: - type: string - required: - - status - title: HeatChillStop_Feedback - type: object - goal: - properties: - vessel: - properties: - category: - type: string - children: - items: - type: string - type: array - config: - type: string - data: - type: string - id: - type: string - name: - type: string - parent: - type: string - pose: - properties: - orientation: - properties: - w: - type: number - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - - w - title: orientation - type: object - position: - properties: - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - title: position - type: object - required: - - position - - orientation - title: pose - type: object - sample_id: - type: string - type: - type: string - required: - - id - - name - - sample_id - - children - - parent - - type - - category - - pose - - config - - data - title: vessel - type: object - required: - - vessel - title: HeatChillStop_Goal - type: object - result: - properties: - return_info: - type: string - success: - type: boolean - required: - - return_info - - success - title: HeatChillStop_Result - type: object - required: - - goal - title: HeatChillStop - type: object - type: HeatChillStop - HydrogenateProtocol: - feedback: {} - goal: - temp: temp - time: time - vessel: vessel - goal_default: - temp: '' - time: '' - vessel: - category: '' - children: [] - config: '' - data: '' - id: '' - name: '' - parent: '' - pose: - orientation: - w: 1.0 - x: 0.0 - y: 0.0 - z: 0.0 - position: - x: 0.0 - y: 0.0 - z: 0.0 - sample_id: '' - type: '' - handles: - input: - - data_key: vessel - data_source: handle - data_type: resource - handler_key: Vessel - label: Vessel - output: - - data_key: vessel - data_source: executor - data_type: resource - handler_key: VesselOut - label: Vessel - placeholder_keys: - vessel: unilabos_resources - result: {} - schema: - description: '' - properties: - feedback: - properties: - progress: - type: number - status: - type: string - required: - - status - - progress - title: Hydrogenate_Feedback - type: object - goal: - properties: - temp: - type: string - time: - type: string - vessel: - properties: - category: - type: string - children: - items: - type: string - type: array - config: - type: string - data: - type: string - id: - type: string - name: - type: string - parent: - type: string - pose: - properties: - orientation: - properties: - w: - type: number - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - - w - title: orientation - type: object - position: - properties: - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - title: position - type: object - required: - - position - - orientation - title: pose - type: object - sample_id: - type: string - type: - type: string - required: - - id - - name - - sample_id - - children - - parent - - type - - category - - pose - - config - - data - title: vessel - type: object - required: - - temp - - time - - vessel - title: Hydrogenate_Goal - type: object - result: - properties: - message: - type: string - return_info: - type: string - success: - type: boolean - required: - - success - - message - - return_info - title: Hydrogenate_Result - type: object - required: - - goal - title: Hydrogenate - type: object - type: Hydrogenate - PumpTransferProtocol: - feedback: {} - goal: - amount: amount - event: event - flowrate: flowrate - from_vessel: from_vessel - rate_spec: rate_spec - rinsing_repeats: rinsing_repeats - rinsing_solvent: rinsing_solvent - rinsing_volume: rinsing_volume - solid: solid - through: through - time: time - to_vessel: to_vessel - transfer_flowrate: transfer_flowrate - viscous: viscous - volume: volume - goal_default: - amount: '' - event: '' - flowrate: 0.0 - from_vessel: - category: '' - children: [] - config: '' - data: '' - id: '' - name: '' - parent: '' - pose: - orientation: - w: 1.0 - x: 0.0 - y: 0.0 - z: 0.0 - position: - x: 0.0 - y: 0.0 - z: 0.0 - sample_id: '' - type: '' - rate_spec: '' - rinsing_repeats: 0 - rinsing_solvent: '' - rinsing_volume: 0.0 - solid: false - through: '' - time: 0.0 - to_vessel: - category: '' - children: [] - config: '' - data: '' - id: '' - name: '' - parent: '' - pose: - orientation: - w: 1.0 - x: 0.0 - y: 0.0 - z: 0.0 - position: - x: 0.0 - y: 0.0 - z: 0.0 - sample_id: '' - type: '' - transfer_flowrate: 0.0 - viscous: false - volume: 0.0 - handles: - input: - - data_key: vessel - data_source: handle - data_type: resource - handler_key: FromVessel - label: From Vessel - - data_key: vessel - data_source: executor - data_type: resource - handler_key: ToVessel - label: To Vessel - - data_key: solvent - data_source: handle - data_type: resource - handler_key: solvent - label: Rinsing Solvent - output: - - data_key: vessel - data_source: handle - data_type: resource - handler_key: FromVesselOut - label: From Vessel - - data_key: vessel - data_source: executor - data_type: resource - handler_key: ToVesselOut - label: To Vessel - placeholder_keys: - from_vessel: unilabos_nodes - to_vessel: unilabos_nodes - result: {} - schema: - description: '' - properties: - feedback: - properties: - current_device: - type: string - status: - type: string - time_remaining: - properties: - nanosec: - maximum: 4294967295 - minimum: 0 - type: integer - sec: - maximum: 2147483647 - minimum: -2147483648 - type: integer - required: - - sec - - nanosec - title: time_remaining - type: object - time_spent: - properties: - nanosec: - maximum: 4294967295 - minimum: 0 - type: integer - sec: - maximum: 2147483647 - minimum: -2147483648 - type: integer - required: - - sec - - nanosec - title: time_spent - type: object - required: - - status - - current_device - - time_spent - - time_remaining - title: PumpTransfer_Feedback - type: object - goal: - properties: - amount: - type: string - event: - type: string - flowrate: - type: number - from_vessel: - properties: - category: - type: string - children: - items: - type: string - type: array - config: - type: string - data: - type: string - id: - type: string - name: - type: string - parent: - type: string - pose: - properties: - orientation: - properties: - w: - type: number - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - - w - title: orientation - type: object - position: - properties: - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - title: position - type: object - required: - - position - - orientation - title: pose - type: object - sample_id: - type: string - type: - type: string - required: - - id - - name - - sample_id - - children - - parent - - type - - category - - pose - - config - - data - title: from_vessel - type: object - rate_spec: - type: string - rinsing_repeats: - maximum: 2147483647 - minimum: -2147483648 - type: integer - rinsing_solvent: - type: string - rinsing_volume: - type: number - solid: - type: boolean - through: - type: string - time: - type: number - to_vessel: - properties: - category: - type: string - children: - items: - type: string - type: array - config: - type: string - data: - type: string - id: - type: string - name: - type: string - parent: - type: string - pose: - properties: - orientation: - properties: - w: - type: number - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - - w - title: orientation - type: object - position: - properties: - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - title: position - type: object - required: - - position - - orientation - title: pose - type: object - sample_id: - type: string - type: - type: string - required: - - id - - name - - sample_id - - children - - parent - - type - - category - - pose - - config - - data - title: to_vessel - type: object - transfer_flowrate: - type: number - viscous: - type: boolean - volume: - type: number - required: - - from_vessel - - to_vessel - - volume - - amount - - time - - viscous - - rinsing_solvent - - rinsing_volume - - rinsing_repeats - - solid - - flowrate - - transfer_flowrate - - rate_spec - - event - - through - title: PumpTransfer_Goal - type: object - result: - properties: - return_info: - type: string - success: - type: boolean - required: - - return_info - - success - title: PumpTransfer_Result - type: object - required: - - goal - title: PumpTransfer - type: object - type: PumpTransfer - RecrystallizeProtocol: - feedback: {} - goal: - ratio: ratio - solvent1: solvent1 - solvent2: solvent2 - vessel: vessel - volume: volume - goal_default: - ratio: '' - solvent1: '' - solvent2: '' - vessel: - category: '' - children: [] - config: '' - data: '' - id: '' - name: '' - parent: '' - pose: - orientation: - w: 1.0 - x: 0.0 - y: 0.0 - z: 0.0 - position: - x: 0.0 - y: 0.0 - z: 0.0 - sample_id: '' - type: '' - volume: '' - handles: - input: - - data_key: vessel - data_source: handle - data_type: resource - handler_key: Vessel - label: Vessel - - data_key: solvent1 - data_source: handle - data_type: resource - handler_key: solvent1 - label: Solvent 1 - - data_key: solvent2 - data_source: handle - data_type: resource - handler_key: solvent2 - label: Solvent 2 - output: - - data_key: vessel - data_source: executor - data_type: resource - handler_key: VesselOut - label: Vessel - placeholder_keys: - vessel: unilabos_resources - result: {} - schema: - description: '' - properties: - feedback: - properties: - progress: - type: number - status: - type: string - required: - - status - - progress - title: Recrystallize_Feedback - type: object - goal: - properties: - ratio: - type: string - solvent1: - type: string - solvent2: - type: string - vessel: - properties: - category: - type: string - children: - items: - type: string - type: array - config: - type: string - data: - type: string - id: - type: string - name: - type: string - parent: - type: string - pose: - properties: - orientation: - properties: - w: - type: number - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - - w - title: orientation - type: object - position: - properties: - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - title: position - type: object - required: - - position - - orientation - title: pose - type: object - sample_id: - type: string - type: - type: string - required: - - id - - name - - sample_id - - children - - parent - - type - - category - - pose - - config - - data - title: vessel - type: object - volume: - type: string - required: - - ratio - - solvent1 - - solvent2 - - vessel - - volume - title: Recrystallize_Goal - type: object - result: - properties: - message: - type: string - return_info: - type: string - success: - type: boolean - required: - - success - - message - - return_info - title: Recrystallize_Result - type: object - required: - - goal - title: Recrystallize - type: object - type: Recrystallize - ResetHandlingProtocol: - feedback: {} - goal: - solvent: solvent - goal_default: - solvent: '' - vessel: - category: '' - children: [] - config: '' - data: '' - id: '' - name: '' - parent: '' - pose: - orientation: - w: 1.0 - x: 0.0 - y: 0.0 - z: 0.0 - position: - x: 0.0 - y: 0.0 - z: 0.0 - sample_id: '' - type: '' - handles: - input: - - data_key: solvent - data_source: handle - data_type: resource - handler_key: solvent - label: Solvent - output: [] - result: {} - schema: - description: '' - properties: - feedback: - properties: - progress: - type: number - status: - type: string - required: - - status - - progress - title: ResetHandling_Feedback - type: object - goal: - properties: - solvent: - type: string - vessel: - properties: - category: - type: string - children: - items: - type: string - type: array - config: - type: string - data: - type: string - id: - type: string - name: - type: string - parent: - type: string - pose: - properties: - orientation: - properties: - w: - type: number - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - - w - title: orientation - type: object - position: - properties: - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - title: position - type: object - required: - - position - - orientation - title: pose - type: object - sample_id: - type: string - type: - type: string - required: - - id - - name - - sample_id - - children - - parent - - type - - category - - pose - - config - - data - title: vessel - type: object - required: - - solvent - - vessel - title: ResetHandling_Goal - type: object - result: - properties: - message: - type: string - return_info: - type: string - success: - type: boolean - required: - - success - - message - - return_info - title: ResetHandling_Result - type: object - required: - - goal - title: ResetHandling - type: object - type: ResetHandling - RunColumnProtocol: - feedback: {} - goal: - column: column - from_vessel: from_vessel - to_vessel: to_vessel - goal_default: - column: '' - from_vessel: - category: '' - children: [] - config: '' - data: '' - id: '' - name: '' - parent: '' - pose: - orientation: - w: 1.0 - x: 0.0 - y: 0.0 - z: 0.0 - position: - x: 0.0 - y: 0.0 - z: 0.0 - sample_id: '' - type: '' - pct1: '' - pct2: '' - ratio: '' - rf: '' - solvent1: '' - solvent2: '' - to_vessel: - category: '' - children: [] - config: '' - data: '' - id: '' - name: '' - parent: '' - pose: - orientation: - w: 1.0 - x: 0.0 - y: 0.0 - z: 0.0 - position: - x: 0.0 - y: 0.0 - z: 0.0 - sample_id: '' - type: '' - handles: - input: - - data_key: vessel - data_source: handle - data_type: resource - handler_key: FromVessel - label: From Vessel - - data_key: vessel - data_source: executor - data_type: resource - handler_key: ToVessel - label: To Vessel - output: - - data_key: vessel - data_source: handle - data_type: resource - handler_key: FromVesselOut - label: From Vessel - - data_key: vessel - data_source: executor - data_type: resource - handler_key: ToVesselOut - label: To Vessel - placeholder_keys: - column: unilabos_devices - from_vessel: unilabos_resources - to_vessel: unilabos_resources - result: {} - schema: - description: '' - properties: - feedback: - properties: - progress: - type: number - status: - type: string - required: - - status - - progress - title: RunColumn_Feedback - type: object - goal: - properties: - column: - type: string - from_vessel: - properties: - category: - type: string - children: - items: - type: string - type: array - config: - type: string - data: - type: string - id: - type: string - name: - type: string - parent: - type: string - pose: - properties: - orientation: - properties: - w: - type: number - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - - w - title: orientation - type: object - position: - properties: - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - title: position - type: object - required: - - position - - orientation - title: pose - type: object - sample_id: - type: string - type: - type: string - required: - - id - - name - - sample_id - - children - - parent - - type - - category - - pose - - config - - data - title: from_vessel - type: object - pct1: - type: string - pct2: - type: string - ratio: - type: string - rf: - type: string - solvent1: - type: string - solvent2: - type: string - to_vessel: - properties: - category: - type: string - children: - items: - type: string - type: array - config: - type: string - data: - type: string - id: - type: string - name: - type: string - parent: - type: string - pose: - properties: - orientation: - properties: - w: - type: number - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - - w - title: orientation - type: object - position: - properties: - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - title: position - type: object - required: - - position - - orientation - title: pose - type: object - sample_id: - type: string - type: - type: string - required: - - id - - name - - sample_id - - children - - parent - - type - - category - - pose - - config - - data - title: to_vessel - type: object - required: - - from_vessel - - to_vessel - - column - - rf - - pct1 - - pct2 - - solvent1 - - solvent2 - - ratio - title: RunColumn_Goal - type: object - result: - properties: - message: - type: string - return_info: - type: string - success: - type: boolean - required: - - success - - message - - return_info - title: RunColumn_Result - type: object - required: - - goal - title: RunColumn - type: object - type: RunColumn - SeparateProtocol: - feedback: {} - goal: - from_vessel: from_vessel - product_phase: product_phase - purpose: purpose - repeats: repeats - separation_vessel: separation_vessel - settling_time: settling_time - solvent: solvent - solvent_volume: solvent_volume - stir_speed: stir_speed - stir_time: stir_time - through: through - to_vessel: to_vessel - waste_phase_to_vessel: waste_phase_to_vessel - goal_default: - from_vessel: - category: '' - children: [] - config: '' - data: '' - id: '' - name: '' - parent: '' - pose: - orientation: - w: 1.0 - x: 0.0 - y: 0.0 - z: 0.0 - position: - x: 0.0 - y: 0.0 - z: 0.0 - sample_id: '' - type: '' - product_phase: '' - product_vessel: - category: '' - children: [] - config: '' - data: '' - id: '' - name: '' - parent: '' - pose: - orientation: - w: 1.0 - x: 0.0 - y: 0.0 - z: 0.0 - position: - x: 0.0 - y: 0.0 - z: 0.0 - sample_id: '' - type: '' - purpose: '' - repeats: 0 - separation_vessel: - category: '' - children: [] - config: '' - data: '' - id: '' - name: '' - parent: '' - pose: - orientation: - w: 1.0 - x: 0.0 - y: 0.0 - z: 0.0 - position: - x: 0.0 - y: 0.0 - z: 0.0 - sample_id: '' - type: '' - settling_time: 0.0 - solvent: '' - solvent_volume: '' - stir_speed: 0.0 - stir_time: 0.0 - through: '' - to_vessel: - category: '' - children: [] - config: '' - data: '' - id: '' - name: '' - parent: '' - pose: - orientation: - w: 1.0 - x: 0.0 - y: 0.0 - z: 0.0 - position: - x: 0.0 - y: 0.0 - z: 0.0 - sample_id: '' - type: '' - vessel: - category: '' - children: [] - config: '' - data: '' - id: '' - name: '' - parent: '' - pose: - orientation: - w: 1.0 - x: 0.0 - y: 0.0 - z: 0.0 - position: - x: 0.0 - y: 0.0 - z: 0.0 - sample_id: '' - type: '' - volume: '' - waste_phase_to_vessel: - category: '' - children: [] - config: '' - data: '' - id: '' - name: '' - parent: '' - pose: - orientation: - w: 1.0 - x: 0.0 - y: 0.0 - z: 0.0 - position: - x: 0.0 - y: 0.0 - z: 0.0 - sample_id: '' - type: '' - waste_vessel: - category: '' - children: [] - config: '' - data: '' - id: '' - name: '' - parent: '' - pose: - orientation: - w: 1.0 - x: 0.0 - y: 0.0 - z: 0.0 - position: - x: 0.0 - y: 0.0 - z: 0.0 - sample_id: '' - type: '' - handles: - input: - - data_key: vessel - data_source: handle - data_type: resource - handler_key: FromVessel - label: From Vessel - - data_key: vessel - data_source: executor - data_type: resource - handler_key: ToVessel - label: To Vessel - - data_key: solvent - data_source: handle - data_type: resource - handler_key: solvent - label: Solvent - output: - - data_key: vessel - data_source: handle - data_type: resource - handler_key: FromVesselOut - label: From Vessel - - data_key: vessel - data_source: executor - data_type: resource - handler_key: ToVesselOut - label: To Vessel - placeholder_keys: - from_vessel: unilabos_resources - to_vessel: unilabos_resources - waste_phase_to_vessel: unilabos_resources - waste_vessel: unilabos_resources - result: {} - schema: - description: '' - properties: - feedback: - properties: - progress: - type: number - status: - type: string - required: - - status - - progress - title: Separate_Feedback - type: object - goal: - properties: - from_vessel: - properties: - category: - type: string - children: - items: - type: string - type: array - config: - type: string - data: - type: string - id: - type: string - name: - type: string - parent: - type: string - pose: - properties: - orientation: - properties: - w: - type: number - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - - w - title: orientation - type: object - position: - properties: - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - title: position - type: object - required: - - position - - orientation - title: pose - type: object - sample_id: - type: string - type: - type: string - required: - - id - - name - - sample_id - - children - - parent - - type - - category - - pose - - config - - data - title: from_vessel - type: object - product_phase: - type: string - product_vessel: - properties: - category: - type: string - children: - items: - type: string - type: array - config: - type: string - data: - type: string - id: - type: string - name: - type: string - parent: - type: string - pose: - properties: - orientation: - properties: - w: - type: number - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - - w - title: orientation - type: object - position: - properties: - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - title: position - type: object - required: - - position - - orientation - title: pose - type: object - sample_id: - type: string - type: - type: string - required: - - id - - name - - sample_id - - children - - parent - - type - - category - - pose - - config - - data - title: product_vessel - type: object - purpose: - type: string - repeats: - maximum: 2147483647 - minimum: -2147483648 - type: integer - separation_vessel: - properties: - category: - type: string - children: - items: - type: string - type: array - config: - type: string - data: - type: string - id: - type: string - name: - type: string - parent: - type: string - pose: - properties: - orientation: - properties: - w: - type: number - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - - w - title: orientation - type: object - position: - properties: - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - title: position - type: object - required: - - position - - orientation - title: pose - type: object - sample_id: - type: string - type: - type: string - required: - - id - - name - - sample_id - - children - - parent - - type - - category - - pose - - config - - data - title: separation_vessel - type: object - settling_time: - type: number - solvent: - type: string - solvent_volume: - type: string - stir_speed: - type: number - stir_time: - type: number - through: - type: string - to_vessel: - properties: - category: - type: string - children: - items: - type: string - type: array - config: - type: string - data: - type: string - id: - type: string - name: - type: string - parent: - type: string - pose: - properties: - orientation: - properties: - w: - type: number - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - - w - title: orientation - type: object - position: - properties: - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - title: position - type: object - required: - - position - - orientation - title: pose - type: object - sample_id: - type: string - type: - type: string - required: - - id - - name - - sample_id - - children - - parent - - type - - category - - pose - - config - - data - title: to_vessel - type: object - vessel: - properties: - category: - type: string - children: - items: - type: string - type: array - config: - type: string - data: - type: string - id: - type: string - name: - type: string - parent: - type: string - pose: - properties: - orientation: - properties: - w: - type: number - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - - w - title: orientation - type: object - position: - properties: - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - title: position - type: object - required: - - position - - orientation - title: pose - type: object - sample_id: - type: string - type: - type: string - required: - - id - - name - - sample_id - - children - - parent - - type - - category - - pose - - config - - data - title: vessel - type: object - volume: - type: string - waste_phase_to_vessel: - properties: - category: - type: string - children: - items: - type: string - type: array - config: - type: string - data: - type: string - id: - type: string - name: - type: string - parent: - type: string - pose: - properties: - orientation: - properties: - w: - type: number - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - - w - title: orientation - type: object - position: - properties: - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - title: position - type: object - required: - - position - - orientation - title: pose - type: object - sample_id: - type: string - type: - type: string - required: - - id - - name - - sample_id - - children - - parent - - type - - category - - pose - - config - - data - title: waste_phase_to_vessel - type: object - waste_vessel: - properties: - category: - type: string - children: - items: - type: string - type: array - config: - type: string - data: - type: string - id: - type: string - name: - type: string - parent: - type: string - pose: - properties: - orientation: - properties: - w: - type: number - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - - w - title: orientation - type: object - position: - properties: - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - title: position - type: object - required: - - position - - orientation - title: pose - type: object - sample_id: - type: string - type: - type: string - required: - - id - - name - - sample_id - - children - - parent - - type - - category - - pose - - config - - data - title: waste_vessel - type: object - required: - - vessel - - purpose - - product_phase - - from_vessel - - separation_vessel - - to_vessel - - waste_phase_to_vessel - - product_vessel - - waste_vessel - - solvent - - solvent_volume - - volume - - through - - repeats - - stir_time - - stir_speed - - settling_time - title: Separate_Goal - type: object - result: - properties: - message: - type: string - return_info: - type: string - success: - type: boolean - required: - - success - - message - - return_info - title: Separate_Result - type: object - required: - - goal - title: Separate - type: object - type: Separate - StartStirProtocol: - feedback: {} - goal: - purpose: purpose - stir_speed: stir_speed - vessel: vessel - goal_default: - purpose: '' - stir_speed: 0.0 - vessel: - category: '' - children: [] - config: '' - data: '' - id: '' - name: '' - parent: '' - pose: - orientation: - w: 1.0 - x: 0.0 - y: 0.0 - z: 0.0 - position: - x: 0.0 - y: 0.0 - z: 0.0 - sample_id: '' - type: '' - handles: - input: - - data_key: vessel - data_source: handle - data_type: resource - handler_key: Vessel - label: Vessel - output: - - data_key: vessel - data_source: executor - data_type: resource - handler_key: VesselOut - label: Vessel - placeholder_keys: - vessel: unilabos_resources - result: {} - schema: - description: '' - properties: - feedback: - properties: - current_speed: - type: number - current_status: - type: string - progress: - type: number - required: - - progress - - current_speed - - current_status - title: StartStir_Feedback - type: object - goal: - properties: - purpose: - type: string - stir_speed: - type: number - vessel: - properties: - category: - type: string - children: - items: - type: string - type: array - config: - type: string - data: - type: string - id: - type: string - name: - type: string - parent: - type: string - pose: - properties: - orientation: - properties: - w: - type: number - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - - w - title: orientation - type: object - position: - properties: - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - title: position - type: object - required: - - position - - orientation - title: pose - type: object - sample_id: - type: string - type: - type: string - required: - - id - - name - - sample_id - - children - - parent - - type - - category - - pose - - config - - data - title: vessel - type: object - required: - - vessel - - stir_speed - - purpose - title: StartStir_Goal - type: object - result: - properties: - message: - type: string - return_info: - type: string - success: - type: boolean - required: - - success - - message - - return_info - title: StartStir_Result - type: object - required: - - goal - title: StartStir - type: object - type: StartStir - StirProtocol: - feedback: {} - goal: - event: event - settling_time: settling_time - stir_speed: stir_speed - stir_time: stir_time - time: time - time_spec: time_spec - vessel: vessel - goal_default: - event: '' - settling_time: '' - stir_speed: 0.0 - stir_time: 0.0 - time: '' - time_spec: '' - vessel: - category: '' - children: [] - config: '' - data: '' - id: '' - name: '' - parent: '' - pose: - orientation: - w: 1.0 - x: 0.0 - y: 0.0 - z: 0.0 - position: - x: 0.0 - y: 0.0 - z: 0.0 - sample_id: '' - type: '' - handles: - input: - - data_key: vessel - data_source: handle - data_type: resource - handler_key: Vessel - label: Vessel - output: - - data_key: vessel - data_source: executor - data_type: resource - handler_key: VesselOut - label: Vessel - placeholder_keys: - vessel: unilabos_resources - result: {} - schema: - description: '' - properties: - feedback: - properties: - status: - type: string - required: - - status - title: Stir_Feedback - type: object - goal: - properties: - event: - type: string - settling_time: - type: string - stir_speed: - type: number - stir_time: - type: number - time: - type: string - time_spec: - type: string - vessel: - properties: - category: - type: string - children: - items: - type: string - type: array - config: - type: string - data: - type: string - id: - type: string - name: - type: string - parent: - type: string - pose: - properties: - orientation: - properties: - w: - type: number - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - - w - title: orientation - type: object - position: - properties: - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - title: position - type: object - required: - - position - - orientation - title: pose - type: object - sample_id: - type: string - type: - type: string - required: - - id - - name - - sample_id - - children - - parent - - type - - category - - pose - - config - - data - title: vessel - type: object - required: - - vessel - - time - - event - - time_spec - - stir_time - - stir_speed - - settling_time - title: Stir_Goal - type: object - result: - properties: - message: - type: string - return_info: - type: string - success: - type: boolean - required: - - success - - message - - return_info - title: Stir_Result - type: object - required: - - goal - title: Stir - type: object - type: Stir - StopStirProtocol: - feedback: {} - goal: - vessel: vessel - goal_default: - vessel: - category: '' - children: [] - config: '' - data: '' - id: '' - name: '' - parent: '' - pose: - orientation: - w: 1.0 - x: 0.0 - y: 0.0 - z: 0.0 - position: - x: 0.0 - y: 0.0 - z: 0.0 - sample_id: '' - type: '' - handles: - input: - - data_key: vessel - data_source: handle - data_type: resource - handler_key: Vessel - label: Vessel - output: - - data_key: vessel - data_source: executor - data_type: resource - handler_key: VesselOut - label: Vessel - placeholder_keys: - vessel: unilabos_resources - result: {} - schema: - description: '' - properties: - feedback: - properties: - current_status: - type: string - progress: - type: number - required: - - progress - - current_status - title: StopStir_Feedback - type: object - goal: - properties: - vessel: - properties: - category: - type: string - children: - items: - type: string - type: array - config: - type: string - data: - type: string - id: - type: string - name: - type: string - parent: - type: string - pose: - properties: - orientation: - properties: - w: - type: number - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - - w - title: orientation - type: object - position: - properties: - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - title: position - type: object - required: - - position - - orientation - title: pose - type: object - sample_id: - type: string - type: - type: string - required: - - id - - name - - sample_id - - children - - parent - - type - - category - - pose - - config - - data - title: vessel - type: object - required: - - vessel - title: StopStir_Goal - type: object - result: - properties: - message: - type: string - return_info: - type: string - success: - type: boolean - required: - - success - - message - - return_info - title: StopStir_Result - type: object - required: - - goal - title: StopStir - type: object - type: StopStir - TransferProtocol: - feedback: {} - goal: - amount: amount - from_vessel: from_vessel - rinsing_repeats: rinsing_repeats - rinsing_solvent: rinsing_solvent - rinsing_volume: rinsing_volume - solid: solid - time: time - to_vessel: to_vessel - viscous: viscous - volume: volume - goal_default: - amount: '' - from_vessel: '' - rinsing_repeats: 0 - rinsing_solvent: '' - rinsing_volume: 0.0 - solid: false - time: 0.0 - to_vessel: '' - viscous: false - volume: 0.0 - handles: - input: - - data_key: vessel - data_source: handle - data_type: resource - handler_key: FromVessel - label: From Vessel - - data_key: vessel - data_source: executor - data_type: resource - handler_key: ToVessel - label: To Vessel - - data_key: solvent - data_source: handle - data_type: resource - handler_key: solvent - label: Rinsing Solvent - output: - - data_key: vessel - data_source: handle - data_type: resource - handler_key: FromVesselOut - label: From Vessel - - data_key: vessel - data_source: executor - data_type: resource - handler_key: ToVesselOut - label: To Vessel - placeholder_keys: - from_vessel: unilabos_nodes - to_vessel: unilabos_nodes - result: {} - schema: - description: '' - properties: - feedback: - properties: - current_status: - type: string - progress: - type: number - transferred_volume: - type: number - required: - - progress - - transferred_volume - - current_status - title: Transfer_Feedback - type: object - goal: - properties: - amount: - type: string - from_vessel: - type: string - rinsing_repeats: - maximum: 2147483647 - minimum: -2147483648 - type: integer - rinsing_solvent: - type: string - rinsing_volume: - type: number - solid: - type: boolean - time: - type: number - to_vessel: - type: string - viscous: - type: boolean - volume: - type: number - required: - - from_vessel - - to_vessel - - volume - - amount - - time - - viscous - - rinsing_solvent - - rinsing_volume - - rinsing_repeats - - solid - title: Transfer_Goal - type: object - result: - properties: - message: - type: string - return_info: - type: string - success: - type: boolean - required: - - success - - message - - return_info - title: Transfer_Result - type: object - required: - - goal - title: Transfer - type: object - type: Transfer - WashSolidProtocol: - feedback: {} - goal: - filtrate_vessel: filtrate_vessel - repeats: repeats - solvent: solvent - stir: stir - stir_speed: stir_speed - temp: temp - time: time - vessel: vessel - volume: volume - goal_default: - event: '' - filtrate_vessel: - category: '' - children: [] - config: '' - data: '' - id: '' - name: '' - parent: '' - pose: - orientation: - w: 1.0 - x: 0.0 - y: 0.0 - z: 0.0 - position: - x: 0.0 - y: 0.0 - z: 0.0 - sample_id: '' - type: '' - mass: '' - repeats: 0 - repeats_spec: '' - solvent: '' - stir: false - stir_speed: 0.0 - temp: 0.0 - time: '' - vessel: - category: '' - children: [] - config: '' - data: '' - id: '' - name: '' - parent: '' - pose: - orientation: - w: 1.0 - x: 0.0 - y: 0.0 - z: 0.0 - position: - x: 0.0 - y: 0.0 - z: 0.0 - sample_id: '' - type: '' - volume: '' - volume_spec: '' - handles: - input: - - data_key: vessel - data_source: handle - data_type: resource - handler_key: Vessel - label: Vessel - - data_key: solvent - data_source: handle - data_type: resource - handler_key: solvent - label: Solvent - - data_key: filtrate_vessel - data_source: handle - data_type: resource - handler_key: filtrate_vessel - label: Filtrate Vessel - output: - - data_key: vessel - data_source: handle - data_type: resource - handler_key: VesselOut - label: Vessel Out - - data_key: filtrate_vessel - data_source: executor - data_type: resource - handler_key: filtrate_vessel_out - label: Filtrate Vessel - placeholder_keys: - filtrate_vessel: unilabos_resources - vessel: unilabos_resources - result: {} - schema: - description: '' - properties: - feedback: - properties: - progress: - type: number - status: - type: string - required: - - status - - progress - title: WashSolid_Feedback - type: object - goal: - properties: - event: - type: string - filtrate_vessel: - properties: - category: - type: string - children: - items: - type: string - type: array - config: - type: string - data: - type: string - id: - type: string - name: - type: string - parent: - type: string - pose: - properties: - orientation: - properties: - w: - type: number - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - - w - title: orientation - type: object - position: - properties: - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - title: position - type: object - required: - - position - - orientation - title: pose - type: object - sample_id: - type: string - type: - type: string - required: - - id - - name - - sample_id - - children - - parent - - type - - category - - pose - - config - - data - title: filtrate_vessel - type: object - mass: - type: string - repeats: - maximum: 2147483647 - minimum: -2147483648 - type: integer - repeats_spec: - type: string - solvent: - type: string - stir: - type: boolean - stir_speed: - type: number - temp: - type: number - time: - type: string - vessel: - properties: - category: - type: string - children: - items: - type: string - type: array - config: - type: string - data: - type: string - id: - type: string - name: - type: string - parent: - type: string - pose: - properties: - orientation: - properties: - w: - type: number - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - - w - title: orientation - type: object - position: - properties: - x: - type: number - y: - type: number - z: - type: number - required: - - x - - y - - z - title: position - type: object - required: - - position - - orientation - title: pose - type: object - sample_id: - type: string - type: - type: string - required: - - id - - name - - sample_id - - children - - parent - - type - - category - - pose - - config - - data - title: vessel - type: object - volume: - type: string - volume_spec: - type: string - required: - - vessel - - solvent - - volume - - filtrate_vessel - - temp - - stir - - stir_speed - - time - - repeats - - volume_spec - - repeats_spec - - mass - - event - title: WashSolid_Goal - type: object - result: - properties: - message: - type: string - return_info: - type: string - success: - type: boolean - required: - - success - - message - - return_info - title: WashSolid_Result - type: object - required: - - goal - title: WashSolid - type: object - type: WashSolid - module: unilabos.devices.workstation.workstation_base:ProtocolNode - status_types: {} - type: python - config_info: [] - description: Workstation - handles: [] - icon: '' - init_param_schema: - config: - properties: - deck: - type: string - protocol_type: - items: - type: string - type: array - required: - - protocol_type - - deck - type: object - data: - properties: {} - required: [] - type: object - version: 1.0.0 diff --git a/unilabos/registry/devices/xrd_d7mate.yaml b/unilabos/registry/devices/xrd_d7mate.yaml deleted file mode 100644 index cbdf8aa8..00000000 --- a/unilabos/registry/devices/xrd_d7mate.yaml +++ /dev/null @@ -1,601 +0,0 @@ -xrd_d7mate: - category: - - xrd_d7mate - class: - action_value_mappings: - auto-close: - feedback: {} - goal: {} - goal_default: {} - handles: {} - placeholder_keys: {} - result: {} - schema: - description: 安全关闭与XRD D7-Mate设备的TCP连接,释放网络资源。 - properties: - feedback: {} - goal: - properties: {} - required: [] - type: object - result: {} - required: - - goal - title: close参数 - type: object - type: UniLabJsonCommand - auto-connect: - feedback: {} - goal: {} - goal_default: {} - handles: {} - placeholder_keys: {} - result: {} - schema: - description: 与XRD D7-Mate设备建立TCP连接,配置超时参数。 - properties: - feedback: {} - goal: - properties: {} - required: [] - type: object - result: {} - required: - - goal - title: connect参数 - type: object - type: UniLabJsonCommand - auto-post_init: - feedback: {} - goal: {} - goal_default: - ros_node: null - handles: {} - placeholder_keys: {} - result: {} - schema: - description: '' - properties: - feedback: {} - goal: - properties: - ros_node: - type: string - required: - - ros_node - type: object - result: {} - required: - - goal - title: post_init参数 - type: object - type: UniLabJsonCommand - auto-start_from_string: - feedback: {} - goal: {} - goal_default: - params: null - handles: {} - placeholder_keys: {} - result: {} - schema: - description: '' - properties: - feedback: {} - goal: - properties: - params: - type: string - required: - - params - type: object - result: {} - required: - - goal - title: start_from_string参数 - type: object - type: UniLabJsonCommand - get_current_acquire_data: - feedback: {} - goal: {} - goal_default: {} - handles: {} - result: {} - schema: - description: '' - properties: - feedback: - properties: {} - required: [] - title: EmptyIn_Feedback - type: object - goal: - properties: {} - required: [] - title: EmptyIn_Goal - type: object - result: - properties: - return_info: - type: string - required: - - return_info - title: EmptyIn_Result - type: object - required: - - goal - title: EmptyIn - type: object - type: EmptyIn - get_sample_down: - feedback: {} - goal: - sample_station: 1 - goal_default: - int_input: 0 - handles: {} - result: {} - schema: - description: '' - properties: - feedback: - properties: {} - required: [] - title: IntSingleInput_Feedback - type: object - goal: - properties: - int_input: - maximum: 2147483647 - minimum: -2147483648 - type: integer - required: - - int_input - title: IntSingleInput_Goal - type: object - result: - properties: - return_info: - type: string - success: - type: boolean - required: - - return_info - - success - title: IntSingleInput_Result - type: object - required: - - goal - title: IntSingleInput - type: object - type: IntSingleInput - get_sample_request: - feedback: {} - goal: {} - goal_default: {} - handles: {} - result: {} - schema: - description: '' - properties: - feedback: - properties: {} - required: [] - title: EmptyIn_Feedback - type: object - goal: - properties: {} - required: [] - title: EmptyIn_Goal - type: object - result: - properties: - return_info: - type: string - required: - - return_info - title: EmptyIn_Result - type: object - required: - - goal - title: EmptyIn - type: object - type: EmptyIn - get_sample_status: - feedback: {} - goal: {} - goal_default: {} - handles: {} - result: {} - schema: - description: '' - properties: - feedback: - properties: {} - required: [] - title: EmptyIn_Feedback - type: object - goal: - properties: {} - required: [] - title: EmptyIn_Goal - type: object - result: - properties: - return_info: - type: string - required: - - return_info - title: EmptyIn_Result - type: object - required: - - goal - title: EmptyIn - type: object - type: EmptyIn - send_sample_down_ready: - feedback: {} - goal: {} - goal_default: {} - handles: {} - result: {} - schema: - description: '' - properties: - feedback: - properties: {} - required: [] - title: EmptyIn_Feedback - type: object - goal: - properties: {} - required: [] - title: EmptyIn_Goal - type: object - result: - properties: - return_info: - type: string - required: - - return_info - title: EmptyIn_Result - type: object - required: - - goal - title: EmptyIn - type: object - type: EmptyIn - send_sample_ready: - feedback: {} - goal: - end_theta: 80.0 - exp_time: 0.5 - increment: 0.02 - sample_id: '' - start_theta: 10.0 - goal_default: - end_theta: 80.0 - exp_time: 0.5 - increment: 0.02 - sample_id: Sample001 - start_theta: 10.0 - handles: {} - result: {} - schema: - description: 送样完成后,发送样品信息和采集参数 - properties: - feedback: - properties: {} - required: [] - title: SampleReadyInput_Feedback - type: object - goal: - properties: - end_theta: - description: 结束角度(≥5.5°,且必须大于start_theta) - minimum: 5.5 - type: number - exp_time: - description: 曝光时间(0.1-5.0秒) - maximum: 5.0 - minimum: 0.1 - type: number - increment: - description: 角度增量(≥0.005) - minimum: 0.005 - type: number - sample_id: - description: 样品标识符 - type: string - start_theta: - description: 起始角度(≥5°) - minimum: 5.0 - type: number - required: - - sample_id - - start_theta - - end_theta - - increment - - exp_time - title: SampleReadyInput_Goal - type: object - result: - properties: - return_info: - type: string - success: - type: boolean - required: - - return_info - - success - title: SampleReadyInput_Result - type: object - required: - - goal - title: SampleReadyInput - type: object - type: UniLabJsonCommand - set_power_off: - feedback: {} - goal: {} - goal_default: {} - handles: {} - result: {} - schema: - description: '' - properties: - feedback: - properties: {} - required: [] - title: EmptyIn_Feedback - type: object - goal: - properties: {} - required: [] - title: EmptyIn_Goal - type: object - result: - properties: - return_info: - type: string - required: - - return_info - title: EmptyIn_Result - type: object - required: - - goal - title: EmptyIn - type: object - type: EmptyIn - set_power_on: - feedback: {} - goal: {} - goal_default: {} - handles: {} - result: {} - schema: - description: '' - properties: - feedback: - properties: {} - required: [] - title: EmptyIn_Feedback - type: object - goal: - properties: {} - required: [] - title: EmptyIn_Goal - type: object - result: - properties: - return_info: - type: string - required: - - return_info - title: EmptyIn_Result - type: object - required: - - goal - title: EmptyIn - type: object - type: EmptyIn - set_voltage_current: - feedback: {} - goal: - current: 30.0 - voltage: 40.0 - goal_default: - current: 30.0 - voltage: 40.0 - handles: {} - result: {} - schema: - description: 设置高压电源电压和电流 - properties: - feedback: - properties: {} - required: [] - title: VoltageCurrentInput_Feedback - type: object - goal: - properties: - current: - description: 电流值(mA) - type: number - voltage: - description: 电压值(kV) - type: number - required: - - voltage - - current - title: VoltageCurrentInput_Goal - type: object - result: - properties: - return_info: - type: string - success: - type: boolean - required: - - return_info - - success - title: VoltageCurrentInput_Result - type: object - required: - - goal - title: VoltageCurrentInput - type: object - type: UniLabJsonCommand - start: - feedback: {} - goal: {} - goal_default: - end_theta: 80.0 - exp_time: 0.1 - increment: 0.05 - sample_id: 样品名称 - start_theta: 10.0 - string: '' - wait_minutes: 3.0 - handles: {} - result: {} - schema: - description: 启动自动模式→上样→等待→样品准备→监控→检测下样位→执行下样流程。 - properties: - feedback: {} - goal: - properties: - end_theta: - description: 结束角度(≥5.5°,且必须大于start_theta) - minimum: 5.5 - type: string - exp_time: - description: 曝光时间(0.1-5.0秒) - maximum: 5.0 - minimum: 0.1 - type: string - increment: - description: 角度增量(≥0.005) - minimum: 0.005 - type: string - sample_id: - description: 样品标识符 - type: string - start_theta: - description: 起始角度(≥5°) - minimum: 5.0 - type: string - string: - description: 字符串格式的参数输入,如果提供则优先解析使用 - type: string - wait_minutes: - description: 允许上样后等待分钟数 - minimum: 0.0 - type: number - required: - - sample_id - - start_theta - - end_theta - - increment - - exp_time - title: StartWorkflow_Goal - type: object - result: - properties: - return_info: - type: string - success: - type: boolean - required: - - return_info - - success - title: StartWorkflow_Result - type: object - required: - - goal - title: StartWorkflow - type: object - type: UniLabJsonCommand - start_auto_mode: - feedback: {} - goal: - status: true - goal_default: - status: true - handles: {} - result: {} - schema: - description: 启动或停止自动模式 - properties: - feedback: - properties: {} - required: [] - title: BoolSingleInput_Feedback - type: object - goal: - properties: - status: - description: True-启动自动模式,False-停止自动模式 - type: boolean - required: - - status - title: BoolSingleInput_Goal - type: object - result: - properties: - return_info: - type: string - success: - type: boolean - required: - - return_info - - success - title: BoolSingleInput_Result - type: object - required: - - goal - title: BoolSingleInput - type: object - type: UniLabJsonCommand - module: unilabos.devices.xrd_d7mate.xrd_d7mate:XRDClient - status_types: - current_acquire_data: dict - sample_down: dict - sample_request: dict - sample_status: dict - type: python - config_info: [] - description: XRD D7-Mate X射线衍射分析设备,通过TCP通信实现远程控制与状态监控,支持自动模式控制、上样流程、数据获取、下样流程和高压电源控制等功能。 - handles: [] - icon: '' - init_param_schema: - config: - properties: - host: - default: 127.0.0.1 - type: string - port: - default: 6001 - type: string - timeout: - default: 10.0 - type: string - required: [] - type: object - data: - properties: - current_acquire_data: - type: object - sample_down: - type: object - sample_request: - type: object - sample_status: - type: object - required: - - sample_request - - current_acquire_data - - sample_status - - sample_down - type: object - version: 1.0.0 diff --git a/unilabos/registry/devices/zhida_gcms.yaml b/unilabos/registry/devices/zhida_gcms.yaml deleted file mode 100644 index 607af9b9..00000000 --- a/unilabos/registry/devices/zhida_gcms.yaml +++ /dev/null @@ -1,350 +0,0 @@ -zhida_gcms: - category: - - zhida_gcms - class: - action_value_mappings: - abort: - feedback: {} - goal: {} - goal_default: {} - handles: {} - result: {} - schema: - description: '' - properties: - feedback: - properties: {} - required: [] - title: EmptyIn_Feedback - type: object - goal: - properties: {} - required: [] - title: EmptyIn_Goal - type: object - result: - properties: - return_info: - type: string - required: - - return_info - title: EmptyIn_Result - type: object - required: - - goal - title: EmptyIn - type: object - type: EmptyIn - auto-close: - feedback: {} - goal: {} - goal_default: {} - handles: {} - placeholder_keys: {} - result: {} - schema: - description: 安全关闭与智达 GCMS 设备的 TCP 连接,释放网络资源。 - properties: - feedback: {} - goal: - properties: {} - required: [] - type: object - result: {} - required: - - goal - title: close参数 - type: object - type: UniLabJsonCommand - auto-connect: - feedback: {} - goal: {} - goal_default: {} - handles: {} - placeholder_keys: {} - result: {} - schema: - description: 与智达 GCMS 设备建立 TCP 连接,配置超时参数。 - properties: - feedback: {} - goal: - properties: {} - required: [] - type: object - result: {} - required: - - goal - title: connect参数 - type: object - type: UniLabJsonCommand - auto-post_init: - feedback: {} - goal: {} - goal_default: - ros_node: null - handles: {} - placeholder_keys: {} - result: {} - schema: - description: '' - properties: - feedback: {} - goal: - properties: - ros_node: - type: string - required: - - ros_node - type: object - result: {} - required: - - goal - title: post_init参数 - type: object - type: UniLabJsonCommand - get_methods: - feedback: {} - goal: {} - goal_default: {} - handles: {} - result: {} - schema: - description: '' - properties: - feedback: - properties: {} - required: [] - title: EmptyIn_Feedback - type: object - goal: - properties: {} - required: [] - title: EmptyIn_Goal - type: object - result: - properties: - return_info: - type: string - required: - - return_info - title: EmptyIn_Result - type: object - required: - - goal - title: EmptyIn - type: object - type: EmptyIn - get_status: - feedback: {} - goal: {} - goal_default: {} - handles: {} - result: {} - schema: - description: '' - properties: - feedback: - properties: {} - required: [] - title: EmptyIn_Feedback - type: object - goal: - properties: {} - required: [] - title: EmptyIn_Goal - type: object - result: - properties: - return_info: - type: string - required: - - return_info - title: EmptyIn_Result - type: object - required: - - goal - title: EmptyIn - type: object - type: EmptyIn - get_version: - feedback: {} - goal: {} - goal_default: {} - handles: {} - result: {} - schema: - description: '' - properties: - feedback: - properties: {} - required: [] - title: EmptyIn_Feedback - type: object - goal: - properties: {} - required: [] - title: EmptyIn_Goal - type: object - result: - properties: - return_info: - type: string - required: - - return_info - title: EmptyIn_Result - type: object - required: - - goal - title: EmptyIn - type: object - type: EmptyIn - put_tray: - feedback: {} - goal: {} - goal_default: {} - handles: {} - result: {} - schema: - description: '' - properties: - feedback: - properties: {} - required: [] - title: EmptyIn_Feedback - type: object - goal: - properties: {} - required: [] - title: EmptyIn_Goal - type: object - result: - properties: - return_info: - type: string - required: - - return_info - title: EmptyIn_Result - type: object - required: - - goal - title: EmptyIn - type: object - type: EmptyIn - start: - feedback: {} - goal: - string: string - goal_default: - string: '' - handles: {} - result: {} - schema: - description: '' - properties: - feedback: - properties: {} - required: [] - title: StrSingleInput_Feedback - type: object - goal: - properties: - string: - type: string - required: - - string - title: StrSingleInput_Goal - type: object - result: - properties: - return_info: - type: string - success: - type: boolean - required: - - return_info - - success - title: StrSingleInput_Result - type: object - required: - - goal - title: StrSingleInput - type: object - type: StrSingleInput - start_with_csv_file: - feedback: {} - goal: - string: string - goal_default: - string: '' - handles: {} - result: {} - schema: - description: '' - properties: - feedback: - properties: {} - required: [] - title: StrSingleInput_Feedback - type: object - goal: - properties: - string: - type: string - required: - - string - title: StrSingleInput_Goal - type: object - result: - properties: - return_info: - type: string - success: - type: boolean - required: - - return_info - - success - title: StrSingleInput_Result - type: object - required: - - goal - title: StrSingleInput - type: object - type: StrSingleInput - module: unilabos.devices.zhida_gcms.zhida:ZhidaClient - status_types: - methods: dict - status: str - version: dict - type: python - config_info: [] - description: 智达气相色谱-质谱联用(GC-MS)分析设备,通过 TCP 通信实现远程控制与状态监控,支持方法管理与任务启动等功能。 - handles: [] - icon: '' - init_param_schema: - config: - properties: - host: - default: 192.168.3.184 - type: string - port: - default: 5792 - type: string - timeout: - default: 10.0 - type: string - required: [] - type: object - data: - properties: - methods: - type: object - status: - type: string - version: - type: object - required: - - status - - methods - - version - type: object - version: 1.0.0 diff --git a/unilabos/registry/resources/AI4M/bottle_carriers.yaml b/unilabos/registry/resources/AI4M/bottle_carriers.yaml new file mode 100644 index 00000000..21ed6015 --- /dev/null +++ b/unilabos/registry/resources/AI4M/bottle_carriers.yaml @@ -0,0 +1,38 @@ +Hydrogel_Powder_Containing_1BottleCarrier: + category: + - bottle_carriers + class: + module: unilabos.devices.workstation.AI4M.bottle_carriers:Hydrogel_Powder_Containing_1BottleCarrier + type: pylabrobot + description: Hydrogel_Powder_Containing_1BottleCarrier + handles: [] + icon: '' + init_param_schema: {} + registry_type: resource + version: 1.0.0 + +Hydrogel_Clean_1BottleCarrier: + category: + - bottle_carriers + class: + module: unilabos.devices.workstation.AI4M.bottle_carriers:Hydrogel_Clean_1BottleCarrier + type: pylabrobot + description: Hydrogel_Clean_1BottleCarrier + handles: [] + icon: '' + init_param_schema: {} + registry_type: resource + version: 1.0.0 + +Hydrogel_Waste_1BottleCarrier: + category: + - bottle_carriers + class: + module: unilabos.devices.workstation.AI4M.bottle_carriers:Hydrogel_Waste_1BottleCarrier + type: pylabrobot + description: Hydrogel_Waste_1BottleCarrier + handles: [] + icon: '' + init_param_schema: {} + registry_type: resource + version: 1.0.0 \ No newline at end of file diff --git a/unilabos/registry/resources/AI4M/bottles.yaml b/unilabos/registry/resources/AI4M/bottles.yaml new file mode 100644 index 00000000..3b8bf06a --- /dev/null +++ b/unilabos/registry/resources/AI4M/bottles.yaml @@ -0,0 +1,32 @@ +Hydrogel_Powder_Containing_Bottle: + category: + - bottles + class: + module: unilabos.devices.workstation.AI4M.bottles:Hydrogel_Powder_Containing_Bottle + type: pylabrobot + handles: [] + icon: '' + init_param_schema: {} + version: 1.0.0 + +Hydrogel_Clean_Bottle: + category: + - bottles + class: + module: unilabos.devices.workstation.AI4M.bottles:Hydrogel_Clean_Bottle + type: pylabrobot + handles: [] + icon: '' + init_param_schema: {} + version: 1.0.0 + + Hydrogel_Waste_Bottle: + category: + - bottles + class: + module: unilabos.devices.workstation.AI4M.bottles:Hydrogel_Waste_Bottle + type: pylabrobot + handles: [] + icon: '' + init_param_schema: {} + version: 1.0.0 \ No newline at end of file diff --git a/unilabos/registry/resources/AI4M/deck.yaml b/unilabos/registry/resources/AI4M/deck.yaml new file mode 100644 index 00000000..834ff3d4 --- /dev/null +++ b/unilabos/registry/resources/AI4M/deck.yaml @@ -0,0 +1,12 @@ +AI4M_deck: + category: + - AI4M_deck + class: + module: unilabos.devices.workstation.AI4M.decks:AI4M_deck + type: pylabrobot + description: AI4M_deck + handles: [] + icon: '' + init_param_schema: {} + registry_type: resource + version: 1.0.0 diff --git a/unilabos/registry/resources/bioyond/bottle_carriers.yaml b/unilabos/registry/resources/bioyond/bottle_carriers.yaml deleted file mode 100644 index 764a8aa5..00000000 --- a/unilabos/registry/resources/bioyond/bottle_carriers.yaml +++ /dev/null @@ -1,48 +0,0 @@ -BIOYOND_PolymerStation_1BottleCarrier: - category: - - bottle_carriers - class: - module: unilabos.resources.bioyond.bottle_carriers:BIOYOND_PolymerStation_1BottleCarrier - type: pylabrobot - description: BIOYOND_PolymerStation_1BottleCarrier - handles: [] - icon: '' - init_param_schema: {} - registry_type: resource - version: 1.0.0 -BIOYOND_PolymerStation_1FlaskCarrier: - category: - - bottle_carriers - class: - module: unilabos.resources.bioyond.bottle_carriers:BIOYOND_PolymerStation_1FlaskCarrier - type: pylabrobot - description: BIOYOND_PolymerStation_1FlaskCarrier - handles: [] - icon: '' - init_param_schema: {} - registry_type: resource - version: 1.0.0 -BIOYOND_PolymerStation_6StockCarrier: - category: - - bottle_carriers - class: - module: unilabos.resources.bioyond.bottle_carriers:BIOYOND_PolymerStation_6StockCarrier - type: pylabrobot - description: BIOYOND_PolymerStation_6StockCarrier - handles: [] - icon: '' - init_param_schema: {} - registry_type: resource - version: 1.0.0 -BIOYOND_PolymerStation_8StockCarrier: - category: - - bottle_carriers - class: - module: unilabos.resources.bioyond.bottle_carriers:BIOYOND_PolymerStation_8StockCarrier - type: pylabrobot - description: BIOYOND_PolymerStation_8StockCarrier (2x4布局,8个位置) - handles: [] - icon: '' - init_param_schema: {} - registry_type: resource - version: 1.0.0 diff --git a/unilabos/registry/resources/bioyond/bottles.yaml b/unilabos/registry/resources/bioyond/bottles.yaml deleted file mode 100644 index 79aa712b..00000000 --- a/unilabos/registry/resources/bioyond/bottles.yaml +++ /dev/null @@ -1,84 +0,0 @@ -BIOYOND_PolymerStation_Flask: - category: - - bottles - - flasks - class: - module: unilabos.resources.bioyond.bottles:BIOYOND_PolymerStation_Flask - type: pylabrobot - description: 聚合站-烧杯容器 - handles: [] - icon: '' - init_param_schema: {} - version: 1.0.0 -BIOYOND_PolymerStation_Liquid_Vial: - category: - - bottles - class: - module: unilabos.resources.bioyond.bottles:BIOYOND_PolymerStation_Liquid_Vial - type: pylabrobot - handles: [] - icon: '' - init_param_schema: {} - version: 1.0.0 -BIOYOND_PolymerStation_Reactor: - category: - - bottles - - reactors - class: - module: unilabos.resources.bioyond.bottles:BIOYOND_PolymerStation_Reactor - type: pylabrobot - handles: [] - icon: '' - init_param_schema: {} - version: 1.0.0 -BIOYOND_PolymerStation_Reagent_Bottle: - category: - - bottles - class: - module: unilabos.resources.bioyond.bottles:BIOYOND_PolymerStation_Reagent_Bottle - type: pylabrobot - handles: [] - icon: '' - init_param_schema: {} - version: 1.0.0 -BIOYOND_PolymerStation_Solid_Stock: - category: - - bottles - class: - module: unilabos.resources.bioyond.bottles:BIOYOND_PolymerStation_Solid_Stock - type: pylabrobot - handles: [] - icon: '' - init_param_schema: {} - version: 1.0.0 -BIOYOND_PolymerStation_Solid_Vial: - category: - - bottles - class: - module: unilabos.resources.bioyond.bottles:BIOYOND_PolymerStation_Solid_Vial - type: pylabrobot - handles: [] - icon: '' - init_param_schema: {} - version: 1.0.0 -BIOYOND_PolymerStation_Solution_Beaker: - category: - - bottles - class: - module: unilabos.resources.bioyond.bottles:BIOYOND_PolymerStation_Solution_Beaker - type: pylabrobot - handles: [] - icon: '' - init_param_schema: {} - version: 1.0.0 -BIOYOND_PolymerStation_TipBox: - category: - - bottles - - tip_boxes - class: - module: unilabos.resources.bioyond.bottles:BIOYOND_PolymerStation_TipBox - type: pylabrobot - handles: [] - icon: '' - init_param_schema: {} - version: 1.0.0 diff --git a/unilabos/registry/resources/bioyond/deck.yaml b/unilabos/registry/resources/bioyond/deck.yaml deleted file mode 100644 index bc158508..00000000 --- a/unilabos/registry/resources/bioyond/deck.yaml +++ /dev/null @@ -1,36 +0,0 @@ -BIOYOND_PolymerPreparationStation_Deck: - category: - - deck - class: - module: unilabos.resources.bioyond.decks:BIOYOND_PolymerPreparationStation_Deck - type: pylabrobot - description: BIOYOND PolymerPreparationStation Deck - handles: [] - icon: 配液站.webp - init_param_schema: {} - registry_type: resource - version: 1.0.0 -BIOYOND_PolymerReactionStation_Deck: - category: - - deck - class: - module: unilabos.resources.bioyond.decks:BIOYOND_PolymerReactionStation_Deck - type: pylabrobot - description: BIOYOND PolymerReactionStation Deck - handles: [] - icon: 反应站.webp - init_param_schema: {} - registry_type: resource - version: 1.0.0 -YB_Deck11: - category: - - deck - class: - module: unilabos.resources.bioyond.decks:YB_Deck - type: pylabrobot - description: BIOYOND PolymerReactionStation Deck - handles: [] - icon: 配液站.webp - init_param_schema: {} - registry_type: resource - version: 1.0.0 diff --git a/unilabos/registry/resources/common/resource_container.yaml b/unilabos/registry/resources/common/resource_container.yaml deleted file mode 100644 index 48dcab59..00000000 --- a/unilabos/registry/resources/common/resource_container.yaml +++ /dev/null @@ -1,231 +0,0 @@ -disposal: - category: - - disposal - - waste - - resource_container - class: - module: unilabos.resources.disposal:Disposal - type: unilabos - description: 废料处理位置,用于处理实验废料 - handles: - - data_key: disposal_access - data_source: handle - data_type: fluid - handler_key: access - io_type: target - label: access - side: NORTH - icon: '' - init_param_schema: {} - registry_type: resource - version: 1.0.0 -hplc_plate: - category: - - resource_container - class: - module: unilabos.devices.resource_container.container:PlateContainer - type: python - description: HPLC板 - handles: [] - icon: '' - init_param_schema: {} - model: - mesh: hplc_plate/meshes/hplc_plate.stl - mesh_tf: - - 0 - - 0 - - 0 - - 0 - - 0 - - 3.1416 - path: https://uni-lab.oss-cn-zhangjiakou.aliyuncs.com/uni-lab/resources/hplc_plate/modal.xacro - type: resource - registry_type: resource - version: 1.0.0 -maintenance: - category: - - maintenance - - position - - resource_container - class: - module: unilabos.resources.maintenance:Maintenance - type: unilabos - description: 维护位置,用于设备维护和校准 - handles: - - data_key: maintenance_access - data_source: handle - data_type: mechanical - handler_key: access - io_type: target - label: access - side: NORTH - icon: '' - init_param_schema: {} - registry_type: resource - version: 1.0.0 -plate: - category: - - plate - - labware - - resource_container - class: - module: unilabos.resources.plate:Plate - type: unilabos - description: 实验板,用于放置样品和试剂 - handles: - - data_key: plate_access - data_source: handle - data_type: mechanical - handler_key: access - io_type: target - label: access - side: NORTH - - data_key: sample_wells - data_source: handle - data_type: fluid - handler_key: wells - io_type: target - label: wells - side: CENTER - icon: '' - init_param_schema: {} - registry_type: resource - version: 1.0.0 -plate_96: - category: - - resource_container - class: - module: unilabos.devices.resource_container.container:PlateContainer - type: python - description: 96孔板 - handles: [] - icon: '' - init_param_schema: {} - model: - mesh: plate_96/meshes/plate_96.stl - mesh_tf: - - 0 - - 0 - - 0 - - 0 - - 0 - - 0 - path: https://uni-lab.oss-cn-zhangjiakou.aliyuncs.com/uni-lab/resources/plate_96/modal.xacro - type: resource - registry_type: resource - version: 1.0.0 -plate_96_high: - category: - - resource_container - class: - module: unilabos.devices.resource_container.container:PlateContainer - type: python - description: 96孔板 - handles: [] - icon: '' - init_param_schema: {} - model: - mesh: plate_96_high/meshes/plate_96_high.stl - mesh_tf: - - 0 - - 0.086 - - 0 - - 1.5708 - - 0 - - 1.5708 - path: https://uni-lab.oss-cn-zhangjiakou.aliyuncs.com/uni-lab/resources/plate_96_high/modal.xacro - type: resource - registry_type: resource - version: 1.0.0 -tip_rack: - category: - - tip_rack - - labware - - resource_container - class: - module: unilabos.resources.tip_rack:TipRack - type: unilabos - description: 枪头架资源,用于存放和管理移液器枪头 - handles: - - data_key: tip_access - data_source: handle - data_type: mechanical - handler_key: access - io_type: target - label: access - side: NORTH - - data_key: tip_pickup - data_source: handle - data_type: mechanical - handler_key: pickup - io_type: target - label: pickup - side: SOUTH - icon: '' - init_param_schema: {} - registry_type: resource - version: 1.0.0 -tiprack_96_high: - category: - - resource_container - class: - module: unilabos.devices.resource_container.container:TipRackContainer - type: python - description: 96孔板 - handles: [] - icon: '' - init_param_schema: {} - model: - children_mesh: generic_labware_tube_10_75/meshes/0_base.stl - children_mesh_path: https://uni-lab.oss-cn-zhangjiakou.aliyuncs.com/uni-lab/resources/generic_labware_tube_10_75/modal.xacro - children_mesh_tf: - - 0.0018 - - 0.0018 - - -0.03 - - -1.5708 - - 0 - - 0 - mesh: tiprack_96_high/meshes/tiprack_96_high.stl - mesh_tf: - - 0 - - 0.086 - - 0 - - 1.5708 - - 0 - - 1.5708 - path: https://uni-lab.oss-cn-zhangjiakou.aliyuncs.com/uni-lab/resources/tiprack_96_high/modal.xacro - type: resource - registry_type: resource - version: 1.0.0 -tiprack_box: - category: - - resource_container - class: - module: unilabos.devices.resource_container.container:TipRackContainer - type: python - description: 96针头盒 - handles: [] - icon: '' - init_param_schema: {} - model: - children_mesh: tip/meshes/tip.stl - children_mesh_path: https://uni-lab.oss-cn-zhangjiakou.aliyuncs.com/uni-lab/resources/tip/modal.xacro - children_mesh_tf: - - 0.0045 - - 0.0045 - - 0 - - 0 - - 0 - - 0 - mesh: tiprack_box/meshes/tiprack_box.stl - mesh_tf: - - 0 - - 0 - - 0 - - 0 - - 0 - - 0 - path: https://uni-lab.oss-cn-zhangjiakou.aliyuncs.com/uni-lab/resources/tiprack_box/modal.xacro - type: resource - registry_type: resource - version: 1.0.0 diff --git a/unilabos/registry/resources/laiyu/container.yaml b/unilabos/registry/resources/laiyu/container.yaml deleted file mode 100644 index 1652956e..00000000 --- a/unilabos/registry/resources/laiyu/container.yaml +++ /dev/null @@ -1,66 +0,0 @@ -bottle_container: - category: - - resource_container - - container - class: - module: unilabos.devices.resource_container.container:BottleRackContainer - type: python - description: 96孔板 - handles: [] - icon: '' - init_param_schema: {} - model: - children_mesh: bottle/meshes/bottle.stl - children_mesh_path: https://uni-lab.oss-cn-zhangjiakou.aliyuncs.com/uni-lab/resources/bottle/modal.xacro - children_mesh_tf: - - 0.04 - - 0.04 - - 0 - - 0 - - 0 - - 0 - mesh: bottle_container/meshes/bottle_container.stl - mesh_tf: - - 0 - - 0 - - 0 - - 0 - - 0 - - 0 - path: https://uni-lab.oss-cn-zhangjiakou.aliyuncs.com/uni-lab/resources/bottle_container/modal.xacro - type: resource - registry_type: resource - version: 1.0.0 -tube_container: - category: - - resource_container - - container - class: - module: unilabos.devices.resource_container.container:TubeRackContainer - type: python - description: 96孔板 - handles: [] - icon: '' - init_param_schema: {} - model: - children_mesh: tube/meshes/tube.stl - children_mesh_path: https://uni-lab.oss-cn-zhangjiakou.aliyuncs.com/uni-lab/resources/tube/modal.xacro - children_mesh_tf: - - 0.017 - - 0.017 - - 0 - - 0 - - 0 - - 0 - mesh: tube_container/meshes/tube_container.stl - mesh_tf: - - 0 - - 0 - - 0 - - 0 - - 0 - - 0 - path: https://uni-lab.oss-cn-zhangjiakou.aliyuncs.com/uni-lab/resources/tube_container/modal.xacro - type: resource - registry_type: resource - version: 1.0.0 diff --git a/unilabos/registry/resources/laiyu/deck.yaml b/unilabos/registry/resources/laiyu/deck.yaml deleted file mode 100644 index e6d930a5..00000000 --- a/unilabos/registry/resources/laiyu/deck.yaml +++ /dev/null @@ -1,16 +0,0 @@ -TransformXYZDeck: - category: - - deck - class: - module: unilabos.devices.liquid_handling.laiyu.laiyu:TransformXYZDeck - type: pylabrobot - description: Laiyu deck - handles: [] - icon: '' - init_param_schema: {} - model: - mesh: liquid_transform_xyz - path: https://uni-lab.oss-cn-zhangjiakou.aliyuncs.com/uni-lab/devices/liquid_transform_xyz/macro_device.xacro - type: device - registry_type: resource - version: 1.0.0 diff --git a/unilabos/registry/resources/opentrons/deck.yaml b/unilabos/registry/resources/opentrons/deck.yaml deleted file mode 100644 index 8fa35ee5..00000000 --- a/unilabos/registry/resources/opentrons/deck.yaml +++ /dev/null @@ -1,32 +0,0 @@ -OTDeck: - category: - - deck - class: - module: pylabrobot.resources.opentrons.deck:OTDeck - type: pylabrobot - description: Opentrons deck - handles: [] - icon: '' - init_param_schema: {} - model: - mesh: opentrons_liquid_handler - path: https://uni-lab.oss-cn-zhangjiakou.aliyuncs.com/uni-lab/devices/opentrons_liquid_handler/macro_device.xacro - type: device - registry_type: resource - version: 1.0.0 -hplc_station: - category: - - deck - class: - module: unilabos.devices.resource_container.container:DeckContainer - type: python - description: hplc_station deck - handles: [] - icon: '' - init_param_schema: {} - model: - mesh: hplc_station - path: https://uni-lab.oss-cn-zhangjiakou.aliyuncs.com/uni-lab/devices/hplc_station/macro_device.xacro - type: device - registry_type: resource - version: 1.0.0 diff --git a/unilabos/registry/resources/opentrons/plate_adapters.yaml b/unilabos/registry/resources/opentrons/plate_adapters.yaml deleted file mode 100644 index d2942d46..00000000 --- a/unilabos/registry/resources/opentrons/plate_adapters.yaml +++ /dev/null @@ -1,12 +0,0 @@ -Opentrons_96_adapter_Vb: - category: - - plate_adapters - class: - module: pylabrobot.resources.opentrons.plate_adapters:Opentrons_96_adapter_Vb - type: pylabrobot - description: Opentrons 96 adapter Vb - handles: [] - icon: '' - init_param_schema: {} - registry_type: resource - version: 1.0.0 diff --git a/unilabos/registry/resources/opentrons/plates.yaml b/unilabos/registry/resources/opentrons/plates.yaml deleted file mode 100644 index 02267ae0..00000000 --- a/unilabos/registry/resources/opentrons/plates.yaml +++ /dev/null @@ -1,211 +0,0 @@ -appliedbiosystemsmicroamp_384_wellplate_40ul: - category: - - plates - class: - module: pylabrobot.resources.opentrons.plates:appliedbiosystemsmicroamp_384_wellplate_40ul - type: pylabrobot - description: Applied Biosystems microamp 384 wellplate 40ul - handles: [] - icon: '' - init_param_schema: {} - registry_type: resource - version: 1.0.0 -biorad_384_wellplate_50ul: - category: - - plates - class: - module: pylabrobot.resources.opentrons.plates:biorad_384_wellplate_50ul - type: pylabrobot - description: BioRad 384 wellplate 50ul - handles: [] - icon: '' - init_param_schema: {} - registry_type: resource - version: 1.0.0 -biorad_96_wellplate_200ul_pcr: - category: - - plates - class: - module: pylabrobot.resources.opentrons.plates:biorad_96_wellplate_200ul_pcr - type: pylabrobot - description: BioRad 96 wellplate 200ul pcr - handles: [] - icon: '' - init_param_schema: {} - registry_type: resource - version: 1.0.0 -corning_12_wellplate_6point9ml_flat: - category: - - plates - class: - module: pylabrobot.resources.opentrons.plates:corning_12_wellplate_6point9ml_flat - type: pylabrobot - description: Corning 12 wellplate 6.9ml flat - handles: [] - icon: '' - init_param_schema: {} - registry_type: resource - version: 1.0.0 -corning_24_wellplate_3point4ml_flat: - category: - - plates - class: - module: pylabrobot.resources.opentrons.plates:corning_24_wellplate_3point4ml_flat - type: pylabrobot - description: Corning 24 wellplate 3.4ml flat - handles: [] - icon: '' - init_param_schema: {} - registry_type: resource - version: 1.0.0 -corning_384_wellplate_112ul_flat: - category: - - plates - class: - module: pylabrobot.resources.opentrons.plates:corning_384_wellplate_112ul_flat - type: pylabrobot - description: Corning 384 wellplate 112ul flat - handles: [] - icon: '' - init_param_schema: {} - registry_type: resource - version: 1.0.0 -corning_48_wellplate_1point6ml_flat: - category: - - plates - class: - module: pylabrobot.resources.opentrons.plates:corning_48_wellplate_1point6ml_flat - type: pylabrobot - description: Corning 48 wellplate 1.6ml flat - handles: [] - icon: '' - init_param_schema: {} - registry_type: resource - version: 1.0.0 -corning_6_wellplate_16point8ml_flat: - category: - - plates - class: - module: pylabrobot.resources.opentrons.plates:corning_6_wellplate_16point8ml_flat - type: pylabrobot - description: Corning 6 wellplate 16.8ml flat - handles: [] - icon: '' - init_param_schema: {} - registry_type: resource - version: 1.0.0 -corning_96_wellplate_360ul_flat: - category: - - plates - class: - module: pylabrobot.resources.opentrons.plates:corning_96_wellplate_360ul_flat - type: pylabrobot - description: Corning 96 wellplate 360ul flat - handles: [] - icon: '' - init_param_schema: {} - registry_type: resource - version: 1.0.0 -nest_96_wellplate_100ul_pcr_full_skirt: - category: - - plates - class: - module: pylabrobot.resources.opentrons.plates:nest_96_wellplate_100ul_pcr_full_skirt - type: pylabrobot - description: Nest 96 wellplate 100ul pcr full skirt - handles: [] - icon: '' - init_param_schema: {} - model: - children_mesh: generic_labware_tube_10_75/meshes/0_base.stl - children_mesh_path: https://uni-lab.oss-cn-zhangjiakou.aliyuncs.com/uni-lab/resources/generic_labware_tube_10_75/modal.xacro - children_mesh_tf: - - 0.0018 - - 0.0018 - - 0 - - -1.5708 - - 0 - - 0 - mesh: tecan_nested_tip_rack/meshes/plate.stl - mesh_tf: - - 0.064 - - 0.043 - - 0 - - -1.5708 - - 0 - - 1.5708 - path: https://uni-lab.oss-cn-zhangjiakou.aliyuncs.com/uni-lab/resources/tecan_nested_tip_rack/modal.xacro - type: resource - registry_type: resource - version: 1.0.0 -nest_96_wellplate_200ul_flat: - category: - - plates - class: - module: pylabrobot.resources.opentrons.plates:nest_96_wellplate_200ul_flat - type: pylabrobot - description: Nest 96 wellplate 200ul flat - handles: [] - icon: '' - init_param_schema: {} - registry_type: resource - version: 1.0.0 -nest_96_wellplate_2ml_deep: - category: - - plates - class: - module: pylabrobot.resources.opentrons.plates:nest_96_wellplate_2ml_deep - type: pylabrobot - description: Nest 96 wellplate 2ml deep - handles: [] - icon: '' - init_param_schema: {} - model: - mesh: tecan_nested_tip_rack/meshes/plate.stl - mesh_tf: - - 0.064 - - 0.043 - - 0 - - -1.5708 - - 0 - - 1.5708 - path: https://uni-lab.oss-cn-zhangjiakou.aliyuncs.com/uni-lab/resources/tecan_nested_tip_rack/modal.xacro - type: resource - registry_type: resource - version: 1.0.0 -thermoscientificnunc_96_wellplate_1300ul: - category: - - plates - class: - module: pylabrobot.resources.opentrons.plates:thermoscientificnunc_96_wellplate_1300ul - type: pylabrobot - description: Thermoscientific Nunc 96 wellplate 1300ul - handles: [] - icon: '' - init_param_schema: {} - registry_type: resource - version: 1.0.0 -thermoscientificnunc_96_wellplate_2000ul: - category: - - plates - class: - module: pylabrobot.resources.opentrons.plates:thermoscientificnunc_96_wellplate_2000ul - type: pylabrobot - description: Thermoscientific Nunc 96 wellplate 2000ul - handles: [] - icon: '' - init_param_schema: {} - registry_type: resource - version: 1.0.0 -usascientific_96_wellplate_2point4ml_deep: - category: - - plates - class: - module: pylabrobot.resources.opentrons.plates:usascientific_96_wellplate_2point4ml_deep - type: pylabrobot - description: USAScientific 96 wellplate 2.4ml deep - handles: [] - icon: '' - init_param_schema: {} - registry_type: resource - version: 1.0.0 diff --git a/unilabos/registry/resources/opentrons/reservoirs.yaml b/unilabos/registry/resources/opentrons/reservoirs.yaml deleted file mode 100644 index b2f7857b..00000000 --- a/unilabos/registry/resources/opentrons/reservoirs.yaml +++ /dev/null @@ -1,72 +0,0 @@ -agilent_1_reservoir_290ml: - category: - - reservoirs - class: - module: pylabrobot.resources.opentrons.reservoirs:agilent_1_reservoir_290ml - type: pylabrobot - description: Agilent 1 reservoir 290ml - handles: [] - icon: '' - init_param_schema: {} - registry_type: resource - version: 1.0.0 -axygen_1_reservoir_90ml: - category: - - reservoirs - class: - module: pylabrobot.resources.opentrons.reservoirs:axygen_1_reservoir_90ml - type: pylabrobot - description: Axygen 1 reservoir 90ml - handles: [] - icon: '' - init_param_schema: {} - registry_type: resource - version: 1.0.0 -nest_12_reservoir_15ml: - category: - - reservoirs - class: - module: pylabrobot.resources.opentrons.reservoirs:nest_12_reservoir_15ml - type: pylabrobot - description: Nest 12 reservoir 15ml - handles: [] - icon: '' - init_param_schema: {} - registry_type: resource - version: 1.0.0 -nest_1_reservoir_195ml: - category: - - reservoirs - class: - module: pylabrobot.resources.opentrons.reservoirs:nest_1_reservoir_195ml - type: pylabrobot - description: Nest 1 reservoir 195ml - handles: [] - icon: '' - init_param_schema: {} - registry_type: resource - version: 1.0.0 -nest_1_reservoir_290ml: - category: - - reservoirs - class: - module: pylabrobot.resources.opentrons.reservoirs:nest_1_reservoir_290ml - type: pylabrobot - description: Nest 1 reservoir 290ml - handles: [] - icon: '' - init_param_schema: {} - registry_type: resource - version: 1.0.0 -usascientific_12_reservoir_22ml: - category: - - reservoirs - class: - module: pylabrobot.resources.opentrons.reservoirs:usascientific_12_reservoir_22ml - type: pylabrobot - description: USAScientific 12 reservoir 22ml - handles: [] - icon: '' - init_param_schema: {} - registry_type: resource - version: 1.0.0 diff --git a/unilabos/registry/resources/opentrons/tip_racks.yaml b/unilabos/registry/resources/opentrons/tip_racks.yaml deleted file mode 100644 index cbc7d6f1..00000000 --- a/unilabos/registry/resources/opentrons/tip_racks.yaml +++ /dev/null @@ -1,161 +0,0 @@ -eppendorf_96_tiprack_1000ul_eptips: - category: - - tip_racks - class: - module: pylabrobot.resources.opentrons.tip_racks:eppendorf_96_tiprack_1000ul_eptips - type: pylabrobot - description: Eppendorf 96 tiprack 1000ul eptips - handles: [] - icon: '' - init_param_schema: {} - registry_type: resource - version: 1.0.0 -eppendorf_96_tiprack_10ul_eptips: - category: - - tip_racks - class: - module: pylabrobot.resources.opentrons.tip_racks:eppendorf_96_tiprack_10ul_eptips - type: pylabrobot - description: Eppendorf 96 tiprack 10ul eptips - handles: [] - icon: '' - init_param_schema: {} - registry_type: resource - version: 1.0.0 -geb_96_tiprack_1000ul: - category: - - tip_racks - class: - module: pylabrobot.resources.opentrons.tip_racks:geb_96_tiprack_1000ul - type: pylabrobot - description: Geb 96 tiprack 1000ul - handles: [] - icon: '' - init_param_schema: {} - registry_type: resource - version: 1.0.0 -geb_96_tiprack_10ul: - category: - - tip_racks - class: - module: pylabrobot.resources.opentrons.tip_racks:geb_96_tiprack_10ul - type: pylabrobot - description: Geb 96 tiprack 10ul - handles: [] - icon: '' - init_param_schema: {} - registry_type: resource - version: 1.0.0 -opentrons_96_filtertiprack_1000ul: - category: - - tip_racks - class: - module: pylabrobot.resources.opentrons.tip_racks:opentrons_96_filtertiprack_1000ul - type: pylabrobot - description: Opentrons 96 filtertiprack 1000ul - handles: [] - icon: '' - init_param_schema: {} - model: - children_mesh: generic_labware_tube_10_75/meshes/0_base.stl - children_mesh_tf: - - 0.0018 - - 0.0018 - - 0 - - -1.5708 - - 0 - - 0 - mesh: tecan_nested_tip_rack/meshes/plate.stl - mesh_tf: - - 0.064 - - 0.043 - - 0 - - -1.5708 - - 0 - - 1.5708 - path: https://uni-lab.oss-cn-zhangjiakou.aliyuncs.com/uni-lab/resources/tecan_nested_tip_rack/modal.xacro - type: resource - registry_type: resource - version: 1.0.0 -opentrons_96_filtertiprack_10ul: - category: - - tip_racks - class: - module: pylabrobot.resources.opentrons.tip_racks:opentrons_96_filtertiprack_10ul - type: pylabrobot - description: Opentrons 96 filtertiprack 10ul - handles: [] - icon: '' - init_param_schema: {} - registry_type: resource - version: 1.0.0 -opentrons_96_filtertiprack_200ul: - category: - - tip_racks - class: - module: pylabrobot.resources.opentrons.tip_racks:opentrons_96_filtertiprack_200ul - type: pylabrobot - description: Opentrons 96 filtertiprack 200ul - handles: [] - icon: '' - init_param_schema: {} - registry_type: resource - version: 1.0.0 -opentrons_96_filtertiprack_20ul: - category: - - tip_racks - class: - module: pylabrobot.resources.opentrons.tip_racks:opentrons_96_filtertiprack_20ul - type: pylabrobot - description: Opentrons 96 filtertiprack 20ul - handles: [] - icon: '' - init_param_schema: {} - registry_type: resource - version: 1.0.0 -opentrons_96_tiprack_1000ul: - category: - - tip_racks - class: - module: pylabrobot.resources.opentrons.tip_racks:opentrons_96_tiprack_1000ul - type: pylabrobot - description: Opentrons 96 tiprack 1000ul - handles: [] - icon: '' - init_param_schema: {} - registry_type: resource - version: 1.0.0 -opentrons_96_tiprack_10ul: - category: - - tip_racks - class: - module: pylabrobot.resources.opentrons.tip_racks:opentrons_96_tiprack_10ul - type: pylabrobot - description: Opentrons 96 tiprack 10ul - handles: [] - icon: '' - init_param_schema: {} - registry_type: resource - version: 1.0.0 -opentrons_96_tiprack_20ul: - category: - - tip_racks - class: - module: pylabrobot.resources.opentrons.tip_racks:opentrons_96_tiprack_20ul - type: pylabrobot - description: Opentrons 96 tiprack 20ul - handles: [] - icon: '' - init_param_schema: {} - registry_type: resource - version: 1.0.0 -opentrons_96_tiprack_300ul: - category: - - tip_racks - class: - module: pylabrobot.resources.opentrons.tip_racks:opentrons_96_tiprack_300ul - type: pylabrobot - handles: [] - icon: '' - init_param_schema: {} - version: 1.0.0 diff --git a/unilabos/registry/resources/opentrons/tube_racks.yaml b/unilabos/registry/resources/opentrons/tube_racks.yaml deleted file mode 100644 index 32bf3e36..00000000 --- a/unilabos/registry/resources/opentrons/tube_racks.yaml +++ /dev/null @@ -1,240 +0,0 @@ -opentrons_10_tuberack_falcon_4x50ml_6x15ml_conical: - category: - - tube_racks - class: - module: pylabrobot.resources.opentrons.tube_racks:opentrons_10_tuberack_falcon_4x50ml_6x15ml_conical - type: pylabrobot - description: Opentrons 10 tuberack falcon 4x50ml 6x15ml conical - handles: [] - icon: '' - init_param_schema: {} - registry_type: resource - version: 1.0.0 -opentrons_10_tuberack_falcon_4x50ml_6x15ml_conical_acrylic: - category: - - tube_racks - class: - module: pylabrobot.resources.opentrons.tube_racks:opentrons_10_tuberack_falcon_4x50ml_6x15ml_conical_acrylic - type: pylabrobot - description: Opentrons 10 tuberack falcon 4x50ml 6x15ml conical acrylic - handles: [] - icon: '' - init_param_schema: {} - registry_type: resource - version: 1.0.0 -opentrons_10_tuberack_nest_4x50ml_6x15ml_conical: - category: - - tube_racks - class: - module: pylabrobot.resources.opentrons.tube_racks:opentrons_10_tuberack_nest_4x50ml_6x15ml_conical - type: pylabrobot - description: Opentrons 10 tuberack nest 4x50ml 6x15ml conical - handles: [] - icon: '' - init_param_schema: {} - registry_type: resource - version: 1.0.0 -opentrons_15_tuberack_falcon_15ml_conical: - category: - - tube_racks - class: - module: pylabrobot.resources.opentrons.tube_racks:opentrons_15_tuberack_falcon_15ml_conical - type: pylabrobot - description: Opentrons 15 tuberack falcon 15ml conical - handles: [] - icon: '' - init_param_schema: {} - registry_type: resource - version: 1.0.0 -opentrons_15_tuberack_nest_15ml_conical: - category: - - tube_racks - class: - module: pylabrobot.resources.opentrons.tube_racks:opentrons_15_tuberack_nest_15ml_conical - type: pylabrobot - description: Opentrons 15 tuberack nest 15ml conical - handles: [] - icon: '' - init_param_schema: {} - registry_type: resource - version: 1.0.0 -opentrons_24_aluminumblock_generic_2ml_screwcap: - category: - - tube_racks - class: - module: pylabrobot.resources.opentrons.tube_racks:opentrons_24_aluminumblock_generic_2ml_screwcap - type: pylabrobot - description: Opentrons 24 aluminumblock generic 2ml screwcap - handles: [] - icon: '' - init_param_schema: {} - registry_type: resource - version: 1.0.0 -opentrons_24_aluminumblock_nest_1point5ml_snapcap: - category: - - tube_racks - class: - module: pylabrobot.resources.opentrons.tube_racks:opentrons_24_aluminumblock_nest_1point5ml_snapcap - type: pylabrobot - description: Opentrons 24 aluminumblock nest 1.5ml snapcap - handles: [] - icon: '' - init_param_schema: {} - registry_type: resource - version: 1.0.0 -opentrons_24_tuberack_eppendorf_1point5ml_safelock_snapcap: - category: - - tube_racks - class: - module: pylabrobot.resources.opentrons.tube_racks:opentrons_24_tuberack_eppendorf_1point5ml_safelock_snapcap - type: pylabrobot - description: Opentrons 24 tuberack eppendorf 1.5ml safelock snapcap - handles: [] - icon: '' - init_param_schema: {} - registry_type: resource - version: 1.0.0 -opentrons_24_tuberack_eppendorf_2ml_safelock_snapcap: - category: - - tube_racks - class: - module: pylabrobot.resources.opentrons.tube_racks:opentrons_24_tuberack_eppendorf_2ml_safelock_snapcap - type: pylabrobot - description: Opentrons 24 tuberack eppendorf 2ml safelock snapcap - handles: [] - icon: '' - init_param_schema: {} - registry_type: resource - version: 1.0.0 -opentrons_24_tuberack_eppendorf_2ml_safelock_snapcap_acrylic: - category: - - tube_racks - class: - module: pylabrobot.resources.opentrons.tube_racks:opentrons_24_tuberack_eppendorf_2ml_safelock_snapcap_acrylic - type: pylabrobot - description: Opentrons 24 tuberack eppendorf 2ml safelock snapcap acrylic - handles: [] - icon: '' - init_param_schema: {} - registry_type: resource - version: 1.0.0 -opentrons_24_tuberack_generic_0point75ml_snapcap_acrylic: - category: - - tube_racks - class: - module: pylabrobot.resources.opentrons.tube_racks:opentrons_24_tuberack_generic_0point75ml_snapcap_acrylic - type: pylabrobot - description: Opentrons 24 tuberack generic 0.75ml snapcap acrylic - handles: [] - icon: '' - init_param_schema: {} - registry_type: resource - version: 1.0.0 -opentrons_24_tuberack_generic_2ml_screwcap: - category: - - tube_racks - class: - module: pylabrobot.resources.opentrons.tube_racks:opentrons_24_tuberack_generic_2ml_screwcap - type: pylabrobot - description: Opentrons 24 tuberack generic 2ml screwcap - handles: [] - icon: '' - init_param_schema: {} - registry_type: resource - version: 1.0.0 -opentrons_24_tuberack_nest_0point5ml_screwcap: - category: - - tube_racks - class: - module: pylabrobot.resources.opentrons.tube_racks:opentrons_24_tuberack_nest_0point5ml_screwcap - type: pylabrobot - description: Opentrons 24 tuberack nest 0.5ml screwcap - handles: [] - icon: '' - init_param_schema: {} - registry_type: resource - version: 1.0.0 -opentrons_24_tuberack_nest_1point5ml_screwcap: - category: - - tube_racks - class: - module: pylabrobot.resources.opentrons.tube_racks:opentrons_24_tuberack_nest_1point5ml_screwcap - type: pylabrobot - description: Opentrons 24 tuberack nest 1.5ml screwcap - handles: [] - icon: '' - init_param_schema: {} - registry_type: resource - version: 1.0.0 -opentrons_24_tuberack_nest_1point5ml_snapcap: - category: - - tube_racks - class: - module: pylabrobot.resources.opentrons.tube_racks:opentrons_24_tuberack_nest_1point5ml_snapcap - type: pylabrobot - description: Opentrons 24 tuberack nest 1.5ml snapcap - handles: [] - icon: '' - init_param_schema: {} - registry_type: resource - version: 1.0.0 -opentrons_24_tuberack_nest_2ml_screwcap: - category: - - tube_racks - class: - module: pylabrobot.resources.opentrons.tube_racks:opentrons_24_tuberack_nest_2ml_screwcap - type: pylabrobot - description: Opentrons 24 tuberack nest 2ml screwcap - handles: [] - icon: '' - init_param_schema: {} - registry_type: resource - version: 1.0.0 -opentrons_24_tuberack_nest_2ml_snapcap: - category: - - tube_racks - class: - module: pylabrobot.resources.opentrons.tube_racks:opentrons_24_tuberack_nest_2ml_snapcap - type: pylabrobot - description: Opentrons 24 tuberack nest 2ml snapcap - handles: [] - icon: '' - init_param_schema: {} - registry_type: resource - version: 1.0.0 -opentrons_6_tuberack_falcon_50ml_conical: - category: - - tube_racks - class: - module: pylabrobot.resources.opentrons.tube_racks:opentrons_6_tuberack_falcon_50ml_conical - type: pylabrobot - description: Opentrons 6 tuberack falcon 50ml conical - handles: [] - icon: '' - init_param_schema: {} - registry_type: resource - version: 1.0.0 -opentrons_6_tuberack_nest_50ml_conical: - category: - - tube_racks - class: - module: pylabrobot.resources.opentrons.tube_racks:opentrons_6_tuberack_nest_50ml_conical - type: pylabrobot - description: Opentrons 6 tuberack nest 50ml conical - handles: [] - icon: '' - init_param_schema: {} - registry_type: resource - version: 1.0.0 -opentrons_96_well_aluminum_block: - category: - - tube_racks - class: - module: pylabrobot.resources.opentrons.tube_racks:opentrons_96_well_aluminum_block - type: pylabrobot - description: Opentrons 96 well aluminum block - handles: [] - icon: '' - init_param_schema: {} - registry_type: resource - version: 1.0.0 diff --git a/unilabos/registry/resources/organic/container.yaml b/unilabos/registry/resources/organic/container.yaml deleted file mode 100644 index a8fb9b6c..00000000 --- a/unilabos/registry/resources/organic/container.yaml +++ /dev/null @@ -1,33 +0,0 @@ -container: - category: - - container - class: - module: unilabos.resources.container:get_regular_container - type: pylabrobot - description: regular organic container - handles: - - data_key: fluid_in - data_source: handle - data_type: fluid - handler_key: top - io_type: target - label: top - side: NORTH - - data_key: fluid_out - data_source: handle - data_type: fluid - handler_key: bottom - io_type: source - label: bottom - side: SOUTH - - data_key: mechanical_port - data_source: handle - data_type: mechanical - handler_key: bind - io_type: target - label: bind - side: WEST - icon: Flask.webp - init_param_schema: {} - registry_type: resource - version: 1.0.0 diff --git a/unilabos/registry/resources/organic/workstation.yaml b/unilabos/registry/resources/organic/workstation.yaml deleted file mode 100644 index 5250dfc9..00000000 --- a/unilabos/registry/resources/organic/workstation.yaml +++ /dev/null @@ -1,12 +0,0 @@ -#get_workstation_plate_resource: -# category: -# - workstation -# class: -# module: unilabos.devices.workstation.workstation_base:get_workstation_plate_resource -# type: pylabrobot -# description: workstation example resource -# handles: [] -# icon: '' -# init_param_schema: {} -# registry_type: resource -# version: 1.0.0 diff --git a/unilabos/registry/resources/post_process/bottle_carriers.yaml b/unilabos/registry/resources/post_process/bottle_carriers.yaml deleted file mode 100644 index ea30cb7d..00000000 --- a/unilabos/registry/resources/post_process/bottle_carriers.yaml +++ /dev/null @@ -1,24 +0,0 @@ -POST_PROCESS_Raw_1BottleCarrier: - category: - - bottle_carriers - class: - module: unilabos.devices.workstation.post_process.bottle_carriers:POST_PROCESS_Raw_1BottleCarrier - type: pylabrobot - description: POST_PROCESS_Raw_1BottleCarrier - handles: [] - icon: '' - init_param_schema: {} - registry_type: resource - version: 1.0.0 -POST_PROCESS_Reaction_1BottleCarrier: - category: - - bottle_carriers - class: - module: unilabos.devices.workstation.post_process.bottle_carriers:POST_PROCESS_Reaction_1BottleCarrier - type: pylabrobot - description: POST_PROCESS_Reaction_1BottleCarrier - handles: [] - icon: '' - init_param_schema: {} - registry_type: resource - version: 1.0.0 diff --git a/unilabos/registry/resources/post_process/bottles.yaml b/unilabos/registry/resources/post_process/bottles.yaml deleted file mode 100644 index 25fc3977..00000000 --- a/unilabos/registry/resources/post_process/bottles.yaml +++ /dev/null @@ -1,10 +0,0 @@ -POST_PROCESS_PolymerStation_Reagent_Bottle: - category: - - bottles - class: - module: unilabos.devices.workstation.post_process.bottles:POST_PROCESS_PolymerStation_Reagent_Bottle - type: pylabrobot - handles: [] - icon: '' - init_param_schema: {} - version: 1.0.0 diff --git a/unilabos/registry/resources/post_process/deck.yaml b/unilabos/registry/resources/post_process/deck.yaml deleted file mode 100644 index 621cafc6..00000000 --- a/unilabos/registry/resources/post_process/deck.yaml +++ /dev/null @@ -1,13 +0,0 @@ -post_process_deck: - category: - - post_process_deck - - deck - class: - module: unilabos.devices.workstation.post_process.decks:post_process_deck - type: pylabrobot - description: post_process_deck - handles: [] - icon: '' - init_param_schema: {} - registry_type: resource - version: 1.0.0 diff --git a/unilabos/registry/resources/prcxi/plate_adapters.yaml b/unilabos/registry/resources/prcxi/plate_adapters.yaml deleted file mode 100644 index a769fee3..00000000 --- a/unilabos/registry/resources/prcxi/plate_adapters.yaml +++ /dev/null @@ -1,117 +0,0 @@ -PRCXI_30mm_Adapter: - category: - - prcxi - - plate_adapters - class: - module: unilabos.devices.liquid_handling.prcxi.prcxi_labware:PRCXI_30mm_Adapter - type: pylabrobot - description: '30mm适配器 (Code: ZX-58-30)' - handles: [] - icon: '' - init_param_schema: {} - registry_type: resource - version: 1.0.0 -PRCXI_Adapter: - category: - - prcxi - - plate_adapters - class: - module: unilabos.devices.liquid_handling.prcxi.prcxi_labware:PRCXI_Adapter - type: pylabrobot - description: '适配器 (Code: Fhh478)' - handles: [] - icon: '' - init_param_schema: {} - registry_type: resource - version: 1.0.0 -PRCXI_Deep10_Adapter: - category: - - prcxi - - plate_adapters - class: - module: unilabos.devices.liquid_handling.prcxi.prcxi_labware:PRCXI_Deep10_Adapter - type: pylabrobot - description: '10ul专用深孔板适配器 (Code: ZX-002-10)' - handles: [] - icon: '' - init_param_schema: {} - registry_type: resource - version: 1.0.0 -PRCXI_Deep300_Adapter: - category: - - prcxi - - plate_adapters - class: - module: unilabos.devices.liquid_handling.prcxi.prcxi_labware:PRCXI_Deep300_Adapter - type: pylabrobot - description: '300ul深孔板适配器 (Code: ZX-002-300)' - handles: [] - icon: '' - init_param_schema: {} - registry_type: resource - version: 1.0.0 -PRCXI_PCR_Adapter: - category: - - prcxi - - plate_adapters - class: - module: unilabos.devices.liquid_handling.prcxi.prcxi_labware:PRCXI_PCR_Adapter - type: pylabrobot - description: '全裙边 PCR适配器 (Code: ZX-58-0001)' - handles: [] - icon: '' - init_param_schema: {} - registry_type: resource - version: 1.0.0 -PRCXI_Reservoir_Adapter: - category: - - prcxi - - plate_adapters - class: - module: unilabos.devices.liquid_handling.prcxi.prcxi_labware:PRCXI_Reservoir_Adapter - type: pylabrobot - description: '储液槽 适配器 (Code: ZX-ADP-001)' - handles: [] - icon: '' - init_param_schema: {} - registry_type: resource - version: 1.0.0 -PRCXI_Tip10_Adapter: - category: - - prcxi - - plate_adapters - class: - module: unilabos.devices.liquid_handling.prcxi.prcxi_labware:PRCXI_Tip10_Adapter - type: pylabrobot - description: '吸头10ul 适配器 (Code: ZX-58-10)' - handles: [] - icon: '' - init_param_schema: {} - registry_type: resource - version: 1.0.0 -PRCXI_Tip1250_Adapter: - category: - - prcxi - - plate_adapters - class: - module: unilabos.devices.liquid_handling.prcxi.prcxi_labware:PRCXI_Tip1250_Adapter - type: pylabrobot - description: 'Tip头适配器 1250uL (Code: ZX-58-1250)' - handles: [] - icon: '' - init_param_schema: {} - registry_type: resource - version: 1.0.0 -PRCXI_Tip300_Adapter: - category: - - prcxi - - plate_adapters - class: - module: unilabos.devices.liquid_handling.prcxi.prcxi_labware:PRCXI_Tip300_Adapter - type: pylabrobot - description: 'ZHONGXI 适配器 300uL (Code: ZX-58-300)' - handles: [] - icon: '' - init_param_schema: {} - registry_type: resource - version: 1.0.0 diff --git a/unilabos/registry/resources/prcxi/plates.yaml b/unilabos/registry/resources/prcxi/plates.yaml deleted file mode 100644 index 81e2ae96..00000000 --- a/unilabos/registry/resources/prcxi/plates.yaml +++ /dev/null @@ -1,143 +0,0 @@ -PRCXI_48_DeepWell: - category: - - prcxi - - plates - class: - module: unilabos.devices.liquid_handling.prcxi.prcxi_labware:PRCXI_48_DeepWell - type: pylabrobot - description: '48孔深孔板 (Code: 22)' - handles: [] - icon: '' - init_param_schema: {} - registry_type: resource - version: 1.0.0 -PRCXI_96_DeepWell: - category: - - prcxi - - plates - class: - module: unilabos.devices.liquid_handling.prcxi.prcxi_labware:PRCXI_96_DeepWell - type: pylabrobot - description: '96深孔板 (Code: q2)' - handles: [] - icon: '' - init_param_schema: {} - registry_type: resource - version: 1.0.0 -PRCXI_AGenBio_4_troughplate: - category: - - prcxi - - plates - class: - module: unilabos.devices.liquid_handling.prcxi.prcxi_labware:PRCXI_AGenBio_4_troughplate - type: pylabrobot - description: '4道储液槽 (Code: sdfrth654)' - handles: [] - icon: '' - init_param_schema: {} - registry_type: resource - version: 1.0.0 -PRCXI_BioER_96_wellplate: - category: - - prcxi - - plates - class: - module: unilabos.devices.liquid_handling.prcxi.prcxi_labware:PRCXI_BioER_96_wellplate - type: pylabrobot - description: '2.2ml 深孔板 (Code: ZX-019-2.2)' - handles: [] - icon: '' - init_param_schema: {} - registry_type: resource - version: 1.0.0 -PRCXI_BioRad_384_wellplate: - category: - - prcxi - - plates - class: - module: unilabos.devices.liquid_handling.prcxi.prcxi_labware:PRCXI_BioRad_384_wellplate - type: pylabrobot - description: '384板 (Code: q3)' - handles: [] - icon: '' - init_param_schema: {} - registry_type: resource - version: 1.0.0 -PRCXI_CellTreat_96_wellplate: - category: - - prcxi - - plates - class: - module: unilabos.devices.liquid_handling.prcxi.prcxi_labware:PRCXI_CellTreat_96_wellplate - type: pylabrobot - description: '细菌培养皿 (Code: ZX-78-096)' - handles: [] - icon: '' - init_param_schema: {} - registry_type: resource - version: 1.0.0 -PRCXI_PCR_Plate_200uL_nonskirted: - category: - - prcxi - - plates - class: - module: unilabos.devices.liquid_handling.prcxi.prcxi_labware:PRCXI_PCR_Plate_200uL_nonskirted - type: pylabrobot - description: '0.2ml PCR 板 (Code: ZX-023-0.2)' - handles: [] - icon: '' - init_param_schema: {} - registry_type: resource - version: 1.0.0 -PRCXI_PCR_Plate_200uL_semiskirted: - category: - - prcxi - - plates - class: - module: unilabos.devices.liquid_handling.prcxi.prcxi_labware:PRCXI_PCR_Plate_200uL_semiskirted - type: pylabrobot - description: '0.2ml PCR 板 (Code: ZX-023-0.2)' - handles: [] - icon: '' - init_param_schema: {} - registry_type: resource - version: 1.0.0 -PRCXI_PCR_Plate_200uL_skirted: - category: - - prcxi - - plates - class: - module: unilabos.devices.liquid_handling.prcxi.prcxi_labware:PRCXI_PCR_Plate_200uL_skirted - type: pylabrobot - description: '0.2ml PCR 板 (Code: ZX-023-0.2)' - handles: [] - icon: '' - init_param_schema: {} - registry_type: resource - version: 1.0.0 -PRCXI_nest_12_troughplate: - category: - - prcxi - - plates - class: - module: unilabos.devices.liquid_handling.prcxi.prcxi_labware:PRCXI_nest_12_troughplate - type: pylabrobot - description: '12道储液槽 (Code: 12道储液槽)' - handles: [] - icon: '' - init_param_schema: {} - registry_type: resource - version: 1.0.0 -PRCXI_nest_1_troughplate: - category: - - prcxi - - plates - class: - module: unilabos.devices.liquid_handling.prcxi.prcxi_labware:PRCXI_nest_1_troughplate - type: pylabrobot - description: '储液槽 (Code: ZX-58-10000)' - handles: [] - icon: '' - init_param_schema: {} - registry_type: resource - version: 1.0.0 diff --git a/unilabos/registry/resources/prcxi/tip_racks.yaml b/unilabos/registry/resources/prcxi/tip_racks.yaml deleted file mode 100644 index 56a16db8..00000000 --- a/unilabos/registry/resources/prcxi/tip_racks.yaml +++ /dev/null @@ -1,78 +0,0 @@ -PRCXI_1000uL_Tips: - category: - - prcxi - - tip_racks - class: - module: unilabos.devices.liquid_handling.prcxi.prcxi_labware:PRCXI_1000uL_Tips - type: pylabrobot - description: '1000μL Tip头 (Code: ZX-001-1000)' - handles: [] - icon: '' - init_param_schema: {} - registry_type: resource - version: 1.0.0 -PRCXI_10uL_Tips: - category: - - prcxi - - tip_racks - class: - module: unilabos.devices.liquid_handling.prcxi.prcxi_labware:PRCXI_10uL_Tips - type: pylabrobot - description: '10μL Tip头 (Code: ZX-001-10)' - handles: [] - icon: '' - init_param_schema: {} - registry_type: resource - version: 1.0.0 -PRCXI_10ul_eTips: - category: - - prcxi - - tip_racks - class: - module: unilabos.devices.liquid_handling.prcxi.prcxi_labware:PRCXI_10ul_eTips - type: pylabrobot - description: '10μL加长 Tip头 (Code: ZX-001-10+)' - handles: [] - icon: '' - init_param_schema: {} - registry_type: resource - version: 1.0.0 -PRCXI_1250uL_Tips: - category: - - prcxi - - tip_racks - class: - module: unilabos.devices.liquid_handling.prcxi.prcxi_labware:PRCXI_1250uL_Tips - type: pylabrobot - description: '1250μL Tip头 (Code: ZX-001-1250)' - handles: [] - icon: '' - init_param_schema: {} - registry_type: resource - version: 1.0.0 -PRCXI_200uL_Tips: - category: - - prcxi - - tip_racks - class: - module: unilabos.devices.liquid_handling.prcxi.prcxi_labware:PRCXI_200uL_Tips - type: pylabrobot - description: '200μL Tip头 (Code: ZX-001-200)' - handles: [] - icon: '' - init_param_schema: {} - registry_type: resource - version: 1.0.0 -PRCXI_300ul_Tips: - category: - - prcxi - - tip_racks - class: - module: unilabos.devices.liquid_handling.prcxi.prcxi_labware:PRCXI_300ul_Tips - type: pylabrobot - description: '300μL Tip头 (Code: ZX-001-300)' - handles: [] - icon: '' - init_param_schema: {} - registry_type: resource - version: 1.0.0 diff --git a/unilabos/registry/resources/prcxi/trash.yaml b/unilabos/registry/resources/prcxi/trash.yaml deleted file mode 100644 index f87a7624..00000000 --- a/unilabos/registry/resources/prcxi/trash.yaml +++ /dev/null @@ -1,13 +0,0 @@ -PRCXI_trash: - category: - - prcxi - - trash - class: - module: unilabos.devices.liquid_handling.prcxi.prcxi_labware:PRCXI_trash - type: pylabrobot - description: '废弃槽 (Code: q1)' - handles: [] - icon: '' - init_param_schema: {} - registry_type: resource - version: 1.0.0 diff --git a/unilabos/registry/resources/prcxi/tube_racks.yaml b/unilabos/registry/resources/prcxi/tube_racks.yaml deleted file mode 100644 index 0b1e07c6..00000000 --- a/unilabos/registry/resources/prcxi/tube_racks.yaml +++ /dev/null @@ -1,13 +0,0 @@ -PRCXI_EP_Adapter: - category: - - prcxi - - tube_racks - class: - module: unilabos.devices.liquid_handling.prcxi.prcxi_labware:PRCXI_EP_Adapter - type: pylabrobot - description: 'ep适配器 (Code: 1)' - handles: [] - icon: '' - init_param_schema: {} - registry_type: resource - version: 1.0.0 diff --git a/unilabos/resources/bioyond/__init__.py b/unilabos/resources/bioyond/__init__.py deleted file mode 100644 index e69de29b..00000000 diff --git a/unilabos/resources/bioyond/bottle_carriers.py b/unilabos/resources/bioyond/bottle_carriers.py deleted file mode 100644 index d79b8495..00000000 --- a/unilabos/resources/bioyond/bottle_carriers.py +++ /dev/null @@ -1,324 +0,0 @@ -from pylabrobot.resources import create_homogeneous_resources, Coordinate, ResourceHolder, create_ordered_items_2d - -from unilabos.resources.itemized_carrier import BottleCarrier -from unilabos.resources.bioyond.bottles import ( - BIOYOND_PolymerStation_Solid_Stock, - BIOYOND_PolymerStation_Solid_Vial, - BIOYOND_PolymerStation_Liquid_Vial, - BIOYOND_PolymerStation_Solution_Beaker, - BIOYOND_PolymerStation_Reagent_Bottle, - BIOYOND_PolymerStation_Flask, -) -# 命名约定:试剂瓶-Bottle,烧杯-Beaker,烧瓶-Flask,小瓶-Vial - - -# ============================================================================ -# 聚合站(PolymerStation)载体定义(统一入口) -# ============================================================================ - -def BIOYOND_PolymerStation_6StockCarrier(name: str) -> BottleCarrier: - """聚合站-6孔样品板 - 2x3布局 - - 参数: - - name: 载架名称前缀 - - 说明: - - 统一站点命名为 PolymerStation,使用 PolymerStation 的 Vial 资源类 - - A行(PLR y=0,对应 Bioyond 位置A01~A03)使用 Liquid_Vial(10% 分装小瓶) - - B行(PLR y=1,对应 Bioyond 位置B01~B03)使用 Solid_Vial(90% 分装小瓶) - """ - - # 载架尺寸 (mm) - carrier_size_x = 127.8 - carrier_size_y = 85.5 - carrier_size_z = 50.0 - - # 瓶位尺寸 - bottle_diameter = 20.0 - bottle_spacing_x = 42.0 # X方向间距 - bottle_spacing_y = 35.0 # Y方向间距 - - # 计算起始位置 (居中排列) - start_x = (carrier_size_x - (3 - 1) * bottle_spacing_x - bottle_diameter) / 2 - start_y = (carrier_size_y - (2 - 1) * bottle_spacing_y - bottle_diameter) / 2 - - sites = create_ordered_items_2d( - klass=ResourceHolder, - num_items_x=3, - num_items_y=2, - dx=start_x, - dy=start_y, - dz=5.0, - item_dx=bottle_spacing_x, - item_dy=bottle_spacing_y, - - size_x=bottle_diameter, - size_y=bottle_diameter, - size_z=carrier_size_z, - ) - for k, v in sites.items(): - v.name = f"{name}_{v.name}" - - carrier = BottleCarrier( - name=name, - size_x=carrier_size_x, - size_y=carrier_size_y, - size_z=carrier_size_z, - sites=sites, - model="BIOYOND_PolymerStation_6StockCarrier", - ) - carrier.num_items_x = 3 - carrier.num_items_y = 2 - carrier.num_items_z = 1 - - # 布局说明: - # - num_items_x=3, num_items_y=2 表示 3列×2行 - # - create_ordered_items_2d 按先y后x的顺序创建(列优先) - # - 索引顺序: 0=A1(x=0,y=0), 1=B1(x=0,y=1), 2=A2(x=1,y=0), 3=B2(x=1,y=1), 4=A3(x=2,y=0), 5=B3(x=2,y=1) - # - # Bioyond坐标映射: PLR(x,y) → Bioyond(y+1,x+1) - # - A行(PLR y=0) → Bioyond x=1 → 10%分装小瓶 - # - B行(PLR y=1) → Bioyond x=2 → 90%分装小瓶 - - ordering = ["A1", "B1", "A2", "B2", "A3", "B3"] - for col in range(3): # 3列 - for row in range(2): # 2行 - idx = col * 2 + row # 计算索引: 列优先顺序 - if row == 0: # A行 (PLR y=0 → Bioyond x=1) - carrier[idx] = BIOYOND_PolymerStation_Liquid_Vial(f"{ordering[idx]}") - else: # B行 (PLR y=1 → Bioyond x=2) - carrier[idx] = BIOYOND_PolymerStation_Solid_Vial(f"{ordering[idx]}") - return carrier - - -def BIOYOND_PolymerStation_8StockCarrier(name: str) -> BottleCarrier: - """聚合站-8孔样品板 - 2x4布局 - - 参数: - - name: 载架名称前缀 - - 说明: - - 统一站点命名为 PolymerStation,使用 PolymerStation 的 Solid_Stock 资源类 - """ - - # 载架尺寸 (mm) - carrier_size_x = 128.0 - carrier_size_y = 85.5 - carrier_size_z = 50.0 - - # 瓶位尺寸 - bottle_diameter = 20.0 - bottle_spacing_x = 30.0 # X方向间距 - bottle_spacing_y = 35.0 # Y方向间距 - - # 计算起始位置 (居中排列) - start_x = (carrier_size_x - (4 - 1) * bottle_spacing_x - bottle_diameter) / 2 - start_y = (carrier_size_y - (2 - 1) * bottle_spacing_y - bottle_diameter) / 2 - - sites = create_ordered_items_2d( - klass=ResourceHolder, - num_items_x=4, - num_items_y=2, - dx=start_x, - dy=start_y, - dz=5.0, - item_dx=bottle_spacing_x, - item_dy=bottle_spacing_y, - - size_x=bottle_diameter, - size_y=bottle_diameter, - size_z=carrier_size_z, - ) - for k, v in sites.items(): - v.name = f"{name}_{v.name}" - - carrier = BottleCarrier( - name=name, - size_x=carrier_size_x, - size_y=carrier_size_y, - size_z=carrier_size_z, - sites=sites, - model="BIOYOND_PolymerStation_8StockCarrier", - ) - carrier.num_items_x = 4 - carrier.num_items_y = 2 - carrier.num_items_z = 1 - ordering = ["A1", "B1", "A2", "B2", "A3", "B3", "A4", "B4"] - for i in range(8): - carrier[i] = BIOYOND_PolymerStation_Solid_Stock(f"{name}_vial_{ordering[i]}") - return carrier - - -def BIOYOND_PolymerStation_1BottleCarrier(name: str) -> BottleCarrier: - """聚合站-单试剂瓶载架 - - 参数: - - name: 载架名称前缀 - """ - - # 载架尺寸 (mm) - carrier_size_x = 127.8 - carrier_size_y = 85.5 - carrier_size_z = 20.0 - - # 烧杯/试剂瓶占位尺寸(使用圆形占位) - beaker_diameter = 60.0 - - # 计算中央位置 - center_x = (carrier_size_x - beaker_diameter) / 2 - center_y = (carrier_size_y - beaker_diameter) / 2 - center_z = 5.0 - - carrier = BottleCarrier( - name=name, - size_x=carrier_size_x, - size_y=carrier_size_y, - size_z=carrier_size_z, - sites=create_homogeneous_resources( - klass=ResourceHolder, - locations=[Coordinate(center_x, center_y, center_z)], - resource_size_x=beaker_diameter, - resource_size_y=beaker_diameter, - name_prefix=name, - ), - model="BIOYOND_PolymerStation_1BottleCarrier", - ) - carrier.num_items_x = 1 - carrier.num_items_y = 1 - carrier.num_items_z = 1 - # 统一后缀采用 "flask_1" 命名(可按需调整) - carrier[0] = BIOYOND_PolymerStation_Reagent_Bottle(f"{name}_flask_1") - return carrier - - -def BIOYOND_PolymerStation_1FlaskCarrier(name: str) -> BottleCarrier: - """聚合站-单烧杯载架 - - 说明: - - 使用 BIOYOND_PolymerStation_Flask 资源类 - - 载架命名与 model 统一为 PolymerStation - """ - - # 载架尺寸 (mm) - carrier_size_x = 127.8 - carrier_size_y = 85.5 - carrier_size_z = 20.0 - - # 烧杯尺寸 - beaker_diameter = 60.0 - - # 计算中央位置 - center_x = (carrier_size_x - beaker_diameter) / 2 - center_y = (carrier_size_y - beaker_diameter) / 2 - center_z = 5.0 - - carrier = BottleCarrier( - name=name, - size_x=carrier_size_x, - size_y=carrier_size_y, - size_z=carrier_size_z, - sites=create_homogeneous_resources( - klass=ResourceHolder, - locations=[Coordinate(center_x, center_y, center_z)], - resource_size_x=beaker_diameter, - resource_size_y=beaker_diameter, - name_prefix=name, - ), - model="BIOYOND_PolymerStation_1FlaskCarrier", - ) - carrier.num_items_x = 1 - carrier.num_items_y = 1 - carrier.num_items_z = 1 - carrier[0] = BIOYOND_PolymerStation_Flask(f"{name}_flask_1") - return carrier - - -# ============================================================================ -# 其他载体定义 -# ============================================================================ - -def BIOYOND_Electrolyte_6VialCarrier(name: str) -> BottleCarrier: - """6瓶载架 - 2x3布局""" - - # 载架尺寸 (mm) - carrier_size_x = 127.8 - carrier_size_y = 85.5 - carrier_size_z = 50.0 - - # 瓶位尺寸 - bottle_diameter = 30.0 - bottle_spacing_x = 42.0 # X方向间距 - bottle_spacing_y = 35.0 # Y方向间距 - - # 计算起始位置 (居中排列) - start_x = (carrier_size_x - (3 - 1) * bottle_spacing_x - bottle_diameter) / 2 - start_y = (carrier_size_y - (2 - 1) * bottle_spacing_y - bottle_diameter) / 2 - - sites = create_ordered_items_2d( - klass=ResourceHolder, - num_items_x=3, - num_items_y=2, - dx=start_x, - dy=start_y, - dz=5.0, - item_dx=bottle_spacing_x, - item_dy=bottle_spacing_y, - - size_x=bottle_diameter, - size_y=bottle_diameter, - size_z=carrier_size_z, - ) - for k, v in sites.items(): - v.name = f"{name}_{v.name}" - - carrier = BottleCarrier( - name=name, - size_x=carrier_size_x, - size_y=carrier_size_y, - size_z=carrier_size_z, - sites=sites, - model="BIOYOND_Electrolyte_6VialCarrier", - ) - carrier.num_items_x = 3 - carrier.num_items_y = 2 - carrier.num_items_z = 1 - for i in range(6): - carrier[i] = BIOYOND_PolymerStation_Solid_Vial(f"{name}_vial_{i+1}") - return carrier - - -def BIOYOND_Electrolyte_1BottleCarrier(name: str) -> BottleCarrier: - """1瓶载架 - 单个中央位置""" - - # 载架尺寸 (mm) - carrier_size_x = 127.8 - carrier_size_y = 85.5 - carrier_size_z = 100.0 - - # 烧杯尺寸 - beaker_diameter = 80.0 - - # 计算中央位置 - center_x = (carrier_size_x - beaker_diameter) / 2 - center_y = (carrier_size_y - beaker_diameter) / 2 - center_z = 5.0 - - carrier = BottleCarrier( - name=name, - size_x=carrier_size_x, - size_y=carrier_size_y, - size_z=carrier_size_z, - sites=create_homogeneous_resources( - klass=ResourceHolder, - locations=[Coordinate(center_x, center_y, center_z)], - resource_size_x=beaker_diameter, - resource_size_y=beaker_diameter, - name_prefix=name, - ), - model="BIOYOND_Electrolyte_1BottleCarrier", - ) - carrier.num_items_x = 1 - carrier.num_items_y = 1 - carrier.num_items_z = 1 - carrier[0] = BIOYOND_PolymerStation_Solution_Beaker(f"{name}_beaker_1") - return carrier diff --git a/unilabos/resources/bioyond/bottles.py b/unilabos/resources/bioyond/bottles.py deleted file mode 100644 index d60d65ab..00000000 --- a/unilabos/resources/bioyond/bottles.py +++ /dev/null @@ -1,195 +0,0 @@ -from unilabos.resources.itemized_carrier import Bottle - - -def BIOYOND_PolymerStation_Solid_Stock( - name: str, - diameter: float = 20.0, - height: float = 100.0, - max_volume: float = 30000.0, # 30mL - barcode: str = None, -) -> Bottle: - """创建粉末瓶""" - return Bottle( - name=name, - diameter=diameter, - height=height, - max_volume=max_volume, - barcode=barcode, - model="BIOYOND_PolymerStation_Solid_Stock", - ) - - -def BIOYOND_PolymerStation_Solid_Vial( - name: str, - diameter: float = 25.0, - height: float = 60.0, - max_volume: float = 30000.0, # 30mL - barcode: str = None, -) -> Bottle: - """创建粉末瓶""" - return Bottle( - name=name, - diameter=diameter, - height=height, - max_volume=max_volume, - barcode=barcode, - model="BIOYOND_PolymerStation_Solid_Vial", - ) - - -def BIOYOND_PolymerStation_Liquid_Vial( - name: str, - diameter: float = 25.0, - height: float = 60.0, - max_volume: float = 30000.0, # 30mL - barcode: str = None, -) -> Bottle: - """创建滴定液瓶""" - return Bottle( - name=name, - diameter=diameter, - height=height, - max_volume=max_volume, - barcode=barcode, - model="BIOYOND_PolymerStation_Liquid_Vial", - ) - - -def BIOYOND_PolymerStation_Solution_Beaker( - name: str, - diameter: float = 60.0, - height: float = 70.0, - max_volume: float = 200000.0, # 200mL - barcode: str = None, -) -> Bottle: - """创建溶液烧杯""" - return Bottle( - name=name, - diameter=diameter, - height=height, - max_volume=max_volume, - barcode=barcode, - model="BIOYOND_PolymerStation_Solution_Beaker", - ) - - -def BIOYOND_PolymerStation_Reagent_Bottle( - name: str, - diameter: float = 70.0, - height: float = 120.0, - max_volume: float = 500000.0, # 500mL - barcode: str = None, -) -> Bottle: - """创建试剂瓶""" - return Bottle( - name=name, - diameter=diameter, - height=height, - max_volume=max_volume, - barcode=barcode, - model="BIOYOND_PolymerStation_Reagent_Bottle", - ) - - -def BIOYOND_PolymerStation_Reactor( - name: str, - diameter: float = 30.0, - height: float = 80.0, - max_volume: float = 50000.0, # 50mL - barcode: str = None, -) -> Bottle: - """创建反应器""" - return Bottle( - name=name, - diameter=diameter, - height=height, - max_volume=max_volume, - barcode=barcode, - model="BIOYOND_PolymerStation_Reactor", - ) - - -def BIOYOND_PolymerStation_TipBox( - name: str, - size_x: float = 127.76, # 枪头盒宽度 - size_y: float = 85.48, # 枪头盒长度 - size_z: float = 100.0, # 枪头盒高度 - barcode: str = None, -): - """创建4×6枪头盒 (24个枪头) - - Args: - name: 枪头盒名称 - size_x: 枪头盒宽度 (mm) - size_y: 枪头盒长度 (mm) - size_z: 枪头盒高度 (mm) - barcode: 条形码 - - Returns: - TipBoxCarrier: 包含24个枪头孔位的枪头盒 - """ - from pylabrobot.resources import Container, Coordinate - - # 创建枪头盒容器 - tip_box = Container( - name=name, - size_x=size_x, - size_y=size_y, - size_z=size_z, - category="tip_rack", - model="BIOYOND_PolymerStation_TipBox_4x6", - ) - - # 设置自定义属性 - tip_box.barcode = barcode - tip_box.tip_count = 24 # 4行×6列 - tip_box.num_items_x = 6 # 6列 - tip_box.num_items_y = 4 # 4行 - - # 创建24个枪头孔位 (4行×6列) - # 假设孔位间距为 9mm - tip_spacing_x = 9.0 # 列间距 - tip_spacing_y = 9.0 # 行间距 - start_x = 14.38 # 第一个孔位的x偏移 - start_y = 11.24 # 第一个孔位的y偏移 - - for row in range(4): # A, B, C, D - for col in range(6): # 1-6 - spot_name = f"{chr(65 + row)}{col + 1}" # A1, A2, ..., D6 - x = start_x + col * tip_spacing_x - y = start_y + row * tip_spacing_y - - # 创建枪头孔位容器 - tip_spot = Container( - name=spot_name, - size_x=8.0, # 单个枪头孔位大小 - size_y=8.0, - size_z=size_z - 10.0, # 略低于盒子高度 - category="tip_spot", - ) - - # 添加到枪头盒 - tip_box.assign_child_resource( - tip_spot, - location=Coordinate(x=x, y=y, z=0) - ) - - return tip_box - - -def BIOYOND_PolymerStation_Flask( - name: str, - diameter: float = 60.0, - height: float = 70.0, - max_volume: float = 200000.0, # 200mL - barcode: str = None, -) -> Bottle: - """聚合站-烧杯(统一 Flask 资源到 PolymerStation)""" - return Bottle( - name=name, - diameter=diameter, - height=height, - max_volume=max_volume, - barcode=barcode, - model="BIOYOND_PolymerStation_Flask", - ) diff --git a/unilabos/resources/bioyond/decks.py b/unilabos/resources/bioyond/decks.py deleted file mode 100644 index 5572536b..00000000 --- a/unilabos/resources/bioyond/decks.py +++ /dev/null @@ -1,155 +0,0 @@ -from os import name -from pylabrobot.resources import Deck, Coordinate, Rotation - -from unilabos.resources.bioyond.warehouses import ( - bioyond_warehouse_1x4x4, - bioyond_warehouse_1x4x4_right, # 新增:右侧仓库 (A05~D08) - bioyond_warehouse_1x4x2, - bioyond_warehouse_reagent_stack, # 新增:试剂堆栈 (A1-B4) - bioyond_warehouse_liquid_and_lid_handling, - bioyond_warehouse_1x2x2, - bioyond_warehouse_1x3x3, - bioyond_warehouse_10x1x1, - bioyond_warehouse_3x3x1, - bioyond_warehouse_3x3x1_2, - bioyond_warehouse_5x1x1, - bioyond_warehouse_1x8x4, - bioyond_warehouse_reagent_storage, - # bioyond_warehouse_liquid_preparation, - bioyond_warehouse_tipbox_storage, # 新增:Tip盒堆栈 - bioyond_warehouse_density_vial, -) - - -class BIOYOND_PolymerReactionStation_Deck(Deck): - def __init__( - self, - name: str = "PolymerReactionStation_Deck", - size_x: float = 2700.0, - size_y: float = 1080.0, - size_z: float = 1500.0, - category: str = "deck", - setup: bool = False - ) -> None: - super().__init__(name=name, size_x=2700.0, size_y=1080.0, size_z=1500.0) - if setup: - self.setup() - - def setup(self) -> None: - # 添加仓库 - # 说明: 堆栈1物理上分为左右两部分 - # - 堆栈1左: A01~D04 (4行×4列, 位于反应站左侧) - # - 堆栈1右: A05~D08 (4行×4列, 位于反应站右侧) - self.warehouses = { - "堆栈1左": bioyond_warehouse_1x4x4("堆栈1左"), # 左侧堆栈: A01~D04 - "堆栈1右": bioyond_warehouse_1x4x4_right("堆栈1右"), # 右侧堆栈: A05~D08 - "站内试剂存放堆栈": bioyond_warehouse_reagent_storage("站内试剂存放堆栈"), # A01~A02 - # "移液站内10%分装液体准备仓库": bioyond_warehouse_liquid_preparation("移液站内10%分装液体准备仓库"), # A01~B04 - "站内Tip盒堆栈": bioyond_warehouse_tipbox_storage("站内Tip盒堆栈"), # A01~B03, 存放枪头盒. - "测量小瓶仓库(测密度)": bioyond_warehouse_density_vial("测量小瓶仓库(测密度)"), # A01~B03 - } - self.warehouse_locations = { - "堆栈1左": Coordinate(0.0, 430.0, 0.0), # 左侧位置 - "堆栈1右": Coordinate(2500.0, 430.0, 0.0), # 右侧位置 - "站内试剂存放堆栈": Coordinate(640.0, 480.0, 0.0), - # "移液站内10%分装液体准备仓库": Coordinate(1200.0, 600.0, 0.0), - "站内Tip盒堆栈": Coordinate(300.0, 150.0, 0.0), - "测量小瓶仓库(测密度)": Coordinate(922.0, 552.0, 0.0), - } - self.warehouses["站内试剂存放堆栈"].rotation = Rotation(z=90) - self.warehouses["测量小瓶仓库(测密度)"].rotation = Rotation(z=270) - - for warehouse_name, warehouse in self.warehouses.items(): - self.assign_child_resource(warehouse, location=self.warehouse_locations[warehouse_name]) - - -class BIOYOND_PolymerPreparationStation_Deck(Deck): - def __init__( - self, - name: str = "PolymerPreparationStation_Deck", - size_x: float = 2700.0, - size_y: float = 1080.0, - size_z: float = 1500.0, - category: str = "deck", - setup: bool = False - ) -> None: - super().__init__(name=name, size_x=2700.0, size_y=1080.0, size_z=1500.0) - if setup: - self.setup() - - def setup(self) -> None: - # 添加仓库 - 配液站的3个堆栈,使用Bioyond系统中的实际名称 - # 样品类型(typeMode=1):烧杯、试剂瓶、分装板 → 试剂堆栈、溶液堆栈 - # 试剂类型(typeMode=2):样品板 → 粉末堆栈 - self.warehouses = { - # 试剂类型 - 样品板 - "粉末堆栈": bioyond_warehouse_1x4x4("粉末堆栈"), # 4行×4列 (A01-D04) - - # 样品类型 - 烧杯、试剂瓶、分装板 - "试剂堆栈": bioyond_warehouse_reagent_stack("试剂堆栈"), # 2行×4列 (A01-B04) - "溶液堆栈": bioyond_warehouse_1x4x4("溶液堆栈"), # 4行×4列 (A01-D04) - } - self.warehouse_locations = { - "粉末堆栈": Coordinate(0.0, 450.0, 0.0), - "试剂堆栈": Coordinate(1850.0, 200.0, 0.0), - "溶液堆栈": Coordinate(2500.0, 450.0, 0.0), - } - - for warehouse_name, warehouse in self.warehouses.items(): - self.assign_child_resource(warehouse, location=self.warehouse_locations[warehouse_name]) - -class BIOYOND_YB_Deck(Deck): - def __init__( - self, - name: str = "YB_Deck", - size_x: float = 4150, - size_y: float = 1400.0, - size_z: float = 2670.0, - category: str = "deck", - setup: bool = False - ) -> None: - super().__init__(name=name, size_x=4150.0, size_y=1400.0, size_z=2670.0) - if setup: - self.setup() - - def setup(self) -> None: - # 添加仓库 - self.warehouses = { - "321窗口": bioyond_warehouse_1x2x2("321窗口"), - "43窗口": bioyond_warehouse_1x2x2("43窗口"), - "手动传递窗左": bioyond_warehouse_1x3x3("手动传递窗左"), - "手动传递窗右": bioyond_warehouse_1x3x3("手动传递窗右"), - "加样头堆栈左": bioyond_warehouse_10x1x1("加样头堆栈左"), - "加样头堆栈右": bioyond_warehouse_10x1x1("加样头堆栈右"), - - "15ml配液堆栈左": bioyond_warehouse_3x3x1("15ml配液堆栈左"), - "母液加样右": bioyond_warehouse_3x3x1_2("母液加样右"), - "大瓶母液堆栈左": bioyond_warehouse_5x1x1("大瓶母液堆栈左"), - "大瓶母液堆栈右": bioyond_warehouse_5x1x1("大瓶母液堆栈右"), - } - # warehouse 的位置 - self.warehouse_locations = { - "321窗口": Coordinate(-150.0, 158.0, 0.0), - "43窗口": Coordinate(4160.0, 158.0, 0.0), - "手动传递窗左": Coordinate(-150.0, 877.0, 0.0), - "手动传递窗右": Coordinate(4160.0, 877.0, 0.0), - "加样头堆栈左": Coordinate(385.0, 1300.0, 0.0), - "加样头堆栈右": Coordinate(2187.0, 1300.0, 0.0), - - "15ml配液堆栈左": Coordinate(749.0, 355.0, 0.0), - "母液加样右": Coordinate(2152.0, 333.0, 0.0), - "大瓶母液堆栈左": Coordinate(1164.0, 676.0, 0.0), - "大瓶母液堆栈右": Coordinate(2717.0, 676.0, 0.0), - } - - for warehouse_name, warehouse in self.warehouses.items(): - self.assign_child_resource(warehouse, location=self.warehouse_locations[warehouse_name]) -def YB_Deck(name: str) -> Deck: - by=BIOYOND_YB_Deck(name=name) - by.setup() - return by - - - - - diff --git a/unilabos/resources/bioyond/warehouses.py b/unilabos/resources/bioyond/warehouses.py deleted file mode 100644 index ae9e473d..00000000 --- a/unilabos/resources/bioyond/warehouses.py +++ /dev/null @@ -1,311 +0,0 @@ -from unilabos.resources.warehouse import WareHouse, warehouse_factory - -# ================ 反应站相关堆栈 ================ - -def bioyond_warehouse_1x4x4(name: str) -> WareHouse: - """创建BioYond 4x4x1仓库 (左侧堆栈: A01~D04) - - 使用行优先排序,前端展示为: - A01 | A02 | A03 | A04 - B01 | B02 | B03 | B04 - C01 | C02 | C03 | C04 - D01 | D02 | D03 | D04 - """ - return warehouse_factory( - name=name, - num_items_x=4, # 4列 - num_items_y=4, # 4行 - num_items_z=1, - dx=10.0, - dy=10.0, - dz=10.0, - item_dx=147.0, - item_dy=106.0, - item_dz=130.0, - category="warehouse", - col_offset=0, # 从01开始: A01, A02, A03, A04 - layout="row-major", # ⭐ 改为行优先排序 - ) - -def bioyond_warehouse_1x4x4_right(name: str) -> WareHouse: - """创建BioYond 4x4x1仓库 (右侧堆栈: A05~D08)""" - return warehouse_factory( - name=name, - num_items_x=4, - num_items_y=4, - num_items_z=1, - dx=10.0, - dy=10.0, - dz=10.0, - item_dx=147.0, - item_dy=106.0, - item_dz=130.0, - category="warehouse", - col_offset=4, # 从05开始: A05, A06, A07, A08 - layout="row-major", # ⭐ 改为行优先排序 - ) - -def bioyond_warehouse_density_vial(name: str) -> WareHouse: - """创建测量小瓶仓库(测密度) A01~B03""" - return warehouse_factory( - name=name, - num_items_x=3, # 3列(01-03) - num_items_y=2, # 2行(A-B) - num_items_z=1, # 1层 - dx=10.0, - dy=10.0, - dz=10.0, - item_dx=40.0, - item_dy=40.0, - item_dz=50.0, - # 用更小的 resource_size 来表现 "小点的孔位" - resource_size_x=30.0, - resource_size_y=30.0, - resource_size_z=12.0, - category="warehouse", - col_offset=0, - layout="row-major", - ) - -def bioyond_warehouse_reagent_storage(name: str) -> WareHouse: - """创建BioYond站内试剂存放堆栈(A01~A02, 1行×2列)""" - return warehouse_factory( - name=name, - num_items_x=2, # 2列(01-02) - num_items_y=1, # 1行(A) - num_items_z=1, # 1层 - dx=10.0, - dy=10.0, - dz=10.0, - item_dx=137.0, - item_dy=96.0, - item_dz=120.0, - category="warehouse", - ) - -def bioyond_warehouse_tipbox_storage(name: str) -> WareHouse: - """创建BioYond站内Tip盒堆栈(A01~B03),用于存放枪头盒""" - return warehouse_factory( - name=name, - num_items_x=3, # 3列(01-03) - num_items_y=2, # 2行(A-B) - num_items_z=1, # 1层 - dx=10.0, - dy=10.0, - dz=10.0, - item_dx=137.0, - item_dy=96.0, - item_dz=120.0, - category="warehouse", - col_offset=0, - layout="row-major", - ) - -def bioyond_warehouse_liquid_preparation(name: str) -> WareHouse: - """已弃用,创建BioYond移液站内10%分装液体准备仓库(A01~B04)""" - return warehouse_factory( - name=name, - num_items_x=4, # 4列(01-04) - num_items_y=2, # 2行(A-B) - num_items_z=1, # 1层 - dx=10.0, - dy=10.0, - dz=10.0, - item_dx=137.0, - item_dy=96.0, - item_dz=120.0, - category="warehouse", - col_offset=0, - layout="row-major", - ) - -# ================ 配液站相关堆栈 ================ - -def bioyond_warehouse_reagent_stack(name: str) -> WareHouse: - """创建BioYond 试剂堆栈 2x4x1 (2行×4列: A01-A04, B01-B04) - - 使用行优先排序,前端展示为: - A01 | A02 | A03 | A04 - B01 | B02 | B03 | B04 - """ - return warehouse_factory( - name=name, - num_items_x=4, # 4列 (01-04) - num_items_y=2, # 2行 (A-B) - num_items_z=1, # 1层 - dx=10.0, - dy=10.0, - dz=10.0, - item_dx=147.0, - item_dy=106.0, - item_dz=130.0, - category="warehouse", - col_offset=0, # 从01开始 - layout="row-major", # ⭐ 使用行优先排序: A01,A02,A03,A04, B01,B02,B03,B04 - ) - - # 定义bioyond的堆栈 - -# =================== Other =================== - -def bioyond_warehouse_1x4x2(name: str) -> WareHouse: - """创建BioYond 4x2x1仓库""" - return warehouse_factory( - name=name, - num_items_x=1, - num_items_y=4, - num_items_z=2, - dx=10.0, - dy=10.0, - dz=10.0, - item_dx=137.0, - item_dy=96.0, - item_dz=120.0, - category="warehouse", - removed_positions=None - ) - -def bioyond_warehouse_1x2x2(name: str) -> WareHouse: - """创建BioYond 1x2x2仓库""" - return warehouse_factory( - name=name, - num_items_x=1, - num_items_y=2, - num_items_z=2, - dx=10.0, - dy=10.0, - dz=10.0, - item_dx=137.0, - item_dy=96.0, - item_dz=120.0, - category="warehouse", - ) - -def bioyond_warehouse_10x1x1(name: str) -> WareHouse: - """创建BioYond 10x1x1仓库""" - return warehouse_factory( - name=name, - num_items_x=10, - num_items_y=1, - num_items_z=1, - dx=10.0, - dy=10.0, - dz=10.0, - item_dx=137.0, - item_dy=96.0, - item_dz=120.0, - category="warehouse", - ) - -def bioyond_warehouse_1x3x3(name: str) -> WareHouse: - """创建BioYond 1x3x3仓库""" - return warehouse_factory( - name=name, - num_items_x=1, - num_items_y=3, - num_items_z=3, - dx=10.0, - dy=10.0, - dz=10.0, - item_dx=137.0, - item_dy=96.0, - item_dz=120.0, - category="warehouse", - ) - -def bioyond_warehouse_2x1x3(name: str) -> WareHouse: - """创建BioYond 2x1x3仓库""" - return warehouse_factory( - name=name, - num_items_x=2, - num_items_y=1, - num_items_z=3, - dx=10.0, - dy=10.0, - dz=10.0, - item_dx=137.0, - item_dy=96.0, - item_dz=120.0, - category="warehouse", - ) - -def bioyond_warehouse_3x3x1(name: str) -> WareHouse: - """创建BioYond 3x3x1仓库""" - return warehouse_factory( - name=name, - num_items_x=3, - num_items_y=3, - num_items_z=1, - dx=10.0, - dy=10.0, - dz=10.0, - item_dx=137.0, - item_dy=96.0, - item_dz=120.0, - category="warehouse", - ) - -def bioyond_warehouse_5x1x1(name: str) -> WareHouse: - """已弃用:创建BioYond 5x1x1仓库""" - return warehouse_factory( - name=name, - num_items_x=5, - num_items_y=1, - num_items_z=1, - dx=10.0, - dy=10.0, - dz=10.0, - item_dx=137.0, - item_dy=96.0, - item_dz=120.0, - category="warehouse", - ) - -def bioyond_warehouse_3x3x1_2(name: str) -> WareHouse: - """已弃用:创建BioYond 3x3x1仓库""" - return warehouse_factory( - name=name, - num_items_x=3, - num_items_y=3, - num_items_z=1, - dx=12.0, - dy=12.0, - dz=12.0, - item_dx=137.0, - item_dy=96.0, - item_dz=120.0, - category="warehouse", - ) - -def bioyond_warehouse_liquid_and_lid_handling(name: str) -> WareHouse: - """创建BioYond开关盖加液模块台面""" - return warehouse_factory( - name=name, - num_items_x=2, - num_items_y=5, - num_items_z=1, - dx=10.0, - dy=10.0, - dz=10.0, - item_dx=137.0, - item_dy=96.0, - item_dz=120.0, - category="warehouse", - removed_positions=None - ) - -def bioyond_warehouse_1x8x4(name: str) -> WareHouse: - """创建BioYond 8x4x1反应站堆栈(A01~D08)""" - return warehouse_factory( - name=name, - num_items_x=8, # 8列(01-08) - num_items_y=4, # 4行(A-D) - num_items_z=1, # 1层 - dx=10.0, - dy=10.0, - dz=10.0, - item_dx=147.0, - item_dy=106.0, - item_dz=130.0, - category="warehouse", - ) diff --git a/unilabos/resources/itemized_carrier.py b/unilabos/resources/itemized_carrier.py index 3b3454a1..7c48bd2d 100644 --- a/unilabos/resources/itemized_carrier.py +++ b/unilabos/resources/itemized_carrier.py @@ -47,14 +47,15 @@ def __init__( ) self.diameter = diameter self.height = height - self.barcode = barcode + # 存储 barcode 字符串到自定义属性,不覆盖父类的 barcode 对象属性 + self._barcode_str = barcode if barcode else None def serialize(self) -> dict: return { **super().serialize(), "diameter": self.diameter, "height": self.height, - "barcode": self.barcode, + "barcode": self._barcode_str, # 序列化时输出字符串 } T = TypeVar("T", bound=ResourceHolder) @@ -149,6 +150,7 @@ def assign_child_resource( if not reassign and self.sites[idx] is not None: raise ValueError(f"a site with index {idx} already exists") + location = list(self.child_locations.values())[idx] super().assign_child_resource(resource, location=location, reassign=reassign) self.sites[idx] = resource diff --git a/unilabos/resources/plr_additional_res_reg.py b/unilabos/resources/plr_additional_res_reg.py index 1c019ded..c12872fc 100644 --- a/unilabos/resources/plr_additional_res_reg.py +++ b/unilabos/resources/plr_additional_res_reg.py @@ -2,19 +2,19 @@ def register(): # noinspection PyUnresolvedReferences - from unilabos.devices.liquid_handling.prcxi.prcxi import PRCXI9300Deck - # noinspection PyUnresolvedReferences - from unilabos.devices.liquid_handling.prcxi.prcxi import PRCXI9300Plate - from unilabos.devices.liquid_handling.prcxi.prcxi import PRCXI9300PlateAdapter - from unilabos.devices.liquid_handling.prcxi.prcxi import PRCXI9300TipRack - from unilabos.devices.liquid_handling.prcxi.prcxi import PRCXI9300Trash - from unilabos.devices.liquid_handling.prcxi.prcxi import PRCXI9300TubeRack + # from unilabos.devices.liquid_handling.prcxi.prcxi import PRCXI9300Deck + # # noinspection PyUnresolvedReferences + # from unilabos.devices.liquid_handling.prcxi.prcxi import PRCXI9300Plate + # from unilabos.devices.liquid_handling.prcxi.prcxi import PRCXI9300PlateAdapter + # from unilabos.devices.liquid_handling.prcxi.prcxi import PRCXI9300TipRack + # from unilabos.devices.liquid_handling.prcxi.prcxi import PRCXI9300Trash + # from unilabos.devices.liquid_handling.prcxi.prcxi import PRCXI9300TubeRack # noinspection PyUnresolvedReferences from unilabos.devices.workstation.workstation_base import WorkStationContainer - from unilabos.devices.liquid_handling.laiyu.laiyu import TransformXYZDeck - from unilabos.devices.liquid_handling.laiyu.laiyu import TransformXYZContainer + # from unilabos.devices.liquid_handling.laiyu.laiyu import TransformXYZDeck + # from unilabos.devices.liquid_handling.laiyu.laiyu import TransformXYZContainer - from unilabos.devices.liquid_handling.rviz_backend import UniLiquidHandlerRvizBackend - from unilabos.devices.liquid_handling.laiyu.backend.laiyu_v_backend import UniLiquidHandlerLaiyuBackend + # from unilabos.devices.liquid_handling.rviz_backend import UniLiquidHandlerRvizBackend + # from unilabos.devices.liquid_handling.laiyu.backend.laiyu_v_backend import UniLiquidHandlerLaiyuBackend diff --git a/unilabos/resources/resource_tracker.py b/unilabos/resources/resource_tracker.py index 09e77493..610ba3dd 100644 --- a/unilabos/resources/resource_tracker.py +++ b/unilabos/resources/resource_tracker.py @@ -14,9 +14,9 @@ class ResourceDictPositionSize(BaseModel): - depth: float = Field(description="Depth", default=0.0) - width: float = Field(description="Width", default=0.0) - height: float = Field(description="Height", default=0.0) + depth: float = Field(description="Depth", default=0.0) # z + width: float = Field(description="Width", default=0.0) # x + height: float = Field(description="Height", default=0.0) # y class ResourceDictPositionScale(BaseModel): @@ -469,9 +469,9 @@ def node_to_plr_dict(node: ResourceDictInstance, has_model: bool): **res.config, "name": res.name, "type": res.config.get("type", plr_type), - "size_x": res.config.get("size_x", 0), - "size_y": res.config.get("size_y", 0), - "size_z": res.config.get("size_z", 0), + "size_x": res.pose.size.width, + "size_y": res.pose.size.height, + "size_z": res.pose.size.depth, "location": { "x": res.pose.position.x, "y": res.pose.position.y, diff --git a/unilabos/ros/main_slave_run.py b/unilabos/ros/main_slave_run.py index b79c3683..8a9e62d9 100644 --- a/unilabos/ros/main_slave_run.py +++ b/unilabos/ros/main_slave_run.py @@ -11,7 +11,7 @@ from unilabos.app.register import register_devices_and_resources from unilabos.ros.nodes.presets.resource_mesh_manager import ResourceMeshManager from unilabos.resources.resource_tracker import DeviceNodeResourceTracker, ResourceTreeSet -from unilabos.devices.ros_dev.liquid_handler_joint_publisher import LiquidHandlerJointPublisher +# from unilabos.devices.ros_dev.liquid_handler_joint_publisher import LiquidHandlerJointPublisher from unilabos_msgs.srv import SerialCommand # type: ignore from rclpy.executors import MultiThreadedExecutor from rclpy.node import Node diff --git a/unilabos/ros/nodes/base_device_node.py b/unilabos/ros/nodes/base_device_node.py index 954a6532..5d7379e7 100644 --- a/unilabos/ros/nodes/base_device_node.py +++ b/unilabos/ros/nodes/base_device_node.py @@ -790,7 +790,7 @@ def _handle_remove(resources_uuid: List[str]) -> Dict[str, Any]: def _handle_update( plr_resources: List[Union[ResourcePLR, ResourceDictInstance]], tree_set: ResourceTreeSet, additional_add_params: Dict[str, Any] - ) -> Dict[str, Any]: + ) -> Tuple[Dict[str, Any], List[ResourcePLR]]: """ 处理资源更新操作的内部函数 @@ -802,6 +802,7 @@ def _handle_update( Returns: 操作结果字典 """ + original_instances = [] for plr_resource, tree in zip(plr_resources, tree_set.trees): if isinstance(plr_resource, ResourceDictInstance): self._lab_logger.info(f"跳过 非资源{plr_resource.res_content.name} 的更新") @@ -844,6 +845,16 @@ def _handle_update( and original_parent_resource is not None ): self.transfer_to_new_resource(original_instance, tree, additional_add_params) + else: + # 判断是否变更了resource_site + target_site = original_instance.unilabos_extra.get("update_resource_site") + sites = original_instance.parent.sites if original_instance.parent is not None and hasattr(original_instance.parent, "sites") else None + site_names = list(original_instance.parent._ordering.keys()) if original_instance.parent is not None and hasattr(original_instance.parent, "sites") else [] + if target_site is not None and sites is not None and site_names is not None: + site_index = sites.index(original_instance) + site_name = site_names[site_index] + if site_name != target_site: + self.transfer_to_new_resource(original_instance, tree, additional_add_params) # 加载状态 original_instance.load_all_state(states) @@ -851,13 +862,14 @@ def _handle_update( self.lab_logger().info( f"更新了资源属性 {plr_resource}[{tree.root_node.res_content.uuid}] " f"及其子节点 {child_count} 个" ) + original_instances.append(original_instance) # 调用driver的update回调 func = getattr(self.driver_instance, "resource_tree_update", None) if callable(func): - func(plr_resources) + func(original_instances) - return {"success": True, "action": "update"} + return {"success": True, "action": "update"}, original_instances try: data = json.loads(req.command) @@ -881,6 +893,13 @@ def _handle_update( raise ValueError("tree_set不能为None") plr_resources = tree_set.to_plr_resources() result = _handle_add(plr_resources, tree_set, additional_add_params) + new_tree_set = ResourceTreeSet.from_plr_resources(plr_resources) + r = SerialCommand.Request() + r.command = json.dumps( + {"data": {"data": new_tree_set.dump()}, "action": "update"}) # 和Update Resource一致 + response: SerialCommand_Response = await self._resource_clients[ + "c2s_update_resource_tree"].call_async(r) # type: ignore + self.lab_logger().info(f"确认资源云端 Add 结果: {response.response}") results.append(result) elif action == "update": if tree_set is None: @@ -891,7 +910,14 @@ def _handle_update( plr_resources.append(tree.root_node) else: plr_resources.append(ResourceTreeSet([tree]).to_plr_resources()[0]) - result = _handle_update(plr_resources, tree_set, additional_add_params) + result, original_instances = _handle_update(plr_resources, tree_set, additional_add_params) + # new_tree_set = ResourceTreeSet.from_plr_resources(original_instances) + # r = SerialCommand.Request() + # r.command = json.dumps( + # {"data": {"data": new_tree_set.dump()}, "action": "update"}) # 和Update Resource一致 + # response: SerialCommand_Response = await self._resource_clients[ + # "c2s_update_resource_tree"].call_async(r) # type: ignore + # self.lab_logger().info(f"确认资源云端 Update 结果: {response.response}") results.append(result) elif action == "remove": result = _handle_remove(resources_uuid) @@ -1758,6 +1784,7 @@ def __init__( or driver_class.__name__ == "LiquidHandlerBiomek" or driver_class.__name__ == "PRCXI9300Handler" or driver_class.__name__ == "TransformXYZHandler" + or driver_class.__name__ == "OpcUaClient" ) # 创建设备类实例